dRonin - No longer just for the brave

jhitesma

Some guy in the desert
Mentor
Ok, so as many of you here already know I've been helping out (as best I can - mostly by crashing my stuff) with the dRonin project. Well, last night we released our first public stable release:

We are proud to announce the first stable release of the dRonin flight control system.

The dRonin project is a fork of the Tau Labs / OpenPilot projects aims to provide the best flight control system for a wide variety of drones; from small racing quadcopters to large autonomous craft. Our goal is ease of use for beginners and advanced users alike. One example is our sophisticated “autotune” system, which will automatically determine the optimal tuning parameters for your multirotor drone to give you the best possible flight experience.

We support a variety of STM32 based flight controllers (AeroQuad32, BrainFPV Brain, Lumenier LUX, Naze32, OpenPilot CC3D, OpenPilot Revo, Quantec Quanton, Sparky1, Sparky2). Note that some advanced features like autonomous navigation are only supported on the STM32F3 and STM32F4 based controllers.
We've been flying and having a lot of fun with this, and hope you will too!

The official website is up at: http://www.dRonin.org

We're also working on a social media presence:
https://www.facebook.com/flydRonin
https://twitter.com/flydRonin
https://www.instagram.com/flydronin/

If you just want to get right to it and give it a try the official release is here:
https://github.com/d-ronin/dRonin/releases/tag/Release-20160120

I know I got Cranial to give it a try and he's been running it on his alien and was talking about putting it on a few more builds.

Personally I'm loving it. It's everything I enjoyed about TauLabs, only with an even more open helpful and responsive community developing it with a lot of really exciting plans for the future.

This first release will be very familiar for anyone who tried TauLabs, the big difference is autotune is improved and now works on F1 targts including the very popular Naze32 (no rev6 support yet but it is in the plans) along with some safety fixes and well...here this is the official list of what's changed:

  • Safety: Corrections to arm-switch configuration have been made to prevent inadvertent arming.
  • Safety: Reliability improvements to SBus protocol and switch arming.
  • Safety: OpenLRS synchronization and reliability improvements when used with the internal radio in Sparky2 or Revolution flight controllers.
  • Safety: Fix a stack overflow in attitude task relevant to navigation use cases.
  • Safety: Prevent uncommanded arming when input ranges are configured to invalid values.
  • Safety: Prevent invalid pulse lengths in OneShot configurations when flight controller is unable to keep up.
  • Safety: Prevent motors spinning up when "Test outputs" is left checked and the vehicle setup wizard is used.
  • Direct native support for BrainFPV flight controller.
  • Support for the Lumenier LUX flight controller.
  • Autotune is much more reliable and accurate.
  • Autotune now works on F1 targets (Naze32 and CC3D).
  • Adjustments to make return-to-home initial climb more intuitive and robust.
  • Improvements to event processing to reduce system jitter and improve system performance.
  • Support for VTX configuration on BrushedSparky flight controller.
  • Support for Multiwii Serial Protocol (MSP) to allow use of mwosd on-screen displays.
  • Support for displaying flight controller alarms and reset reasons on on-screen displays.
  • AltitudeHold-- maximum climb and descent rates may be configured separately.
  • Various corrections to helicopter support, including improvements to collective curve support.
  • PicoC support is restored on Colibri and FlyingF4.
  • New 16666Hz PWM output rate as preferred value for brushed flight controllers-- tradeoff between resolution and speed.
  • Flight controller resources freed, allowing full support for navigation on Sparky1 F3 platform.
  • Adjustments to gyro rate and filter defaults on many targets to make more sense.
  • Improvements to deadbands and ranges across all flight modes
  • Correctness fixes to battery module and analog-to-digital conversion.
  • OpenLRS telemetry of battery data now works correctly.
  • On-screen display of imperial units corrected.
  • Naze32 now supports battery monitoring, ADC, and the board setup wizard.
  • Ground control system improvements:
  • The audio-notification module may again be enabled.
  • The UAV object browser now has search functionality.
  • XML UAV object export now produces output that is easier to compare with outside tools (diff).
  • Input wizard behavior is improved-- will no longer generate short ranges or unbalanced switch channels.
  • Various usability, reliability, performance, and presentation improvements.
  • There is a crash reporting system on Windows and Linux environments.
  • "AutoTown", a cloud-sharing environment for autotune results.
  • GCS is much less likely to hang / become unresponsive on OS X.
  • Usage reporting infrastructure.
  • Crash reporting infrastructure on Mac OS X and Linux.
  • Branding / project name changes and improvements.
  • Python API is enhanced to support enums, direct pySerial communication with flight boards, etc.
  • Build: It is now considerably easier to set up a build environment on Windows.
  • Build: Packaging and reproducibility improvements.
  • Advanced: Actuator curve fitting option allows climb/descent
  • Advanced: OpenLog support on select targets

