LimeProgramming / USB-serial-mouse-adapter

Convert USB mouse to Serial mouse using Pi Pico
Mozilla Public License 2.0
27 stars 5 forks source link

No Power To Mouse #7

Closed oXL0C0Xo closed 4 months ago

oXL0C0Xo commented 4 months ago

Hoping that someone here can help me. When plugging in a USB optical mouse (IntelliMouse Optical USB, miscellaneous Dell, miscellaneous logitech mice), I haven't been able to get the laser on the mouse to light up no matter what I try.

I have tried different USB cables (about 15 of them), also powering the device via the 5v header straight from the power supply, nothing seems to get this mouse to light up.

I can access the serial configuration tool, so I know that it is connected. If I plug the mouse into my personal computer, it powers right up and I can use it, so I know that it is good.

I have used a max232, and the 5v bridge is in place. It should also be noted that cutemouse detects the mouse on the correct com port.

The strange thing is that this is the second adapter I have built, as I was having the same issue with the previously built one.

Any Ideas would be greatly appreciated. Thanks!

sweetlilmre commented 4 months ago

Have you soldered TP2 and TP3 on the board to the TP2/TP3 points on the Pico? I'm facing similar issues and trying to debug (I had the laser blinking, but only went stable after that, although the adapter is still not working). This closed issue has some detail: #1 

I have a pending PR to update the docs.

oXL0C0Xo commented 4 months ago

I had not done that, but I just tried it and it doesn't seem to make a difference

oXL0C0Xo commented 4 months ago

I should be able to just plug this into a USB brick on the wall, and when I plug my mouse in it should power up the mouse without needing to be connected to a computer via serial correct?

sweetlilmre commented 4 months ago

AFAIK yes, my mouse does power up. Maybe try another mouse if you have one available, and failing that I guess double check everything and use a meter to test voltages? Sorry I can't be more help. If I find something I'll ping back.

LimeProgramming commented 4 months ago

sounds like the data lines are getting a bit of abuse here.

I should really backport an update to this PCB to just say "use this port for power" Try either getting a really cheap power cable, use a breakout board or carefully cut open the cable you're using to power the pico and cut the green and white wires.

this issue stems from my own equipment being painfully cheap at the time I was making this so the usb cable i used to power the pico didn't have data wires.

Sorry about that.

oXL0C0Xo commented 4 months ago

Curious though, because I am powering it from the 5v header on your PCB. Does it also require the pico to be powered independently?

LimeProgramming commented 4 months ago

power went out. hey.

ahh no powering the device with 5v via the header should be fine. not sure whats going on so. TinyUSB is a picky thing to deal with, have you tried tapping the reset button and all that? unplugging and replugging the mouse will cause tinyusb to crash and it likes to crash in a way that I couldn't figure out how to catch and handle.

I haven't had compatibility issues with any mouse I've tried, even my logitech g502 worked fine, unless you have a very unusual mouse, it should be okay. if the tp1 and tp2 wires are soldering in correctly

sweetlilmre commented 4 months ago

Here I have 2 of 3 microsoft mice powering up but no activity. I cut open the USB cable only to confirm that it was indeed power only. I've shortened the tp1 and tp2 wires, still not working. I'll try another pico next to see if this is is a dud. 

Serial works and reports the mouse fine, so something is at least partially working.

oXL0C0Xo commented 4 months ago

I’m attaching some pictures of my unit. As far as I can tell, everything is where it should be. I did try resetting and replugging and every switch configuration, but the issue remains. IMG_5639 IMG_5636 IMG_5638 IMG_5637

oXL0C0Xo commented 4 months ago

I am testing everywhere that I should have 5v, and I am getting it. I think that this must be a firmware issue, and it is just not initializing this mouse for some reason. The computer is detecting the mouse emulation, its the input that is not getting picked up by the PI. The mouse I am using is an "IntelliMouse Optical USB & PS/2 Compatible". If there is any more information that I can provide to help solve the issue, let me know.

LimeProgramming commented 4 months ago

I'm not sure here. The soldering looks good, the length of the tp wires shouldn't matter too much because it's usb 1.1, in my own testing I had very long wires (maybe half a meter) and it still worked fine.

I have an MS basic usb mouse that I've tested on the device and it works fine. You're not using a hub are you? TinyUSB was really picky with hubs. I'd expect plugging and replugging to crash the device (blame tinyusb) If you want to try using a microusb OTG cable if you have one, plus the microusb into the pico and the mouse into the full sized usb port. The on board usb port is a more elaborate version of the same.

When the device has power and a serial connection it will present itself to the computer as a serial mouse and however if the usb mouse side isn't connected then it just won't report any data other than the type of mouse it is. the alrt light should light up when the usb mouse is connected and recognized properly.

