Microduino Quadcopter Kit - Review

Table of contents

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......

  • The joypad joysticks potentiometers were Dead On Arrival ( all 4 of them!) That failure mode really cost me alot of playtime and caused alot of frustration to get resolution. Lucky for this report, alot of technical information was gleaned from the troubleshooting. In spite of all the hassle from failed components, broken battery wires, batteries and Core-RFs jarring loose, the kit is still fun while the copter is flying.

     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 replacement joypad kit (received on warranty about 3.5 weeks after I first contacted MicroDuino) had a bad TFT screen. Luckily between 2 joypad kits, there were enough working parts to get one joypad working.

image

  • On the first flight, the black battery wire from the copter shield broke off. The wire looked as if it had an insertion defect, stray strands snipped off.
  • After about a dozen flights, the red battery lead was torn from the quadcopter base shield. Message to designer, pigtails are not good connections for the battery.
  • After about 10 flights, the motor mount cracked and split from the copter leg. I taped it together with electrical tape like a temporary splint. These need to be better reinforced with plastic ribs. ( I totally understand the MicroDuino folks likely didnt do the mechanical design) See this failure in the quadcopter control range video.   
  • The joypad silkscreen on the ON OFF switch is incorrect. 
  • A disappointing discovery: the Motion Module provided in this kit is not the one advertised on the MicroDuino webpage 10DOF. This kit's Motion Module is depopulated. This motion module only has the gyro IC MPU6050, no barometer or compass chip. I had planned to add some functionality to the joypad display and maybe some flying automation using the compass and barometer.  :-( 

image

 

 

 

 

The details:

MicroDuino quadcopter packaging protects the contents very well, is very professional and attractive.

 

 

imageimageimage

 

 

      imageimageimage

 

 

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

image

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.

imageimage

image

   sadly, replacement joystick were ordered, but didnt fit the hole pattern.

  imageimage

Display monitor of the Joypad Multiplexer Debug Program:

image

/*

  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:

image

 

I wish I could find quadcopter kit replacement parts to order...........

Anonymous
  • 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 be a v2 roadtest in the future to show improvements!

  • Thanks Sean - the videos taken at the football field were done without a cameraman, trying to coordinate talking, flying, and videoing was a challenge.

    The joypad joysticks are also small short knobs. Radio controller joysticks have textured grips and alot longer sticks for better flying control.

     

    It takes practice to fly a near frictionless vehicle (except for gravity). This quadcopter doesnt seem any more difficult to fly than my previous lightweight quadcopter flight experiences. 

    Like a new driver, I oversteer and overcompensate the copter controls.  Any criticism of my flying skills is deserved :-) I dont take offense to it.

    These lightweight copters are very susceptible to wind.

    The right side joypad switch scales the pitch and roll joystick, for reduced control, and full control.

    In some videos , the switch was selected for reduced control, and in some for full control. Its part of the learning process to pick the right one for environmental conditions.

    Another excuse - the calibration does not zero the joysticks. The joystick calibration does find endpoints, and the copter does self calibrate the gryo sensors on power up.

    To have more perfect controls, one would calibrate the pitch, roll, and yaw home joystick to zero at their "home" positions so the copter would perfectly hover (almost) never changing position while it moves up and down. This takes much more complexity and performance than I'd expect from this platform.

     

    Your final question, I leave recommendations up to the reader as it depends on their  particular goals to what features are interesting and important to them.

    One hand - Quality and spare part availability are very important to me. On the other hand - The chance to write and modify control software is a key feature that few other kits offer,

  • 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 issues with the vendors support but going it alone when the goal is to provide feedback to a vendor is a frustration I'm not equipped to deal with.

     

    I watched your videos and am curious on flight. How difficult is the vehicle to fly? Your initial hover test ended up on its side. Then subsequent tests appears to the untrained eye, line riding a a bronco exercise. No criticism intended.

     

    Final question, would you recommend the product? If yes, what caveats would you apply?