Go Down

Topic: Motor Test Station (MTS) (Read 6863 times) previous topic - next topic


I am building a Motor Test Station (MTS) which allows to test different motors and decide which one to use for Arduino based robot project.

In thread Is ther an Arduino command interpreter running on Arduino already? I Iasked for a command interpreter on Arduinbo and described what I had done wrt MTS sofar.

I learned about Bitlash and that is perfect to test the motor setup (Arduino, L293D controller, motor, power).

Quite some time I tried to get ESP8266-01 in addition or as replacement onto MTS as well allowing wireless interactive control of speed and direction. I had to give up because of motor voltage spikes resetting the Wifi chip, see thread HOW TO SECURE ESP8266-01 FROM MOTOR VOLTAGE SPIKES? -- although it was really nice to wirelessly telnet through ESP8266-01 into Bitlash running on Arduino(!).

Today I completed first real Arduino controlled run (youtube link):

The fully mounted autonomous control consists of:
  • 12V motor is driven by L293D motor cotroller
  • In fact 12.42V by 3 fully loaded 3.7V LiPos
  • Arduino Nano controls L293D
  • 5V Arduino powered by 3.7V LiPo fully loaded with 4.16V

Program loops PWM from 80 to 160 in single steps with a delay of 50ms, then it waits for 10 seconds at 160 and then stops the motor (while entering blink LED mode).

The whole wooden arm with mounted stuff does weigh 75g.

You can hear at end of video that the wheel is bumping and therefore has no 100% ground contact.

Although 75g weight single frame analysis by rowvid.com shows
  • 2.5 rps or 150rpm
  • with 1.33m per round gives 3.325m/s or 11.97km/h

Because of high speed and no remote access to MTS I did add safety glass to MTS for my security in case things break and fly around ...



Making use of Arduino Nano ICSP for 5V and GND allows to get rid of a mini breadboard (12g) resulting in 63g.

Same program, no other changes, higher speed.
Again measured with single frame analysis on rowvid.com.

12.75 rounds in 4.60s gives 2.77 rps or 166.3 rpm, with 1.33m per round gives 3.68m/s or 13.27km/h.



I think you are testing the wheel as much as the motor!  Do you measure the motor current?
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


> I think you are testing the wheel as much as the motor! 
 :)  I decided on the (slowflyer) wheels when I was targeting the whole Arduino robot to be less than 30g in weight, including two motors. If going with the 3 times more torque one (18g per motor vs. 8g vs. 3g) perhaps different wheels would be better ... that is what I want to use MTS for, test first and build "asurano" then (Arduino Nano robot similar to Asuro).

> Do you measure the motor current?
Not yet. Do you mean with analogRead() and store until motor stopped?
(I have given up on Wifi connect)


Here is the technical data for the current 12V motor I test, text is German but you should get the information:

I already have a 15V motor that has 3 times the torque as the 12V one:

Even the micromotor I tesed 1st was able for 200km/h idle speed -- but it did not start in MTS :)



Jun 24, 2015, 07:39 pm Last Edit: Jun 24, 2015, 08:51 pm by HermannSW
Before increasing PWM above 160 I eliminated last remaining mini breadboard (-12g) and replaced it equivalently by soldering solution (+1g) resulting in 52g total weight.

Wow, new youtube video analysis with rowvid.com really surprised me:

12 rounds in 3.16s is 3.80rps or 227rpm, with 1.33m per round for the wheel this is 5.05m/s or 18.18km/h(!).

And this is not my fastest motor, and runs at only PWM=160, there is still room to PWM=255 ...

So I have reached my target of 5m/s with ease and will now try to find out how much faster is possible. The real robot will have 2 motors which I would suspect will increase max speed also.

[5m/s because speed of 3.1m/s on average(!) seems to be state of the art currently, initial run of this video ]

(animated gif created with gifsicle at original speed)



I would just calculate the speed from the motor speed and the wheel radius...  Surely that's easier?
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


I want to measure the real sped, not some numbers from motor spec.

I completed the runs for this motor with PWM=200 and PWM=255 max.

up to 200:
10 rounds in 2.40s is 4.17rps or 250rpm, wheel round 1.33m gives 5.54m/s or 19.95km/h.

up to 255:
12 rounds in 2.76s is 4.35rps or 260.9rpm, wheel round 1.33m gives 5.78m/s or 20.82km/h.

The 3 LiPos providing power to motor had 12.10V.

Not the 200km/h idle speed, but the motor had to move 52g and >20km/h is good.



Would it improve things if you moved the pcb etc on the arm back towards to pivot point and beyond to give you some balance in the spinning axis.
I'm not up on the dim years of my physics 101 , but concentrating the load around the pivot point should reduce the angular momentum as well.

Unless you need the load to help with traction.

Tom.... :)
Everything runs on smoke, let the smoke out, it stops running....