Also the mouse "laser" should only turn on when tinyusb picks up that the mouse exists, there is a handshake performed before the mouse will light the laser. So the mouse can still get power and not light up. hmmm let me see if tinyusb has gotten an actually useful update.

sweetlilmre commented 4 months ago

I'm going to:

Laser turns on for 2 of 3 mice tested, no ALRT LED activity so far.

oXL0C0Xo commented 4 months ago

Not using a USB hub, the mouse is plugged directly into the USB-2-232. I have never seen the ALRT light activate, nor the laser on my mouse ever turn on for even a second. I will see if I have an non-optical USB mouse to test also. Most of my USB mice are optical however, and all of them suffer the same issue. I really appreciate you looking into this!

oXL0C0Xo commented 4 months ago

Just tried a bunch of other USB mice, all optical unfortunately, none of them worked. Also tried some PS/2 ball mice with a PS/2 to USB adapter...still nothing. Could there be a difference between our PI picos that is causing the issue? mines got a 2020 date on it, and I see a 2.20 on the back side, not sure if that is a version or what. This has got to be an issue with the firmware not detecting the mouse. I wish i was a software guy so I could dig in.

Also just tried my Razer Deathadder from my main PC, nothing.

Forgot to mention that I did also try an OTG cable to connect the mouse directly into the PI and got the same results.

LimeProgramming commented 4 months ago

Okay, so I went to the codebase for what was supposed to replace this project, updated pico-sdk and tinyusb, it did get an update that seems promising. My absolute cheapest mouse goes unrecognized however my ms mouse and usb mini Amiga mouse work. I don't have an old PC handy to test if the serial side is working how it should (pin mapping is a little different but I think I remapped it correctly) but see if this firmware is at least picking up the mouse at all. The new codebase was ment to be backwards compatible with the older hardware so that should be fine.

usb-2-232-kbd.zip

LimeProgramming commented 4 months ago

it has been a long time since I really looked into the code for this project, and between then and now I had been adding ps/2 keyboard support with the new-er project. I don't remember everything about it

LimeProgramming commented 4 months ago

but I do remember that it was to be kind of portable, so the hardware provided here is more of a suggestion since I knew my hardware here wouldn't be very good. the hope was that someone could make their own hardware and then set which pin does what in the default config file.

Also, the alrt led had a completely different job when it was put in, so before the serial terminal it's job was kind of to tell you things with blink codes, as the project expanded i found it to be unnecessary, so it became a mouse connected indicator at some point in time. could be still a blink code thing in this version of the firmware.

oXL0C0Xo commented 4 months ago

Same issue. Tried a couple of different mice and they don't power up. Also, now I am unable to connect to the configuration with Kermit. Before I just set speed 1200 and connect and it would work. Now I get nothing, and the light doesn't start flashing either.

