MK-312BT Failure 20

I’m sorry to start this new topic, but my intellect is over. I have a problem with the revival of the MK-312BT. I’ll be glad if someone more experienced helps me to discover the cause of the problem. After turning on, “failure 20” will appear.
Here are the facts:
I use DPS version 1.3B
The BT module configuration firmware has worked smoothly. (
I measured voltage on the voltage regulators. In tolerance. The battery is charging well.
I replaced the battery with a laboratory source. I have tried different levels of tension.
He checked and recalculated the voltage dividers, the battery and the power adapter, by the processor.
I checked the processor’s programming fuses. (low: 0xFF, high: 0xDC)
I replaced the LTC1661 circuit with the MAX548 circuit. (of course in the right hole)
I have checked the proper casting and orientation of powerful MOSFET transistors.
I have tried different firmware resources: (I’ve compiled this firmware in a virtual Linux machine according to the instructions.)

I understand Hardware well, but I do not understand programming very well, and the assembler is not my friend.
It would be helpful if someone explained to me in more detail the meaning of the fault code 20, so that I could jump from something.

Thank you very much for every subject.

Can you post high rez photos of your populated boards?

Also, if you’ve got a scope handy, can you probe across the current shunt on startup and post the waveform?

Unfortunately, I only have an old analog oscilloscope. I can provide measurements from my multimeter.
When switched on, peak battery current is 144mA, while the response time of the multimeter is 100ms.
When switched on, peak battery current is 3.77A, while the response time of the multimeter is 250μs. (charging capacitors)
The steady battery consumption after switching on is 54mA.

Pictures here:

During initialisation the processor will send increasing pulses to both outputs.

These pulses cause voltage spikes across the current shunt (R30) which are measured by PA0 (pin 40).
If PA0 measures nothing or unexpected values you will see Failure 20.

The probe is connected to PA0:

What you can do with your scope is check after start up for activity on the outputs of U8, U10 and the gates of the mosfets.

Replace resistors R35 and R46 these should be 200k.

Yes. I’m stupid I did not notice the assembly. I took the packaging components and trusted vendors that the values on the packaging match the content.
After replacing resistors everything works as it should.
Thank you very much for all that helped me to clarify this problem.

You’re welcome! I’m glad that it works.

Hi, I’m currently also running into the failure 20 and after two evenings of trying to figure out what’s causing it I’m absolut clueless.

If i mention in the bottom part that something seems to be normal to me it’s just my impression. It’s my first unit so i could be wrong and the behavior is not normal

First the Board (latest 1.3): (24 pin header is the wrong way, but i fixed that with the cables)

Some things i’ve checked:

  • Display and Leds work perfectly fine, but i get Failure 20
  • things like low battery warnings work
  • Tried it through the DC rail as well as through the battery connector
  • the 5V and 12V pins on the top provide the equivalent voltage (5.1 and 11.94V)
  • 7805 LDO = 5.011V
  • 7809 LDOs = 8,90V
  • went two times through the resistors in the Mosfet / LDO area and couldn’t find any fault.

When I hooked the Scope to the PA0 Pin on the Atmega it looked much different

So next I measure the 520N and the IRF9Z24 fets. All have 8,9V at the drain pin

Some scrope images from the gate pins

Both IRF fets (Q3 and Q6 look normal to me. Gate ~6.1V, Drain and Source 8,9V

(looks similar on both so i post just one of them)

520N Q2 and Q1 (for Channel 1) seems to be also normal (?)

(again both look the same)

But with Q5 and Q4 (for Channel 2) my headache begins

(they look both like that)

So next im measured the PB Line/Pin on the Atmega and the Gate of the 520N together

Channel A example like Q3 (yellow) and PB2 (blue)

Channel B example of Q5 (yellow) and PB1

That signal is so low and short that i’m not even sure it’s a real output of the Atmega

So now I’m really confused. If Channel A works as intended (which I guess, but don’t know), why don’t i get any signal from PB0 and PB1 to the mosfet gates of Channel B?

Or does the software check one channel after another, so there is a problem in Channel A which i don’t see so it doesn’t even trigger the test on Channel B?

I hope this post didn’t got too long :smiley: Any help or suggestion appreciated.

Hi, maybe a silly idea but do you have right transformers with right secondary impedance? Do you have a correct value of current sensing resistor?

Hi, thanks for the reply. The transformers are the ones that were listed in the BOM list so they should be right. I’ve double checked the resistors and they’re correct too - i’m just not sure how much tolerance the failure check routine allows?

I’m currently building a second unit and just wait tor the second set of transistors. My hope is that the second one won’t get failure 20 so i’ve a working unit to do some A/B measurements - that would help a lot. If i should figure out what the problem was i’ll update this :slight_smile:

My cheap component tester showed a much higher Gate Threshold Voltage on the Fets than it should be. I’m not sure how accurate the readings of those component testers are, but maybe my FETs are the problem.

I was surprised you have right transformers because they are out of stock at Mouser - I had to use 42TU series. I am still waiting for a few components so hopefully it will work.

My component tester measures this on transistor out of the box (ESD safe box :slight_smile:):
IRL520NPBF Vt=1,86V
IRF9Z24PBF Vt=3,58V

I was lucky enough that someone else gave me the first set of transformer. The second set for board two I got from Someone from UK is selling a few there - not the cheapest (paid like 18€ for two shipped to Germany) but better than waiting months.

My second board works now so now i can do some A/B measurements between the working and non working board. My first obversation was that i measure a difference on R34. On Both boards i measure ~5V on the top pad of the resistor, but on the bottom it’s 4.1 on the working board vs 4.3/4.4V on the
non working one. If I remove the LM358N underneath i measure 3.3V on both. I’ve swapped the L358N but they’re both fine so the issue has to be somewhere around it.

I finished my MK-312 today and I also get Failure 20. Incredible… i started my own topic with measurements.

I want to share my experience.
I found the source of my failure 20:
2 DAC 1661 was installed, only 1 is necessary !
Now, 1 socket is empty, but the board is ready!

how is that even possible? :grinning:

I put 2 LTC1661 for U8A and U8B.
Now, only U8B.
The BOM file wasn’t so clear…:yum:(i’m french)