The new forums will be named Coin Return (based on the most recent
vote)! You can check on the status and timeline of the transition to the new forums
here.
The Guiding Principles and New Rules
document is now in effect.
Electronics/PCB problem - Voltage where there shouldn't be
I'm assembling a mechanical keyboard kit I bought a while ago. I'm having a strange issue with the microcontroller (ProMicro) resetting itself. When it resets, if I measure the voltage on the reset pin, I see it has dropped down to ~1V (reset is active low on this board). Long story short, I've isolated the problem to the PCB. With the ProMicro removed from the socket, if I put 12V on the Vcc header pin (and GND to the GND header pin), I can measure voltages between 4-9V on other pins of the header. This should not be happening. I've tested a spare socket to see if it would also do it, but I get 0V between other IO pins and ground. I've given the board a thorough cleaning with isopropyl alcohol and a toothbrush but the problem persists.
Does anyone have any suggestions or advice?
Here is an imgur link with pics of the boards, schematic, and pcb layout
0
Posts
You could maybe put in a pull-up resistor on the reset pin. You might be able to temporary one in just to test it.
Beyond that, maybe you have a bad PCB?
EDIT: Check the documentation for the ProMicro to make sure you aren’t putting voltages on the pins that are out of spec for the controller.
I thought about the bad PCB possibility too, but these came from a groupbuy (so 100s of kits bought) and it doesn't sound like anyone else is having this kind of problem.
Good point on the pin voltages. It's similar to the path I'm currently on - checking that all the IO pins are configured correctly. This shouldn't be a problem since I'm using the default firmware for the keyboard but I'm running out of ideas.
The most frustrating part is that I have already assembled one of these, successfully, about a year ago. Whatever my mistake is, its staring me in the face and I cannot see it.
Thanks for the suggestions!
Maybe you could flash the controllers again with the keyboard firmware?
You voltage readings seem odd, like you have a short between Vcc and gnd. Can you put an ohmmeter between vcc and gnd with everything disconnected? It should be open - megaohms or better.
Resistance between Vcc and GND points on the sockets (no ProMicro) is approximately 10MOhm. I'm still fixated on something going wrong with the IO pin configurations. I'm digging through the QMK source to better understand how/where that happens.
Now I have bent the pins from the promicro so they don't go into the socket. Only "connecting" pins one at a time to see if I can figure out which pin(s) is the problem. So far it has run overnight without issue with Vcc and GND.
Also have a usb volt/current meter on the way to see if there is evidence of a short there. The computer ports aren't complaining so I somewhat doubt that.
You perhaps didn't get the wrong ones shipped to you? I don't have one, but it looks like it would be difficult to tell them apart from pictures on the SparkFun website. They do have a marking for 3.3V or 5V but it looks like someone just uses a sharpie on it so they could be easy to mix up.
3.3V - https://www.sparkfun.com/products/12587
5V - https://www.sparkfun.com/products/12640
I've been sent wrong stuff before on occasion so I figured it was worth a shot. Last idea: if you power the controller sans board, do you get any resets?
Barring something there, you are back where you started at - the PCB is borked.
It's all worth a shot at this point. I'm perplexed. Hence the very slow, pin by pin troubleshooting.
I've eliminated the program/firmware as the issue as well. I have flashed the promicro with a very simple Arduino sketch to simplify troubleshooting and make the LEDs blink so i cans we when it resets.
It looks like the controller would fit either way, so just checking.
I then straightened the RST pin and put it in the socket. The ProMicro reset itself after about 45min. Started it again and measured the voltage at the RST pin at 2.7V. Approximately 10min later I checked again and it was 3.5V. Took ProMicro out, bent RST pin, tried again, and its been fine for a bit. RST pin voltage on ProMicro is back at Vcc.
It is definitely something with the RST circuit on the keyboard PCB. Going to give it some more thought until tomorrow. One option is to just leave the RST pin bent. If I ever need to reset it to update the keymap, I'll just have to short the RST pin to GND right on the promicro instead of using a switch.
Such an odd and interesting problem.
I have now removed the promicro socket, the TRRS jack, and all the diodes. It continues to type random characters without any input from me.
I know you said the ProMicro has internal pull-up resistors, but I’d be curious to know what happens with an external pull-up.
I'm determined to figure this out. I'll end up with 3 keyboards of parts by the end of this.
I was using 99% isopropyl alcohol to clean the board after soldering but it wasn't cleaning well enough. I purchased some flux cleaner and after a quick spray, the issue went away.
I found this out by realizing that the last lily58 I built I used a flux pen instead of the flux paste I had used most recently. I assembled another board with the flux pen and it was fine.
I knew when I eventually found the problem it was going to be a funny/stupid one. Thanks for your help @Soggybiscuit .
For whoever stumbles upon this in the future, these were the products I was using.
Flux pen - MG Chemical 835-P
Flux paste - MG Chemical 8342
Flux cleaner - MG Chemical 4140