First post, by Dark_Lord
Hi all,
this is to introduce my open source project "USB RetroArduInput".
I recently uploaded the current project state to Github. I also want to publish a video on Youtube on my channel Retro Futuristic Engineer, but currently lacking the time for this. Link to Github: https://github.com/RetroFuturisticEngineer/RetroARDUInput
So what can this thing do?
Mainly, you take a USB Keyboard, Mouse, Composite HID (like a dongle for a Keyboard/Mouse kit), Joystick or if you are lucky and find a working USB hub (not that easy) even multiple of these and it will create outputs that you can connect to a lot of different vintage computers.
I still have some work on this to do, but if I wait with publishing this until it's ready, it will eventually be tomorrow or never, time constraints are a big issue for me.
I have currently implemented:
- Keyboard for IBM PC/XT (working), PC/AT and PS/2 (working except from time to time the Set LED command does not work properly), Amiga 500 (working) and 2000 (cannot test the keyboard reset procedure that is different from the 500) and Tandy 1000 (actually adapted from Adrian Black's PS/2 to Tandy project, untested, but I actually intend to send in one of these to Adrian within his mail calls)
- Mouse via Serial (working with 2 button Microsoft and 3 button Logitech), PS/2 (currently, my tested boards recognize it and one specific Logitech driver works, too, but no luck with Cutemouse and various Windows versions) and direct quadrature output (Amiga and Atari, including the required pin swap)
- Joystick analog (with digital potentiometers Type DS18030-100+) for PC (working) and eventually, if this works pulling the other side of the pot to ground eventually with adapter cables also with various Tandy and BBC Micro, untested, and digital for C64/Amiga/Atari - as a gimmick, you can also switch the digital joystick port to react to a mouse which should emulate the 1350 Joymouse for the C64, but I did not implement the 1351 proportional mouse (yet)
- ADB port for keyboard and mouse - implementation pending, I am actually able to switch on a Mac over ADB Keyboard Power Switch and also receive ADB commands, but the replies seem not to satisfy my PowerMac
Most important limitations:
- USB Joysticks are all different and need special implementations, but a lot are already implemented
- The USB Host Shield applies some limitations like being picky on USB hubs and not working with gaming input devices with shiny blinky RGB
Next steps:
- Getting everything running including the AT/PS/2 Keyboard LED thing, the PS/2 mouse with all drivers and ADB (I will, whenever I find time, work on this myself, but if somebody of you offers help and sorts out some of the remaining issues, I am glad to accept any input)
- Modularizing the system, maybe I create new PCBs with Keyboard, Mouse and Joystick modules (maybe then even the time for the 1351 has come) and maybe even for different host/processing boards (like currently the Arduino Mega 2560 with USB host shield, but later on also for an Arduino Due or Raspberry Pi, which should offer a lot better input device support but being able to use the output routines via PiDuino - adaptions would need to be done anyway on the input side when switching to a new platform, also the Arduino Due is quite different here
- Maybe even create different case styles for the modular system resembling different computer styles (the current one does not resemble any particular case style but the colors should be 5150ish with dark gray main case, black rear plate, light-gray front plate and red switches)
But firstly, everything needs to work before I even start thinking about modularization, platform migration or nicer cases.
If you are interested, have a look on Github, there you can find all sources (.ino Sketch, FreeCAD project and STL files for the case, KiCAD project and Gerber for the PCB, documentation in German and English). Maybe later this year, for different forums, and also for this, I could do at least for Germans or maybe extended to EU citizens, a collective order for PCBs so nobody needs to go through ordering a min. of 5 PCBs at one of the chinese video sponsors alone.