Yeah, the real geniuses have been BUSY since the end of November!

The F1 autotune is probably the biggest news here, but there are a lot of neat little things too. The actuator cure fitting is pretty cool stuff - it's basically TPA on steroids. TPA is nice, but it's basically using a straight line to fix a problem that's decidedly non-linear. Actuator cure fitting approaches the same problem by using a curve to match a curve. It's not for the faint of heart to mess with just yet but it's already showing great promise.

There's also a lot of plans for future improvements. There's a lot of interest in improving autonomous operation in the next release as well as improvements aimed at high performance racing and such. No, there's no "airmode" and none really planned - but there is something that should have similar benefits without the drawbacks and other benefits planned for the near future. There's also acro+ mode which basically disables PID's at extreme stick moves and allows direct inputs for REALLY crazy flying. (I gave it a quick try and it was a little scary but also a little exciting.)

In case you missed it when I shared it before here's a video of me testing autotune in a pre-release on my Nighthawk 280 pro with it's built in Naze32 style flight controller:

And here's my Nighthawk 250 with an actual Naze as I give it a quick shakedown flight after running autotune on it:

But...if you really want to see how it can do...check out Fujin's Youtube channel:
https://www.youtube.com/user/fujinhachiroku/videos

He's one of New Zealands leading drone racers and has been flying dRonin exclusively since the end of November - all on fully autotuned PID's

I'm working on a video showing how to flash, setup and autotune a Naze32 with dRonin that I'll be sharing soon. If you're tired of messing with PID's and just want to fly...I highly recommend giving it a try!

Note - F1 targest like Naze32 won't support all of the advanced autonomous functions that dRonin is capable of, they just don't have the power or memory. But F3 and F4 targets will so if you're looking to pop a GPS on and have some autonomous fun look towards boards like the Brain, Sparky2 and the new Lux (who's designer is participating in dRonin's development.)
 

Twitchity

Senior Member
I'm really interested in this for the new micro quad I'm building. Unfortunately it's going to be running the rev 6 acro Naze. Do you have any guesses when this board will be supported? I'm tempted to put this on my acro quad but it's flying really nice right now.
 

cranialrectosis

Faster than a speeding face plant!
Mentor
I found dRonin to be simple.

There are a few nuances in the GUI so I recommend watching the tutorial on how to set it up.

Be sure you have smoke tested your copter and bound your receiver and set failsafe before you run the software.


AUTOTUNE! :)

I just can't say enough good things about autotune.

Tuning is a PITA. I am not FGA and cannot tune as well as Mr Steele. Some folks bought a $500 Vortex to get ummagawd's tune.

With autotune, I flip a switch, hover the quad for a minute, check the settings on the computer, apply the settings if I like them and BAM, no more wobbles, drifting, shudders or mushy responses.

dRonin has a complete suite. I am running a Brain FPV board with an integrated OSD. dRonin has a tab for my OSD, GPS and a ton of other features I have yet to explore.

dRonin's autotune makes flying MUCH simpler. You still have to be able to hold on to a shaky hover in acro mode, but most should be able to learn that in a day. After that, newbies can learn on a well tuned copter without having to learn how to fly to tune the copter. Autotune also tunes autolevel settings, so if you fly horizon mode, that is handled along with acro by the autotuner.

This software revolutionizes the hobby by making it simpler for a flyer to fly. It made it simple even for a butt head like me. :)
 

cranialrectosis

Faster than a speeding face plant!
Mentor
I'm really interested in this for the new micro quad I'm building. Unfortunately it's going to be running the rev 6 acro Naze. Do you have any guesses when this board will be supported? I'm tempted to put this on my acro quad but it's flying really nice right now.

Naze and other F1 boards are supported now. They just don't have the memory to handle waypoints and some other nice options dRonin has available.

I am STILL dinking with this new servo on the mini-tri. Once that is done, my mini-tricopter running a Naze r5 will be running dRonin. I am excited to try autotune on the mini-tri! :)
 

mpbiv

