Custom Pro Micro PCB not working

I am currently working on a custom head unit for my truck, and am currently on making the vacuum fluorescent display's driver PCB. I have run into an issue with that however.

Basically, the bread board version is using a pro micro (a clone of SparkFun's board), is multiplexing the display with x3 Max6921-AWI's. The circuit from the board to the multiplexing chips is fairly simple and not what I'm having trouble with. What The issue is, is that instead of making my PCB accept an already existing pro micro board, I wanted everything to be contained on one complete PCB. Or in other words, recreate the accompanying circuitry for the AT-MEGA32U4-MU, as per SparkFun's Schematic.

Sparkfun is kind enough to provide their official schematic online for download. Which is exactly what I did to start. From that I just added my circuit around that, exactly how it is wired on the breadboards. When I solder everything pertaining to the micro-controller, I have nothing but issues. Initially power surge errors on my PC. Found there was a short on the USB connector. Fixed that, and then the fuse burned up. I decided to abandon that first test board, and replaced all the parts on one of the other PCBs I got, was exceptionally careful that nothing was shorted. Probed everything prior to plugging it in just in case I had killed something with the previous one. Instead of power surge errors, I just got my computer claiming that it didn't recognize the device, and the actual processor just started heating up like crazy.

I dont understand what is wrong. The accompanying circuitry for the processor is identical to manufacturers specs, and the parts come from existing and working pro micro clones. With not soldering my driver circuit to it, it is no different then just your average pro micro development board. Further, the processor, crystal, chip, and tantalum capacitors were pulled from already working pro micro(s). So the two chips I've tested already have their bootloader installed. Its also noteworthy, that at no point had any LED lit up.

The only modifications made to the pro micro schematic are:

  • I removed the open gap for the 3.3v option
  • I added a push button to bridge reset to GND incase I brick it with a code error (not soldered, nor does it influence when not actuated)
  • The USB port having an extra pin is just because the one I used from Molex has a 6th which is just the body mount. Per their datasheet, it just gets connected to GND

If anyone has any idea what the issue is, please let me know

My Schematic

SparkFun's

Hi, @cpt-weird_makes
Welcome to the forum.

Can you post Exported image of your PCB pattern please?

Thanks.. Tom.... :smiley: :+1: :coffee: :australia:

Sure.
Hopefully these show what you're needing.



If there's anything else you need just let me know

Hi, @cpt-weird_makes
Thanks for the PCB layouts.

You might be better off, adding a major component at a time and testing your board for current load problems as you go.

For example, JUST solder your power supply components and verify the voltage rails.
Then add the 6921's ,ONE at a time, power testing each time.

Make the addition of the controller the last thing, but before soldering it in, check the PCB pads for correct supply voltage and ground at the relevant pins.

Can you post some images of your project?
So we can see your component layout.

Thanks.. Tom.... :smiley: :+1: :coffee: :australia:

Welcome!

With SJ1 out of the circuit you are applying whatever voltage you connect it to the components on the board. Is simple terms you have no voltage regulation. Since you mentioned truck I assuming you connected it to either 12 or 24 volts, that would make a heater out of it and fry the components.

That jumper selects 3.3 or 5V input.

Thanks for the response @TomGeorge .

That is what I have been doing up until this point. None of the MAX6921's a have been connected. I hadn't tried plugging it in without the ATMEGA installed. Regardless, here are some photos.

I am aware that the fuse is a resistor at the moment. I just did that because when I ordered my components, I meant 10 fuses, but only ordered 1. So I just put a resistor with similar resistance in its place. Additionally, I messed up with the package size and capacitor type for C19 and C13, and ended up getting ceramics instead of tantalum. I dont know how much that would affect things, but nonetheless, that's why the tantalum caps that I pulled off an existing clone are connected that way. I tried with both them and with the ceramics I had mistakenly ordered. No difference


In response to @gilshultz, I was unaware of any "SJ1". I never came across that in my research when designing this board, but this is, and will be powered by 5V. This PCB is exclusively for programming and multiplexing the AIWA display. Ultimately it will just receive UART display information from the parent motherboard, which will have all the power regulation for every daughter component. Regardless, this daughter display driver will be 5V at any stage of this project

Edit: I know this is typically not the style of oscillator crystal to use with a pro micro clone, but it was all that I had. I dont know if that would cause issues in general, but as far as the over heating business, it has identical behavior regardless if its connected or not

Exactly what is the resistor value ??? :face_with_raised_eyebrow:

Is there a particular reason you choose that Arduino board? Do you need native USB to connect to some other device, like a small computer or something?

If not, might have been easier to use an ATMEGA328. If you don't need 16MHz, you can run using internal 8MHz clock, avoiding the need for a crystal.

~330 Ω.I figured really crude fuse alternative. I believe the fuse was ~300Ω.

As far as I know a fuse is close to 0 Ω.

Let's assume that the current through the resistor is 10mA; that results in a voltage drop over the resistor of 10 x 330 = 3300mV (3.3V).

Yes. The software for multiplexing the VFD is done enough that I have an alphabet made, as well as the audio visualizer. But I still am going to need to make some tweaks once I get the software on the motherboard more finalized. For example, I still need to make an open CD animation for when wanting to eject. I had pro micros laying around, and so that's what I built the prototype around. And I wanted to stick with them because their specs are exactly what I need. (8 ADC pins for reading the RC band pass array from audio out, and I also need the speed because this is a very large and complicated VFD. If I remember correctly, it has just shy of 60 pins. As is I had to optimize the code like crazy so not to affect the displays brightness from a bogged down duty cycle

Basically, it is perfectly between powerful and fast enough for multiplexing the display, yet light weight enough that its not overkill

For context, this is the current prototype, and what this PCB is supposed to be driving:

(The ESP32 is just what's giving it the information to display. Its just sending the string "BEACH RADIO" over UART. It is otherwise not relevant)

See, that's what I had assumed too. Yet when I tried to just directly jump it with no load, it was throwing the power surge errors. Whereas with it, I just get "USB device not recognized", and a burning hot processor. I guess when the fuse burned it gained a decent amount of resistance. Either way I can try just directly jumping it again for testing purposes.

That processor is now probably toast.

Ok. But what I'm confused by, is that this is now 2 in a row. Nothing else is different. Clearly there has to be some common variable here.

Just out of curiosity, do you know if using the ceramics instead of the tantalum caps will work? Because I have another pro micro clone that uses ceramics instead. Additionally, if the issue is that this processor is dead, would any of the LED's not light up still? Regardless of the functionality of the processor? Because at no point have any of them. Even when I use ones from an existing board.

One just generic question. When I pulled the processors off of their existing and functional boards, neither of them had any pad for pad 45 (the big sink on the back of the chip). While I was exceptionally careful to not short anything with the most recent chip I soldered, I did add a little bit of paste to the large contact, as the footprint I used had that. Its not connected to anything, but I'm wondering what the likelihood of the surface pressure when soldering, made it squish out near the outmost edges, and is jumping something underneath the chip. Because I cannot see any jump, nor with what I probed detect one. But I cannot probe every possible combination of pins. Would it be worth just removing that chip and replacing it with one that I know is good?

Further, is there any chance that their identifying mark is on the wrong corner, since they're likely not legitimate chips?

A ceramic capacitor is vital to making it work. You should never use a tantalum capacitor across a power supply.

This is because when a tantalum fails it fails to a short circuit and that can cause a fire. At one place I worked it was a sackable offence to do this.

So then possibly dumb question, but why do the official ones? As well as most clones? And if the schematic is setup around them being polarized, does using non polarized ceramics mess with that?

I have no idea what you mean by official ones?

There is a whole lot of crap out there on the internet? If for example you wanted to register a product for UL certification using a tantalum across a supply would be an instant failure.

No no. I mean like the pro micro that sparkFun sells, that's based off of arduino's micro

Sorry still don’t understand, can you post a link to such a. board showing a tantalum across a supply, because it will be wrong.

A ceramic capacitor is also vital because it can handle a much higher range of frequencies than any other type of capacitor.

Once the frequency applied. To a circuit exceeds the capicitive reactance then the component (the capicitor) starts behaving like an inductor. And so is useless for the task.

See Proposed tutorial on Decoupling