As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/
Options

Electronics/PCB problem - Voltage where there shouldn't be

BlazeFireBlazeFire Registered User regular
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

Posts

  • Options
    SoggybiscuitSoggybiscuit Tandem Electrostatic Accelerator Registered User regular
    edited May 2021
    BlazeFire wrote: »
    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

    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.

    Soggybiscuit on
    Steam - Synthetic Violence | XBOX Live - Cannonfuse | PSN - CastleBravo | Twitch - SoggybiscuitPA
  • Options
    BlazeFireBlazeFire Registered User regular
    The ProMicro has a 10kOhm resistor pulling up reset already to Vcc. It's possible that one is bad but I'm seeing the same problem across 3 different ProMicros and 2 different PCBs.

    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!

  • Options
    SoggybiscuitSoggybiscuit Tandem Electrostatic Accelerator Registered User regular
    BlazeFire wrote: »
    The ProMicro has a 10kOhm resistor pulling up reset already to Vcc. It's possible that one is bad but I'm seeing the same problem across 3 different ProMicros and 2 different PCBs.

    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.

    Steam - Synthetic Violence | XBOX Live - Cannonfuse | PSN - CastleBravo | Twitch - SoggybiscuitPA
  • Options
    BlazeFireBlazeFire Registered User regular
    I've reflashed firmware many times to no avail. :(

    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.

  • Options
    BlazeFireBlazeFire Registered User regular
    edited May 2021
    So I have been doing a bunch of trial and error testing. Setting IO pins to inputs/output in various combinations. Everything I have tried still resulted in resets.

    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.

    BlazeFire on
  • Options
    SoggybiscuitSoggybiscuit Tandem Electrostatic Accelerator Registered User regular
    So, just noticed that the ProMicro comes in 2 specs - 3.3V and 5V.

    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

    Steam - Synthetic Violence | XBOX Live - Cannonfuse | PSN - CastleBravo | Twitch - SoggybiscuitPA
  • Options
    BlazeFireBlazeFire Registered User regular
    It's the 5V version. I have checked Vcc and it is 4.5 to 5V. Also I can see from the oscillator markings that it is a 16MHz crystal (the 3.3v version comes with an 8MHz).

  • Options
    SoggybiscuitSoggybiscuit Tandem Electrostatic Accelerator Registered User regular
    BlazeFire wrote: »
    It's the 5V version. I have checked Vcc and it is 4.5 to 5V. Also I can see from the oscillator markings that it is a 16MHz crystal (the 3.3v version comes with an 8MHz).

    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.

    Steam - Synthetic Violence | XBOX Live - Cannonfuse | PSN - CastleBravo | Twitch - SoggybiscuitPA
  • Options
    BlazeFireBlazeFire Registered User regular
    If I remove the pro Micro from the keyboard PCB and power it up, there are no issues. Thing will run for days without interruption.

    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.

  • Options
    SoggybiscuitSoggybiscuit Tandem Electrostatic Accelerator Registered User regular
    One more thing - you don’t have the controller upside down in that socket by chance, do you? If you did, based on the ProMicro pinout, it would put reset connected to ground.

    It looks like the controller would fit either way, so just checking.

    Steam - Synthetic Violence | XBOX Live - Cannonfuse | PSN - CastleBravo | Twitch - SoggybiscuitPA
  • Options
    BlazeFireBlazeFire Registered User regular
    No, I have it correct. Luckily I had the working board to use as a reference there.

  • Options
    BlazeFireBlazeFire Registered User regular
    So I did a series of tests where I bent a bunch of the ProMicro pins and taped the sockets so that only certain pins would go into the socket. I started with just Vcc and GND, and slowly worked my way up to all the pins being straightened and put in the socket. I left RST for last. ProMicro was fine at each step for anywhere between 30-150 minutes.

    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.

  • Options
    BlazeFireBlazeFire Registered User regular
    I have yet to solve this 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.

  • Options
    SoggybiscuitSoggybiscuit Tandem Electrostatic Accelerator Registered User regular
    BlazeFire wrote: »
    I have yet to solve this 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.

    Steam - Synthetic Violence | XBOX Live - Cannonfuse | PSN - CastleBravo | Twitch - SoggybiscuitPA
  • Options
    BlazeFireBlazeFire Registered User regular
    There is a new chapter for this. I ordered replacement PCBs. I ONLY soldered a ProMicro to the PCB. The same thing happens. I'm back to questioning whether it is something with the ProMicros I have. I have now ordered another batch of them.

    I'm determined to figure this out. I'll end up with 3 keyboards of parts by the end of this.

  • Options
    BlazeFireBlazeFire Registered User regular
    edited July 2021
    So I have a resolution to this. It was flux residue. It was not visible to the naked eye.

    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

    BlazeFire on
Sign In or Register to comment.