New member
Actuator Curve Fitting!

That sounds like something I am interested in.

Coincidently I have been have a lot of issues trying to reign in my Tweaker with the new 2204 2800kv EpicRC T-motors I put on it. Flies good up to about 1/2 or 2/3 throttle and feels locked in, but hard to reign in the high speed oscillations after that. I've been fiddling around with TPA without much luck, so I started reading more into how TPA is actually applied, and I was surprised how basic it is. Definitely makes the assumption that power output is linear, which I doubt it is.

I guess I will have to try this on my Tweaker. Might even swap out the Naze32 for my BrainFPV board which has just been sitting around since I pillaged my blackout to build other copters.

Thanks for sharing your experience jhitesma and Cranial!
 

jhitesma

Some guy in the desert
Mentor
I'm really interested in this for the new micro quad I'm building. Unfortunately it's going to be running the rev 6 acro Naze. Do you have any guesses when this board will be supported? I'm tempted to put this on my acro quad but it's flying really nice right now.

I'd expect it to be in the next release. There are people who've made it work and the Brain uses the same chip - but there's some grunt work to be done to actually integrate it cleanly still. They're looking to run a fairly aggressive release schedule so it should be available within a few months. This first release had a lot of time consuming behind the scenes stuff to rebrand from Tau Labs / OP and setup infrastructure for the new project so it was a little light on new features.

Here's the issue for Rev6 support if you want to keep up with it - looks like it's been tagged for the next release "Tanto":
https://github.com/d-ronin/dRonin/issues/298
 

jhitesma

Some guy in the desert
Mentor
Coincidently I have been have a lot of issues trying to reign in my Tweaker with the new 2204 2800kv EpicRC T-motors I put on it. Flies good up to about 1/2 or 2/3 throttle and feels locked in, but hard to reign in the high speed oscillations after that. I've been fiddling around with TPA without much luck, so I started reading more into how TPA is actually applied, and I was surprised how basic it is. Definitely makes the assumption that power output is linear, which I doubt it is.

I guess I will have to try this on my Tweaker. Might even swap out the Naze32 for my BrainFPV board which has just been sitting around since I pillaged my blackout to build other copters.

Yep, power output is decidedly non-linear which is why TPA is so troublesome. The curve fitting stuff isn't super well tested yet but a number of people who've tried it have had really good results on overpowered setups. I think Cranial tried it on his alien with good results too. The settings for it are hidden right now and not exposed in the GCS - so you have to dig into the "UAVO Browser" and learn the internals a tiny bit. If you want to give it a try I'd strongly suggest dusting off an IRC client (I'm loving irccloud.com) and joining the #dronin channel on freenode.net. It's a fairly busy channel, but if you want to try curve fitting you'll get a lot of support directly from the people working on it.

I would definitely swap to the Brain for that though, the F1 struggles enough as it is and curve fitting hasn't worked well on it so far. The F3/F4 targets are dealing with it much better.


On a related note the stuff they're working on for actuator clipping (think airmode) is looking really neat too:
https://github.com/d-ronin/dRonin/issues/228


There's actually a ton of really neat stuff proposed for the next release, just how much will actually make it in is hard to say but they're working on:

In Flight mag calibration
Changing failsafe into a flight mode to allow more flexibility
Calculating "outer loop" PID's as part of autotune (the auto level side of things.)
Further autotune improvements
OneShot42 support
Naze32 Rev6 support
Actuator clipping stuff

All kinds of neat things. And the more people willing to test them the better chance of them making it into the release. So if you're brave and willing to work with the devs on testing new features it's a great time to get involved.
 

Snarls

Gravity Tester
Mentor
I'm starting to really want to try this. It's winter now and the sub freezing temps are no motivation for sitting outside and tuning for extended periods of time. I was going to try Betaflight on my miniquad, but I think I'll give dRonin a try this winter.
 

jhitesma

Some guy in the desert
Mentor
Do you have a link to a tutorial video for the setup.

There aren't any specific to dRonin yet, but things are similar enough to Tau Labs that the videos from there cover the basics. The getting started page is here: https://github.com/d-ronin/dRonin/wiki/Configuring-your-new-board-for-basic-flight

I'm working on some updated dRonin specific setups videos. Specifically how to flash a Naze32 and things you need to do special on that particular target. Short version: Use Cleanflight or Baseflight configurator to flash the ef_naze32.hex file from the dRonin firmware directory. Same basic method you use to flash a new version of CF/BF only instead of selecting from the pulldown you use the local option and select the file.

