*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 !
@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.
@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"
@_--_--_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.
@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...
@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
@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 :-)
@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.
@TheJamesM2 ай бұрын
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.
@CainXVII2 ай бұрын
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.
@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!
@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.
@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.
@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.
@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.
@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 :)
@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)
@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.
@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.
@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...
@VectorKappa2 ай бұрын
@@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
@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
@silkehostenkamp39683 ай бұрын
I understand almost nothing what you are talking about but I would never skip a video of yours.
@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.
@PlanetZhooZhoo3 ай бұрын
Your electronics and programming skills always leave me in awe, but I still enjoy seeing the result.
@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.😁
@ShellacScrubber3 ай бұрын
Love the way you HID that mouse cursor !
@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.
@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. 😅
@p_bucket3 ай бұрын
As soon as you described the problem I understood what the bodge was gonna be 😂 I’ve made some dodgy software myself
@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.
@Vicki_Benji3 ай бұрын
I love old tech. You did a fantastic job on this!
@jonez633 ай бұрын
Every solution has a problem! :) Have a nice weekend!
@tricky29173 ай бұрын
This machine is going to end up becoming an SCP.
@BenjaminEmm3 ай бұрын
Great video, always love the tech shenanigans
@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.
@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.
@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.
@anidnmeno3 ай бұрын
_This mouse pointer is stuck in this position forever_
@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)
@skyem52503 ай бұрын
This level of perfectionism and silly but pragmatic methods makes me happy
@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. 😘
@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
@mc-yt2rc3 ай бұрын
I watched a video of a greek class learning chinese, I understood more about that!! classic Shrimp knowledge. love it.
@Styphon3 ай бұрын
That dumb terminal is impressively smart. I'm just waiting for it to ask "What's my purpose?"
@dakat_3 ай бұрын
Love me some techy shrimp video :)
@LoveeeJonesss3 ай бұрын
5 seconds in and this is already amazing!
@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
@bazza56993 ай бұрын
you truly are a renaissance man
@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.
@jensissons57093 ай бұрын
Not plating it up but dishing it up. Then dishing it out!
@samhenwood57463 ай бұрын
Every solution has a problem !! & thanks for sharing Atomic shrimp 🦐😊👍
@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
@blixukАй бұрын
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.
@AtomicShrimpАй бұрын
Mouse devices don't know their position - they just tell the host machine how they are moving.
@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.
@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.
@VisionDelta3 ай бұрын
I see that subtle "Don't forget to click the bell" reference in the corner of the video =]
@kameko_exe3 ай бұрын
This is the video people will use to explain the definition of Yak Shaving.
@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.
@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!
@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
@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.
@imnotchinese62352 ай бұрын
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
@SojournerDidimus3 ай бұрын
You might consider adding a power down option after the loop to not keep spinning in circles (the empty loop() function) forever.
@AtomicShrimp2 ай бұрын
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)
@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
@sleptiqАй бұрын
Magic Refiner MK25 Pro is UK layout, retro looking and pretty cheap if you are still looking.
@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
@CainXVII2 ай бұрын
Great video. I have worked just enough with arduino to understand what you were doing 😂 only thing I don't know is, how do you get the computer to read the chip as the mouse?
@AtomicShrimp2 ай бұрын
Mouse emulation is a feature of the controller used on this particular board - the Mouse.h library does the clever stuff
@dingolovethrob3 ай бұрын
...perfect application for an Arduino. As you described the problem I was thinking, I'd use an Arduino... Great video. Nice Computer . 👍
@sanicnakoda68163 ай бұрын
That Surely is a Atomic Microshrimp video
@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
@susgus132 ай бұрын
Atomic Shrimp has it all
@BndP-ry3xr3 ай бұрын
The machine itself couldnt run a mouse mover program without extra hardware? Also, cant you install a mouse curser graphing which is 100% invisible?
@AtomicShrimp3 ай бұрын
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)
@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.
@noggin733 ай бұрын
You can't fool us Mr Shrimp! You work from home and this is a mouse jiggler project!
@bobsmith50883 ай бұрын
Making some adjustments to the keyboard adapter so it is only recognized as a keyboard might have been better. Probably just need to snip a trace, or something easy like that. Why not try making your own mechanical keyboard? You can design it however you like, and it doesn't cost much if you diy it.
@bobfish76993 ай бұрын
What about joining a USB to PS2 adapter plug to a PS2 to USB adapter plug? Would this not remove the mouse signal from the USB data stream?
@AtomicShrimp3 ай бұрын
Interesting idea. I'm not sure it would work at all as I think USB ->PS/2 adaptors are nearly always just passive things that work with keyboards that can communicate either way
@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.
@joemck852 ай бұрын
My first thought was to modify whatever software runs on the dumb terminal so that the mouse cursor is all transparent pixels.
@AtomicShrimp2 ай бұрын
I don't think that's possible - see the pinned comment
@OnnieKoski2 ай бұрын
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.
@lilianacahill62693 ай бұрын
I'm curious what you use this franken device for?
@drunkonsuccess7793 ай бұрын
I only just noticed, why is the F12 key upside down?
@hooperssmokeshackbbq48273 ай бұрын
Is the F12 key upside down for science?
@solaufein13743 ай бұрын
Can you code that mouse cursor will spawn in bottom corner right from beginning? Imagine zero point coordinates in CNC machines.
@AtomicShrimp3 ай бұрын
See the pinned comment
@godslittlestidiot29843 ай бұрын
I have to ask: what do you do on the frankenterminal? Is the fun of having it building it? Do you write up emails? What does the machine do? Im genuinely asking because all i could see was some text pop up. I imagine youre not playing games on it, but ive never even seen a machine like this. I have to imagine it could be a fun word processor?
@AtomicShrimp3 ай бұрын
It's mostly for the enjoyment of recreating a bygone computing experience; the Altair can run versions of DOS and CP/M, a variety of text-based adventure games, programming environments for BASIC, Fortran and COBOL, plus VisiCalc (a spreadsheet) and other stuff. Plus it looks cool with the LEDs all blinking.
@SaucySpecial3 ай бұрын
Have you tried a PS/2 (F) to USB (M) single port adapter without the extra mouse port?
@AtomicShrimp3 ай бұрын
They are really hard to find, unless you mean the passive type I showed on the screen, which just don't work with this keyboard
@bub_sy3 ай бұрын
That would make a great prank tool. Also, that is an osc.
@berndeckenfels3 ай бұрын
Cant you do that in software? Like udev ignoring the HID or turning off or moving the cursor? Is that X11?
@AtomicShrimp3 ай бұрын
See the pinned comment
@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.
@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.
@wiiza4ever3 ай бұрын
Solution 4 (not sure if it's really possible) is to change the cursor to a 1 px black dot.
@AtomicShrimp3 ай бұрын
It doesn't appear to be possible on this terminal (discussed in the pinned comment)
@Danny.._3 ай бұрын
Is the F12 key upside down just to see if someone will comment on it? 🤔
@Slash0mega2 ай бұрын
Why the 1 second delays? Why not (down left) every tick for a minute?
@AtomicShrimp2 ай бұрын
Good question. It seemed like the right thing to do, given that the host device doesn't immediately recognise the fake mouse, but it may not have been necessary.
@markellii30932 ай бұрын
Are there any usb to PS2 keyboard adapters? Like the ones that don't have the mouse as well?
@AtomicShrimp2 ай бұрын
They exist in theory but are as rare as hen's teeth
@markellii30932 ай бұрын
@@AtomicShrimp got it
@aminorityofone3 ай бұрын
I was gonna say check out genovation keyboards, but they are pricey. Maybe try them used.
@snackbracket3 ай бұрын
Isn't it possible to replace the mouse sprite with an invisible or near-invisible bitmap?
@AtomicShrimp3 ай бұрын
I don't think so - see the pinned comment
@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