-----Original Message----- From: Adam @.> Sent: Tuesday, June 25, 2024 1:43 PM To: LimeProgramming/USB-serial-mouse-adapter @.> Cc: oXL0C0Xo @.>; Author @.> Subject: Re: [LimeProgramming/USB-serial-mouse-adapter] No Power To Mouse (Issue #7)

Okay, so I went to the codebase for what was supposed to replace this project, updated pico-sdk and tinyusb, it did get an update that seems promising. My absolute cheapest mouse goes unrecognized however my ms mouse and usb mini Amiga mouse work. I don't have an old PC handy to test if the serial side is working how it should (pin mapping is a little different but I think I remapped it correctly) but see if this firmware is at least picking up the mouse at all. The new codebase was ment to be backwards compatible with the older hardware so that should be fine.

usb-2-232-kbd.zip https://github.com/user-attachments/files/15978570/usb-2-232-kbd.zip

- Reply to this email directly, view it on GitHub https://github.com/LimeProgramming/USB-serial-mouse-adapter/issues/7#issuecomment-2189933964 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5Y7LIXFL6B6VWWNKQRASDZJHI6VAVCNFSM6AAAAABJ26BAEGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBZHEZTGOJWGQ . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AD5Y7LJGO4CB3NGHSCT75YTZJHI6VA5CNFSM6AAAAABJ26BAEGWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUCQ66YY.gif Message ID: @.***>

LimeProgramming commented 4 months ago

damn, this part is what I was looking for "Same issue. Tried a couple of different mice and they don't power up. " the reset of it issues with kemit were kinda expected because of what I said earlier.

I'm not sure so, hmmm, ahhh, try reflashing but with nuke_flash first?

LimeProgramming commented 4 months ago

ah I goofed something small in the pin assigning, but I would still expect the mouse led to light up.

oXL0C0Xo commented 4 months ago

I did the nuke_flash procedure, re-flashed the new firmware same issue. No laser, and I cant connect to the config with Kermit.

oXL0C0Xo commented 4 months ago

I am able to connect with kermit on if I set the adapter to 19200 now. Still no activity on the mouse.

LimeProgramming commented 4 months ago

curious, sorry to say but I'm at a loss here. trying to think of something it might be

oXL0C0Xo commented 4 months ago

Are you using the same board that I am using?

LimeProgramming commented 4 months ago

pico rp2-b1 bit it is a pico. for the breakout board I'm using an older version of the board, only difference is the older version had the wrong pinout for the serial port and I had to manually bodge it with jumper wires.

oXL0C0Xo commented 4 months ago

I think the VCC and ground pins are swapped on the USB-A connector. Will be back with more info in a sec

oXL0C0Xo commented 4 months ago

Look at this. I have 2 different style connectors in my stock. Aparently there are some with reverse polarity. IMG_5640

Will try soldering the alternate connector to see if it resolves the issue.

LimeProgramming commented 4 months ago

I didn't know that was a thing to be honest but that might have something to do with it If it does I'll have to note it in the docs somewhere.

Also, I fixed the small goof I done with the pin assignment and tested my adapter on my old laptop, it seems to work fine with my lms mouse. if you want to try that and let me know if it works.

usb-2-232-kbd.zip

LimeProgramming commented 4 months ago

Also, just checked, my board has the usb tab closer to the pico, like the white tabbed usb socket you've posted here.

oXL0C0Xo commented 4 months ago

IT LIT UP! WE DID IT! Now I just gotta test it

So does this new firmware have pin issues? Should I revert to the previous firmware?

LimeProgramming commented 4 months ago

the one I just linked should have the corrected pinput and updated tinyusb, it is compiled with debug so the pico's led will blink, I use that to tell me if the pico is frozen or not

LimeProgramming commented 4 months ago

you can use the one I just linked or the one in the repo, you choose

LimeProgramming commented 4 months ago

usb-2-232-kbd.zip here's the customized one built on release, so the picos led won't blink.

oXL0C0Xo commented 4 months ago

so bad news for me, guess all the mice I plugged into that adapter died, with the exception of my razer mouse. They light up, but they no longer work. but i was able to plug my desktop mouse back into it and now it works!

Thank you so much for all of your help!

LimeProgramming commented 4 months ago

well, so good news and bad news there.

But at least you got the adapter working and an excuse to buy a pile of mice, hopefully the ps2 ones survived at least.

You're welcome.

oXL0C0Xo commented 4 months ago

so far with my testing testing, it seems that none of my PS/2 mice were destroyed because the ps/2 to usb adapter is active and that was destroyed instead. =)

All USB mice are toast though

oXL0C0Xo commented 4 months ago

USB port tester for the win! IMG_5641

LimeProgramming commented 4 months ago

Nifty Gadget.

Sorry about the mice though.

oXL0C0Xo commented 4 months ago

Worth it to sacrifice some mice for the greater good. Now maybe someone else wont make the mistake. Could potentially save more mice than died to make the discovery. Also worth it because I can guarantee that any time that I use one of those ports on a project, I'm going to test the pins before I plug anything in =)

oXL0C0Xo commented 4 months ago

Now I'm curious if sweetlilmre is having the same issue....

sweetlilmre commented 4 months ago

My polarity seems to be OK e.g.

The pico gets bypassed and the PC recognizes the mouse. That would indicate to me that 5V, GND, D+ and D- are correctly wired. I still get zero activity on the ALRT LED. I built the code last night patching it to turn ALRT on for any TUSB callback and nothing happens (also wrote a loop to flash the ALRT led on start up to confirm that it was actually working).

I tested the "blinking pico LED" firmware and still no joy with ALRT.

I've ordered a pico debug probe and some more picos. I'll try another pico in the board as well and probably try a bare-bones SDK tinyusb example. When I have more progress or something to report, I'll open a new issue.

oXL0C0Xo commented 4 months ago

Are you able to access the configuration of the FW with Kermit through the serial port?

sweetlilmre commented 4 months ago

I haven't tried that, though the mouse is detected via cutemouse on the DOS PC side, are you doing this via DOS and if so, could you post a link to Kermit? I don't have a USB->RS232 Serial for my laptop handy so can't test on that (though I may have one in a box somewhere).

LimeProgramming commented 4 months ago

Hello there. https://www.kermitproject.org/msdoskermit/

I use DOS for this because windows seems to "lock" the serial port when it's using it for a mouse but dos doesn't care. Tusb is painful to deal with. There is a generic "i found a device" type event that you could try to ríg up to figure out if the device is even a mouse but I've tested that and it works as well as the "I found a mouse" event, it either works or it doesn't.

Several times I was tempted to throw away the pico and use a teensy with USB hosting since that software seems more reliable. One idea I looked into would be rolling back to the launch pico sdk because they did make a very minimal USB host lib that might work better for this but I couldn't find that code when I looked for it. I don't know GitHub very well, perhaps you might have better luck with it.