Due to how the USB is handled on Naze32 dRonin GCS can't really handle flashing Naze32 directly yet. There are other methods using command line developer tools but the CF/BF config method is quick and easy - only problem with it is it will wipe out any settings that could be preserved between flashes using the dev tools.

Note despite what the getting started page says you don't have to worry about flashing the bootloader/firmware separately if you use the *flight config program to flash the .hex - it does it all in one swoop.

Another thing to watch for is that motor numbering is different in dRonin than *flight. So you'll want to go to the Vehicle page and change the motor mapping to:

Motor 1 -> Channel4
Motor 2 -> Channel2
Motor 3 -> Channel1
Motor 4 -> Channel3

There's work in progress to make that less confusing in the future.

The last biggie is that rates are handled differently. In *flight rates are a multiplier added to your inputs so there's no values associated with them and depending on other settings the same rate values can give very different results. In dRonin rates are specified with actual values in degrees per second. 360 degrees is all the way around once, so if you want to be able to do two flips in one second you need to set your rates to 720. Generally rates of around 400-500 are a good starting point that will be gentle enough to fly easily but quick enough to do basic flips. How high you go from there depends on your pilot skills ;)
 

mpbiv

New member
Last time I used Tau, or more specifically the BrainFPV branch of Tau, it seemed as if the only way to add expo to pitch/roll channels was to do it through the transmitter. Is this still the case? Can expo be programmed into the FC through the GCS like Cleanflight/Baseflight?

If I am mistaken definitely correct me!

This popped into my memory after seeing you mention how rate was done degrees/second, which jogged my memory of some of the differences between Tau and Cleanflight/Baseflight when I initially setup my BrainFPV many months ago.
 

jhitesma

Some guy in the desert
Mentor
expo is now right on the stabilization settings with PID's and Rates. The GCS pages for that have seen some major changes lately. The basic page now includes rates and the advanced pages include graphs and such finally.
 

cranialrectosis

Faster than a speeding face plant!
Mentor
Yep, power output is decidedly non-linear which is why TPA is so troublesome. The curve fitting stuff isn't super well tested yet but a number of people who've tried it have had really good results on overpowered setups. I think Cranial tried it on his alien with good results too.

Yes, however my area to fly is small. I don't do much at WOT so I don't test it very hard.

The settings for it are hidden right now and not exposed in the GCS - so you have to dig into the "UAVO Browser" and learn the internals a tiny bit.

Even I could do this. :)

If you want to give it a try I'd strongly suggest dusting off an IRC client (I'm loving irccloud.com) and joining the #dronin channel on freenode.net. It's a fairly busy channel, but if you want to try curve fitting you'll get a lot of support directly from the people working on it.

Serious geeks here. Serious. I just follow the link in chrome, watch and wait for an opening. Just lurking is an education. :)https://kiwiirc.com/client/irc.kiwiirc.com/dronin/

I would definitely swap to the Brain for that though, the F1 struggles enough as it is and curve fitting hasn't worked well on it so far. The F3/F4 targets are dealing with it much better.

The BrainFPV board is AWESOME. If you are thinking FPV with OSD, skip the Naze and the separate OSD component on your tiny copter. One board. No muss. No fuss. Configure the OSD in the same GUI as the flight controller. You can't make it simpler to run an OSD.
 

jhitesma

Some guy in the desert
Mentor
The BrainFPV board is AWESOME. If you are thinking FPV with OSD, skip the Naze and the separate OSD component on your tiny copter. One board. No muss. No fuss. Configure the OSD in the same GUI as the flight controller. You can't make it simpler to run an OSD.

I really love my Brain board. That said...dsal has done some neat work on adding MSP output to dRonin and tweaks to the latest MWOSD code (R1.6) so you can use a minimosd with dRonin now. So for people who already have a Naze32 with minimosd (or minim compatible like osdoge) can use dRonin with their existing FC and OSD hardware.
 

Balu

Lurker
Staff member
Admin
Moderator
Looks like I might be able to use the two Naze32 boards I have in a box somewhere for the small quads and my Sparky2 for something bigger... :)
 

cranialrectosis

Faster than a speeding face plant!
Mentor
Looks like I might be able to use the two Naze32 boards I have in a box somewhere for the small quads and my Sparky2 for something bigger... :)

