USB to Serial Mouse using the Pi Pico!

  • I have a question.


    It seems like I can get multiple keyboards working decently but at one catch.

    I can't make every keyboard connected update its LEDS reliably, TinyUSB throws assertion errors and I have no idea why.


    So I can either limit supported keyboards to one or just have the leds update on the first keyboard connected.

    Maybe it seems weird to put so much effort into this subject but I do think it would be useful to have a fullsized keyboard and a small portable one connected at the same time. No other way you can really do that on most 386 or 486 systems.


    What do ye think?

    Be Happy, it's only going to get worse.

  • Hey


    Sorry that I've been quiet. I have been getting some really bad headaches.

    I went ahead with the decision to allow multiple keyboards but onlt the first most connected keyboard has it's LEDS update. Of course if you plug it out then the next first most connected keyboard's leds will be used.
    I added an idle led pattern, so when the host is disconnected or turned off and you have a usb keyboard connected, the leds on it will light up with a pattern to let you know that it's connected and idle.

    I'm not sure if I mentioned it here but I am hoping for someone to do some testing, preferably someone with an XT class machine to get that working. If you think thats something you'd be interested in, let me know.
    I'm limiting it to EU only because postage.


    A tester would get the following items

    • An assembled PCB
    • PS2 -> PS2 cable
    • PS2 -> Din adapter
    • USB type a to mini usb cable


    I'm assuming that a tester would have a micro-usb cable for flashing the pico itself. I'd just ask for help testing it and feedback.


    I did find a small fault with the PCB's I have, I never added a bleed resistor for the cap beside the reset button. It's not a major issue, at all but PCB's labeled version 1 would have a bodge resistor tacked on.

    Since, I did update the PCB adding a bleed resistor with a relatively high value since host machines would also have a bleed resistor and I don't want to risk messing with it.

    Be Happy, it's only going to get worse.

  • Serial mouse adapter running at 2400 baud and 4800 baud with modified drivers under windows 95.
    4800 baud looks weird because the usb mouse is running at 100hz

    Darmok from Vogons really done the heavy lifting here. He contacted me with information and I've been trying it out. There's also working modified drivers for windows 3.1
    I'd like to put a little pack of modified drivers together with what I can get a hold of and figure out.

  • today I managed to modify dos drivers, microsoft official ones. Mousev6.1, mouse6.24 and mouse 8.2
    As well getting started with some earlier windows stuffs, had to find and backup my only double density floppies.

    Also I made a post asking for some advice on the retroweb discord so I'll just copy and paste that here too.

    so I've been looking into this for a bit to try to understand how windows does some driver stuff and tinkering with files to see what does what.


    Disclaimer: **I know nothing about drivers, be sceptical of what I'm about to say**


    So it looks to me like windows makes and cakes a copy of vmouse.vxd into vmm32.vxd on install (or whatever) and I don't know how to extract that.

    However we can drop in a modified copy of vmouse.vxd into the vmm32 folder we can just get that file from intellimouse floppies which is what I've done.


    There seems to be a fairly common string of hex values that tell us where we need to make our modification and here it is: `EC 50 B0 60 EB 00 EE 80 56`


    The value we need to change is `60` which is our divisor for the driver.

    `115200 / 60h = 1200`


    So changing the 60h to 30h gets us 2400 baud and so on for dividing the divisor by 2.


    Unless there's a way to pull vxd files from vmm32.vxd then possibly the best source is the previously mentioned intellimouse floppies.


    Part of the mouse driver package in win98 at least includes mouse.drv & msmouse.vxd. I'm guessing that msmouse.vxd just handles 2 button mice data inputs (but not actually capturing that input) and mouse.drv might be for the mini3.1 environment that win98 uses for its setup and maybe for its dos prompt but I'm not sure. Modifying mouse.drv has no effect on windows 98 environment that I can see where as modifying msmouse.vxd can lead to a bluescreen.


    I'm not sure where to go from here tbh, I suppose it would depend if there's a way to unpack vmm32.vxd to get stock vmouse.vxd files from various windows versions. Does anyone know a way?

    Be Happy, it's only going to get worse.

  • oh yes, someone pointed out the cab files included in windows setup exist and the vmouse would be there. Definitely didn't forget that they exist, what would give you that idea?
    LOL

    Be Happy, it's only going to get worse.

  • Here we go.
    Version one of the modded drivers. I haven't tested win98se and winme yet but they should work. The 19200 speed drivers should work with matze's ps/2 to serial adapter in high speed mode but I haven't tested that yet. Plan to though.
    Really not much point in going higher than 2400 baud with the usb-2-232 adapter but up to you. Once they are all tested I'll dump them on the github

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!