*Afterthoughts & Addenda* *Modifying the UI* - I realise I didn't say much about the device that's providing the terminal environment inside the FrankenTerminal - it's an Axel AX3000 M80 Thin Client which is sold pretty much as a 'black box' or appliance - it clearly does have some sort of OS, but it's not open for modification beyond the configuration options that are provided by the manufacturer (and hiding the mouse cursor isn't one of those options for telnet sessions). The firmware can be updated, but only from compiled binaries from the manufacturer. I'm sure it *could* be hacked, but it would probably be a case of starting from scratch (which is way more effort than what I did in this video).
@domramsey3 ай бұрын
Ah, I wondered why you didn't just modify the software, but that explains it!
@purple-cho3 ай бұрын
Clearly you investigated options that didn't make it into the video so I'm curious, did you look into modifying the keyboard's internal ps/2 to usb adaptor? Just on a surface level, it seems like something that'd either be deceptively simple or deceptively difficult, and very unlikely to fall anywhere between those two extremes! Regardless, the solution you found clearly works - so kudos for finding _a_ solution and not getting lost in the labyrinth of wanting _the best_ solution 😁
@AtomicShrimp3 ай бұрын
I remember opening up the older keyboard (the PS/2 one) in the vain hope that I would find an unpopulated USB header on the board; there were quite a few chips on the board - some of them obviously just flash memory, but two of them in quad flat packages that are typically used for microcontrollers and SoCs; one of these was clearly managing the PS/2 interface as the traces linked to the plugs (the other one was probably handling the keyboard scanning etc). I imagine the USB models will be similar but with a few changes to the interface part. I think trying to reverse engineer all of that would have been a huge undertaking compared to this.
@AMPProf3 ай бұрын
Have you Tried something like Xkeys #NotaSponsor
@berndeckenfels3 ай бұрын
@@AtomicShrimp cool, thin client which starts in terminal mode - that is the future
@milkbox1033 ай бұрын
I was only half watching with this video on my second monitor, sleepily drawing as it's almost midnight and I'm heading to bed soon, and when I heard you say "mouse library" my brain somehow forgot the whole concept of this video and conjured up the visual of an actual mouse library, like a tiny little library filled with mice (like the animal) browsing and borrowing tiny books, before I thought "no that can't possibly be what he means" and I looked over at the video and was like oh right. lol. bed time for me
@squircle9763 ай бұрын
thank you
@oz_jones3 ай бұрын
For Redwall!
@thebillyd003 ай бұрын
A mouse library sounds like a really cute idea. Though I don't think it'll help out the literacy rate for mice very much.
@zzydny3 ай бұрын
Well, I kinda like that notion, and now my mind has wandered off to Brambly Hedge. 🐭
@JustMatt873 ай бұрын
Would also be fitting for this channel though
@ian-c.013 ай бұрын
I have a feeling that what you show in a ten minute video might have taken many hours of research, tinkering, and trial and error but the ten minute video really makes it look very simple !
@JanusMirith3 ай бұрын
Oh you're a man after my own heart, The moment you explained the issue, I thought to myself "oh I'd just program up some terrible hacky solution with a microcontroller"
@MrJozza653 ай бұрын
This is a great practical use of microcontroller to solve a specific problem; no hardware changes needed, it's completely un-pluggable if there's any issues too. Although it could perhaps be done more efficiently with some hardware/firmware hacking, this perfectly workable solution costing a few quid and a couple of lines of simple code is more accessible to the average tinkerer, and it works a treat.
@0LoneTech3 ай бұрын
I might have considered making it halt after it was done also; it is wasting several milliwatts of power. But it's likely negligible compared to the rig it's designed to improve.
@guiguinofake46263 ай бұрын
I was not expecting the foraging guy to have a Altair clone
@Styphon3 ай бұрын
That's the beauty of this channel! ⚛️🦐
@thany33 ай бұрын
Then perhaps you also wouldn't expect pottery, woodworking, wicker weaving, and stone polishing 😀
@joanignasi913 ай бұрын
Also glass working and of course scam baiting.
@azurehanyo3 ай бұрын
Don’t forget the noble art of Wobbledogging.
@hypotheticalaxolotl3 ай бұрын
@@thany3 no, actually that stuff I would expect from a foraging channel.
@BonBin-m3b3 ай бұрын
I was just looking back through your channel, great timing! Your videos are always brilliant, and you get a bit of everything! Thanks mr shrimp!
@alameachan3 ай бұрын
A little side note, because Mr. Shrimp does have a somewhat sizeable librarty of videos about scams: Microprocessors like these are the reason you should never plug any USB device you do not know and trust into your hardware. Aside from it being a straight up USB killer, you could hide all manners of unpleasantries in that microprocessor and put it in something as small as a thumb drive or even a bluetooth dongle. Stay vigilant with your devices, people!
@AtomicShrimp3 ай бұрын
Yeah, it could just as easily emulate a keyboard and send the keystrokes to create or run arbitrary code
@Styphon3 ай бұрын
@@AtomicShrimpHave it type out "I can't do that, Dave"
@MajorJakas3 ай бұрын
@@Styphonor worse
@edtuckerartist3 ай бұрын
@@Styphon "Good afternoon, gentlemen. I am a Franken FT80 terminal. I became operational at the A.S. HQ in Slaughtercester on the 17th of October 2021. My instructor was Dr. Chandra, and she taught me to sing a song. If you’d like to hear it I can sing it for you."
@rubenskiii3 ай бұрын
Honestly, putting things in without protection or some proper checks beforehand is not just an unwise thing to do with computers, but in general...
@_--_--_3 ай бұрын
Another idea would be to program the arduino as a PS/2 to USB HID device adapter, so you have control over the HID descriptor. Quick search even found ready made PS/2 to USB libraries for some arduino boards, so it wouldnt even need to be programmed manually.
@bosstowndynamics54883 ай бұрын
This is mostly for interest sake as a working solution is a working solution, particularly for a home project, and it was a fun one to boot, but for what it's worth iirc PS/2 is passively driven by the host system whereas USB is a host/client protocol, so to connect a PS/2 device to a USB port you need to implement effectively half of the device in the adaptor. Since that PS/2 adaptor is capable of running a mouse it must have a mouse controller in there and to run it will report to the host as both a USB keyboard and mouse. In theory a keyboard only adaptor would work, but I'm not sure how hard that would be to find
@domramsey3 ай бұрын
Shrimp, I love your electronics projects so much! I guess they're quite niche even by your channel's standards, but I'd love to see more of them. I'd also love to see further exploration of household uses for microcontrollers.
@notanimposter3 ай бұрын
I can’t remember exactly how those combined PS/2 ports work but I suspect rendering it mouseless might be as simple as disconnecting 1-2 pins. Of course, the method you chose is more easily reversible and more fun!
@henryisnotafraid3 ай бұрын
As an old systems engineer who's recently started working with OT devices in power plants for DRS virtualization, that also entirely unix or Linux based, I can appreciate this.
@expericast3 ай бұрын
something that makes me happy is that someone, somewhere, someday will be looking for an answer to this exact problem and stumble across your wonderful channel in the process. and i hope they decide to stay and check out all of your different types of videos :)
@dennisthemenace36953 ай бұрын
I absolutely love the way the terminal looks with the Altair clone on top of it. Really looks right out of Star Trek Half expecting it to have the voice of Majel Barrett
@joshuaharlow42413 ай бұрын
Very much worth all the trouble! Overpowered solution to a simple problem! =) Some may not appreciate the solution nor the "problem" Thanks for getting us there in the end.
@joedetode3 ай бұрын
This video is a great opportunity to share my favourite pointless fact. In the era when PS/2 and USB coexisted, keyboard and mouse IC's were built to handle both protocols in the same package. They just detect which to use based on the signals they recieve from the host computer. The tiny adapters don't have any smarts, they just cross-connect pins between the 2 physical connectors. When you use one, it's just making the computer send USB signalling across a PS/2 wire (or vice versa), and relying on the keyboard to support it. This was great for cost-cutting, but it means those little adapters won't work on anything not designed to expect it. The 'pigtail' type adapter likely has an microcontroller in it, and therefore actually "converts" PS/2 to USB, which is what lets it work with anything.
@drrkdrrkdrrkdrrk3 ай бұрын
Great project. One suggestion I would have is have the code on the mouse mover check for a pin being held to ground, and if it is then skip all the mouse movement code, that way you could temporarily connect said pin to ground for programming. Not absolutely required as you can just wait 100seconds, but potentially worth considering
@AtomicShrimp3 ай бұрын
Yeah, I think the common solution is to add a button
@justanothermotorcyclist3 ай бұрын
@@AtomicShrimpI saw that the boards come with header pins, maybe a jumper across two of them would be easier than a button. If there are no I/O pins next to a GND/PWR you could set an internal pull up on one and read back with the other. Still probably an OTT solution to save 100 seconds once in a blue moon!
@AtomicShrimp3 ай бұрын
I could probably set an internal pullup, then just solder a resistor from ground across to that pin - and only have the code run if the pin is low (and in the probably-rare event programming ever becomes tricky, snip the resistor)
@silkehostenkamp39683 ай бұрын
I understand almost nothing what you are talking about but I would never skip a video of yours.
@ShellacScrubber3 ай бұрын
Love the way you HID that mouse cursor !
@PlanetZhooZhoo3 ай бұрын
Your electronics and programming skills always leave me in awe, but I still enjoy seeing the result.
@TheOwlman3 ай бұрын
Let's be realistic, just about any appliance these days will probably have a hefty processor as a controller - the clock on our gas oven contains one of the small pin count ARM cheapies and all it does is show a 24 hour clock and has some basic timing functions that we have never used as we are still using the £1 kitchen timer I bought from CPC in 1999. The number of things that run DOOM2 these days shows just how cheap it is to slap an ARM chip in a product (pregnancy test, for example, though that needed an external display for the game). With the RP2040 DOOM2 can run in a Lego brick and a programmable keycap, though both have tiny screens 😁
@bosstowndynamics54883 ай бұрын
Honestly there's a good chance the adaptor has a microprocessor very similar to the ATmega on the development board
@jbird44783 ай бұрын
They do. Generic microcontrollers are nowadays almost always cheaper than a specific solution for a device. It's unfortunate imo, because from a technical perspective it's oftentimes not the most elegant solution.
@app0the3 ай бұрын
The pregnancy test was not running the thing on its own MCU, the only thing from the test used in the end was just the casing, the electronics were all replaced. Even the author is pretty pissed about how this exploded as a "we are wasting computers omg!" when the reality was "eh can't do it but let's make a mockup of how it would look like if I could"
@TheOwlman3 ай бұрын
@@app0the Fair enough. Let's go with the electric lawn mower and coffee maker instead. It remains the case that pretty much everything has considerably more computing power than strictly required for the task in hand. I didn't say it is a waste of computers though; I can understand it, the parts end up costing pennies and you have a single toolchain. In the case of the pregnancy test though it really was over engineering at its best by replacing a MK1 eyeball looking for a stripe with an illuminator, sensor, computer and LCD, not to mention a battery; that lily was over gilded to the extreme.
@app0the3 ай бұрын
If you want to go a step extra for that case when programming it, just add a digitalRead instruction in the very top of the setup function and wrap the whole code in a condition to skip running it if a certain pin is shorted to ground. Then just stick a pair of tweezers into the respective holes when plugging it into the development machine and no need to wait 100 seconds anymore :-)
@Vicki_Benji3 ай бұрын
I love old tech. You did a fantastic job on this!
@skyem52503 ай бұрын
Yep the bit of metal is indeed the housing of a crystal oscillator. The oscillator inside was probably destroyed
@kensmith56943 ай бұрын
I think the part may only be the crystal part The way it is layed out makes me think it has two connections to the micro. For new players who may be reading this: A crystal in this case is just a bit of insulting material with some useful properties 1) If you apply a voltage to it, it flexes slightly 2) If you flex is slightly, it makes a voltage 3) If you make a bit a certain size and tap on it, it will go ding at some frequency. The part inside the chip is sort of like a parent at a swing set. When the kid comes near the parent, the parent gives a little push. One connection to the crystal is the thing that it uses to know where the swing is. The second connection is how the circuit adds the push. Now imagine all this is happening a few million times a second and you have the idea. The "kid on the swing" sets the frequency so long as the push applied is something like what I described so themicro can run at a known frequency.
@skyem52503 ай бұрын
@@kensmith5694 I suspect it's the metal housing of the crystal oscillator because it looked like there was still a little bit of something still attached to the PCB, but hard to tell from the video.
@skyem52503 ай бұрын
@@kensmith5694 indeed the Atmega 32 series microcontrollers have two connections to their crystals.
@BenjaminEmm3 ай бұрын
Great video, always love the tech shenanigans
@TheJamesM3 ай бұрын
This seems very much like the kind of bodge I'd resort to. The only change I'd be tempted to make would be to really minimize the time the cursor shows for. Ideally I'd just have it loop continuously until a certain amount of time has passed, but I'm guessing that little device doesn't have any wall clock functionality, only delays, meaning you couldn't look at the time every _x_ loops and have a condition checking whether _y_ seconds had passed since starting. In that case I'd have to make do with cranking the delay right down and having it loop thousands of times rather than hundreds. There's no real cost to it - it's not like the device is going to overheat, and it's not like it'll deprive the main system of any resources.
@CainXVII3 ай бұрын
I agree. If you take it down to .01 seconds instead and 6000 times, the program will still run for 60 seconds. And you will probably not see the cursor before it's gone.
@nwrth3 ай бұрын
Wow, that's an interesting take on such an annoying issue. 🙂 When I was an elementary school child, I had a 80386 DX DOS machine, which I used to sit in front of all day, running Turbo Pascal, and programming various nonsense. What I didn't know back then was that the computer was infected by a virus Pojer.4028A which had the annoying habit of displaying a blinking box at 1:1, effectively ruining whatever I made the computer print on the screen. I had no idea what to do with it, so I went with printing text messages with one character offset. Problem solved. 😅
@davepost76753 ай бұрын
I broke a crystal oscillator off one of my board as well. I thought it would be a good experiment to see if I can fix it, but the replacement oscillators cost more than the board because of the bulk purchase. :(
@AtomicShrimp3 ай бұрын
Yeah, I went through that journey myself - the little beetle board seemed too good to throw away and although surface mount soldering is sort of scary I thought I could probably give it a try, but the SMD oscillators cost more than the board did, because I'd have to buy a quantity of them, most of which would never be used.
@Mihail_K.3 ай бұрын
@@AtomicShrimp The only reasonable thing to do in that case is to toss the board in the bin. That way, by Murphy's law, about a week or a month later another broken device with the same frequency oscillator will randomly occur in your invertory and you can now salvage it and replace it.
@AtomicShrimp3 ай бұрын
I think the spare oscillator will turn up just *after* the bin has been emptied into the bigger bin, and possibly almost exactly the same time as the refuse collection turns up to empty that one
@Mihail_K.3 ай бұрын
@@AtomicShrimp Well, the trick is to either not empty the bin, or empty it in a fake big bin. But that way the chances of the spare oscillator turning up are pretty damn close to zero...
@davepost76753 ай бұрын
@@Mihail_K. Well, I kept the broken board just in case. I think about ten years from now, I'll give up on salvaging an oscillator and toss the broken board, and only then will a spare appear out of nowhere.
@marcpearson29133 ай бұрын
Am I the only one that noticed the the "F12" key is upside down on the keyboard of the terminal? Also nice solution. Having read the pinned posted as well, this is likely something I'd have gone for. I was about to ask if there was a way you could do it in the terminal itself (and likely is). But given that this is essentially a black box, for the £4 of parts and far less time, seems a perfectly reasonable solution. even if the solution has more computer power than the thing that it plugged into was originally intended to control.
@tricky29173 ай бұрын
This machine is going to end up becoming an SCP.
@p_bucket3 ай бұрын
As soon as you described the problem I understood what the bodge was gonna be 😂 I’ve made some dodgy software myself
@Rouverius3 ай бұрын
Clever Hack! Yeah, looking at similar boards online; pretty sure that extra metal bit was the crystal. I love the fact that many of the ATMEGA chips can operate up to 8 MHz on their own internal oscillator. But the problem seems to be that USB requires a crystal stable clock pulse. Anyway, thanks for posting this. I'm a newer sub and I didn't know you had an Altair 8800 clone. Looks like a have a wonderful back log to catch up on.😁
@mjdxp56883 ай бұрын
PLEASE make more videos about the Altair 8800, it's a computer that's always fascinated me and I'd love to see what you do with it.
@skyem52503 ай бұрын
This level of perfectionism and silly but pragmatic methods makes me happy
@ricos14973 ай бұрын
Very interesting indeed Mike. Is it possible to check the position of the cursor to see if it has moved and exit the loop if so? Or is that not a thing? I'm just worried about those 50-80 loops that are essentially doing nothing because the mouse has already moved. I can't help but think that they're going to have issues with their self esteem. I can imagine loop 43, waiting its turn, thinking that today might be the day it gets to trigger the mouse move, only to be forever disappointed. It's a mirror of my own life in many ways.
@AtomicShrimp3 ай бұрын
I don't think so - the position of the mouse is known to the user interface but not the mouse itself
@ricos14973 ай бұрын
@@AtomicShrimp wow. So the mouse not only doesn't know where it is, but where it has been. Life is cruel for these iterations.
@ZeroPlayerGame3 ай бұрын
@@ricos1497 Yeah, mouse input operates in relative coordinates. That's how you're able to configure sensitivity and speed in your OS - just a matter of applying a scale to those.
@app0the3 ай бұрын
@@ZeroPlayerGame tablets do operate in absolute coordinates so if this mouse library can pretend to be a tablet, then it can just force the move in one go. But there is this problem of not knowing when the device has finished booting, so the loop is required anyway...
@VectorKappa3 ай бұрын
@@ricos1497 The mouse doesn't know where it is at all times. It doesn't know this because it doesn't know where it isn't
@anidnmeno3 ай бұрын
This mouse pointer is stuck in this position forever
@dakat_3 ай бұрын
Love me some techy shrimp video :)
@max782_3 ай бұрын
damn i thought u had a real altair for a second and i almost died
@demonstructie3 ай бұрын
That seems like a fairly undue reaction to something that doesn't really affect you in any way
@FishyBoi13373 ай бұрын
@@demonstructie man, you oughta lay off the downers or somethin
@mimetype3 ай бұрын
@@demonstructieI bet you steal small children's Christmas presents.
@lukeslayer3 ай бұрын
@demonstructie Hey I found the Grinch!
@spiritusinfinitus3 ай бұрын
@@demonstructieAs, if you think about it that way, does your comment. 😘
@jonez633 ай бұрын
Every solution has a problem! :) Have a nice weekend!
@conesuela13 ай бұрын
I have absolutely no idea what that video was about. I enjoyed it nonetheless.
@amandadavies..3 ай бұрын
Same here...if it had been in a language I am not familiar with I would have been no worse off.
@bazza56993 ай бұрын
you truly are a renaissance man
@LoveeeJonesss3 ай бұрын
5 seconds in and this is already amazing!
@Styphon3 ай бұрын
That dumb terminal is impressively smart. I'm just waiting for it to ask "What's my purpose?"
@mc-yt2rc3 ай бұрын
I watched a video of a greek class learning chinese, I understood more about that!! classic Shrimp knowledge. love it.
@LordHonkInc3 ай бұрын
This is probably more work than the time it would save, but just in case you get sick of waiting for the mouse shenanigans to stop when you want to program the device, you could add a switch (or just bridge two pins with a wire or some metal tweezers) to trigger an interrupt (the method to look up is called "attachInterrupt()" in the arduino API) that, for example, sets a flag that could break out of the loop prematurely. Also, by putting the arduino to sleep (basically powering down the processor) you could save some power after the mouse movement is done. I know arduino's sip power and the gains are only marginal, but just for those conscious of their energy usage, that's another thing that might be worth considering. Either way, I'm a fan of quick bodges to fix minor irritations, so this is a very neat solution to the problem.
@jensissons57093 ай бұрын
Not plating it up but dishing it up. Then dishing it out!
@AndreQuirion3 ай бұрын
@2:40 that exact moment you took the words out of my mouth... This is not a bodge, it's the best solution to learn how to code a simple HID (device) :).
@AndreQuirion3 ай бұрын
Having said that, you could disable the mouse driver (ps2 and usb if needed) if this is running linux.
@AtomicShrimp3 ай бұрын
The terminal is running *something*, but it's not amenable to hacking (It probably is, but nobody has, and it's closed source so I would have to do everything from scratch)
@kameko_exe3 ай бұрын
This is the video people will use to explain the definition of Yak Shaving.
@samhenwood57463 ай бұрын
Every solution has a problem !! & thanks for sharing Atomic shrimp 🦐😊👍
@AdirondackRuby3 ай бұрын
This computer stuff isn't my thing, I don't understand it, but here's a comment and a like because I love this channel.
@bjornnuel3 ай бұрын
I don't know the board enough but one way you could completely eliminate delays for moving the mouse away AND still be able to program the board on your PC: you could add a switch (I am assuming the board has at least 1 GPIO/PIO pin here) - and just infinitely loop moving the mouse to the lower right unless the switch is in the OFF position. That way you could adapt your code with the switch OFF and test it with the switch ON. Not that it really matters but that just immediately jumped to my mind when you mentioned the need to be able to program it on your PC.
@AtomicShrimp3 ай бұрын
Yeah, I think that's the normal way to do it (I just picked this way because it requires no additional components or soldering but still fits the requirement)
@YOEL_443 ай бұрын
Wouldn't have been way easier to just replace the mouse cursor icon with a transparent one?
@AtomicShrimp3 ай бұрын
Not easily possible to do that on the terminal client that is inside. It's an appliance and the firmware is completely closed
@VisionDelta3 ай бұрын
I see that subtle "Don't forget to click the bell" reference in the corner of the video =]
@susgus133 ай бұрын
Atomic Shrimp has it all
@divaden473 ай бұрын
99.9% of what you said went screeching over my head....actually 100%. Persevered anyway. 🤔
@jimihendrix69693 ай бұрын
I spent as much time reading the comments as watching the video. I don't even know what a crystal oscillator is, or looks like.
@vincentvoncarnap3 ай бұрын
its a device that makes a crystal oscillate, and it measures time from the frequency of that oscillation.
@tichwykes3 ай бұрын
Looks great & very retro but what do you use it for? Just curious as computer stuff has always been a bit over my head.
@AtomicShrimp3 ай бұрын
It's mostly for curiosity. The Altair clone can run various things like DOS and CP/M and a variety of programming environments that can be entertaining to play with.
@blixuk2 ай бұрын
This might have already been suggested, but you could use a while loop, while mouse position is not desired position, move mouse to desired position.
@AtomicShrimp2 ай бұрын
Mouse devices don't know their position - they just tell the host machine how they are moving.
@sanicnakoda68163 ай бұрын
That Surely is a Atomic Microshrimp video
@dingolovethrob3 ай бұрын
...perfect application for an Arduino. As you described the problem I was thinking, I'd use an Arduino... Great video. Nice Computer . 👍
@noggin733 ай бұрын
You can't fool us Mr Shrimp! You work from home and this is a mouse jiggler project!
@SojournerDidimus3 ай бұрын
You might consider adding a power down option after the loop to not keep spinning in circles (the empty loop() function) forever.
@AtomicShrimp3 ай бұрын
Yeah, I was a little bit wary of trying that because I found a few articles where someone had tried that and ended up bricking the device (by implementing a program that does what it needs to do very quickly, then going to sleep, without also implementing something like a hardware button to wake it up again)
@marlysalt3 ай бұрын
Lovely. The variety from your channel is just lovely. Thanks for the warning from the scambaiting videos from... awhile ago. But, what does the console do? Why do you have it? It's really cool, just curious.
@0LoneTech3 ай бұрын
I have at least five USB native keyboards that would trigger that cursor to appear; but I suppose they aren't "pure keyboards" in that they all have a way to provide mouse input. One of them does it by including a PS/2 mouse to USB adaptor feature.
@bosstowndynamics54883 ай бұрын
Something to note here is that USB devices can very easily report both keyboard and mouse capabilities as HID compliant devices, and in particular for the PS/2 port stuff I'm pretty sure the PS/2 side is passive so the controller has to just kind of assume there's a mouse there and try to drive it (well, there's probably a way to detect it but that would take effort that's unnecessary for the vast majority of users so that effort isn't put in)
@0LoneTech3 ай бұрын
@@bosstowndynamics5488 A bit of each. It's possible to detect PS/2 mice and if you want to support scroll wheels you have to configure them actively. But adapters will typically present the same interface to the computer regardless of what mice if any is connected.
@zx853 ай бұрын
It it's any use, I've built a custom keyboard using a RPi pico as a HID controller (using a circuitpython lirbary) means I can have custom key presses for each key. Moar microcontrollers!
@MadushanNishantha3 ай бұрын
You don't need the delay at startup because the mouse related code won't run until the usb device is detected by the host os and then registered as a mouse. USB devices(as opposed to USB hosts) can't do anything on their own without a host asking it to do things.
@AtomicShrimp3 ай бұрын
I'm not sure that's correct - the USB port probably receives power as soon as the host turns on. Power is all the beetle board needs to start up and begin executing code.
@MadushanNishantha3 ай бұрын
@@AtomicShrimp yes, it'll start executing other code that's not related to USB as soon as power is available. But USB devices can't start working until a handshake is complete with the USB host. I'm not exactly sure how this library is structured, but I suspect that "Mouse.begin()" just waits until the handshake is completed.
@AtomicShrimp3 ай бұрын
Could be I suppose - fairly easy to test... Edit: Tested - there doesn't appear to be any wait for that handshake; I made it illuminate the onboard LED after trying to move the mouse just one time - on both the terminal machine and on my Windows development machine, it ran and the LED lit up but the mouse didn't move at all. I inserted a 2 second delay before trying to move the mouse and on the dev machine (which was already powered up) it did then move the mouse before lighting the LED, but on the terminal, starting from cold, the LED lit up before the UI was displayed and the mouse pointer was there top left - it doesn't look like the handshake is causing anything to wait. I suppose it might be different for something that had a buffer in the communications
@bub_sy3 ай бұрын
That would make a great prank tool. Also, that is an osc.
@DerMarkus19823 ай бұрын
6:04 By the looks of it, your missing SMD component might be the metal cap of a ceramic thing; it *may* be a capacitor, but is more likely to be the actual clock-generating XTAL (piezo oscillator crystal). I don't know much about this board, but the 32u4 does have an internal oscillator. However, with eFuse settings, the prototype board OEM might have disabled the internal oscillator in favor of an external clock source; I've looked at some images of not quite the same, but closely similar boards, and found that the component in that diagonal position is probably actually an XTAL. If it's lost its hat, the crystal's probably fractured too. All you could do in that situation is eFuse it back to "internal clock source" with an ICSP and remove the external crystal. Or just toss it - the ~cookie monster~ *trash bin* probably wants some delicious crunchyness.
@AtomicShrimp3 ай бұрын
I think the crystal is probably used to maintain the timings for USB comms - using the device without that is I'm sure possible, but beyond my skillset
@Aeduo3 ай бұрын
I wonder if maybe the USB communication that the terminal does has some kind of signature that could be used to determine what mode it's to be in. If the little device doesn't get that signature it could just sit idle, if it does then it could initiate just constant mouse movement down-right.
@Galerak13 ай бұрын
I'm not a coder, in fact the last time I did any 'coding' it was called 'programming' and the language was BBC Basic 😄, but is there a way to check cursor position? If so you could run a loop to check if the cursor is in the bottom right hand corner and when it is run a break command. I believe that way you wouldn't need to set up a finite variable for the number of loops, the code would run quicker, and it wouldn't hijack your mouse cursor for any length of time when you plugged it back into your 'coding' machine. As I said though, I'm NOT a coder but I believe there must be some modern versions of the old 'If/Then', 'Proc', 'EndProc', 'GoSub' and 'End' routines. Your's is a great little workaround though 👍
@AtomicShrimp3 ай бұрын
The mouse position is known to the host machine, but not readable by the peripheral
@Jamiesonfrox3 ай бұрын
I love atomic tech
@sleptiq2 ай бұрын
Magic Refiner MK25 Pro is UK layout, retro looking and pretty cheap if you are still looking.
@kensmith56943 ай бұрын
A thought: You have many GPIOs to spare. If you did want it to constantly move the mouse cursor, you could have it check the state of a jumper on each time around the loop. Yes, this gets you into the great danger of possibly having more code than fits on one screen but still if you need the idea please use it in good health.
@bluesquare233 ай бұрын
Put that code in the main loop and then plug it into your coworker’s computer and watch how long it takes them to go mad!
@SeanK113 ай бұрын
Could you read the mouse position in a loop, if the position is 0,0, you could just set the new position once and break out of the loop That might help with reprogramming in the future since you won’t have to wait for 100 seconds Or if it can read keyboard inputs, have it stop when you hit escape or a key combo
@AtomicShrimp3 ай бұрын
The mouse position is known to the host machine, but not readable by the peripheral
@joemck853 ай бұрын
My first thought was to modify whatever software runs on the dumb terminal so that the mouse cursor is all transparent pixels.
@AtomicShrimp3 ай бұрын
I don't think that's possible - see the pinned comment
@gazzythomas3 ай бұрын
Ingenious
@Luckragol3 ай бұрын
thats just beautiful. ^.^
@jackkraken38882 ай бұрын
What is my purpose? You emulate a mouse that I will never use and you are supposed to hide the mouse cursor. Oh my God.
@PeteMcDonald3 ай бұрын
Mike, I know there will be a reason - but why is the F12 key upside down? :D
@AtomicShrimp3 ай бұрын
I'm afraid the reason is probably carelessness. I recall removing that keycap to check something. I don't remember looking what I was doing when I put it back
@mickeyBtsv3 ай бұрын
I always thought the Altair was real. I first saw one on Adrians channel (those who know) then I saw you had one and I thought you had one as well.
@imnotchinese62353 ай бұрын
put the mouse move in the loop and break out of the loop after 100s or so. or if you can get the position you can break earlier. idk tho
@StriderGW23 ай бұрын
I love this
@bl3ivids3 ай бұрын
Crist-a-lossilator
@andymerrett3 ай бұрын
I wondered if there was a way to redefine the mouse pointer 'icon' to be totally blank. The arrow must be defined somewhere (either as bitmap or possibly vector). That said, I expect it's buried deep inside the system. :)
@AtomicShrimp3 ай бұрын
It is - and that part of the system is a black box
@xugro3 ай бұрын
I would not have the initial 20 second delay and made it repeatedly move the cursor for the first minute after getting power. That was no need to measure any delays :D
@AtomicShrimp3 ай бұрын
That's what I did
@xugro3 ай бұрын
@@AtomicShrimp Oh I must've missed that lol
@Smaxx3 ай бұрын
Huh, that's an interesting approach to this solution. I'm kind of surprised you didn't just use the MCU itself to control/talk to the PS2 keyboard (just using two libraries, one to talk to the keyboard, one to send the inputs back) without the purchased cable, but then again I guess you would have needed another connector (or destroy the bought cable).
@bosstowndynamics54883 ай бұрын
If you've already got the cable that's also a more in-depth exercise. Probably not difficult as such, but certainly more time and effort to look up the additional libraries, pinouts, etc
@Smaxx3 ай бұрын
@@bosstowndynamics5488 Yes, fair point. But now thinking about it, one could also kind of consider it part of the experience, consider how many of those old computers and related hardware were kind of sold as kits rather than pre-assembled.
@bosstowndynamics54883 ай бұрын
@@Smaxx I don't think it would be a wrong solution to do that, more that there's no one right solution here and each option has its own up and downsides
@lordofthe6string3 ай бұрын
I'm really not having a go, I love it when people get stuck in and try things like coding, and it works so really it's job done. But as a programmer there were a few winces lol. Just fyi, you could have just done a delay(20000) for a 20 second delay (the for loop made me chuckle) and modern code is almost always case sensitive.
@AtomicShrimp3 ай бұрын
Yeah, I was sort of thinking in seconds all the way. It's sort of weird - I started programming on a ZX81 when those were a new thing and I did try to learn C when I upgraded to a ZX Spectrum, but I found it impossible to comprehend; later on I learned VB then Pascal, then for a long time, did no real programming at all, but C++ just sort of mostly makes sense to me now (I guess that was because of the Pascal, which has some similarity in structure); I'm still to a certain extent thinking in BASIC and translating in my head.
@cdwg2733 ай бұрын
Tesco creme fraiche
@snik2pl2 ай бұрын
looks like overkill. I have a similar board with attiny85 pretending to be a mouse. moves the cursor by 1 pixel every minute so that the computer doesn't log out.
@MacabreHouse3 ай бұрын
Dont call him dumb :(
@hooperssmokeshackbbq48273 ай бұрын
Is the F12 key upside down for science?
@Danny.._3 ай бұрын
Is the F12 key upside down just to see if someone will comment on it? 🤔
@OnnieKoski3 ай бұрын
I love to use arduinos for these sorts of things. I have one that automatically fills in my shortcuts on my work computer since every time I log off the temp file that holds my shortcuts gets deleted.
@drunkonsuccess7793 ай бұрын
I only just noticed, why is the F12 key upside down?
@JustMatt873 ай бұрын
Honestly I was kind of expecting you to hack apart an old school mouse and stick like a 555 timer chip or maybe even like a motor on the cursor wheel lol
@AtomicShrimp3 ай бұрын
The motor idea was one of the early concepts I considered!
@BndP-ry3xr4 ай бұрын
The machine itself couldnt run a mouse mover program without extra hardware? Also, cant you install a mouse curser graphing which is 100% invisible?
@AtomicShrimp4 ай бұрын
The terminal device (Axel AX3000 M80 Platine) is just an appliance - it has an OS of some sort, but it's completely locked down - you can configure sessions etc, but you can't install or run arbitrary code or modify the interface (well, you probably can, but nobody has)
@LisaLovesFugglers3 ай бұрын
I wish I understood coding, alas i do not! However, I do like the top part of that gadgetry setup being called Altair! #FamousAssassin 😁
@elbiggus3 ай бұрын
Your F12 key is upside down, and it's driving me mad.