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.

MK-312 PCB manufacture

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.

I tested my theory by disconnecting pin 40 and by grounding pin 40 of a functioning box. In both tests I got 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.

MK312BT Failure Modes 20 and 21

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