What’s left?

  • Refine the u-blox NEO-M8T to use the “pedestian” model algorithm which is more accurate than the current “portable” model used.
  • Test the yaw code I’ve been working on in the background so ‘H’ always points in the way she’s going.
  • Stop swearing at Microsoft for the Spectre and Meltdown updates they installed this morning which has crippled my PC just loading web pages!

9 thoughts on “Whoohoo!

  1. Hei Hove
    I am really interested in your program. Can I download it? Is there an easy way to set it up?
    Nice Job

    • The code is on GitHub along with Installation instructions: https://github.com/PiStuffing/Quadcopter

      But beware: this code and instructions works for my set of piDrone only; a different frame, ESCs, motors or props means a new set of tuning, and almost certainly crashes and damage!

      Also, because they’re autonomous, they’re an intellectual challenge, but not a fun toy to fly. I could buy 10+ fun DJI Mavic for the cost it’s taken me to get here.

      I’m not trying to stop you; just warning you this isn’t the way to get a cheap drone to play with!

      Good luck!


      • I know I tried to build up such a code in the last half year (School Project) but failed due to the very cheap parts I purhcased. Now after the deadline is finished I want to continue and bought better parts. Before I steered the drone via my Smartphone, which was not the best idea either if ones has to correct the bad parts. Now I want to fl the drone via a remote controll. The main Problem, that I have to deal with now is the inaccuracy of time measurements on the Raspberry Pi. So I can’t really measure the pulsewidth of the remote controll. (sometimes my program even “Forgets” one pulse and instead of a maximum 2000ms pulse i get a 6000…)
        I wanted to see what you have done cause youre drone is flying beautifully mine is not.
        Thx Eric

        • Two main things to get what you want: I use the RPIO Python library which gives me 1us accuracy. Have a look here: https://github.com/metachris/RPIO/tree/v2. Look at the “def PWM”* and “class ESC:” in my code.

          Also I don’t use the RPi clock; instead I use the time increments from the MPU-9250 sensors i.e. if I read 7 batch of sensor samples, and the sensor is running at 500Hz, then I know 14ms have passed.

          Hope that helps?


    • Can you explain why please? Based on the NEO-M8T spec, page 19 (https://www.u-blox.com/sites/default/files/products/documents/u-blox8-M8_ReceiverDescrProtSpec_%28UBX-13003221%29.pdf), ÔÇťAirborne < 1g". At one meter height and 10 fps, that means absolute maximum speed is ~5m/s as the cameras AOV is about 50 degrees. Put that together and the piDrone is only moving at the same rate / acceleration as a human walking. Don't get me wrong, I'm happy to try it, but I strongly prefer to understand why it would be better first. Thx.

        • OK, I may give it a go, though my UAV is autonomous and has speeds limited to 1.5m/s and low acceleration like a “pedestrian”. What I need is high accuracy of locations.

          The INAV one has to track human controlled drones going much faster and accelerating harder than a car hence I can see why “Airboure <1g" is what you need. Certainly I can see that "pedestrian" would be awful for what you need.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.