I am moving my Sparky2 to my mini-hex due to space issues on the tiny Alien frame. The Sparky 2 has ports on the bottom of the board making it hard to fit anything under the board. You either have to mount the Sparky 2 higher or you can't fit a Pololu under it and the signal wires for your ESCs will be very cramped on a low-profile, underside mount. I also have a QOSD from DAL RC which is small but still takes more room than the Alien has to give it. All these components will easily fit on my 300mm mini-hex.

I like my Sparky2. It is a very nice board which flies well and has 6 motor ports while the Brain only has 4. The Brain simply takes much less room due to the integrated OSD and the completely smooth bottom of the board. I think Naze32s are gonna be $10 boards by the end of 2016...
 

Twitchity

Senior Member
I'd expect it to be in the next release. There are people who've made it work and the Brain uses the same chip - but there's some grunt work to be done to actually integrate it cleanly still. They're looking to run a fairly aggressive release schedule so it should be available within a few months. This first release had a lot of time consuming behind the scenes stuff to rebrand from Tau Labs / OP and setup infrastructure for the new project so it was a little light on new features.

Here's the issue for Rev6 support if you want to keep up with it - looks like it's been tagged for the next release "Tanto":
https://github.com/d-ronin/dRonin/issues/298

Awesome, thank you Jason. I'll keep an eye out for this release and give it a shot once it's stable.
 

Snarls

Gravity Tester
Mentor
Got the firmware uploaded to the Naze just fine. My problem now is that I can not get any RC input from a Lemon DSMX Sat Receiver. Is there something about setting a sat receiver up that I don't know or is it not supported with the Naze yet.
 

jhitesma

Some guy in the desert
Mentor
Hmm, that should work. I just checked in IRC and confirmed that there's no known issue with it...

I was thinking about moving my spec sat from my twitchity 230 over to my nighthawk 250 this weekend because the DIY RX I have on there is acting flaky (too many crashes where it hit the pavement.) So I'll try and find time to try it out tomorrow and report back.
 

jhitesma

Some guy in the desert
Mentor
This is mostly for Snarls about getting spek sat working - but there are some general notes near the end

Ok, Snarls...good news...spek sat on Naze32 with dRonin should work and at least one person confirmed that they were able to get it working tonight.

Bad news. I'm trying to set it up as well and having no luck...so it's not just you. Wait...scratch that...while typing this up I got it working - so keep reading!

Big problem is spektrum is a mess. Binding is very hit or mess, very few people seem to have had it work. But my sat is already bound and I suspect yours is as well. So that's probably not the problem.

You need to go to the Hardware tab and set RcvrPort - I'm told it should be set to "Serial" and should then be able to put the signal wire on the RX connector pads pin4 just like with *flight.

You also need to set RcvrSerial to "DSM" I missed that for a bit...looked at the options like 6 times and somehow missed DSM each time.

Then for DSMxMode apparently "Autodetect" doesn't work well and when it does work it only works with a RX that was bound using dRonin (or previous TL) firmware....but since binding doesn't work well...autodetect is basically useless. So you have to set 10bit (22ms) or 11bit (11ms) mode maually.

If you're using a sat bound in slave mode then you'll want 10bit mode.

With that all setup....the flight status will STILL show an error which is what confused me.

You have to go to the Inputs tab and start the Configuration Wizard. Assuming you have your mode set correctly at that point it should work and once going through the config wizard you should be clear.


Few other not really related notes though:

mpbiv - There are expo settings for Pitch/Roll/Yaw now...but still not for throttle. There is a throttle curve but no expo. There is a pull request that was added this weekend to add it though so it might show up in in the next release.

There have been a few small bugs found and it's looking like a quick hotfix release will come out shortly - so work on new features is temporarily slowed while the dev's work on preparing the hotfix. The fix is because apparently alarms in the OSD on Brain have been broken since November and no one noticed...oops. Also I think there are a few tweaks to how UARTS are handled on LUX since the pre-release lux board they've been working with was slightly different than the release board. So...nothing major that would affect most people.

Also one other thing currently missing is beeper support on Naze32. There is support for a PWM buzzer on an output - but it's rudimentary. There's at least one dev interested in getting beeper support working, but since he usually flys FPV with an OSD and isn't familiar with the code dealing with beepers...it may or may not get done by the next release but I wouldn't hold my breath for it.

Ok, I'm going to go finish getting motors on this Twitch 230 so I can finally fly it again tomorrow...been way too long since this guy was in the air!