PIC32Flight Control & dsESC4



Hereby my project, I wanted to build a quadrocopter to learn more about system control and brushless motor and because it is cool. To target also was to make it without as little wires as possible and that is why I made a stacked PCB setup. Made two PCB's one flightcontroller with a lot of possibilities to expand in the future (for instance two PIC32 and also place for MPU-9150).  And one PCB with 4 ESC's integrated and battery current measurement, still have to do a lot things (first thing is altitude control). For me it is just a learning experience (programming is not my strongest point). Hope you like it.


Flightcontroller with PIC32

  • 400Hz angle and speed control
  • 2S to 5S
  • MPU-6050
  • HMC5883L
  • MS5611
  • GPS
  • SD
  • Spektrum
  • Telemetry (Wi.232, will be replaced by RFM22 in the future)
  • PC control (Labview)
  • Servo outputs
  • The possibilty to make bode plots of the quad (looks like this)


  • dsPIC33FJ
  • 12A per ESC without cooling, (has to be tested more with thermal camera)
  • 2S to 5S
  • Current limiting
  • Closeloop RPM
  • Battery current sensor
  • I2C
  • SPI
  • UART


  • Altitude control
  • GPS position control
  • Making it autonomously
  • Vision control
  • Camera gimbal
  • ....
















E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • He says the calibration is a feature not a bug


    I think that's a big part of the UKF--it helps to automate & refine the calibration & fine tuning of many interdependent parameters. The Madgwick paper goes to lengths to demonstrate a 20% advantage over Kalman filters, but that don't say which one. In my twisted mind that compiles to: compare to UKF or it sucks. The Kalman filter was originally made to fry Americans & Russians I think. That's easily approximated by a linear model. Bots are more like hummingbirds than missiles.

    The benchmark Bill@Autoquad states is 15-20cm loiter. That's getting into the range of the uPenn/ETH cheaters with their cameras isn't it? I read somewhere he's seeing something like an order of magnitude increase in this in post processing, which likely can be weaved back into the loop to some degree.

    Anyway, that's the best I can do talking out of my ass. There's probably a thread somewhere by those making this stuff with the relevant comparisons. I'll let you know if I come across it.

  • Ah oke i didn't know that, it is indeed a very fast computational filter. I'm not that good in mathmatics to fully understand the UKF filters. The autoquad also needs an extended calibration.

    But what would be the benefit of the UKF over de descent filter ?

  • That's not a Kalman filter, it's a steepest descent filter. It's benefit is that it performs well at low sample rates, but I don't see how that would be helpful in a system with sufficient computational power at the natural frequency. Did you consider the Autoquad UKF? It utilizes many more states within the abilities of the F4.

  • I used a the kalman filter from Sebastian Madgwick (based on Mahony).


  • What did you use to compensate gyro drift?

  • Autoquad uses current sensing to limit the current, that is the same I do.

    The website of scolton is very nice, but he uses 2/3 phase current measurement which is needed for FOC, I only measure the bus current.


    That UltraESC is very nice

  • This guy has current sensing http://autoquad.org/esc32/

    svn checkout http://esc32.googlecode.com/svn/trunk/ esc32

    You've probably been here, but for others, Shane Colton has a wealth of information & builds on FOC  http://scolton.blogspot.com/p/motor-controllers.html

    A very nice DTC build


    He says the software was a couple of days, most of the work was the high power stuff (for cars).

    The guy who made the ultraesc--quickest 6 step,  mentioned the possibility of sharing the design.

  • Yes the motors er driven by six step block commutation, I think you need current sensors for FOC or DTC.

  • Inspiring. I take it the ESCs are block commutated... Did you explore FOC (field oriented control)  & DTC (direct torque control)?

  • Thank you for sharing, Keep up the great work !

This reply was deleted.