0
\$\begingroup\$

I'm trying two design a bionic prosthetic hand adding control and movement to an open-source Thingiverse mechanical hand.

The main is to move two MG995 when a muscular contraction is performed (reading using myoware adafruit sensor.) The proposed circuit has two 18650 batteries of 2200 mAh each of it, two charged modules TP4056 (one of it for each battery), a voltage step-up MT3608, a Bluetooth module, and an Arduino Nano for control.

The development was proposed using two PCB circuits: one for control (Arduino, myoware, and Bluetooth) and the other for power (2-TP4056 and the MT3608.) Two 18650 batteries are connected in parallel.

The output of the two batteries (3.7 V) after passing through the TP4056 is connected directly to the two servomotors power and to the MT3608 (which boosts the voltage to 10V and feeds the Arduino board through Vin, Arduino regulates the voltages and power up the Myoware and the Bluetooth board through the 5V pin.)

Between the two positives outputs of the TP4056, there is a switch that should be turned off when the batteries are charging (the batteries stop being in parallel mode, and each TP4056 charges each battery, but the input of the TP4056 is always in parallel.)

There is another switch that turns off / on all the circuits after the TP4056 modules.

I attach the schematics of the circuits.

POWER CIRCUIT

CONTROL CIURCUIT

Power and control cirucit TOP

Power and control bottom

To power 1 servo everything works perfectly, the voltage goes down 1 volt when its moves. The problem is that when I connected the two servos (connected, not even moving) both start jittering and no moving.

Measuring the voltage in the servo input when two servos are connected, I realize that the voltage goes down from 3.7V to 2 volts when they jitter.

I decided then to add another MT3608 between the two TP4056 and the servos boost the voltage from 3.7 volts to 7 volts. The problem still continued, moving perfectly with 1 servo but jittering when both servos were connected.

I decided to increase the voltage from 3.7 to 12 volts and decrease it with a voltage regulator to 7 volts again. It was worse, even not 1 servo has enough power to move.

I thought that the problem was related to the TP4056 module, so I connected the output of the two batteries directly after the TP4056, bridging it, and the problem continues.

Hope you help me guys, have no ideas left.

If you have any other recommendation, all corrections are recived.


UPDATE: I connected 4 18650 batteries in parallel directly in the power input servos. The 4 batteries feed directly the servos (with 4.2 v when charged) and power the MT3608 (which elevates the voltage to 5 v to Arduino, instead of 12v like the first). There is not any moving, even when just 1 servo is connected!!

\$\endgroup\$
3
  • \$\begingroup\$ Note that I keep hearing rumors about solid-state "glass" batteries which will probably be the next big thing someday. When that day comes, power/weight/volumetric efficiency will be much improved for this application. \$\endgroup\$ – rdtsc Feb 10 at 19:29
  • \$\begingroup\$ Have you considered some sort of mechanical advantage for the motors? Such as gear reduction. If you can gear 2:1, the motors will draw about half the current. \$\endgroup\$ – rdtsc Feb 10 at 19:35
  • \$\begingroup\$ @rdtsc there is not any effort to the servos right now, just moving. I will take it for the next stage. \$\endgroup\$ – Francisco Lopez Caracheo Feb 11 at 14:55
4
\$\begingroup\$

The problem is simply that you have too much load for your batteries.

Battery voltage drops when you draw too much current (when the load is too heavy.)

Boosting the voltage draws more current from the battery, making the battery voltage drop even more.

Every voltage booster you add just makes the problem worse.

You need a battery that can deliver more current. More 18650 cells in parallel, or just a bigger battery.

The voltage to the Arduino can be lower, as well. You are boosting 3.7V to 10V, just to throw power away in reducing the 10V back down to 5V on the Arduino.

Boost the battery voltage to 5V, and power the Arduino over the 5V pin.

\$\endgroup\$
5
  • \$\begingroup\$ And use 10V or 12V batteries for the motors directly. The less voltage manipulation, the better. \$\endgroup\$ – rdtsc Feb 10 at 19:27
  • \$\begingroup\$ The servos are unfortunately only rated for a maximum of 7.2V - and a minimum of 4.8V. They don't really match lithium cells very well. \$\endgroup\$ – JRE Feb 10 at 19:30
  • \$\begingroup\$ MG995 servo draws ~2A peak, even when barely moving. Wire your cells in series and regulate down to 6V with a 5A 'BEC' (DC/DC converter). Power the Arduino etc. from a separate 5V regulator. \$\endgroup\$ – Bruce Abbott Feb 10 at 20:30
  • \$\begingroup\$ I connected 4 18650 batteries in parallel directly in the power input servos. The 4 batteries feed directly the servos (with 4.2 v when charged) and power the MT3608 (wich elevates the voltage to 5 v to arduino). There is not any moving, even when just 1 servo is connected! \$\endgroup\$ – Francisco Lopez Caracheo Feb 11 at 14:53
  • \$\begingroup\$ 18650 cell puts out 3.7V nominal. This is way below the minimum operating voltage of an MG955 (which is designed for 4.8~6V, ie. 4 to 5 Nicad/Nimh cells), so trying to run them from a single cell (or even several in parallel) is pointless. \$\endgroup\$ – Bruce Abbott Feb 11 at 20:31
0
\$\begingroup\$

Power quality is a problem and servo motors are very demanding when there is any position error. You must have a very low ESR in your power source.

Voltage boosters are a poor solution for servo motors from batteries because the output impedance is inherently increased and both voltage boosters and motors demand huge surge currents starting up.

You need low ESR voltage source batteries to run Servo Motors as the supply load regulation error (1V is very poor Load Reg% error) affects the position error noise (poor PSRR) and makes it unstable.

In biometrics all our muscles are push-pull with burst frequency and amplitude controlling the torque which is current in DC motors. But for Servo-motors current is proportional to the position error up to some limit.

I would choose a battery and motor from your design specs: e.g. 10% load regulation error worst case by design of the current control or overkill on the batteries.

Always start ANY design with better specs for V,I,R (& Zo,ESR,DCR) ,Pd, Ah and include tolerances.
Then choose parts a topology that you know will work.
Then choose the parts and verify assumptions.

If you wanted more power. Consider a BLDC gear motors rather than the cheap servo motor. But you must sense and control current for the acceleration ramp and position to be stable.

ideas https://openbionicslabs.com/tutorials (defunct)

https://www.actuonix.com/category-s/1931.htm (servos)

\$\endgroup\$
3
  • \$\begingroup\$ Thank you for your answer... The low ESR voltage source is, literally, a battery? or a capacitor? So, I have to put the ESR between the voltage booster and each of the motors? or in the input of the voltage booster? Could you give me a graphical example? I am very nobby with electronics.. \$\endgroup\$ – Francisco Lopez Caracheo Feb 10 at 19:05
  • \$\begingroup\$ I would suggest 6V or 12V Li Ion battery pack with enough Wh to do the job. Match the motors to the battery power avail \$\endgroup\$ – Tony Stewart EE75 Feb 10 at 19:14
  • \$\begingroup\$ Ideal Voltage sources have ESR=0 , so lower the better \$\endgroup\$ – Tony Stewart EE75 Feb 10 at 19:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.