TrIMUpter - GPS Position hold test with ArduIMU + GPS EM406 on Vimeo.

Hello, I have successfully tested the GPS position hold with my TrIMUpter (a VTOL tricopter).

The full stabilisation process is simply done with:
- an ArduIMU+ V2 flat,
- a triple axis magnetometer (HMC5843),
- a GPS EM406,
so this is a very cheap setup.

Below a photo of the setup used:

The TrIMUpter is stabilised by the firmware TriStab v2.1

Some features of the firmware v2.1:

- Full stabilisation process required for a multicopter,
- GPS position hold, tested with the GPS EM406, and compatible with Ublox, NMEA, and Mediatek MTK ,
- a true Heading Lock for the yaw with 2 modes: inertial heading lock or magnetic heading lock,
- self-calibration of the IMU sensors,
- self-test at the startup for valid datas from the HMC5843 triple axis magnetometer,
- the switch from the "stabilisation mode" to "the GPS position hold" is done with switch linked to the ch5,
- the Roll/Pitch PID gains can be easily tuned via the transmitter knob linked to the ch6,
- the main servo mixer is placed in one function "call_servomix()" and can be easily modified for multicopters
and also helicopters...

The firmware TriStab v2.1 can be downloaded here.

Have fun and happy dev,

E-mail me when people leave their comments –

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

Join diydrones


  • Heey guys I am new on this field and I am working on an Autonomous Heli. I want to mount a MaxSonar EZ1 with the Ardupilot. Do you think this is possible? I really do not want to work with a regular Arduino since I am running out of space and weight capability on my 180-EFL Heli. Any Ideas. Any converter that I can use for these TTL and PWM signals.. 

  • Developer

    Hello Kazz,

    I suggest you to use the latest version of the APM_Compass library, there are some important updates.

    Good testing flights,

    Regards, Jean-Louis

  • Hi Jean-Louis


    Thank you for supporting me.
    TriStab2.1 is wonderful.

    It is a setting on this day.


    //Adjust this parameter for your lattitude
    #define  GEOG_CORRECTION_FACTOR 0.8126  // cos(lattitude) Tokyo=35.6497°

    // Local magnetic declination
    // I use this web :
    #define local_declination 14.14 // Magnetic declination in Paris (Tokyo)


    To use DYIdrones magnetometer, should I renew APM_Compass library?


  • Developer

    Hello Kazuyuki Tanaki,

    Wooww... My deepest Congratulations for your maiden flight !!!

    I am glad that you have succed with my firmware. So, may be that your problem is due to the magnetometer offset calibration (hard iron), this must be done with the ArduIMU installed in the model.

    You need also to adjust the local magnetic declination for your country in the "userparms.h", see below:


    //Adjust this parameter for your lattitude
    #define  GEOG_CORRECTION_FACTOR 0.6578  // cos(lattitude) Paris=48.8666°

    // Local magnetic declination
    // I use this web :
    #define local_declination 1.85 // Magnetic declination in Paris (France)


    To get the magnetic offset for the compass, I suggest you to load the "AP_Compas_test.pde" in the AP_Compass library


    The frame that you have used is very nice, does it is a kit or a home made version ?


    I hope this help you,

    Regards, Jean-Louis

  • My TrIMUpter flew.

    There is one problem.
    The airframe is rotating by about 2m49s and 3m7s of Youtube.
    Is there a problem in the setting of the heading lock?

    ArduIMU+ V2 flat
    DYIdrones magnetometer
    GWS EDF50

    Thank you.

  • Developer
    Hello Magnus, Thanks for your comments.
    I have used common ESC without any change:
    - 3 ESC Hobbyking SS Series 8-10A
    - 3 brushless motors Hextronik 1300 Kv, HXM2730-1300
    They are connected directly to the PWM output of the ArduIMU, see how below:

    Regards, Jean-Louis
  • Nice work Jean!
    For the esc: s are you using them with standard firmware and/or are they modified in any way (like added i2c interface)?
  • Moderator
    Well I have seen the Falcon 8 flying with one motor out so that convinced me, I hear what your saying about payload.
  • Developer
    Hello Gary, extra motors are not really better for redundancy in multicopters uav because if one of the motors fails, in most case the the multicopter will flip quickly and crash to the ground... I have built and tested myself a lot of multicopters uav (up to an octocopter) and the main advantage to use more motors is the payload capabilities. More the motors, greater will be the payload. Below a photo of one of my multicopter uav that I have built and tested myself for aerial recon purposes. It uses six motors and able to carry up to 1,5 kg of payload


    Regards, Jean-Louis
  • Moderator
    Nice work Jean-Louis, I have just had my OpenPilot powered tri flying at altitude and heat here in South Africa, 5300' and +30 and to be honest I was amazed it flew ;-) They really are such cool platforms. I am a little lost as to why that extra motor version has become more popular ;-) They seem to handle the wind very well, not sure why. Perhaps you have an explanation. Obviously more motors is better for redundancy in the event of a failure but for a simple hovering platform tri's are hard to beat.
This reply was deleted.