Hiding a Bothersome Mouse Cursor Using the Excessive Application of Technology

  Рет қаралды 32,350

Atomic Shrimp

Atomic Shrimp

Күн бұрын

Пікірлер: 282
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
*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).
@domramsey
@domramsey 3 ай бұрын
Ah, I wondered why you didn't just modify the software, but that explains it!
@purple-cho
@purple-cho 3 ай бұрын
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 😁
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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.
@AMPProf
@AMPProf 3 ай бұрын
Have you Tried something like Xkeys #NotaSponsor
@berndeckenfels
@berndeckenfels 3 ай бұрын
@@AtomicShrimp cool, thin client which starts in terminal mode - that is the future
@milkbox103
@milkbox103 3 ай бұрын
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
@squircle976
@squircle976 3 ай бұрын
thank you
@oz_jones
@oz_jones 3 ай бұрын
For Redwall!
@thebillyd00
@thebillyd00 3 ай бұрын
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.
@zzydny
@zzydny 3 ай бұрын
Well, I kinda like that notion, and now my mind has wandered off to Brambly Hedge. 🐭
@JustMatt87
@JustMatt87 3 ай бұрын
Would also be fitting for this channel though
@ian-c.01
@ian-c.01 3 ай бұрын
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 !
@MrJozza65
@MrJozza65 3 ай бұрын
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.
@0LoneTech
@0LoneTech 3 ай бұрын
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.
@JanusMirith
@JanusMirith 3 ай бұрын
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-m3b
@BonBin-m3b 3 ай бұрын
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!
@alameachan
@alameachan 3 ай бұрын
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!
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
Yeah, it could just as easily emulate a keyboard and send the keystrokes to create or run arbitrary code
@Styphon
@Styphon 3 ай бұрын
​@@AtomicShrimpHave it type out "I can't do that, Dave"
@MajorJakas
@MajorJakas 3 ай бұрын
​@@Styphonor worse
@edtuckerartist
@edtuckerartist 3 ай бұрын
@@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."
@rubenskiii
@rubenskiii 3 ай бұрын
Honestly, putting things in without protection or some proper checks beforehand is not just an unwise thing to do with computers, but in general...
@bosstowndynamics5488
@bosstowndynamics5488 3 ай бұрын
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
@app0the
@app0the 3 ай бұрын
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 :-)
@domramsey
@domramsey 3 ай бұрын
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.
@TheJamesM
@TheJamesM 2 ай бұрын
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.
@CainXVII
@CainXVII 2 ай бұрын
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.
@notanimposter
@notanimposter 3 ай бұрын
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!
@TheOwlman
@TheOwlman 3 ай бұрын
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 😁
@bosstowndynamics5488
@bosstowndynamics5488 3 ай бұрын
Honestly there's a good chance the adaptor has a microprocessor very similar to the ATmega on the development board
@jbird4478
@jbird4478 3 ай бұрын
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.
@app0the
@app0the 3 ай бұрын
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"
@TheOwlman
@TheOwlman 3 ай бұрын
@@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.
@henryisnotafraid
@henryisnotafraid 3 ай бұрын
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.
@guiguinofake4626
@guiguinofake4626 3 ай бұрын
I was not expecting the foraging guy to have a Altair clone
@Styphon
@Styphon 3 ай бұрын
That's the beauty of this channel! ⚛️🦐
@thany3
@thany3 3 ай бұрын
Then perhaps you also wouldn't expect pottery, woodworking, wicker weaving, and stone polishing 😀
@joanignasi91
@joanignasi91 3 ай бұрын
Also glass working and of course scam baiting.
@azurehanyo
@azurehanyo 3 ай бұрын
Don’t forget the noble art of Wobbledogging.
@hypotheticalaxolotl
@hypotheticalaxolotl 3 ай бұрын
@@thany3 no, actually that stuff I would expect from a foraging channel.
@davepost7675
@davepost7675 3 ай бұрын
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. :(
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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.
@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.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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.
@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...
@davepost7675
@davepost7675 3 ай бұрын
@@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.
@expericast
@expericast 3 ай бұрын
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 :)
@drrkdrrkdrrkdrrk
@drrkdrrkdrrkdrrk 3 ай бұрын
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
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
Yeah, I think the common solution is to add a button
@justanothermotorcyclist
@justanothermotorcyclist 3 ай бұрын
​@@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!
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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)
@marcpearson2913
@marcpearson2913 3 ай бұрын
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.
@joshuaharlow4241
@joshuaharlow4241 3 ай бұрын
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.
@ricos1497
@ricos1497 3 ай бұрын
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.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
I don't think so - the position of the mouse is known to the user interface but not the mouse itself
@ricos1497
@ricos1497 3 ай бұрын
@@AtomicShrimp wow. So the mouse not only doesn't know where it is, but where it has been. Life is cruel for these iterations.
@ZeroPlayerGame
@ZeroPlayerGame 3 ай бұрын
@@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.
@app0the
@app0the 3 ай бұрын
@@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...
@VectorKappa
@VectorKappa 2 ай бұрын
​@@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
@dennisthemenace3695
@dennisthemenace3695 3 ай бұрын
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
@silkehostenkamp3968
@silkehostenkamp3968 3 ай бұрын
I understand almost nothing what you are talking about but I would never skip a video of yours.
@joedetode
@joedetode 3 ай бұрын
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.
@PlanetZhooZhoo
@PlanetZhooZhoo 3 ай бұрын
Your electronics and programming skills always leave me in awe, but I still enjoy seeing the result.
@Rouverius
@Rouverius 3 ай бұрын
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.😁
@ShellacScrubber
@ShellacScrubber 3 ай бұрын
Love the way you HID that mouse cursor !
@mjdxp5688
@mjdxp5688 3 ай бұрын
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.
@nwrth
@nwrth 3 ай бұрын
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_bucket
@p_bucket 3 ай бұрын
As soon as you described the problem I understood what the bodge was gonna be 😂 I’ve made some dodgy software myself
@skyem5250
@skyem5250 3 ай бұрын
Yep the bit of metal is indeed the housing of a crystal oscillator. The oscillator inside was probably destroyed
@kensmith5694
@kensmith5694 3 ай бұрын
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.
@skyem5250
@skyem5250 3 ай бұрын
@@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.
@skyem5250
@skyem5250 3 ай бұрын
@@kensmith5694 indeed the Atmega 32 series microcontrollers have two connections to their crystals.
@Vicki_Benji
@Vicki_Benji 3 ай бұрын
I love old tech. You did a fantastic job on this!
@jonez63
@jonez63 3 ай бұрын
Every solution has a problem! :) Have a nice weekend!
@tricky2917
@tricky2917 3 ай бұрын
This machine is going to end up becoming an SCP.
@BenjaminEmm
@BenjaminEmm 3 ай бұрын
Great video, always love the tech shenanigans
@LordHonkInc
@LordHonkInc 3 ай бұрын
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.
@tichwykes
@tichwykes 3 ай бұрын
Looks great & very retro but what do you use it for? Just curious as computer stuff has always been a bit over my head.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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.
@conesuela1
@conesuela1 3 ай бұрын
I have absolutely no idea what that video was about. I enjoyed it nonetheless.
@amandadavies..
@amandadavies.. 3 ай бұрын
Same here...if it had been in a language I am not familiar with I would have been no worse off.
@anidnmeno
@anidnmeno 3 ай бұрын
_This mouse pointer is stuck in this position forever_
@bjornnuel
@bjornnuel 3 ай бұрын
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.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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)
@skyem5250
@skyem5250 3 ай бұрын
This level of perfectionism and silly but pragmatic methods makes me happy
@max782_
@max782_ 3 ай бұрын
damn i thought u had a real altair for a second and i almost died
@demonstructie
@demonstructie 3 ай бұрын
That seems like a fairly undue reaction to something that doesn't really affect you in any way
@FishyBoi1337
@FishyBoi1337 3 ай бұрын
@@demonstructie man, you oughta lay off the downers or somethin
@mimetype
@mimetype 3 ай бұрын
​@@demonstructieI bet you steal small children's Christmas presents.
@lukeslayer
@lukeslayer 3 ай бұрын
​@demonstructie Hey I found the Grinch!
@spiritusinfinitus
@spiritusinfinitus 3 ай бұрын
​@@demonstructieAs, if you think about it that way, does your comment. 😘
@YOEL_44
@YOEL_44 3 ай бұрын
Wouldn't have been way easier to just replace the mouse cursor icon with a transparent one?
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
Not easily possible to do that on the terminal client that is inside. It's an appliance and the firmware is completely closed
@mc-yt2rc
@mc-yt2rc 3 ай бұрын
I watched a video of a greek class learning chinese, I understood more about that!! classic Shrimp knowledge. love it.
@Styphon
@Styphon 3 ай бұрын
That dumb terminal is impressively smart. I'm just waiting for it to ask "What's my purpose?"
@dakat_
@dakat_ 3 ай бұрын
Love me some techy shrimp video :)
@LoveeeJonesss
@LoveeeJonesss 3 ай бұрын
5 seconds in and this is already amazing!
@SeanK11
@SeanK11 3 ай бұрын
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
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
The mouse position is known to the host machine, but not readable by the peripheral
@bazza5699
@bazza5699 3 ай бұрын
you truly are a renaissance man
@marlysalt
@marlysalt 3 ай бұрын
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.
@jensissons5709
@jensissons5709 3 ай бұрын
Not plating it up but dishing it up. Then dishing it out!
@samhenwood5746
@samhenwood5746 3 ай бұрын
Every solution has a problem !! & thanks for sharing Atomic shrimp 🦐😊👍
@Galerak1
@Galerak1 3 ай бұрын
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 👍
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
The mouse position is known to the host machine, but not readable by the peripheral
@blixuk
@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
@AtomicShrimp Ай бұрын
Mouse devices don't know their position - they just tell the host machine how they are moving.
@AdirondackRuby
@AdirondackRuby 3 ай бұрын
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.
@divaden47
@divaden47 3 ай бұрын
99.9% of what you said went screeching over my head....actually 100%. Persevered anyway. 🤔
@jimihendrix6969
@jimihendrix6969 3 ай бұрын
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.
@vincentvoncarnap
@vincentvoncarnap 3 ай бұрын
its a device that makes a crystal oscillate, and it measures time from the frequency of that oscillation.
@VisionDelta
@VisionDelta 3 ай бұрын
I see that subtle "Don't forget to click the bell" reference in the corner of the video =]
@kameko_exe
@kameko_exe 3 ай бұрын
This is the video people will use to explain the definition of Yak Shaving.
@Aeduo
@Aeduo 3 ай бұрын
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.
@zx85
@zx85 3 ай бұрын
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!
@DerMarkus1982
@DerMarkus1982 3 ай бұрын
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.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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
@0LoneTech
@0LoneTech 3 ай бұрын
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.
@bosstowndynamics5488
@bosstowndynamics5488 3 ай бұрын
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)
@0LoneTech
@0LoneTech 3 ай бұрын
@@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.
@imnotchinese6235
@imnotchinese6235 2 ай бұрын
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
@SojournerDidimus
@SojournerDidimus 3 ай бұрын
You might consider adding a power down option after the loop to not keep spinning in circles (the empty loop() function) forever.
@AtomicShrimp
@AtomicShrimp 2 ай бұрын
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)
@MadushanNishantha
@MadushanNishantha 3 ай бұрын
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.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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.
@MadushanNishantha
@MadushanNishantha 3 ай бұрын
​@@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.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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
@sleptiq Ай бұрын
Magic Refiner MK25 Pro is UK layout, retro looking and pretty cheap if you are still looking.
@PeteMcDonald
@PeteMcDonald 3 ай бұрын
Mike, I know there will be a reason - but why is the F12 key upside down? :D
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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
@CainXVII
@CainXVII 2 ай бұрын
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?
@AtomicShrimp
@AtomicShrimp 2 ай бұрын
Mouse emulation is a feature of the controller used on this particular board - the Mouse.h library does the clever stuff
@dingolovethrob
@dingolovethrob 3 ай бұрын
...perfect application for an Arduino. As you described the problem I was thinking, I'd use an Arduino... Great video. Nice Computer . 👍
@sanicnakoda6816
@sanicnakoda6816 3 ай бұрын
That Surely is a Atomic Microshrimp video
@andymerrett
@andymerrett 3 ай бұрын
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. :)
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
It is - and that part of the system is a black box
@susgus13
@susgus13 2 ай бұрын
Atomic Shrimp has it all
@BndP-ry3xr
@BndP-ry3xr 3 ай бұрын
The machine itself couldnt run a mouse mover program without extra hardware? Also, cant you install a mouse curser graphing which is 100% invisible?
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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)
@snik2pl
@snik2pl 2 ай бұрын
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.
@noggin73
@noggin73 3 ай бұрын
You can't fool us Mr Shrimp! You work from home and this is a mouse jiggler project!
@bobsmith5088
@bobsmith5088 3 ай бұрын
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.
@bobfish7699
@bobfish7699 3 ай бұрын
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?
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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
@mickeyBtsv
@mickeyBtsv 3 ай бұрын
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.
@joemck85
@joemck85 2 ай бұрын
My first thought was to modify whatever software runs on the dumb terminal so that the mouse cursor is all transparent pixels.
@AtomicShrimp
@AtomicShrimp 2 ай бұрын
I don't think that's possible - see the pinned comment
@OnnieKoski
@OnnieKoski 2 ай бұрын
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.
@lilianacahill6269
@lilianacahill6269 3 ай бұрын
I'm curious what you use this franken device for?
@drunkonsuccess779
@drunkonsuccess779 3 ай бұрын
I only just noticed, why is the F12 key upside down?
@hooperssmokeshackbbq4827
@hooperssmokeshackbbq4827 3 ай бұрын
Is the F12 key upside down for science?
@solaufein1374
@solaufein1374 3 ай бұрын
Can you code that mouse cursor will spawn in bottom corner right from beginning? Imagine zero point coordinates in CNC machines.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
See the pinned comment
@godslittlestidiot2984
@godslittlestidiot2984 3 ай бұрын
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?
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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.
@SaucySpecial
@SaucySpecial 3 ай бұрын
Have you tried a PS/2 (F) to USB (M) single port adapter without the extra mouse port?
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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_sy
@bub_sy 3 ай бұрын
That would make a great prank tool. Also, that is an osc.
@berndeckenfels
@berndeckenfels 3 ай бұрын
Cant you do that in software? Like udev ignoring the HID or turning off or moving the cursor? Is that X11?
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
See the pinned comment
@kensmith5694
@kensmith5694 3 ай бұрын
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.
@lordofthe6string
@lordofthe6string 3 ай бұрын
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.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
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.
@wiiza4ever
@wiiza4ever 3 ай бұрын
Solution 4 (not sure if it's really possible) is to change the cursor to a 1 px black dot.
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
It doesn't appear to be possible on this terminal (discussed in the pinned comment)
@Danny.._
@Danny.._ 3 ай бұрын
Is the F12 key upside down just to see if someone will comment on it? 🤔
@Slash0mega
@Slash0mega 2 ай бұрын
Why the 1 second delays? Why not (down left) every tick for a minute?
@AtomicShrimp
@AtomicShrimp 2 ай бұрын
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.
@markellii3093
@markellii3093 2 ай бұрын
Are there any usb to PS2 keyboard adapters? Like the ones that don't have the mouse as well?
@AtomicShrimp
@AtomicShrimp 2 ай бұрын
They exist in theory but are as rare as hen's teeth
@markellii3093
@markellii3093 2 ай бұрын
@@AtomicShrimp got it
@aminorityofone
@aminorityofone 3 ай бұрын
I was gonna say check out genovation keyboards, but they are pricey. Maybe try them used.
@snackbracket
@snackbracket 3 ай бұрын
Isn't it possible to replace the mouse sprite with an invisible or near-invisible bitmap?
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
I don't think so - see the pinned comment
@xugro
@xugro 3 ай бұрын
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
@AtomicShrimp
@AtomicShrimp 3 ай бұрын
That's what I did
@xugro
@xugro 3 ай бұрын
@@AtomicShrimp Oh I must've missed that lol
@Jamiesonfrox
@Jamiesonfrox 3 ай бұрын
I love atomic tech
Fake Flash Storage Scams in 2023 - Scam MicroSD Card from Amazon
14:34
how is this hacking tool legal?
11:42
Low Level
Рет қаралды 407 М.
Disrespect or Respect 💔❤️
00:27
Thiago Productions
Рет қаралды 43 МЛН
Noodles Eating Challenge, So Magical! So Much Fun#Funnyfamily #Partygames #Funny
00:33
Software on Paper - 1985 Cauzin Softstrip
17:58
Tech Tangents
Рет қаралды 80 М.
The Future of Programming
9:30
ThePrimeTime
Рет қаралды 64 М.
How to Make ESP32 MARAUDER
5:16
ARTFOR
Рет қаралды 2,7 М.
Why Are Cooling Towers Shaped Like That?
19:48
Practical Engineering
Рет қаралды 3,7 МЛН
what happens when your CPU has a bug? (GhostWrite)
9:58
LaurieWired
Рет қаралды 30 М.
What is the Smallest Possible .EXE?
17:04
Inkbox
Рет қаралды 513 М.
Let's Look at a Mélange of Scams (Scam Awareness AND Scambaiting)
17:39
What Happened When I Ordered OBVIOUS SCAMS From Wish
13:01
Atomic Shrimp
Рет қаралды 1,5 МЛН
Speeding up Apple's notoriously slow vintage Mac!
15:03
This Does Not Compute
Рет қаралды 86 М.
Disrespect or Respect 💔❤️
00:27
Thiago Productions
Рет қаралды 43 МЛН