17 August 2016

Logitech Wireless Optical Trackman Modification

I think it was about a month ago that I decided to revive the Logitech Wireless Optical Trackman mouse I had since the Marble Mouse and the mouse I hacked for a scroll wheel were no longer serving me well enough. Part of it was mainly because I didn't solder the wire(s) for the middle-click switch (I didn't think I would need it back then), part of it was that it was that the scroll wheel didn't operate how I'd like it to (loose enough to where it can spin freely without the limiter spring), and the part that was least annoying is that it was somewhat awkward to use.

The reason why I retired the Wireless Optical Trackman was because the range wasn't great with the rechargeable batteries I was using - it was designed to use 3 volts and not the approximate output of 2.4 volts from the rechargeable batteries, so I decided to make it less wireless by having the power come from a stable, wired source. At first I was thinking to siphon off of a USB port or header, but then I decided it might be easier to piggyback the power from the receiver.

I first checked the current draw of the mouse itself and found that it was drawing between 2 and 9mA of power, which surprised me a bit, as I wasn't expecting it to be that low (then again, I kinda should've expected it knowing Logitech). The next day I checked the current draw of the receiver and found that it was about 10mA, and was a bit surprised again. I looked at the stickers to find that the mouse is rated for 3 volts at 100mA, and 5 volts at 20mA for the receiver. I looked for an adjustable voltage regulator that had an output of about 250mA (since I wanted to keep it somewhere under 500mA) that was small enough to make a compact board while being large enough to solder by hand.

I had first decided on 0603 for the size of the resistors and capacitors, and created a PCB in Eagle with it, finishing with dimension of the board after the SOIC-8 package and positioning of the vias. I then found that I actually had enough space for 0805 after saving a copy and playing with the pads for the 0805 a bit (I had them in the original file off to the side if I remember correctly).

