Hey there, I am CalamityLime. Thanks a lot for making the video, it was a huge surprise when it popped up on my phone. Honestly there didn't seem to be much interest in this project so it really is a surprise. The design of these PCB's have some oddities considering that the phat PCB was really my first proper attempt at designing a PCB with the slim version coming shortly after. Support for both max3232 and max232 is one such oddity, since at the time I was making the board I imagined most people would opt for the max232 as it was available as a basic part from JLC SMT service but I thought it would be a good idea to support both the max3232 and max232 should the max3232 become available as a basic part, in such a case you could remove about 4 resistors as well. Yeah a bit over complicated in hindsight. I should probably find the time to go back and remake the slim PCB with even the RP2040 integrated. Good job on figuring out the max3232/max232 confusion since I didn't explain that part in the GitHub repo itself, just on DosReloaded I think. I've put a lot of time into the firmware and thanks to the RP2040 being more powerful and feature/ram rich it can do a few things that other micro controllers could struggle with. An easy example is the higher baud rate support or the configuration terminal screen but a not so obvious example is that the timings for the serial mouse is handled by the second ARM core of the RP2040, resulting in some very consistent 40/44hz report rates regardless of what else the device may be doing. Just to point out three areas where people could get caught. Powering the device using the Pico microusb port, when the readme say "power only cable" I am referring to use a microusb cable that lack data lines. For my own use I cut open a cable to snip the green and white cables but I know from reusing broken USB cables that cheap microusb cables are often missing the data lines anyway. Since there is only one set of USB data lines from the RP2040 there can be only one device connected directly. When the last mouse in the video didn't work, that was a result of TinyUSB crashing behind the scenes. TinyUSB is good for making the RP2040 act as a USB device but it has some bugs when acting as a USB host, it's very picky with USB hubs, disconnecting and reconnecting devices is generally stable but it can crash and I don't see a way of catching the crash to reboot the device, outside of further modifications to the TinyUSB lib. There could be a proper way that I just haven't found yet. Until then, just tap the reset button to reboot the device. I have the same mouse in white so I know it does work. You can exit the config terminal using the reset button however the only way to save your settings is to exit the config terminal via the config terminal. I've put a lot of handling for saving your settings to get the most life out of the Pi Pico. You can write to the NAND only so many times before it dies so instead of constantly erasing and writing to the same area of NAND, I set up a "crawl space" across a range of NAND. The range in blanked on first start up and only blanked again once the range is full, I don't remember exact numbers from the spec sheets but the "crawl space"/wear leveling should extend the life of the Pico by over 100 fold. Think of it like an array, your newest settings are saved in the last most available slot and the array is not erased until it is full. Since making this I did expand it's capabilities a bit with a newer revision called the USB-2-232-KBD which adds the ability to convert USB keyboards to AT keyboards with planned support for the older XT keyboards as well. It has made good steps forward and I use it myself from time to time but it is not finished and I haven't had the time to work on it for a while. I do have some spare PCB's and if you would like one to mess around with, just message me on GitHub or Discord or Vogons (though I don't check that very often), assuming you are within the EU, I'd be happy to post it to you for your own use. Thanks again for making this video. I would also like to thank the people on DosReloaded that helped me with the German translation of the config terminal.
Great info, I really wish the PCB was an ISA card with serial port in the metal bracket (using the ISA port to power the Pi), rather than having that awkward lump hanging off the back of the computer. No one has taken this approach yet that I've seen. Thanks for this.
I agree, power is a bit awkward, but you can mount the whole board on a bracket and connect it internally both to the serial port header and to the PSU for 5V and only expose the USB jack. You would need a 3D-printer for this though. raw.githubusercontent.com/LimeProgramming/USB-serial-mouse-adapter/main/images/Internal_render_s.webp
I did, it works decently but it's a bit chonky. The newer version of the project does something better with the power and I'll probably back port that at some stage. I have a new project that does USB keyboard to AT keyboard and the firmware is backwards compatible with the old PCB.
Super neat! This would be interesting on an ISA card stealing power for the Pico from the ISA bus with a 10 pin serial header on the ISA card that could connect to an internal serial header on either the motherboard or a multi I/O card and a USB connector on the ISA bracket. It would be much neater and more sanitary than the dongle with the external USB power cord. Even better would be AT-PS/2 keyboard support that connects internally to the AT keyboard connector and is able to determine if an AT keyboard has been plugged in, disabling the USB keyboard. Edit: Looking at Github I see the Phat version can accomplish 95% of my first thoughts, using a 3d printed bracket and it has headers for both the USB and serial connectors.
There was an attempt made once with Matze's PS/2 to serial mouse adapter. I don't know if it was ever finished but I think they did have a prototype mostly working. I think there was some catch with the serial port assignment in bios. I was tempted to try once to make this into an ISA card but I was a bit too intimidated by the idea.
@@CalamityLime I was thinking more about using an ISA card internally as more for a place to mount the internals of the dongle rather than having a functional UART and serial setup integrated. Just picking up 5V and ground from the ISA bus to power it. Athough that would be very slick. That being said, the "PHAT" version of your device mounted in the internal printed bracket accomplishes basically what i was thinking of, a way to hide it inside the computer. It's a neat little adapter! Thanks for making it!
@@dennisp.2147 So an isa card that would just let you hook up to power. Not a bad idea, could have some complication with other similar devices like the voltage blaster for example. Just to get the most of your Isa slot. And you're welcome. I'm tempted to make a revision of PCB that's a bit less silly than the current one and maybe it could have the rp2040 Integrated for some smt assembly.
I wonder if you could do a serial connection from a Linux machine to a retro machine and capture the mouse and send it over as a serial mouse? It'd be kinda like a software KVM switch only just the mouse.
Yeah this is what this project is for: github.com/mborjesson/USB-Mouse-to-Serial. It captures the mouse on the Linux system and sends it over to the vintage PC with the help of a USB to serial adapter.
Huh, PS/2 mice are WAAYYYY older than USB and showed up in PC hardware waaayyyy before USB was even a dream on some crazy teen studying electronics not even having started their university much less being hired to work on something like that.
While both PS/2 and rs232 are serial protocols, they are different serial protocols with different voltage ranges. Passive adapters only worked if the mouse itself supported serial and PS/2 protocols. Modern PS/2 mice do not support the old serial protocols.
Hey there, I am CalamityLime.
Thanks a lot for making the video, it was a huge surprise when it popped up on my phone. Honestly there didn't seem to be much interest in this project so it really is a surprise.
The design of these PCB's have some oddities considering that the phat PCB was really my first proper attempt at designing a PCB with the slim version coming shortly after.
Support for both max3232 and max232 is one such oddity, since at the time I was making the board I imagined most people would opt for the max232 as it was available as a basic part from JLC SMT service but I thought it would be a good idea to support both the max3232 and max232 should the max3232 become available as a basic part, in such a case you could remove about 4 resistors as well. Yeah a bit over complicated in hindsight.
I should probably find the time to go back and remake the slim PCB with even the RP2040 integrated.
Good job on figuring out the max3232/max232 confusion since I didn't explain that part in the GitHub repo itself, just on DosReloaded I think.
I've put a lot of time into the firmware and thanks to the RP2040 being more powerful and feature/ram rich it can do a few things that other micro controllers could struggle with. An easy example is the higher baud rate support or the configuration terminal screen but a not so obvious example is that the timings for the serial mouse is handled by the second ARM core of the RP2040, resulting in some very consistent 40/44hz report rates regardless of what else the device may be doing.
Just to point out three areas where people could get caught.
Powering the device using the Pico microusb port, when the readme say "power only cable" I am referring to use a microusb cable that lack data lines. For my own use I cut open a cable to snip the green and white cables but I know from reusing broken USB cables that cheap microusb cables are often missing the data lines anyway.
Since there is only one set of USB data lines from the RP2040 there can be only one device connected directly.
When the last mouse in the video didn't work, that was a result of TinyUSB crashing behind the scenes.
TinyUSB is good for making the RP2040 act as a USB device but it has some bugs when acting as a USB host, it's very picky with USB hubs, disconnecting and reconnecting devices is generally stable but it can crash and I don't see a way of catching the crash to reboot the device, outside of further modifications to the TinyUSB lib. There could be a proper way that I just haven't found yet. Until then, just tap the reset button to reboot the device.
I have the same mouse in white so I know it does work.
You can exit the config terminal using the reset button however the only way to save your settings is to exit the config terminal via the config terminal. I've put a lot of handling for saving your settings to get the most life out of the Pi Pico. You can write to the NAND only so many times before it dies so instead of constantly erasing and writing to the same area of NAND, I set up a "crawl space" across a range of NAND. The range in blanked on first start up and only blanked again once the range is full, I don't remember exact numbers from the spec sheets but the "crawl space"/wear leveling should extend the life of the Pico by over 100 fold. Think of it like an array, your newest settings are saved in the last most available slot and the array is not erased until it is full.
Since making this I did expand it's capabilities a bit with a newer revision called the USB-2-232-KBD which adds the ability to convert USB keyboards to AT keyboards with planned support for the older XT keyboards as well. It has made good steps forward and I use it myself from time to time but it is not finished and I haven't had the time to work on it for a while.
I do have some spare PCB's and if you would like one to mess around with, just message me on GitHub or Discord or Vogons (though I don't check that very often), assuming you are within the EU, I'd be happy to post it to you for your own use.
Thanks again for making this video.
I would also like to thank the people on DosReloaded that helped me with the German translation of the config terminal.
You've done an awesome job! Thanks for sharing such a great project!
One of the best retro channels. Excellent videos and unique threads. Greetings!
Great info, I really wish the PCB was an ISA card with serial port in the metal bracket (using the ISA port to power the Pi), rather than having that awkward lump hanging off the back of the computer. No one has taken this approach yet that I've seen. Thanks for this.
I agree, power is a bit awkward, but you can mount the whole board on a bracket and connect it internally both to the serial port header and to the PSU for 5V and only expose the USB jack. You would need a 3D-printer for this though. raw.githubusercontent.com/LimeProgramming/USB-serial-mouse-adapter/main/images/Internal_render_s.webp
@@scrap_computing That is an elegant solution, did you design that?
I did, it works decently but it's a bit chonky.
The newer version of the project does something better with the power and I'll probably back port that at some stage.
I have a new project that does USB keyboard to AT keyboard and the firmware is backwards compatible with the old PCB.
Thanks for sharing such an awesome project!
Super neat! This would be interesting on an ISA card stealing power for the Pico from the ISA bus with a 10 pin serial header on the ISA card that could connect to an internal serial header on either the motherboard or a multi I/O card and a USB connector on the ISA bracket. It would be much neater and more sanitary than the dongle with the external USB power cord.
Even better would be AT-PS/2 keyboard support that connects internally to the AT keyboard connector and is able to determine if an AT keyboard has been plugged in, disabling the USB keyboard.
Edit: Looking at Github I see the Phat version can accomplish 95% of my first thoughts, using a 3d printed bracket and it has headers for both the USB and serial connectors.
There was an attempt made once with Matze's PS/2 to serial mouse adapter. I don't know if it was ever finished but I think they did have a prototype mostly working.
I think there was some catch with the serial port assignment in bios.
I was tempted to try once to make this into an ISA card but I was a bit too intimidated by the idea.
@@CalamityLime I was thinking more about using an ISA card internally as more for a place to mount the internals of the dongle rather than having a functional UART and serial setup integrated. Just picking up 5V and ground from the ISA bus to power it. Athough that would be very slick.
That being said, the "PHAT" version of your device mounted in the internal printed bracket accomplishes basically what i was thinking of, a way to hide it inside the computer.
It's a neat little adapter! Thanks for making it!
@@dennisp.2147 So an isa card that would just let you hook up to power. Not a bad idea, could have some complication with other similar devices like the voltage blaster for example. Just to get the most of your Isa slot.
And you're welcome. I'm tempted to make a revision of PCB that's a bit less silly than the current one and maybe it could have the rp2040 Integrated for some smt assembly.
I use the USB4VC. I can use USB mouse but even plug bluetooth ones to serial or ps2 computers.
Ah nice, I was not aware of this project. Thanks for sharing!
I wonder if you could do a serial connection from a Linux machine to a retro machine and capture the mouse and send it over as a serial mouse? It'd be kinda like a software KVM switch only just the mouse.
Yeah this is what this project is for: github.com/mborjesson/USB-Mouse-to-Serial. It captures the mouse on the Linux system and sends it over to the vintage PC with the help of a USB to serial adapter.
7:14 You wouldn't have to buy this part if you had 200 kg of electronic scrap in your basement. 😁
True :)
But a PCI card to USB adaptor will work? I see a few on Aliexpress
I doubt a USB mouse will work without a special driver.
Huh, PS/2 mice are WAAYYYY older than USB and showed up in PC hardware waaayyyy before USB was even a dream on some crazy teen studying electronics not even having started their university much less being hired to work on something like that.
Yeah but PS/2 mouse connectors were not common in PCs until the late 90s, I wonder why though.
Why is this project necessary when you can get passive PS/2 to serial adaptors. Rs232 and PS/2 are both serial protocols.
While both PS/2 and rs232 are serial protocols, they are different serial protocols with different voltage ranges. Passive adapters only worked if the mouse itself supported serial and PS/2 protocols. Modern PS/2 mice do not support the old serial protocols.
Passive adapters only work if the mouse speaks RS-232 and PS/2 and can autoswitch. They're different protocols.
Get rid of the awful loud "music". Its just noise. Just have the sound of you talking and assembling it.