Skip to content

BNO055 Build Instructions (Discontinued)

Cliff edited this page Dec 10, 2021 · 5 revisions

I've decided to stop support on this build. I will continue to support bug fixes as they come up. Users of this build please stay on GUI 0.72. If someone out there want's to assist in continued development I will gladly give a hand where needed.

Whats needed to Build tracker with a Arduino Nano with a BNO055 sensor

  1. Arduino Nano - Amazon/Ebay/Many Places.
  2. BNO055 Sensor Board - Ebay/Adafruit, https://www.adafruit.com/product/4646, I got mine on ebay, photo below search for BNO055
  3. Soldering Iron
  4. Short pieces of wire
  5. 3.5mm mono stereo cable
  6. Small Push Button Switch, for resetting zero

Assembly

  1. With the Nano you will get some pin headers. Cut one of these so you have two pins. Solder it into A4(SDA)+A5(SCL), this is the I2C communication pins.
  2. Solder two wires one into 3v3 pin and the other in a gnd pin. Leave the other end loose, it's difficult to get at once the board is on. *** This is a 3.3v IC. Some boards have a voltage regulator on board so you can power them from 5V if desired. Hook up the Nano to 5v in this case.
  3. The BNO055 has two pins PS0 and PS1. These pins need to be connected to ground to place the chip in I2C mode so the Arduino will see it. On my ebay board you make a solder bridge from the S0 to - and from S1 to -. On other brands of boards you may need to connect wires from PS0+PS1 to a ground pin.
  4. Solder on the crystal to the back of the board and trim the wires excess wire, I mounted mine flat on the board and used some super glue to hold in place.
  5. Solder the board onto the two headers sticking up from the nano. Making sure SDA connects to A4 and SCL connects to A5
  6. Cut the two wires sticking up to the proper length and attach them to the 3.3 and gnd pins on the BNO055 board.
  7. Cut off one end of your mono 3.5mm cable and strip off the insulation at the end. The outer copper braid connects to a gnd pin. The Center wire connects to D9. This is the cable you will plug into your transmitter to transmit your head orientation
  8. Connect the push switch from D11 to GND. This will be used to reset zero when your head is level. I bent one of the pins on the switch and put it into GND, then used a wire to D11 on the other side.

Programming

  1. Download the 0.72 release from https://github.com/dlktdr/HeadTracker/releases/tag/v0.72 and extract the zip file to a folder on your computer.
  2. Open Headtracker.exe file from the extracted folder.
  3. Choose Firmware->Upload Firmware from the menu.
  4. Be sure the board is connected and choose the Com Port from the list of choices. Use the refresh button beside the com port list to update.
  5. A list of current available firmware files is presented. Highlight the one you want and click Upload Selected.
  6. It should show "avrdude.exe: xxxxx bytes of flash verified" near the bottom and programming successful.
  7. Close the firmware window

Usage

  • Choose the correct Com Port from the list and click connect. After a second you should see Settings Retrieved! in the log.
  • If you only see "TX: $GSET" and nothing else hit the reset button on the Nano to see if there was an Error on Bootup.
  • Once Connected Click Start to show the tracker output status.
  • Right click on the range settings and choose default values for all three tilt, pan, roll if needed
  • Adjust these sliders so when you pan your head the servo's move where you want them to.
  • Adjust the gain settings to make the outputs more or less sensitive.
  • The yellow triangle on the range sliders show the actual servo output
  • The channel options allow you to choose what PPM output each is going to on your radio.

Errors

If you get, "Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!" - Check the board is powered from the proper 3.3 volts. Check your SCL and SDA wires are correct. Also check that both PS0 and PS1 are tied to ground. The new firmware autodetects the two possible I2C addresses so you no longer need to worry about this.

Calibration

Once your connected click Calibrate. This will guide you through a calibration procedure. Although this procedure isn't required it does reduce the time at start-up for the sensor to find magnetic north.

Alternate orientations

You can mount the board in many orientations 48 to be exact. I don't have an easy way to find the correct settings at the moment. You will have to cycle through the Axis Sign and Remapping choices. Be sure to have "Show Raw Data" on when trying to find the correct one. This will remove any offsets from pressing the zero button. Hold your headset in a level orientation. Cycle through the choices until the tilt and roll on the graph are near zero. Ignore the pan until you have both tilt and roll at or near zero. Then check pan, remember you will have to always manually zero this one.