3D Robotics

Instructions for using BlimpDuino

Here's how to use Blimpduino:

First thing, needless to say: inflate the envelope. For that you'll need helium. You can get it in a party balloon kit that you can find at most Targets or Wal-Marts or any party supply store. You can also buy it from Amazon, or rent a tank from a local welding supply store.

You shouldn't need to fill the whole envelope with helium. Just tape the BlimpDuino board (with battery and RC receiver) temporarily to the envelope and add helium until it floats upwards pretty strongly with that weight. The envelope will still look pretty saggy, so get a straw and fill the rest with air so it looks full. You can then ballast the blimp by taping on coins until it's neutrally bouyant. The envelope will slowly leak over a week or two, so if you have a little extra buoyancy, you can just take off ballast from day to day as it loses a little lift.

Note that the envelope in the kit comes with some foam cutouts, which can be taped on to the envelope as fins. They looks cool and can add directional stability, but are not necessary. I usually don't bother with them.

Make sure the board is configured as per the photo above, with the switch side facing forward and the props pushing the air backwards, which you can check in RC mode. (click on the photo for a bigger version). Tape or velcro the board to the bottom of your blimp, with all the components facing down.

Note: The Blimpduino code sends lots of useful status and debug information that you can see if you leave your FTDI cable plugged in and open the serial window in the Arduino IDE (circled in red below):

RC Mode
  1. It's best to start in RC mode. Plug RC receiver channels 1 and 2 into the first two (furthest from the reset switch) 3-pin connectors on the BlimpDuino board (see diagram below). Plug the vectoring servo straight into channel 3 (throttle) of the RC receiver. Turn on the transmitter, and then power on BlimpDuino. The code should auto-detect the RC signal, and after the green LEDs flash in a circle they'll flash back and forth and do another funky jig. That means you're in RC mode.

  2. Controlling a blimp is a little different than flying an airplane. The "aileron" stick controls the differential thrust of the motors to turn. The "elevator" stick controls the thrust to go forward: the further you push it up, the faster it goes. The "throttle" stick controls the pitch of the vectoring servo, which determines the tilt of the thrust. If the blimp is neutrally ballasted, you can often leave it in the middle position, but if the blimp tends to go up or down under power, you'll move that stick to control the vertical direction of the thrust. It's a little bit like an elevator with a plane, but with the added dimension of changing thrust.
  3. Now is the right time to test that the motor are plugged in the right way. When you move the "aileron" stick, the motor on the opposite side should spin, blowing air backwards. If the motor doesn't turn in the right direction (blowing air backwards), just reverse their plug on the board. Pushing the "elevator" stick forwards should increase the speed of both motors, again blowing backwards. If that actually turns the props in the other direction, so they're blowing air forwards, despite them working correctly with "aileron" stick, you may need to reverse the direction of this channel with your transmitter.
  4. If one green LED just blinks rapidly and the servos don't go through their startup moves, your battery is too low. Recharge it and try again. (If you find that this happens too soon or often, go the the definitions portion of the first tab of the code and change "#define low_battery_limit 6000" to a lower number)
  5. Now you should be able to fly around. You'll note that it turns one way better than other due to motor torque effects. We're looking for a reverse-pitch prop so we can have the motors counter-rotate and avoid this. But for now it shouldn't be too bad.

If that all works, it's time to try...

Autonomous Mode.

  1. Unplug the RC receiver channels from BlimpDuino, and plug the vectoring servo into the third 3-pin connector (closest to the reset switch).
  2. Plug the beacon into a 5-9v power source.
  3. Make sure that there aren't any cables obscuring the ultrasonic sensor or blocking the IR sensors.
  4. Hold the blimp at shoulder height over a hard floor (not over carpet).
  5. Power it on and wait until the LEDs flash in a circle. That means it's measuring its altitude and is ready to hold it.The servo will turn the motors all the way up, down and back to the middle to show that it passed its self-test.
  6. If one green LED just blinks rapidly and the servos don't go through their startup moves, your battery is too low. Recharge it and try again. (If you find that this happens too soon or often, go the the definitions portion of the first tab of the code and change "#define low_battery_limit 6000" to a lower number)
  7. Before you let it go, make sure it can see the beacon and is responding correctly. The green LED should light up on the side of the beacon, and the motor should turn on the opposite side (at least when the beacon is on the left and right side). You can hold the beacon in your hand and test this.
  8. If that works, let the blimp go and put the beacon on a chair in the middle of the room.

When the blimp can "see" the beacon, it's will go into navigation mode and the vectoring servo will move proportionally as the blimp steers towards the beacon (if you're holding the beacon and walking around, it should follow you). If the the blimp can't see the beacon, it goes into altitude hold-only mode, where the vectoring servo is pointed all the way up or down and it just holds altitude in one place.

Enjoy the show!

E-mail me when people leave their comments –

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

Join diydrones


  • 3D Robotics
    Ricardo: No, it's not required. You can take it off in RC mode.
  • Quick question: Is it necessary to equip the ultra sonic sensor to the board while configured for RC mode?

    It seems like it's just dead weight.
  • I using the HobbyKing HK-T4A transmitter with HK-TR6A receiver too. Here's my configurations: channel4 to input1 , channel3 to servo (put it backwards, it took me hour to figure that one out.), channel2 to input 2.

    Servo is controlled by the left stick up/down.
    both motors spin with right stick up/down.
    individual motor spin with left stick left/right.

    I hope this helps anybody with the same RC problem.
  • I forgot to mention that when I can control the vectoring, the motors are still running in autonomous mode... Is this normal? I'm not too good at programming but somehow when I load the .pde file, the program says that there's unrecognised character. Thanks... really need some help to get this to work!
  • Order the blimp but was so sad that the IR beacon was missing from the package. Tried out the RC mode using this radio http://www.sussex-model-centre.co.uk/shopexd.asp?id=20060 but only could get the vectoring to work. Connected the vectoring to channel 3 and the 2 servo to channel 1 and 2. Somehow felt that the board is not receiving the signal from the transmitter... or something. Deeply appreciate if anyone can provide some advice for me... Thanks in advance.
  • I had trouble getting the board to detect the RC mode using the hobby king HK-T4A until I
    switched the HK-TR6A channel 2 cable to channel 4 on the receiver. After I made this
    switch, the left joy stick forward/rev position controlled vector up and down on the servo
    and left and right on the joy stick controlled left and right motor propellers. The right
    joy stick controller thrust forward (full left) thrust reverse (full right).
  • I have a problem with the rc mode: RC is detected but the motors are randomly spinning. Like there were interferences on the rc line. But the Servo is ok and perfectly working. Any suggestions are welcome.
  • 3D Robotics
    Hmmm. Not sure. We haven't seen that problem. Is it something you can solve by just resetting the board?
  • I have a problem where it isn't consistently recognizing RC mode. The code looks to be averaging "channel 1" position, but it seems to be an int timer which counts clock interupts, and since the running average only has to get to 1, it should detect it easily. Could this be due to noise on the line causing too many interrupts?
This reply was deleted.