For speed measurement, put an LED on the arm as far out as possible, pointing down.
A photo-transistor in the test bed can detect the passing LED and using another arduino, calculate RPM and hence motor shaft speed and arm tip speed.

Tom..... :)

Everything runs on smoke, let the smoke out, it stops running....


Jun 25, 2015, 01:18 am Last Edit: Jun 25, 2015, 01:32 am by HermannSW
The LED tip is good, I did plan to build a light barrier for rpm counting myself.
Unfortunately I have killed one of my photo resistors and cannot find the other ...

On load at pivot point -- I did what you proposed:

I depened the 3 LiPos for the 12V and put everything besides the motor to pivot point.
It was really good that I took a video!

To my surprise the load went to the outside at very high speed, and continued to work as programmed!
See youtube video with quarter speed:

I will try again with better fixation of load tomorrow, its late here (in Germany).

Thanks to my slow android video camera this picture shows exactly the moving out of load from pivot point (watch the LED)!

Slighty faster than before (before loosing load), 268.66rpm compared to 260.9rpm, or 21.44km/h.



Thank you so much Tom -- pivot point mass concentration gave 20% max speed boost !

Added a small wooden piece with superglue onto the moving wooden arm in order to prevent Arduino and LiPos moving away from pivot point.

I killed 2 Arduino Nanos by loose cables and 12V getting in contact with what it should not -- good that I had 3 Nanos (OK, have several Pro Minis that can be used as well). You can see small on/off switch below the Arduino that allows to live safely without removing cables for powering on/off.

The pivot point Tip from Tom gave another 4km/h max. speed! (youtube video)

11 rounds in 2.12s gives 5.19rps or 311.3rpm.
And wheel with 1.33m per round runs 6.90m/s or 24.84km/h!



If your motor has a spec and you have a reasonable idea of the load torque, it will give you
the right numbers within the tolerance you'd expect.  Sizing motors is not rocket science
really!  Its finding the datasheet for a small motor that's the trickiest part.

You have a good testbed there for a smooth flat surface, but usually its the lumps, bumps
and slopes that place the most demands on the drivetrain - check you have the torque
and power needed for the worse incline too.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


Hi Mark,

I provided link to (12V) motor specification above, but here is a better photo:

Spannung: voltage
Leerlauf: running idle
Strom: current
Maximaler Wirkungsgrad: maximal degree of efficiency
Drehzahl: number of revolutions
Stromaufnahme: current consumption
Drehmomemnt: torque
Abgabeleistung: output power
Effizienz: efficiency

The wheel is the 48mm diameter one of these.

Calculating with 17.500 rpm gives:
π*0.048*17500 = 2638.9 m/min

What I have measured is:
6.90*60 = 414.0 m/min

So what to do with above motor specification?
How to take the weight (52g here) into account?
How the mass distribution on the wooden rotating stick?



The wheel is the 48mm diameter one of these.

Calculating with 17.500 rpm gives:
π*0.048*17500 = 2638.9 m/min

What I have measured is:
6.90*60 = 414.0 m/min

So what to do with above motor specification?
Well I'd first calculate the velocity and force at the wheel rim, getting
v = 42 m/s, F =0.03N

Hmm, 0.03N is not enough force for anything really (3gf)!  Clearly some gearing
is needed (which of course it always is with a small motor as torque is limited
by motor volume)


How to proceed?

1) Work out the worst case torque (at the wheel) needed for inclines, acceleration that you need.
2) Work out the max speed (at the wheel).
3) the product of those two gives the power you need for the motor, but you'll
need to add 50 to 100% to allow for transmission losses if you use gears/belts.
4) with the gearing and wheel radius you can then map that to motor specifications,
and thereby select an appropriate motor.

Lets say I have 200g load I want to drive up a 1-in-10 incline worst case - thats
0.2N at the wheel (weight force x 0.1).  With two motors you share that, so
0.1N per wheel.  Want max speed of 5m/s, then power needed is 0.5W per motor
(double for good measure as will use gears, 1W motors).

Say a 20mm radius wheel, so torque = 2mNm, angular velocity 250 rad/s (2500rpm).

You motor can only do 0.7mNm, so lets assume 5:1 reduction gearing, gives it
3.5mNm and a angular velocity of 350rad/s.

Its rare that you can avoid reduction gearing of some form in a small motor - your
system is overloading your motor completely I think, so the motor can't get
close to its max speed - you are likely overloading the windings as it struggles to
supply enough torque.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


If you want to get that rig going faster you need to reduce the friction at the pivot and try to reduce the air resistance.  Remember that the force that moved things to the outside is also acting on the pivot and increasing the friction there.

If you don't believe the motor specs and want to test the motor you need to make a dynamometer.

Retired after 40 years as a chartered engineer working mostly with RF and analogue electronics.

Go Up