Go Down

Topic: CAN'T get enough current!!! (Read 391 times) previous topic - next topic


hi everyone
I am working with a thermal printer, and I am using Arduino Uno. everything works well but I have a weird question: WHY DOES IT WORK!!! :o  :o  :o

here is the thing: each pin of Arduino is max 40mA tolerant, and as you can see in the datasheet of the thermal printer below, the motor needs 300mA per phase!!!! and we well know that 300>>40!!!

again the quality of the print is not well enough but the heat elements only consume 55uA which you know 55uA<<<40mA!!!!

I am totally confused! can any one help here???


Dec 22, 2019, 07:44 am Last Edit: Dec 22, 2019, 08:27 am by raschemmel
This is a common question, and the solution is simple.
You must supply an external power source and then use the arduino outputs to drive that source with a mosfet. Unfortunately , you have not stated what voltage you need for the printer.
If it is 5V, then you can use an LM7805 as the power source.

A mosfet (N-channel or P-channel) can be driven by an arduino output.

Driving devices that require more current than arduino output pin

The voltages shown for the devices in the two examples can be whatever you need, (ie 5V).
If your printer needs 5V then a mosfet is a better choice than a transistor .

If you need 3.6A @ 9V then you need to supply a 9V/5A power supply as the power source for the

If the printer can't operate at only 9V then you will need an adjustable 5A power supply because 9.5V
is not a standard value.

Alternately, you can use a 12V/5A fixed power supply and step the output of that down using a buck dc to dc converter.

again the quality of the print is not well enough but the heat elements only consume 55uA which you know 55uA<<<40mA!!!!
Not sure how this is relevant , in view of the following:
he motor needs 300mA per phase!!!!
(so who cares what the elements draw ? (if it's that small)


Dec 22, 2019, 09:40 am Last Edit: Dec 22, 2019, 09:41 am by raschemmel
thanks for your help and advice, but still I don't get it!
how can the motor turn when it draws more current than 40mA???
The printer can't operate from the arduino output pin.
The current it requires is supplied by the external power supply , which is switched by the mosfet
in link I supplied:
This link

(Disregard the +12V motor voltage, and substitute your 9.5V motor voltage.)

As you can see, the  motor is NOT powered by the arduino output pin.
Is powered by the 9.5V supplied by the dc to dc buck converter which is powered by the 12V power supply.
(reread my last post)

The arduino ouput pin drives the mosfet.
The code does not change. The same output pin that you previously had the printer connected to is
now connected to the mosfet gate.
The printer motor that was connected to the arduino output pin is now connected directly to 9.5V
on one end and the mosfet drain on the other.

If you only have access to one side of the motor and are not able to rewire it the way it is shown, then
you can use a P-channel mosfet as a high side switch

Here is a logic level P-Channel Mosfet that can switch the 9.5V when placed between the 9.5V supply
and the motor .
The arduino output goes to the mosfet gate pin.
FQP27P06 datasheet


Since you've told us nothing about how everything is connected and powered we really can't have any idea why it works. It may be that you've accidentally done something right or it may be a question of how long will it work for since things don't always die immediately when you exceed a limit.




Dec 23, 2019, 10:35 pm Last Edit: Dec 23, 2019, 10:37 pm by MarkT
That excerpt mentions both logic and heater supply currents - so the printhead has logic inputs, which you can drive from logic outputs no problem.  Its clearly got internal drivers.

Please provide full information on the hardware, not just an excerpt, there will be other issues that are easily spotted (for instance is everything controlled from logic inputs?).
[ I DO NOT respond to personal messages, I WILL delete them unread, use the forum please ]

Go Up