Saturday, December 20, 2014

BrainFPV - cool new board using Tau Labs

I was lucky enough to get a BrainFPV from HeliShredder last week, which is a new flight controller that uses Tau Labs.

It is an impressive board with a lot of features in it's 36x36 mm size. Beyond having a full sensor suite (3-axis gyro, 3-axis accel, mag, and baro), its biggest unique feature is of course an integrated OSD.

This kind of integration also gives a lot of power - like the ability to switch OSD display modes on the fly.

I'll just paste from Brain's page for htFPV Specific Features:

FPV features:

  • Full-graphic OSD (360x266 for PAL):
    • Software adjustable black and white levels
    • PAL/NTSC autodetect
    • 4 fully user configurable OSD pages, selectable using switch on transmitter
  • Audio output (not yet supported by software)
  • 3 analog inputs for voltage, current, RSSI measurement
  • RSSI measurement using PWM, PPM, or analog input
  • Other Features:

Other features:

  • CPU: STM32F405RG (32bit, 168MHz, 192kB RAM, 1MB Flash)
  • 64Mbit flash for settings, way points, logging
  • InvenSense MPU-9250 latest generation 3-axis gyro/accel/mag
  • Barometer: MeasSpec MS5611
  • Receiver compatibility: PWM, PPM, S.Bus, DSM2, DSMX, HoTT SUMD/SUMH
  • Up to 10 PWM outputs (up to 400Hz update rate) 
  • Up to 3 serial ports for telemetry, GPS, RC receiver, etc.
  • External I2C port, can e.g. be used with an external HMC5883 compass
  • Micro USB port for configuration via PC 

Installing into MHQ Quadcopter

To test it out, I decided to use my foldable MHQ quadcopter from Steve (thingiverse link). First I had to splice a JST connector into the video line so it could plug into the BrainFPV controller.

This is the Pico camera from GetFPV with a mount that I designed to hold it in the MHQ. Then I plugged it into the BrainFPV and immediately had a nice little OSD showing.

Unfortunately my video recorder crops the edges so you can't see most of the OSD field. In the GCS you can also modify the layout, white black balance, and even switch the layout with a toggle of the switch.

HeliShredder did a nice job of fitting the OSD configuration into the configuration gadget. With it all tested, then I just had to finish reassembling my quadcopter.

It definitely makes the wiring really nice and simple having just that one board. I really need to get add a battery current/voltage sensor to this frame now, since the OSD can show that to me. I just hate soldering on the wiring harness :(

And all closed up and ready to fly. Time to practice my FPV flying ... indoors ...

You can see a bit of line noise from the motors. It is recommended to have a filter on the power line, but I don't have one at the moment. I'd recommend checking out HeliShredder's videos to better see the performance.

OSD History

I'm really stoked to see this board out there and running Tau Labs. Hopefully the hardware designs will be open sourced in the not-too-distant-future and it can become included as an official target.

Sambas (now with the LinuxDrone project) started the OSD project in 2011 back with OpenPilot. The original design had some issues and I ended up cutting up one of the prototypes to design a new way of syncing the two SPI channels together. 

The end result was we got it going, although with some issues that limited drawing to the edge of the screen and required running the microcontroller at a strange rate.

I believe some more work was done on the code subsequently, but ultimately the OSD with OpenPilot stagnated and nothing came of it. Luckily HeliShredder came along at picked up the code and ran with it. I believe he'd previously also had some experience developing on the Super-OSD project in the past.

Interestingly, he independently came up with a better way to sync the SPI channels that resolved those issues that Sambas and I had discussed way back when and it works great. There is also some nice tricks he used to also adjust the white / black balance to make sure it always looks nice that ended up an issue for us. He also did a lot of work to optimize the code so it can run with the flight controller jitter-free as well as the configuration interface to make it adjustable. 

Ultimately, this is a great example of open source where something would have otherwise died in a pile of unused code (sadly like my ESC has become) is now improved and used and I think will make a lot of people happy. Consistent with OSS principles, all his changes are available on github.

Final Thoughts

This board is going to be really popular, I suspect. Of course since it runs Tau Labs (and from my limited testing) it flies wonderful ;-) and I was able to simply import my configuration on this frame from when it was running Sparky and immediately it was tuned and flew well.

The OSD looks super crisp and sharp with good black and white levels and responds nice and quickly. I haven't even tried the modes where it shows waypoints and such, but apparently it does that. I can't wait to throw the battery monitor and GPS on there so I can see my speed, direction to home and battery status.

Between this and Gemini, I really need to spend more time FPVing.


  1. More work stolen from Openpilot. Next you'll try and copy the v9 gps (oh wait, you've already tried getting one!)

    1. Given that the majority of the OpenPilot code was written by current TauLabs developers who left OP, it is very hard to see how the term "stolen" could ever be used. More importantly, when we wrote that code it was under the GPL which is a license that exactly allows anyone to use that code and improve on it - exactly what HeliShredder did.

      You also fail to appreciate the huge amount of unique work he actually did coming up with an improved clocking scheme, writing a functional OSD display with the widgets people want, with the ability to customize these displays.

      Ultimately uses like this are exactly what we started the project and wrote code for it to allow, and forking to TauLabs was entirely to promote and support these activities rather than helping one person profit off everyone's work.

    2. How can you steal from 'OpenPilot' unless it's not... you know... :-)

  2. Out of time? Don’t worry and let your economics Homework be handled by us. The incredible Economics Homework Help services are provided by TOP ACADEMIC TUTORS. We provide you with the service so that if you are having problems in understanding and completing your Homework then you can simply leave it with us so that with the help of professional tutors and writers, we can complete your Homework and deliver it to you. We know about the problems that students face in completing the Homework. We only have one motive and that is to help students achieve high marks through helping with their Homework. Economics Homework Help
    live assignment help


  3. Thank you for this useful content, It’s a very useful content that helps me to complete my assignment at right time. I would like to write about my experience of Australian assignment help or online assignment help. I am an academic expert here who provides reference assignment including Accounting, Management, Finance, IT, Economics, Computer Science, Nursing, Marketing; all Academic subjects to University Students across Australia or even globe. We are a big online assignment help providers who help students to get HD grades according to assessment guidelines and instructions.

  4. Really your article is very helpful for me I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article.
    Custom Boxes

  5. Constantly preserve the pedal to the steel. In case you destroy you lose BUSINESS A LEVEL, due to the big area fire at the back of your lower back. Of direction cars are not the only car to smash. You could additionally take control over planes and tanks or easy crash into boundaries at the same time as using your bike like in satisfied wheels.