Overclock.net - An Overclocking Community

Overclock.net - An Overclocking Community (https://www.overclock.net/forum/)
-   Mice (https://www.overclock.net/forum/375-mice/)
-   -   Progress on a fully custom mouse. (https://www.overclock.net/forum/375-mice/1724838-progress-fully-custom-mouse.html)

TranquilTempest 04-23-2019 10:16 PM

Progress on a fully custom mouse.
 
1 Attachment(s)
Over the past few years I've slowly been gaining knowledge about electronics, and recently I've been thinking there's not really anything about mouse technology that really mystifies me, so why not try to design and build one myself? It might be a little overambitious, but there's nothing wrong with failing.


Details of the current design:
PMW3360 (3389 should be an easy change though)
8 hardware debounced switches, 3 of which will be on separate board, for thumb buttons.
ALPS encoder
MCU: EFM8UB10F16G-C-QFN28 (may change later, but want to at least try it first)
61mm x 60mm, but I think I can get it smaller.

Prototype shell will be made by vacuforming over a clay sculpture. If that doesn't work out I may try 3d printing.

This is the first PCB I've laid out, and I'm not quite done with it yet, but I think it's good enough to get some feedback on. Learning to use KiCAD at the same time:

qsxcv 04-23-2019 10:44 PM

noice

why not centered sensor?

JackCY 04-23-2019 10:50 PM

The switches need 3 holes, your render at least to me has the middle leg blocked with some weird trace shapes. I don't get it either why mice sold in mass have no hardware debounce and instead rely on software with delays.

Never heard of that MCU, I would rather use some kind of AR but then I'm too lazy and cheap to go through all the trouble and expenses to make a custom mouse.

Good luck!


---

Why would sensor need to be centered on a PCB if it's centered on the mouse itself? ;)
There are some existing solutions for using 3360 with other MCUs dev boards. That's probably the trickiest part, to communicate with the sensor.

TranquilTempest 04-23-2019 10:54 PM

Quote:

Originally Posted by qsxcv (Post 27943698)
noice

why not centered sensor?

Partly trying to minimize size and deconflict buttons behind scroll wheel, partly because I vaguely remember a whitepaper from the era of ball mice about people being more accurate when the sensor was placed close to the index finger. Though I readily admit that study may have been based on people using a mouse for the first time ever, and I'm having a hard time finding it now.

TranquilTempest 04-23-2019 11:01 PM

Quote:

Originally Posted by JackCY (Post 27943700)
The switches need 3 holes, your render at least to me has the middle leg blocked with some weird trace shapes. I don't get it either why mice sold in mass have no hardware debounce and instead rely on software with delays.

That's just KiCAD being silly with the thermal relief on through hole ground pads, Those holes are indeed marked to be drilled. It's just showing up because it's not marked to be etched away.
Quote:


Never heard of that MCU, I would rather use some kind of AR but then I'm too lazy and cheap to go through all the trouble and expenses to make a custom mouse.

Good luck!
ARM or AVR? The microcontroller choice is mostly me satisfying my own curiosity, though it is significantly cheaper than my second choice, which would be the atmega32u4.
Quote:


---

Why would sensor need to be centered on a PCB if it's centered on the mouse itself? ;)
There are some existing solutions for using 3360 with other MCUs dev boards. That's probably the trickiest part, to communicate with the sensor.
Well, communicating with the sensor is just SPI, and there's a datasheet available, so not too big a deal.

qsxcv 04-23-2019 11:10 PM

Quote:

Originally Posted by JackCY (Post 27943700)
That's probably the trickiest part, to communicate with the sensor.

nah... the sensor communication code i wrote for avr can be easily ported to be used with other mcu architectures...

trickiest part is probably getting usb stuff set up; i never did this myself but just used usb code from https://www.pjrc.com/teensy/usb_mouse.html

gipetto 04-24-2019 12:03 AM

I don't see any spi level converters. Are you going the voltage divider route, then running the mcu at 3.3v and hope the mcu sees the low voltage from the 3360? I once made a shell myself by using a blowlamp to melt perspex over another mouse, then a towel to press it down around it.

TranquilTempest 04-24-2019 12:27 AM

Quote:

Originally Posted by gipetto (Post 27943754)
I don't see any spi level converters. Are you going the voltage divider route, then running the mcu at 3.3v and hope the mcu sees the low voltage from the 3360? I once made a shell myself by using a blowlamp to melt perspex over another mouse, then a towel to press it down around it.

MCU has an internal 5v to 3.3v regulator, and that's what it runs its IO on. Said 3.3v also drives the sensor's VDDIO pin(internal regulator can provide up to 100mA). There is a separate 1.9v regulator for the sensor's normal VDD.

Might have picked a MCU that can run on 1.9 if USB signaling didn't need 3.3 anyway.

Interesting idea with molding a shell. I do have a heat gun that might work.

Gordon59 04-24-2019 02:04 PM

I'm on a similar project but less complicated as I'm only trying to replicate a mouse design on a different pcb shape.

If you want to take a look : https://www.overclock.net/forum/375-...a-married.html

What king of button switches are you planning to use ?

I wish you good luck !

TranquilTempest 04-24-2019 03:06 PM

Quote:

Originally Posted by Gordon59 (Post 27944576)
I'm on a similar project but less complicated as I'm only trying to replicate a mouse design on a different pcb shape.

If you want to take a look : https://www.overclock.net/forum/375-...a-married.html

What king of button switches are you planning to use ?

I wish you good luck !

Switches will be Omron D2F-01F.

Took a look at your thread, it's interesting, but I would have added better debouncing if I was going through the trouble of a custom PCB anyway. Here's some more info on that: https://www.overclock.net/forum/375-...ncing-mod.html

gipetto 04-24-2019 03:14 PM

That would be too invasive of a mod imo. it's fine if you are doing a whole pcb. I don't think zowies double click anyway due to the 5.6k mcu pullup in the Cypress line.

ltpdttcdft 04-24-2019 03:37 PM

Good start. Very nice if you could get vacuforming / deep drawing to work reliably and cheaper than 3D printing.

qsxcv 04-24-2019 09:32 PM

Quote:

Originally Posted by gipetto (Post 27943754)
I don't see any spi level converters. Are you going the voltage divider route, then running the mcu at 3.3v and hope the mcu sees the low voltage from the 3360? I once made a shell myself by using a blowlamp to melt perspex over another mouse, then a towel to press it down around it.

3360 datasheet recommends vddio between 1.8 and 3.6 so 3.3v is totally fine...

gipetto 04-25-2019 12:38 AM

It's a good tradeoff tbh, One voltage regulator taking the place of 4-5 level converters. I hope it works without issue. two external pullups for the wheel encoder would reduce bounce also.

gipetto 04-25-2019 07:11 AM

@TranquilTempest do you happen to have the ec10 footprint to share? I have a similar project on the go. I doubt i'll ever finish it though, as kicad is new to me. edit: also the 3 pin switch footprint. I'm using a 5 pin header for that lol.

TranquilTempest 04-25-2019 10:00 AM

2 Attachment(s)
Quote:

Originally Posted by gipetto (Post 27945204)
@TranquilTempest do you happen to have the ec10 footprint to share? I have a similar project on the go. I doubt i'll ever finish it though, as kicad is new to me. edit: also the 3 pin switch footprint. I'm using a 5 pin header for that lol.

Not "official" ones, but I did make some.

The encoder footprint is a little sketchy. Couldn't figure out how to get routed slots in the footprint editor, so I used round holes. Maybe you can define plated slots somewhere else, but I haven't got that far yet. I believe pins 1 2 3 correspond to A B C, but you shouldn't trust me on that.

Switch footprint was much easier.

gipetto 04-25-2019 11:33 AM

Thanks for the help, I guess I can upload my schematic if I replace the proprietary sensor with an adns9800 or something, but it's nothing you haven't seen before. When I made my first pcb with fritzing I used 2mm holes for the sides of the ec10 encoder. I may have had to cut them down the side with a sidecutters, can't remember.

kicad only has ec11 mechanical encoders and from memory, those use the center pin as common, whereas the ec10 has an outer pin as common. I screwed up the first pcb I made, so after that I put an extra 2 mounting holes so that I could rotate the encoder 180 degrees to correct the wiring.

kicad still needs a little work, because the NO and NC pins are reversed between the spst and spdt.

TranquilTempest 04-25-2019 02:33 PM

Quote:

Originally Posted by gipetto (Post 27945500)
Thanks for the help, I guess I can upload my schematic if I replace the proprietary sensor with an adns9800 or something, but it's nothing you haven't seen before. When I made my first pcb with fritzing I used 2mm holes for the sides of the ec10 encoder. I may have had to cut them down the side with a sidecutters, can't remember.

kicad only has ec11 mechanical encoders and from memory, those use the center pin as common, whereas the ec10 has an outer pin as common. I screwed up the first pcb I made, so after that I put an extra 2 mounting holes so that I could rotate the encoder 180 degrees to correct the wiring.

kicad still needs a little work, because the NO and NC pins are reversed between the spst and spdt.

I used 2.1mm holes because those pins have a kink in them, but I haven't tested if that's enough clearance or not. If it's not, I can just bend the pins straight to make it work.

And yeah, it would make more sense if pin 1 was common, pin 2 was NO, and pin 3 was NC. Though instead of messing with the existing symbol I just made the footprint match the symbol.

gipetto 04-25-2019 04:28 PM

1 Attachment(s)
Good idea going for the 1.2mm hole for the microswitch pins. I used 1.25 which I found worked well. This pcb should be better than the old fritzing one because the bendpoints forced the middle click switch against the wheel. The pic is just a rough arrangement, nothing measured for the io1.1 yet. I don't think I can solder this smt mcu though. I'd love to use the alps em11b hall effect encoder, but if it is anything like the ec11 then it would hit the upper shell. maybe if it was countersunk into the wheel..

TranquilTempest 04-25-2019 05:15 PM

That encoder would make the middle click a lot more complicated though. Maybe put it on a second PCB, so that it can move up and down with the mouse wheel.

As for soldering annoying surface mount parts, QFP isn't too bad, just drag a blob across the pins then wick up the excess. With the QFN I think I'm going to solder it before anything else, by tinning the pads first, using lots of flux, and reflowing the center pad by heating the bottom of the board with a heat gun.

qsxcv 04-25-2019 06:42 PM

solder like this:

practical question for you guys... where to obtain a 3360 sensor without desoldering? not sure if pixart provides samples or stuff. maybe jkicklighter might be willing to sell a sensor without his pcb.

TranquilTempest 04-25-2019 09:09 PM

Quote:

Originally Posted by qsxcv (Post 27945836)

Yup, at least for components with no pads in the middle. For QFN or BGA you need hot air.
Quote:

practical question for you guys... where to obtain a 3360 sensor without desoldering? not sure if pixart provides samples or stuff. maybe jkicklighter might be willing to sell a sensor without his pcb.
There are a few sellers on aliexpress, but I don't know if any of them are official distributors.

gipetto 04-25-2019 11:27 PM

1 Attachment(s)
I think the official european distributor is here https://www.codico.com/shop/en/pmk3360is-t2qu.html

have to buy a minimum of 5 but still not prohibitively expensive. I put off buying it until more is done, speed is not a priority.
I'll probably buy from aliexpress though, as it's just a one off, though I do have a tindie board which what appears to be a faulty sensor.

I screwed up a ps2 installing a mod chip, I just can't handle those ic packages, wish usb hid came in DIP packages, but I understand impedance would be off and weight would go up.
I was thinking of doing the em11b on flying leads like how the kone xtd encoder is done, except rather than use a cradle, solder a stiff copper wire between each mounting tab, then hinge the wire with vertical wire.

edit: here's where i'm at with the schematic.

m1hka 04-26-2019 12:12 AM

https://aliexpress.com/item/PMW3360D...834829893.html

TranquilTempest 04-28-2019 03:25 AM

2 Attachment(s)
Update:

Lots of small changes. Got rid of a trace running under the SPI lines and two that were squeezing between the MCU and the sensor cutout. (got rid of the 1.9v enable, and decided to run the LED off the MCU instead of the 1.9v regulator).

Also got USB data lines to the top layer and ground either side.

Maybe an excessive amount of via stitching.

This is all probably completely unnecessary for a one off, but who knows, maybe if I end up selling these someday I'll have to comply with USB and FCC requirements.

gipetto 04-28-2019 04:28 AM

I received the sot-23 regulator the day after I ordered it, despite paying little for postage. tbh I regret buying those parts after I saw them, as I thought they were the largest, but soic is larger again. I think if you go for a custom mcu, you should go for an soic package, but that would be different for mass production.

TranquilTempest 04-28-2019 04:37 AM

Yeah, SOIC is easier to solder, but I already want to make that area of the board smaller.

I suppose there's no reason to stick to single sided load for prototyping. That would free up some space for easier to solder components, or just a smaller mouse.

gipetto 05-02-2019 07:45 AM

Do you think the mcu would be ok using the internal RC circuit instead of external crystal or is timing super crucial for usb and spi comms.

TranquilTempest 05-02-2019 09:32 AM

Most microcontrollers do need a crystal for USB. This one though is supposed to do clock recovery off the existing signal.

https://www.silabs.com/documents/pub...-datasheet.pdf

TranquilTempest 05-02-2019 10:28 PM

Well, I've ordered my components. Waiting on the mouse wheel before I order the PCB, because I'll have to take some dimensions off of it. In theory everything should cost about $40~60, but with extras and tools I'm probably going to end up around $300 before I'm done.

Ordered sensors from China, two each of 3360 and 3389.

gipetto 05-03-2019 03:50 PM

1 Attachment(s)
You're jumping in at the deep end, making a pcb without a working dev board prototype. It used to take 3 weeks for stuff to come from china, now it takes 3 months due to trade war or something. any idea as to why kicad won't let me attack a trace to the front of a via? back is no problem. the reason there's so many resistors is because I'm using 2 pullups per switch, and actually 4 pullups on the rotary encoder, because I wanted all the resistors to be the same size, so I seriesed some of them. resistors are sometimes handy for jumping traces anyway. I should probably have the decoupling caps closer.
For a production mouse i would prefer the ec11 to the ec10, no issue with shafts breaking or getting loose, plus you can get them in horizontal mount.

TranquilTempest 05-03-2019 04:52 PM

Quote:

Originally Posted by gipetto (Post 27954372)
You're jumping in at the deep end, making a pcb without a working dev board prototype. It used to take 3 weeks for stuff to come from china, now it takes 3 months due to trade war or something. any idea as to why kicad won't let me attack a trace to the front of a via? back is no problem. the reason there's so many resistors is because I'm using 2 pullups per switch, and actually 4 pullups on the rotary encoder, because I wanted all the resistors to be the same size, so I seriesed some of them. resistors are sometimes handy for jumping traces anyway. I should probably have the decoupling caps closer.
For a production mouse i would prefer the ec11 to the ec10, no issue with shafts breaking or getting loose, plus you can get them in horizontal mount.

Not sure about the via thing, the only issue I had with that was disconnecting part of a trace, reloading the netlist, then trying to reconnect to it. It could be a clearance issue. How are you placing the vias? I place mine by pressing v while drawing a trace.

As for jumping in at the deep end, Maybe a little bit, but I'm not too scared. I've looked at the code for the dev board's HID mouse demonstration, and the chip comes with a USB bootloader. skipping the dev board just changes the order in which I need to figure things out. Besides, getting a board made is cheaper than the dev board.

gipetto 05-03-2019 05:15 PM

ah, the v trick worked out for me. must have been a bug of some kind. It would be cool if you could pull it off though. There are usb/ps2 keyboards which use v-usb on the atmega32a which is available in 40 pin dip, very easy to solder, and backwards compatible with ps2 ports (usb can't be bitbanged I understand). apparently the latency on the software usb isn't great though.

gipetto 05-04-2019 09:13 AM

1 Attachment(s)
Got it routed after a struggle, I had to go back to the start and remove the led and extra level converter for motion, only 105 vias (ouch), 9 of those under the mcu, which all the sites warn not to do. who did you hire to make the pcb? I have a company lined up but they are pricy. now that i think of it I have to go back and thicken the traces for vcc and gnd.

TranquilTempest 05-04-2019 12:57 PM

Probably going to go with JLPCB. The US based option I was considering was OSHPark. Sensors are still probably going to get here last. I'm at 206 vias, but about 3/4 of that is via stitching.

gipetto 05-04-2019 01:25 PM

I've dealt with oshpark many times, helpful site. I guess maybe it is worth paying extra for it to be fully tested as I think they do. when i was using fritzing they were the only site that would accept my orders without errors. i thought kicad would give me more flexibility. customs here is a hassle buying from outside the eu but they don't think pcbs are expensive so i have got away with it so far. everything i buy is closely scrutinized though, has to be under 22 euro or so, or I get classed as a business and get a tax audit.

edit: ordered from jlcpcb 5 full size boards for 1.79 euro to my door. hard to believe.

TranquilTempest 05-06-2019 03:13 PM

I think I might go with OSHPark for now, mostly because of the fine pitch parts and higher temp FR4. But yeah, it's difficult to beat JLCPCB's price.

Got my goodie bag from Digikey and a mousewheel from amazon that looked like it had the right shaft and hex diameters. Gonna have to move the encoder over to about where I currently have the cable routing notch. Ordered some kydex sheet to make the shell out of, and some PTFE and UHMW tape to make feet.

Also crimped my first connector. Took me a few tries to get my first good crimp(especially getting the insulation crimps to stay aligned), but from there it was pretty straightforward. Gonna have to get some better wire strippers.

gipetto 05-07-2019 02:47 AM

digikey has expensive shipping, but there is a cut off point after which it is free, I have had very cheap shipping from farnell for a small lot. I have found too many mistakes on my pcb, because I wasn't aware of the design rules checker in eschema. I did use it in the pcb layout app, but thought that the same feature would work just the same(nope). I just autorouted the whole thing because I didn't understand how to lay it out. I will do it all freehand next time, but I can use the pcb to practice soldering on. I would like to do a pcb case for the lulz down the road so as to have a light and cheap mouse. I don't regret learning kicad though because I want to make a pcb for a handwired mechanical keyboard I have that's playing up.

gipetto 05-08-2019 04:25 AM

1 Attachment(s)
Here's an idea I had for a more reliable inexpensive scroll wheel. This is to 25mm scale diameter. you make 3 of these out of pcb to give the required thickness, then solder them together, one tooth off each time, so that there are 12 spokes instead of 4. The detents are done by a hardware debounced roller microswitch for one encoder channel and a common slot photointerrupter for the other direction channel. That way there's no bounce or backscrolling, a firm detent for each position and it won't register erraticly like the optical type usually do. the cog teeth are measured to match the roller. Do you think the idea has merit?

TranquilTempest 05-08-2019 06:30 AM

I think there are a few issues with it, the biggest being that with both mechanical and optical components you get the failure modes of both. If you're using a gear type thing for the detents, I think you should probably make it out of something less abrasive than PCB material. Maybe something like phenolic sheet. That can be cut by anyone with a CNC router, not just a PCB house. I'd also try different tooth profiles, to see what feels best(probably want a pointy tip instead of a plateau). As for the encoder part, I don't know how hard it is electrically, but maybe you could make a capacitive encoder, similar to what they use in digital calipers. I think that would be the most reliable option provided you want to make the encoder out of PCB material. I wonder if those capacitive touch ICs would work.

For another high reliability option, maybe replace the mechanical encoder with a ring magnet (multi pole, diametrically magnetized). Position information obtained from a couple hall effect sensors. This would have to be done in large volumes to be cost competitive, and would probably still end up slightly more expensive than the mechanical encoder. I think it would be possible to get close (under $1/mouse) if you use the same stuff they make those flexible fridge magnets out of.

As for low cost, low weight, and simplicity in use, it's hard to beat an off the shelf mechanical encoder. I think if I were to spend the time to engineer something more reliable, It would take several times longer than I would otherwise spend replacing however many mechanical encoders I would go through for the rest of my life. As a feature/selling point don't think it would let you increase the price of a mouse more than say, the ability to open a mouse without peeling the feet off.

gipetto 05-08-2019 10:00 AM

1 Attachment(s)
>get the failure modes of both
I am aware of the failure modes of both but In this application I think the hybrid approach is more reliable. One issue I forsee is the roller bar detaching from the microswitch if the cog teeth are too large, another is the roller bar bending. both can be mitigated by rounding off the teeth and hollows. For simplicity, this cog was made from matthias wandel's gear generator but I could make a better design.
I have made one from a 4 tooth steel cog and two roller microswitches to test it out, adding the second microswitch completely ruins the detent feel, as you would expect. I have often seen rollers fail in operation in industry, with one side being ground flat. This happens when the abrasion of the surface is less than the friction inside the roller, by using an abrasive material for the cog this is avoided.
I have not used capacitive encoders as I have shied away from their code complexity, and requirement to be grounded to earth to work reliably, however I have no fear of the single slot 4 pin dip photointerrupter, those are quite hardy, having seen extensive use in industry, compared to the low voltage dual quadrature types used in mouses. The magnetic type is interesting, but I lack the skill to prototype with it. It also seems expensive compared to other technologies.

>As a feature/selling point don't think it would let you increase the price of a mouse
Therein lies the rub, we've both been around the block with terrible build quality in mice, yet the more costly mouse often was less reliable. The mice were designed to fail, and we have eliminated the switch bounce, so the next target is the rotary encoder.

I made an earlier mouse from pcb sheet with a terrible shape, and last night cloned the io1.1 shape from flat cardboard. this shape is made from 9 polygons of cardboard, easily recreated from pcb with cutout holes to reduce weight. I plan to use the main pcb as part of the case, sticking mouse feet directly to it. The shape feels surprisingly comfy.

The goal is disruptive technology, something which can be built cheaper, lighter, more reliable and higher performance than anything else on the market. That is the only way to force the big manufacturers to wake up. I don't even want to sell the things, just put the design out there.

TranquilTempest 05-08-2019 03:50 PM

1 Attachment(s)
Quote:

Originally Posted by gipetto (Post 27960248)
I made an earlier mouse from pcb sheet with a terrible shape, and last night cloned the io1.1 shape from flat cardboard. this shape is made from 9 polygons of cardboard, easily recreated from pcb with cutout holes to reduce weight. I plan to use the main pcb as part of the case, sticking mouse feet directly to it. The shape feels surprisingly comfy.

It might be sloped too much on the sides. I had that issue with my first clay prototype, it felt really good while it was still tacky, but now it's way too slippery to pick up. I think you might get the same issue once the weight is more accurate.

Here's an image of my current clay model, Now that I have the scroll wheel and PCB layout though I know the scroll wheel will be bigger, and the buttons behind the scroll wheel smaller, model also only includes from the top surface of the PCB up, according to the sensor datasheet I need about 7.4mm below that:

gipetto 05-08-2019 04:38 PM

by my calculations the pcb is about 1.6mm, though I guess I could go lighter, so using a 5mm foot with 0.8mm mouse feet would give the idea sensor height. I would like to avoid using button actuators. On the earlier version I used a pcb tilted forward so that the pcb buttons hit the switch level. maybe I could use right angle switches and mount them to the vertical front pcb surface. So long as I kept the angle at 90 degrees between the front surface and the buttons it would be fine. The right angle switches are pretty expensive though, which goes against my low cost ethos. I did diy some button actuators at one time, but they were tricky to get right. as the solder cooled it would pull them out of shape. I had planned to wire the polygons together through holes.

https://www.aliexpress.com/item/32241886136.html

have you seen the dwergmuis custom adns 9800 mouse? he started with a clay shape, then copied and made his mouse from wood, by slicing it up and measuring the cross sections.

TranquilTempest 05-08-2019 05:02 PM

For feet I ordered some PTFE and UHMW tape, which are about 0.5mm thick, so I'll probably use a thin sheet of plywood to put the feet on and screw the PCB into. I have some plywood that's 4.7mm thick, so that puts my stackup at about 6.8mm at the moment. Some washers should get me the rest, I could make some appropriate thickness shims out of that tape if necessary.

TranquilTempest 05-09-2019 08:02 PM

1 Attachment(s)
PCB ordered, and my sensors arrived today. In the meantime I can work on the base and shell.

bst 05-09-2019 09:55 PM

Just in case you don't know, putting the encoder on the right can make it feel quite stiff to click. It depends how you click it, if you always come straight down with your finger, it makes no difference, but if you kind of press the side of it, it doesn't work so well when its on the other side. I would try it on another mouse first to see if you like it (click the scroll wheel with your middle finger / right clicking finger).

TranquilTempest 05-09-2019 10:25 PM

Quote:

Originally Posted by bst (Post 27961814)
Just in case you don't know, putting the encoder on the right can make it feel quite stiff to click. It depends how you click it, if you always come straight down with your finger, it makes no difference, but if you kind of press the side of it, it doesn't work so well when its on the other side. I would try it on another mouse first to see if you like it (click the scroll wheel with your middle finger / right clicking finger).

I guess I never realized people click their mousewheel sideways. Maybe that's how people manage to break the hex off their wheels. The mouse I'm using now does have the encoder on the right side of the wheel, and it feels pretty good to me.

gipetto 05-12-2019 03:48 AM

I found a link that says to avoid using vias for a crystal b/c it pulls the xtal off frequency. I used vias because I was worried about the crystal case shorting out the traces. what kind of errors will i see by using an off frequency mcu?

https://devzone.nordicsemi.com/f/nor...of-the-nrf-via

TranquilTempest 05-12-2019 04:49 AM

2 Attachment(s)
Quote:

Originally Posted by gipetto (Post 27963900)
I found a link that says to avoid using vias for a crystal b/c it pulls the xtal off frequency. I used vias because I was worried about the crystal case shorting out the traces. what kind of errors will i see by using an off frequency mcu?

https://devzone.nordicsemi.com/f/nor...of-the-nrf-via

The error to worry about is USB not working, but I have no idea how much vias will change the frequency. IIRC the USB tolerance is 0.25% on clock frequency for full speed.

On my side, I have the first piece of the actual mouse:

gipetto 05-12-2019 07:43 AM

is it ok to run the spi lines though vias? or is the frequency low enough to avoid issues?

TranquilTempest 05-12-2019 08:09 AM

With SPI or USB data lines, the vias aren't part of the oscillator, so it shouldn't change the frequency or keep it from working, but it's still better to avoid it for EMI reasons. Solid ground plane beneath/beside those traces also helps with EMI.

gipetto 05-12-2019 08:41 AM

1 Attachment(s)
I see, back to the drawing board then. I had tried to keep the power traces without vias so that they wouldn't become intermittent through overcurrent, but it seems it was the wrong approach. Is there a trick to allow components be placed on the back? I can't seem to make them green.

TranquilTempest 05-12-2019 09:14 AM

Quote:

Originally Posted by gipetto (Post 27964112)
I see, back to the drawing board then. I had tried to keep the power traces without vias so that they wouldn't become intermittent through overcurrent, but it seems it was the wrong approach. Is there a trick to allow components be placed on the back? I can't seem to make them green.

Press F to switch front/back.

I wouldn't worry about the current capacity of the traces/vias, the whole mouse should take well under 100ma, and even 0.25mm traces are good for several times that.

TranquilTempest 05-12-2019 11:47 AM

2 Attachment(s)
Minor fail on first attempt at making switch side bracket for mousewheel. Used a heat gun to bend a 90 in the sheet plastic (Kydex T 0.060"). That part worked much better than I expected. Clamped in vise at bend line, heated it until it was bendy, and used a flat piece of metal to bend it over. I need to use a wider slot and move the support to the next step of plastic on the wheel. May or may not need a sleeve on the encoder side to set the distance there. Overall looks like it will work. I will need to re-do the angle bracket with more meat though. Will be waiting on PCB before I start gluing.

Lens holder is within tolerance on Z height.

Going to make standoffs out of plywood, and glue to bottom shell. Upper shell will also be attached to plywood via horizontal screws

gipetto 05-12-2019 06:10 PM

2 Attachment(s)
at this stage I am fed up of spending money on dud pcbs, two runs wasted already. I redid it and used the vias for power, leaving the i2c signal lines hooked directly. bst warned me to keep d+ and d- straight, I eyeballed it and hope they are, but kicad says they are a little off. I don't know how to adjust them. is the crystal ok where it is or should i move it closer to the mcu and have the 22pf capacitors farther away?

TranquilTempest 05-12-2019 08:16 PM

2 Attachment(s)
I think the crystal there is ok, but you should add a via to ground as close as possible to the ground pads of the microcontroller and bypass or oscillator capacitors. Anything that will be seeing high frequency. The idea is to let high frequency content find a shortcut back to where it comes from with as small a loop area as possible, I've drawn out the bypass cap loop area for a couple of my chips in the first screenshot.

There's a differential pair tool to run stuff like d+ and d- while keeping them matched in length, but that's more important for high speed stuff.

If you have to have broken ground plane, try to put it under stuff that doesn't switch frequently. For example, I put mine under the traces for button inputs, but kept the SPI and USB areas as solid as possible. When I did take USB over a track on the bottom layer, I brought ground over on the top layer(second screenshot).

You can also look at how a development board using the same microcontroller is implemented.

Gordon59 05-13-2019 02:51 AM

Quote:

Originally Posted by TranquilTempest (Post 27964298)

Going to make standoffs out of plywood, and glue to bottom shell. Upper shell will also be attached to plywood via horizontal screws


I found a really convenient way of attaching boards inside the mouse. I use this kind of standoff you need them to be M2 as it's the correct size for holes on a PCB,
Then you can customize the height with a Dremel and glue it to your mouse using cyanoacrylate glue !

It gives great results ! I will post some pictures of it soon.

TranquilTempest 05-13-2019 03:20 AM

Standoffs are useful, but I think less convenient if you have to cut them to length, because they're difficult to hold onto while cutting them. With wood you can cut them off of a piece that's long enough to hold onto easily .

Though if you see some 3.4~3.5mm tall M3 standoffs, let me know.

gipetto 05-13-2019 03:23 AM

2 Attachment(s)
I used a differential pair for the usb pins, though it doesn't look right. I also made a solid ground plane underneath the mcu, and added a ground via for each capacitor. I think I am unable to use a solid ground plane underneath the spi hardware, routing is just too difficult. should I use a differential pair for the crystal?

TranquilTempest 05-13-2019 03:47 AM

Looks a lot better. Track length for crystal already looks identical, so I don't see a need to redo that.

gipetto 05-13-2019 03:58 AM

I slimmed down the crystal traces to reduce miller effect coupling since I uploaded that picture. In your opinion is it ready to make the pcb?

TranquilTempest 05-13-2019 04:29 AM

I dunno, It's kind of hard to tell just based on the PCB renders. I sat on mine for a couple weeks, and kept finding small things to improve after I thought I was done with it. Some stuff you don't notice until you give it a couple days and approach it fresh. It looks like the flood fill under the MCU isn't connecting to all the grounded pads.

Gordon59 05-13-2019 05:32 AM

3 Attachment(s)
Quote:

Originally Posted by TranquilTempest (Post 27964900)
Standoffs are useful, but I think less convenient if you have to cut them to length, because they're difficult to hold onto while cutting them. With wood you can cut them off of a piece that's long enough to hold onto easily .

Though if you see some 3.4~3.5mm tall M3 standoffs, let me know.

Here some pictures of my implementation, you can see on the last pictures how I make it more easy to manipulate I just screwed a big standoff on the small one which give me extra grip.

This one seems close. It's hard to have the right size but you can mark the height you want on cut it roughly, and sand it until you'll get to your mark.

TranquilTempest 05-13-2019 05:41 AM

Did you mark location then glue them in place individually? Or did you attach them to the PCB and glue them all at once? I think the second option would be easier to get everything aligned, but it also might be a good way to fog up a sensor or lens with CA fumes.

Gordon59 05-13-2019 05:55 AM

Quote:

Originally Posted by TranquilTempest (Post 27964988)
Did you mark location then glue them in place individually? Or did you attach them to the PCB and glue them all at once? I think the second option would be easier to get everything aligned, but it also might be a good way to fog up a sensor or lens with CA fumes.

haha I attached them to the PCB and look from the bottom to correctly align the lens on the hole. I had like 3 sec to correctly align it or it would be too late :D

Better solution, if you can print the design of your PCB at the 1/1 scale with a mark at the center of your sensor, I will align it like a sewing pattern and mark the locations with a pin through the paper, you can use tape too.

Don't forget to sand a bit both part you want to glue with cyanoacrylate. (always better make some test first to get the feeling of it) If you make a mistake you will be able to unglue it easly just twist it with a pliers and resand it a bit to remove old glue.

gipetto 05-13-2019 06:53 AM

Good catch, I actually copped that on earlier versions but when I redid the design forgot it. I put everything at https://github.com/itsnoteasy/misc/tree/master/mouse8 so any comments would be appreciated if you have the time to spare.

TranquilTempest 05-14-2019 02:58 AM

Quote:

Originally Posted by gipetto (Post 27965086)
Good catch, I actually copped that on earlier versions but when I redid the design forgot it. I put everything at https://github.com/itsnoteasy/misc/tree/master/mouse8 so any comments would be appreciated if you have the time to spare.

I need to update to a newer version of kicad before I can take a look at it. Are you using 5.1.2?

gipetto 05-14-2019 06:09 AM

i'm using kicad 6.0.0 for some reason. it grabs new kicad files from the repo every day, must be development builds or something. pcb layout editor doesn't work today, there's a bug in the right click menu, i'll try it again tomorrow or this evening when the new build comes.

TranquilTempest 05-14-2019 03:08 PM

The crossbar thing in this microcontroller is confusing.

If you look at the chart on page 99, is it unreasonable of me to assume I can put MISO on P2.2 and MOSI on P2.1?
https://www.silabs.com/documents/pub...efm8ub1-rm.pdf

Ah well, a couple bodge wires never hurt anybody.

deafboy 05-14-2019 03:47 PM

I honestly don't understand much what has been discussed in here but I absolutely love this kind of project....

Necessary? No

Fun project? Absolutely.

Keep it up

gipetto 05-15-2019 12:42 AM

page 96

UART0, UART1, SPI0, SMB0, CP0, CP0A,
CP1, CP1A, SYSCLK, PCA0 (CEX0-2 and
ECI), T0, T1, T2/3/4
Any port pin available for assignment by
the crossbar. This includes P0.0 – P2.3
pins which have their PnSKIP bit set to ‘0’.
The crossbar will always assign UART0
pins to P0.4 and P0.5.

the crossbar is mostly blue so I think you can, it's very flexible.

found another mistake in my pcb, the differential pair routing for usb completely screwed up.

Gordon59 05-15-2019 01:42 AM

Quote:

Originally Posted by gipetto (Post 27966288)
i'm using kicad 6.0.0 for some reason. it grabs new kicad files from the repo every day, must be development builds or something. pcb layout editor doesn't work today, there's a bug in the right click menu, i'll try it again tomorrow or this evening when the new build comes.

That's why I don't like KiCad, you should give it a try to design spark which is more user friendly in my opinion !

What about thermal vias in your design ?

TranquilTempest 05-15-2019 03:59 AM

Quote:

Originally Posted by gipetto (Post 27967314)
page 96

UART0, UART1, SPI0, SMB0, CP0, CP0A,
CP1, CP1A, SYSCLK, PCA0 (CEX0-2 and
ECI), T0, T1, T2/3/4
Any port pin available for assignment by
the crossbar. This includes P0.0 – P2.3
pins which have their PnSKIP bit set to ‘0’.
The crossbar will always assign UART0
pins to P0.4 and P0.5.

the crossbar is mostly blue so I think you can, it's very flexible.

found another mistake in my pcb, the differential pair routing for usb completely screwed up.

That's what I thought at first, but as far as I can tell, you can tell the chip which pins to use for the crossbar, and which peripherals you want enabled, but you can't tell it what order to assign things, it always uses the same order.

Honestly, when I think of a "crossbar" I would expect inputs to map to outputs in any order. Using that word to describe this is a bit misleading, you can't change the order at all. If I put MISO on P2.2, MOSI can only go on P2.3.

gipetto 05-15-2019 05:22 AM

>thermal via
this is the first I have heard of them. I did read a note saying 2 layer boards can carry higher current because the air cools them compared to a trace inside a 4 layer type. since i have decided to abandon rgb to simplify routing and will only use a standard luminosity 3mm led for a power up check, the heat generated will likely be small.
>you can't change the order at all
if you are worried you can use the example on page 97. it would help if you had more examples to copy off but since it is such a rare mcu that is unlikely.

kicad hasn't given me much trouble to be fair, and now that i have someone to bounce questions off i am getting adept in it. it was my decision to use development builds to maximize compatibility with obscure part libraries. by using a repository it had a lower learning curve so long as i kept updating.

Gordon59 05-15-2019 05:55 AM

Quote:

Originally Posted by gipetto (Post 27967456)
>thermal via
this is the first I have heard of them. I did read a note saying 2 layer boards can carry higher current because the air cools them compared to a trace inside a 4 layer type. since i have decided to abandon rgb to simplify routing and will only use a standard luminosity 3mm led for a power up check, the heat generated will likely be small.
>you can't change the order at all
if you are worried you can use the example on page 97. it would help if you had more examples to copy off but since it is such a rare mcu that is unlikely.

I noticed I had plenty on the WMO and the Zowie PCB so I include it myself on my design. For the path of it every component have a specific thermal signature so you just copy the path of each of them, then you need to connect the vias to your top and bottom ground layer. I also did the same as microsoft and put some silklayer mark on them to differentiate it from via connecting traces.

I will upload a picture of the zowie's pcb for you to see the vias pattern.

here's two link about it :

https://www.electronics-cooling.com/...s-best-friend/
https://www.edn.com/electronics-blog...r-thermal-vias

gipetto 05-15-2019 08:43 AM

> I will upload a picture of the zowie's pcb for you to see the vias pattern.
no need tbh, the pcb doesn't have to be perfect, i'm not launching a mouse company here lol. i'm just going to take my time and whenever i have all the serious concerns worked out i'll order it. I doubt anyone is going to copy it due to the learning curve. i've made a few pcbs for other projects and they all worked fine without an issue, even the handmade type. this is my first smt pcb though and the thermal problems should be much less than anything I did before. I have a local guy lined up to assemble it.

gipetto 05-17-2019 03:04 AM

I have a faulty g502 that keeps powering off here and I am wondering could i use the sensor without code mods. I have found the g502 srom.

TranquilTempest 05-20-2019 04:41 PM

1 Attachment(s)
That's a PMW3366, right? I think qsxcv would know more about any differences.

In any case, I have boards back. A couple minor clearance issues with scroll wheel, but nothing a small washer and 30 seconds with a needle file can't fix.

gipetto 05-20-2019 05:04 PM

Indeed, 3366. I won't annoy the guy though. It's not especially important anyway. no pcbs yet here but I did receive the em11b. as I expected they are too large to fit within the case. They probably only suit a large wheel like a finalmouse. mine don't have a proper shaft, just a short round stubby one with a flat screwdriver notch at the end. they were dirt cheap though. what is that large ic with so many pins? an eprom perhaps?
I realized my pcb is also compatible with the wmo but it would take a redesign to achieve intellimouse 1.3 compatibility, which is a shape I have more interest in. I would need a huge hole in the pcb to clear the rear screw. I think I have reached the point where I have to stop feature creep though and just finish it.

TranquilTempest 05-20-2019 05:35 PM

Quote:

Originally Posted by gipetto (Post 27973396)
Indeed, 3366. I won't annoy the guy though. It's not especially important anyway. no pcbs yet here but I did receive the em11b. as I expected they are too large to fit within the case. They probably only suit a large wheel like a finalmouse. mine don't have a proper shaft, just a short round stubby one with a flat screwdriver notch at the end. they were dirt cheap though. what is that large ic with so many pins? an eprom perhaps?
I realized my pcb is also compatible with the wmo but it would take a redesign to achieve intellimouse 1.3 compatibility, which is a shape I have more interest in. I would need a huge hole in the pcb to clear the rear screw. I think I have reached the point where I have to stop feature creep though and just finish it.

The IC below the microcontroller is a non-inverting buffer used for positive feedback based hardware debouncing(edit: 74HC7541PW). It's honestly a bit overkill. You'd have to hold the switch in an indeterminant state for quite a while for there to be any advantage over just a capacitor. There is a very small potential performance benefit over using two pins on the microcontroller, because it will latch into the correct state on the first edge, you don't get the small amount of variance caused by sampling the pin during a bounce.

I believe there are also a few bus transceiver ICs that would work as a drop in replacement.

gipetto 05-21-2019 01:32 AM

It's a brilliant idea to be fair. I also considered using an ic for debouncing because I think my code ignores the hardware interrupts which are used to lower latency for left click. I compromised by preserving the original software debounced circuit pinout so that it can still be used. In theory a click could be skipped if it were of short enough duration so as to miss the code in the loop. maybe that is also an issue in the buxtronix wheel code idk.
I'm often blown away by the genius behind that firmware.

TranquilTempest 05-21-2019 01:48 AM

To minimize latency in the firmware I'll be reading the whole port at once, either during or right before the ISR. I gave some thought to how I might handle macros in the future, and I think what I'd do is read the port in, then use bitwise operators with an intercept mask and an override mask. That would let the macro take as long as it wants to run, without impacting the latency of other switches beyond that two lines of code.

TranquilTempest 05-21-2019 10:04 AM

1 Attachment(s)
What to work on next. Firmware, or shell?

gipetto 05-21-2019 03:11 PM

wow, you got it together. whatever makes you happy, even if you can't hack the programming, it won't take long to change the pcb for an atmega.

TranquilTempest 05-21-2019 07:58 PM

Got the scroll wheel working(mechanically). Feels pretty solid. Though I am a bit worried about one of the traces running to the encoder. There's only soldermask separating it from the brace part of one of the outside legs of the encoder, so it's possible vibration would cause it to wear through that and ground one of the encoder data lines. Just something to keep in mind when laying down traces near the encoder.

Everything seems to be working electrically, at least as far as can be tested without firmware. Sensor even seems to be running, you can see it go in and out of sleep mode because the LED changes brightness when it detects motion.

gipetto 05-22-2019 01:30 AM

1 Attachment(s)
I read a datasheet for pcb layout ages ago warning to always solder unused inputs to ground to prevent floating, then checked the atmega32u4 datasheet, and they forbid it in case they are set to output by mistake, which can smoke not just the pin, but the whole mcu. I guess the onboard pullups have that problem solved. I had to redesign the pcb anyway as I had neglected to include a hole for the wheel support. There's so much stuff that passes design rules check that makes you think everything is fine.

here's a q2024 sensor single sided pcb for the io1.1. through hole parts on one side, surface mount on the other, and no vias. some of the old school designers were gifted at routing.

TranquilTempest 05-22-2019 05:39 AM

no jumpers? That's impressive.

TranquilTempest 05-22-2019 12:36 PM

One thing to be aware of, the top result on google for usb wire colors is wrong, D- is white, and D+ is green. I don't want to admit how long it took for me to figure that out.

In any case, the factory loaded USB bootloader seems to be working.

gipetto 05-22-2019 04:07 PM

no jumpers whatsoever. I got my first batch of dummy pcbs in today from jlcpcb. the good ones should be in two weeks time extrapolating from the arrival date of these. I was worried the switches would be in the wrong locations but they work in the mouse shell, although could be moved a little. That's something you gotta look out for to keep down costs, there's a lot of useful information you can gather from a faulty pcb, it's better to wait until they come and check your design for errors before you re-order. If I do screw the pcb up again I will modify it for the intellimouse 1.3 shell.

I thought I would have to go to 1.25 mm holes for the switches but 1.2mm is perfect as is. I bought a lot of 10 dirt cheap d2fc-f7n omron and one of them randomly has twice the actuation force for some reason lol.
I think I saw the faulty image you are talking about. I used to do minor radio circuit mods and the information was often riddled with errors, which was made worse due to sites copying each other. back then i'd look for like 3 different versions and pick best two of three. another issue was language differences, some words could change meaning over time and geography. For my pcb I used the g203 pinout and plug to make life easier. I would have liked to have the plug at the front like the original pcb, to keep weight down but the learning curve was too steep.

TranquilTempest 05-22-2019 05:49 PM

Quote:

Originally Posted by gipetto (Post 27975860)
no jumpers whatsoever. I got my first batch of dummy pcbs in today from jlcpcb. the good ones should be in two weeks time extrapolating from the arrival date of these. I was worried the switches would be in the wrong locations but they work in the mouse shell, although could be moved a little. That's something you gotta look out for to keep down costs, there's a lot of useful information you can gather from a faulty pcb, it's better to wait until they come and check your design for errors before you re-order. If I do screw the pcb up again I will modify it for the intellimouse 1.3 shell.

Yeah, I've made a few fixes to the PCB design since I got my boards, but so far nothing that will keep me from making these work; just have to put more work in. If I do order new boards though it will go a lot faster.
Quote:

I thought I would have to go to 1.25 mm holes for the switches but 1.2mm is perfect as is. I bought a lot of 10 dirt cheap d2fc-f7n omron and one of them randomly has twice the actuation force for some reason lol.
How was the fit of the rotary encoder? The leads on my switches measure 1.0mm, but the datasheet recommended 1.2mm to account for manufacturing tolerances. The boards I got from OSHPark had a little bit of play for the switches, and a close fit for the rotary encoder. I didn't have to force or bend anything, but it also didn't rattle around once it was in. I'd be more specific but I don't have pin gauges to make an accurate measurement. I think some PCB manufacturers drill oversize to account for plating thickness, and others use the drill size you specify, and let you account for plating thickness yourself.
Quote:

I think I saw the faulty image you are talking about. I used to do minor radio circuit mods and the information was often riddled with errors, which was made worse due to sites copying each other. back then i'd look for like 3 different versions and pick best two of three. another issue was language differences, some words could change meaning over time and geography. For my pcb I used the g203 pinout and plug to make life easier. I would have liked to have the plug at the front like the original pcb, to keep weight down but the learning curve was too steep.
Yeah, though even if you are matching a pinout, you need to know which pin of the microcontroller goes to which position on the connector. At least it doesn't require replacing the PCB to fix if you get it wrong, just rearrange the connector.

gipetto 05-23-2019 03:24 PM

the alps ec10 is a perfect fit with your footprint, didn't even need to straighten out the tabs. on my later pcbs I expanded the holes to make swapping encoders easier. i find when the hole is too small that solder suckers no longer work, so I end up cutting off the pins and soldering them to the top of the blocked hole. it's hard to get alps ec10 in 7mm size so that's why I was reinstalling them so often, as I had to adjust height and melt the encoder to fit a non standard allen key.

TranquilTempest 05-23-2019 05:06 PM

Ah, if something is difficult to desolder I just use solder wick.

I did consider using allen keys to make mouse wheel axles, but the hex in the encoder is something of an oddball size. Maybe 1/16 would work, but I didn't have one that size to try. 1.5mm is definitely too small and 2mm is too big.

gipetto 05-24-2019 05:58 AM

I've had good results with it. A 5/64 allen key for a ttc encoder is a good match, assuming the keys weren't out of order in the box, although it does rock a little, and an unidentified metric type for the alps. melting is hard though, it would be dope if I had a tiny hexagonal broach for the job. I try to avoid modifying wheels though, it's only for custom situations. In your case it is easy to use an oem wheel.

TranquilTempest 05-26-2019 09:39 PM

1 Attachment(s)
I'm almost satisfied with the vacuforming buck. Also made some cables. Still experimenting to see what I like best, but it's definitely not the most flexible cable I made, that one bunched up too much. I'll try to find the cable for the camera so I can post better photos.

TranquilTempest 05-27-2019 08:41 PM

2 Attachment(s)
Found the cable for the camera.

Made a couple practice runs vacuforming. First attempt kinda worked but part of the plastic overheated, ruining the texture. Second attempt went better, but I need to make a better frame to get a good seal on the vacuum box. Also, the clay buck started disintegrating, so i'll probably only get one more shell out of it before having to sculpt a new one.

Decision I need to make now is if I like this shape enough to risk the more expensive plastic with the color/texture I like better.

top shell is approx 10 grams.

gipetto 05-28-2019 02:53 AM

1 Attachment(s)
It's gonna be tricky to get the button actuators lined up and functional. the way I check them in my io1.1 is remove the wheel and peer into the shell through the wheel aperture while the shell is on.

I did order the cog pcb wheel after I came across a suitable photointerrupter and example circuit. It is a reflective type, but I can separate the components. Maybe there will need to be a pinhole or slot obscurer, maybe not, if the cog spokes are sufficiently wide to compensate the led diffusion. The one piece photointerrupters would be too narrow at 5mm. the power consumption is hilariously overkill, but as long as it works it will do for prototyping.

because they are discrete components they can sink the input_pullup current without dying through overcurrent like the previous type I played with which were voltage output. they can then use the same circuit as the lk optical switches in the bloody and astrum mice.
https://www.aliexpress.com/item/32526995173.html

TranquilTempest 05-28-2019 05:19 AM

If you add say 100k from pin 1 to pin 3 of that opamp, you probably can get rid of any software debouncing.

Though that sensor only has a single phototransistor, so you will need two of them to get direction.

gipetto 05-28-2019 07:00 AM

1 Attachment(s)
The astrum doesn't use an opamp in this circuit, because the photodetector is part of a voltage divider it doesn't need voltage amplification, as all it is doing is switching the median 2.5v to 5v or 0v. I haven't used opamps successfully before so I am staying away from them if I can.
The hybrid mechanical and optical approach likewise eliminates any need for photointerrupter debouncing, as the light beam change will be treated as a Set in the SR latch terminology, if it occurs when the roller microswitch is pressed and when the roller microswitch releases, that will be treated as a reset, then wheel rotation will be incremented.

when the roller microswitch is pressed, if the light beam is not interrupted, and unpressed, wheel rotation will be decremented. This has the side effect of the encoder failing in a usable way, if the optical parts burn out, menus and weapons in games can still be cycled through, albeit in one direction only.

here is the lk switch datasheet page which bst provided. I am unsure what the function of the capacitor is, maybe noise immunity of some kind.
because the roller microswitch acts as one channel of the quadrature encoder, the other optical channel only needs a single type to get direction, the advantage here, being the hardy nature of the optical parts.
I realise it is a little hard to explain because I don't think anyone has made a hybrid encoder before.

TranquilTempest 05-29-2019 01:03 PM

4 Attachment(s)
Third time's a charm. Used a bigger sheet, took more time heating it up, moving it a lot to avoid hotspots.

Was a little harder to get the plastic off the buck than the first two attempts, so I drilled a hole in the top and blew in some compressed air. Needed a hole there for scroll wheel anyway.

also took some photos of the vacuform setup. First photo has the most accurate color.

RickyIsTop 05-29-2019 01:07 PM

Can you explain me what parts are you going to use to build the mouse... I am nottalkig about specific parts like sensor type and MCU type. But about everything you need to build mouse like that.
Something like this:
Sensor
MCU
micro switches...
Pretty much everything that is on PCB

Thank you...


All times are GMT -7. The time now is 07:52 PM.

Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2019 DragonByte Technologies Ltd.
vBulletin Security provided by vBSecurity (Pro) - vBulletin Mods & Addons Copyright © 2019 DragonByte Technologies Ltd.

vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2019 DragonByte Technologies Ltd.