RoadTest: Microduino Quadcopter Kit
Author: robogary
Creation date:
Evaluation Type: Electromechanical
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?:
What were the biggest problems encountered?: The joypad joystick potentiometers were dead on arrival......all four of them open circuit ! It took 7 emails and a phone message to Microduino product support before shipping a replacement joypad, arriving 3 1/2 weeks after my 1st contact with them. While waiting for info, I continued deep dive, ordering repair parts myself, unsure if I would get the replacement joypad. On arrival of the replacement joypad, it had a malfunctioning TFT display. With 2 joypad kits, I was able to get one good joypad working. The kit is definitely DIY, no technical support available. On the first flight, after about 10 seconds of flying with the replacement joypad, the the black battery wire from the copter shield broke off. The wire looked like a defective circuit board insertion, The red battery pigtail broke off a short time later. Within a dozen test flights, the quadcopter has a bent propeller blade and a cracked motor housing. I continue to unsuccessfully look for replacement parts.
Detailed Review:
SUMMARY
Its a shame this quadcopter kit has a Road Test sample of one, as I wonder if others would have the same experiences as me.
The MicroDuino software works, as long as your hardware is good.
Building the kit was a bit frustrating, there are a couple versions of Wiki-instructions, none are all totally correct and made totally cookbook for the user.
Pairing and flying the quadcopter takes practice, it is definitely fun, but the copter is not mechanically robust.
Something broke on the quadcopter every other flight.
Be careful with your landings (in my case crash landings), finding replacement parts may prove difficult/impossible to find.
Please read my "Kaizen lost" section - every good thing about this kit was overshadowed by really annoying quality problems and surprises.
The kit is rewarding when overcoming obstacles and when you get to see the copter fly.
This kit is a good short term learning experience, not for someone wanting to learn to be a quadcopter pilot.
I dont think the kit is good for a 12 year old to build by themselves.
Enthusiastic teenagers/high schoolers might be OK (if they dont have to deal with the hardware issues I had to) for learning physics & coding.
You can write your own code, DIY, do experiments, and modify open source code - be aware, there is not enough information provided to write your own code until you reverse engineer the hardware, and/or reverse engineer software.
The MicroDuino IDE has some simple examples provided just like Arduino IDE, but they wont match with the quadcopter IO.
Its going to take me quite awhile to figure out the code :-) It is open source and fairly well organized, but not loaded with detailed comments to help us embedded system software amateurs.
Hack-ability and DIY requires sourcing 3rd party components, as the MicroDuino module & sensor offering is not targeted for the quadcopter kit application.
https://microduinoinc.com/diy-modules/ Strangely the Joypad code accommodates a GPS, but there is no GPS offering.
Refer to the details of this report for the quadcopter Core-RF IO map.
There are drone/FPV cameras available weighing less than 5g operating at 3.3V that could be added, selectable for 25mW .
I2C sensors or some analog time of flight or ping sensors for crash avoidance and/or automated soft landings would be an obvious selection.
Care must be taken with time of flight sensors for 3.3V Vcc and selecting the needed detection range.
FAQs (well what I think will be frequently asked):
1. How did your first flight outside go ? I have a learning curve, but thats part of the fun (can the copter survive your learning curve?).
Here is a video of my first outside MicroDuino quadcopter flights https://youtu.be/j0cxuHvIOtM
2. How much thrust can the quadcopter deliver ?
The quadcopter has plenty of kick, 183 grams of thrust for a 98 gram weight - see the video in details for the thrust measurement and the copter's controller IO map :-)
I wrote custom code to do this test. IO map and code provided in the details part of this report.
Watch the thrust testing being done here: https://youtu.be/ZxX-ZDTiwWg
3. How far can the quadcopter go ?
The quadcopter's radio control range is ....maybe about 250 feet.
After 250 feet, I couldn't track the quadcopter flight well visually and crash landed.
Watch the video of that test step: https://youtu.be/jVpMZSMUT3o
Kaizen lost......
You'll see in the details, most of the joypad IO is multiplexed to the controller. In the details, I've reverse engineered & published the Joypad controller IO map, the multiplexer IO map, diagnostic software to cycle the multiplexer, and display the IO values to the troubleshooter. Please see in details TROUBLESHOOTING THE JOYPAD section of this report. This task is likely beyond most youthful users.
The details:
MicroDuino quadcopter packaging protects the contents very well, is very professional and attractive.
Quadcopter ASSEMBLY: The quadcopter assembly instructions in the MicroDuino Quadcopter Quickstart Guide were better than the instructions published in the MicroDuino Quadcopter tutorial and instruction manual, however "obvious" steps were skipped and there were some corrections needed. It seems so much better to include a video to supplement the instructions. Assembly isnt hard, but with a good cookbook, would be useful for younger kids.
There were no useful videos on You Tube, so this Road Test gave me an excuse to make one.
Watch here: https://youtu.be/1M9Rekiy8DM
JoyPad ASSEMBLY: The Joypad assembly instructions in the MicroDuino Quadcopter Quickstart Guide were fairly decent, there were no useful videos on You Tube, so this Road Test gave me an excuse to make one. Assembly isnt hard, but with a good cookbook, would be useful for younger kids.
Watch here : https://youtu.be/mPm3s7_KlTM
JoyPad Operation: Description of the operator devices, and a live demonstration of the joypad pairing to the Microduino Quadcopter.
Watch here: https://youtu.be/CfY404ZGPyY
My first MicroDuino Flight Outside video: Watch : https://youtu.be/j0cxuHvIOtM
The quadcopter's radio control range experiment . The joypad can control the quadcopter to at least 250 feet away. After 250 feet, I couldn't track the quadcopter flight well visually and crash landed. Here is the video of that testing step:
WATCH: https://youtu.be/jVpMZSMUT3o
The Thrust Measurement Experiment : The quadcopter was mounted upside down on a scale for this measurement.
I created program called ThrustTest, it ramps all 4 prop speeds from 0 to top speed, hold for 10 seconds, ramp to zero, hold for 10 seconds.
Copter weight is 98 grams, thrust is 183 grams. ( 85 grams force for lift and acceleration)
Watch the testing being done here: https://youtu.be/ZxX-ZDTiwWg
Note the motor drivers are non reversing
Thrust Test Code:
/*
Turn Copter upsidedown on holding bracket, reseting on a appropriate ranged scale (postage weight, food weight scale )
Ramp up motor speeds to top for 10 seconds then ramp back down
The analogWrite() function uses PWM, so if you want to change the pin you're
using, be sure to use another PWM capable pin.
MicroArduino PWM pins : D4, D5, D6, D7, D8, D9, D10
*/
// the setup routine runs once when you press reset:
void setup() {
pinMode(D6, OUTPUT); //ORANGE A propeller
pinMode(D7, OUTPUT); //BLACK B propeller
pinMode(D8, OUTPUT); //ORANGE B propeller
pinMode(D9, OUTPUT); //BLACK A propeller
}
// the loop routine runs over and over again forever:
void loop() {
// increment motor speed slowly
for (int i=0; i <= 255; i++)
{
analogWrite(D6,i);
analogWrite(D7,i);
analogWrite(D8,i);
analogWrite(D9,i);
delay (50); // speed ramp 50ms = 12.55 seconds to top speed
}
delay (10000); // hold top speed for 10 seconds to get a good reading
for (int i=0; i <= 255 ; i++)
{
analogWrite(D6,(255-i));
analogWrite(D7,(255-i));
analogWrite(D8,(255-i));
analogWrite(D9,(255-i));
delay (25); // slow down fairly quickly but dont jerk the copter
}
delay (10000); // hold zero speed for 10 seconds to give me time to shut off power
}
Troubleshooting the JoyPad:
After building and downloading the quadcopter and the joypad, and trying for 1st flight, the joystick calibration didnt look like the instructions.
No matter what I tried, the joypad would not pair with the quadcopter.
The pairing relies on RF communication and recognizing the joystick movement.
The joypad TFT display had a signal strength meter, very nice, for sure there was RF detected when the copter was powered.
MicroDuino service was not helpful to troubleshoot a technical solution.
A DVM check on the potentiometer wiper voltage looked like all 4 pots were all open (2 per joystick).
That observation seemed unlikely, the joypad devices were reverse engineered and found to be wired through a multiplexer.
I wrote a simple program to sequence the multiplexer and display the values the joypad code would read.
The debugger program confirmed what my DVM read, none of the joystick pots were providing a variable voltage output at the wiper.
Finally to prove out the observation that all the joystick pots were open, I removed the joysticks from the joypad and checked with a DVM (confirming open again)
and finally temporarily cobbled in a joystick I borrowed from a Raspberry Pi project buried on my workbench.
Voila !!!!!!! victory and happiness rang thru my kingdom of the damned!
The cobbled in joystick reads on the Joypad display, that cobbled joystick calibrated in the joypad , and the copter now paired with the joystick, and ran with throttle control.
sadly, replacement joystick were ordered, but didnt fit the hole pattern.
Display monitor of the Joypad Multiplexer Debug Program:
/*
AnalogReadSerial example starting point
Reads an analog input on pin 0, prints the result to the Serial Monitor.
Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/AnalogReadSerial
*/
// the setup routine runs once when you press reset:
int MultiplexData[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} ; // array for saving multipler data
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
// 74HC4067D Multiplexor Chip /ENABLE (PIN 15) tied to GND
pinMode(A0, OUTPUT); //Multiplexor Selector input S0 (pin 10) to Microduino pin A0
pinMode(A1, OUTPUT); //Selector input S1 (pin 11) to Microduino pin A1
pinMode(A2, OUTPUT); //Selector input S2 (pin 14) to Microduino pin A2
pinMode(A3, OUTPUT); //Selector input S2 (pin 13) to Microduino pin A3
pinMode(A6, INPUT); // Multiplexer Output (Pin1) to Microduino pin A6
// *** NOTE: D4,D5,D11 & D13 are outputs reserved to the joypad TFT screen ****
//int MultiplexData[16]; ///={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} ; // array for saving multipler data
}
// the loop routine runs over and over again forever:
void loop() {
for (int MultiplexInputSelector=0; MultiplexInputSelector <= 16; MultiplexInputSelector++)
{
// MultiplexInputSelector is selecting which input pin to read
if (bitRead(MultiplexInputSelector, 0)==0)
{digitalWrite(A0,LOW);}
else
{digitalWrite(A0,HIGH);}
if (bitRead(MultiplexInputSelector, 1)==0)
{digitalWrite(A1, LOW);}
else
{digitalWrite(A1, HIGH);}
if (bitRead(MultiplexInputSelector, 2)==0)
{digitalWrite(A2,LOW);}
else
{digitalWrite(A2, HIGH);}
if (bitRead(MultiplexInputSelector, 3)==0)
{digitalWrite(A3, LOW);}
else
{digitalWrite(A3, HIGH) ;}
MultiplexData[MultiplexInputSelector]=analogRead(A6); // Multiplexer Output (Pin1) to Microduino pin A6
// print out the value you read:
Serial.print("MultiplexInputSelector =");
Serial.print (MultiplexInputSelector);
Serial.print ("\t");
Serial.print("value =");
Serial.print (MultiplexData[MultiplexInputSelector]);
Serial.println();
delay(1000); // delay in between reads for stability
}
}
A little bit of JoyPad Hacking:
I wish I could find quadcopter kit replacement parts to order...........
Top Comments
Nice honest review.
DAB
Really enjoyed the material. In retrospect, thank a holy deity my application wasn't selected. I don't believe I would have had the perseverance to overcome the obstacles. It is one thing to troubleshooting…
Great review! Hopefully this constructive information can be used by the kit maker and improvements implemented. This sounds like a kit that should be very popular with the right support. Maybe there will…