This was the pain of development "this looks right why isn't it working, oh tinyusb doesn't work, wonderful" to be fair to it, it seems more geared towards making USB devices instead of USB hosts, USB hosting really only got work put into it when raspi used it as a lib.

Good luck.

On Wed, 26 Jun 2024, 09:58 Peter Edwards, @.***> wrote:

I haven't tried that, though the mouse is detected via cutemouse on the DOS PC side, are you doing this via DOS and if so, could you post a link to Kermit? I don't have a USB->RS232 Serial for my laptop handy so can't test on that (though I may have one in a box somewhere).

— Reply to this email directly, view it on GitHub https://github.com/LimeProgramming/USB-serial-mouse-adapter/issues/7#issuecomment-2191177646, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHC32GOKU6WQVNNFZHC3YQLZJJ7EBAVCNFSM6AAAAABJ26BAEGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJRGE3TONRUGY . You are receiving this because you commented.Message ID: @.***>

oXL0C0Xo commented 4 months ago

I'm assuming that if you unplug the actual mouse from the device, your system will still detect a mouse on the port where the USB-2-232 is plugged in to. That's because that portion of the circuit is probably working. Can you send a couple photos of your assembled adapter?

LimeProgramming commented 4 months ago

Yeah the USB mouse side and serial mouse side are kinda independent, so even if there is no USB mouse, it will still detect as a serial mouse to the serial port of the computer.

I can when I get home from work, however I think it's the same one pictured in the readme. I'm not sure what's left for PCbs I had ordered.

On Wed, 26 Jun 2024, 10:37 oXL0C0Xo, @.***> wrote:

I'm assuming that if you unplug the actual mouse from the device, your system will still detect a mouse on the port where the USB-2-232 is plugged in to. That's because that portion of the circuit is probably working. Can you send a couple photos of your assembled adapter?

— Reply to this email directly, view it on GitHub https://github.com/LimeProgramming/USB-serial-mouse-adapter/issues/7#issuecomment-2191253966, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHC32GPRMJAS75DAEMRYOITZJKDVLAVCNFSM6AAAAABJ26BAEGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJRGI2TGOJWGY . You are receiving this because you commented.Message ID: @.***>

LimeProgramming commented 4 months ago

I'm not sure about this version of the program but I know in the kbd version, the serial mouse is handled by core 1 and everything else handled by core 0, that kept the report rates consistent.

On Wed, 26 Jun 2024, 10:49 Adam, @.***> wrote:

Yeah the USB mouse side and serial mouse side are kinda independent, so even if there is no USB mouse, it will still detect as a serial mouse to the serial port of the computer.

I can when I get home from work, however I think it's the same one pictured in the readme. I'm not sure what's left for PCbs I had ordered.

On Wed, 26 Jun 2024, 10:37 oXL0C0Xo, @.***> wrote:

I'm assuming that if you unplug the actual mouse from the device, your system will still detect a mouse on the port where the USB-2-232 is plugged in to. That's because that portion of the circuit is probably working. Can you send a couple photos of your assembled adapter?

— Reply to this email directly, view it on GitHub https://github.com/LimeProgramming/USB-serial-mouse-adapter/issues/7#issuecomment-2191253966, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHC32GPRMJAS75DAEMRYOITZJKDVLAVCNFSM6AAAAABJ26BAEGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJRGI2TGOJWGY . You are receiving this because you commented.Message ID: @.***>

sweetlilmre commented 4 months ago

@LimeProgramming and @oXL0C0Xo  I've found the issue.

The cable I was using was USB power only, but internally had the D+ and D- lines shorted. This was the same for another power only cable. I will make a PR for the README.md file suggesting that folks DO NOT use a power only cable :) :) :)

LimeProgramming commented 4 months ago

I think I'm just going to have to give in and update the PCB to have mini USB for power and I suppose a diode for some protection.

On Wed, 26 Jun 2024, 14:11 Peter Edwards, @.***> wrote:

@LimeProgramming https://github.com/LimeProgramming and @oXL0C0Xo https://github.com/oXL0C0Xo I've found the issue.

The cable I was using was USB power only, but internally had the D+ and D- lines shorted. This was the same for another power only cable. I will make a PR for the README.md file suggesting that folks DO NOT use a power only cable :) :) :)

— Reply to this email directly, view it on GitHub https://github.com/LimeProgramming/USB-serial-mouse-adapter/issues/7#issuecomment-2191658937, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHC32GISOWGD4YF4XKDYWT3ZJK4YZAVCNFSM6AAAAABJ26BAEGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJRGY2TQOJTG4 . You are receiving this because you were mentioned.Message ID: @.***>

sweetlilmre commented 4 months ago

I think it's OK :) You've got the header for power and now that the "power only shorted data lines" thing is out of the way and can be documented it should be fine. I'm looking forward to finally being able to test this thing out and make some more!