Somewhere before/during this, I tried to use KiCad to draw the PCB, jumped through hoops an hurdles to get the SOIC-8 footprint library thing to work with KiCad before finding that I had absolutely no way to make a ground pad without making a schematic. I eventually made my own footprint in Eagle from the datasheet itself, since the footprint library was done by Texas Instruments and none of the SOIC-8 footprints in it matched the datasheet of the voltage regulator (that's made by some other manufacturer). Needless to say, I was quite frustrated going into drawing the PCB in Eagle - more on this later. (I also made the pads for the 0805 and 0603 cases at this point as well.)

Once everything seemed to look good (I think I already had the silk-screened stuff already done after finishing the version with 0603 parts), I uploaded it to OSH Park and made a couple corrections when looking over the rendered PCB layers. I then left it there, since it was only 65 cents (USD), and I didn't really need it as soon as possible.

The board is quite small, but it was hard to imagine exactly how small a board that's roughly 7.5mm by 11.8mm was. (I don't have exact dimensions since it's long gone.)

Eventually, my brain didn't function correctly and I thought that I could get away with using a fixed regulator, which would lower the price of the parts I needed as well as simplify the board itself, but eventually I came to my senses even though I was fairly close to finishing the new PCB drawing (which was just a copy). The problem with fixed regulators is that the "ratio" between required input voltage and output voltage is usually higher than adjustable ones. For the fixed regulator I found (of the same SOIC-8 package), it required about 6.3 volts for the input voltage, and considering that I was working with USB power (5 volts), that wasn't going to happen. For comparison, adjustable regulators usually require at a minimum of about 1.2 volts difference between the input and output voltages. I kept the file and the submission on OSH Park, because it could come in handy for someone at some point.

Eventually I created another tiny board for work that was also the same price (though I think it was slightly larger in area), and after I checked it (it was a fairly simple board), I purchased both for 1.30 USD.

It was later that day that I get an email from OSH Park saying that my boards have been added to the super-swift panel for free because there was space to do so. Tiny boards for the win! I roughly got the boards about a week after sending the order, so I was ready for working on the project once the weekend arrived (which wasn't long, since I got the boards on Thursday).

I didn't take the usual set of pictures since my phone wouldn't have focused properly if I held the phone any closer. Teeny little buggers, eh?

The first thing I did (which wasn't the best idea) was solder the capacitors and resistors to the board. I left the resistors off of the other two boards so that I'm not stuck at roughly 3.1 volts with boards I wasn't going to use. Yes, I could replace the resistors later, but it would be a waste of effort. One of the pads of the resistor spots has solder to make it easier to solder the resistors to the board once it happens.

After finishing said step.

After that, I awkwardly soldered the voltage regulator on. While I should've done it first, I wanted to avoid ESD and/or overheating problems (from soldering), but the capacitors made it difficult to keep the board steady to get the voltage regulator to solder flat against the board. I'll know for next time.

The voltage regulators soldered correctly to the board.

I then spent a bit too long trying to find cable small and long enough to fit through the existing hole that the reset switch wires were fed through, but eventually realised that I was going to have to route the wires some other way. After grabbing an appropriate length, I prepared the cable and soldered the wires to the board.

Top and bottom view after soldering the wire to the board.

I decided to verify the operation and voltage and awkwardly used some discarded legs in the breadboard and feeding the output holes through them. I really don't suggest doing this, but I didn't quite want to solder the output cable yet. Anyway, I found that the output voltage was roughly the same as the input voltage and was really confused until I decided to check the resistance. I found that the resistances were fine, and started checking the board to ensure all the traces/pads/vias were properly connected.

I then found that the ground of the output wasn't connected to the ground of the input. I then look at the drawing and didn't see anything weird at first before removing the top layer from view. The ground pad wasn't connected from one side of the board to the other and there was a thin, yellow signal line connecting them together. I then grabbed a breadboard jumper to complete the connection, since it was a bit easier than attempting to make my own jumper.

After soldering and trimming the breadboard jumper in place to the ground side of R2 and C1. the solder overflowed a bit to the ground wire, which was fine although slightly unsightly.

I stuck it back into the breadboard and got the 3.1 volts (or whatever the reading was) that I expected to see and carried on with preparing and soldering the output cable wires.

Top view after soldering.

I then covered the board with heatshrink (to prevent shorts to/from the mouse board) before spending some time figuring out where to place the board and how to run the wires, and after doing so, I soldered the output wires to the PCB of the mouse.

I tried to nicely solder the wires at an angle, but the positive wire (blue) didn't want to play nicely since I had to resolder it for whatever reason.

I then drilled the hole for the input cable before proceeding to reassemble the bottom part of the mouse.

View of the heatshrink-wrapped voltage regulator, inside view of hole, external view of hole, and view of input cable with zip tie as a strain-relief.

I also modified/fixed the problem I was having with the scroll wheel by filing away part of the housing and a holder piece, though I think the holder piece didn't need filing. With that finished, I finished reassembling the mouse and began working on the receiver, starting with drilling the hole, which wasn't easy.

Outside view of the hole, view of the nipped plastic from not drilling straight.

I then fed the input cable through the hole to ensure it would be fine since the hole I drilled was a bit off, and then soldered the wires together appropriately to the USB cable, applying heatshrink afterwards.

Somewhat awkward view, I think due to the torsion of the input cable.

I then ran the input cable before placing the board in its respective location before plugging in the cable and utilising a zip tie on the USB cable. The input cable didn't need its own zip tie since it was at enough of an angle to disallow the cable to be pulled out.

Inside view.

I then closed it up and plugged it into Melty to test it out, having to play with the connect buttons before the mouse responded; I was frightened for a moment when the mouse wasn't working - I thought I killed something with ESD or overheating with the soldering iron. After that, I unplugged the Marble Mouse and hacked mouse and ran the USB cable for the Optical Trackman before playing with the connect buttons again to get the mouse to work.

View of the input cable and receiver (which didn't want to stay upright). Ignore the mess.

I think it was during the final test that I realised that I was actually going to put the hole somewhere on the side near the USB cable, but completely forgot once I went to drill the hole. I wanted to avoid where I drilled the hole so that the receiver could stand upright. Not entirely a big deal, since the receiver's sitting on the remote cable for my speakers that allows it to not sit on the input cable.

I realised that the tracking isn't as great as compared with the Marble Mouse (considering the Optical Trackman uses older tech), since the Optical Trackman stalls the pointer if I spin the trackball too fast, but if I really need the enhanced tracking, I can always connect the Marble Mouse again (or any other mouse of mine for that matter) if the drawing tablet isn't going to suit the need.

I also fixed the board design in Eagle by making it slightly wider to where the ground pads can connect, and luckily, it's still the same price of 65 cents (USD). Actually I just found I didn't fix it properly (well, to my liking), so I spent a few minutes just now to make it look nicer. I'll re-upload it again to OSH Park at some point.

Final board design in Eagle.

It took me about a couple days to unlearn the muscle memory for the scroll wheel and then about a couple weeks to unlearn the muscle memory of the layout, but now I'm using it like it was always there. I forgot to mention the reason why I wanted to have a long input cable was so that I could utilise the mouse if I'm reclining in the chair and/or for future desk layouts.

Scrolling is much better than before (in comparison to both the wheel before my modification and the hacked mouse), and I can utilise my index and middle fingers if I need to scroll down a lot.


Things I've learned:
  • Pay close attention to loose signals when checking the design.
  • Try not to rush assembly (I was trying to finish before it became too dark to easily work).
  • Solder in an order that ensures board stability.
  • Take breaks to reduce frustration/(mental) exhaustion. (This might take a while to make a habit.)
  • Don't delete items from a project/wish list unless absolutely necessary. (Luckily it wasn't too hard to regain what I deleted.)

No comments:

Post a Comment