Freerunner Navigation Board v3
(→How to connect the FRNBv3 to a VGA/DVI/HDMI graphics card)
|Line 153:||Line 153:|
====with I2C voltage levels up to 5.5V====
====with I2C voltage levels up to 5.5V====
To connect the board
To connect the board I2C the integrated level shifter on complete assembled boards . Connect the target voltage to VCC/E and the I2C bus lines to SDA/E and SCL/E. Then wire OE to VCC I/O to enable the translator. Remember that the board still needs a supply voltage between 3V and 3.6V to power the sensors. Connect the 3V power supply to VCC and short this pad to VCC I/O.
Revision as of 18:15, 16 July 2011
Due to the new, smaller compass chip, the FRNBv3 offers a complete 10-DoF navigation solution. In addition to the 3D gyroscope, 3D compass and the barometer which are already known from the FRNBv2, the v3 adds a high resolution accelerometer. It should be more accurate for navigation purposes than the integrated LIS302 accelerometers.
- 3D Gyroscope ITG-3200
- 3D Magnetometer HMC5883L
- Air pressure/temperature sensor BMP085
- Accelerometer BMA180
The Bottom side of the PCB contains optional chips which might be used for different purposes. The FRNBv3 includes:
- TCA6705 7-channel LED controller
- MPR121 touch sensor controller
- M26LR64 I²C EEPROM accessible through RFID (antenna still needed)
- TXS0102 I²C level shifter (to connect additional sensors
- MIC1557 based 38KHz oscillator (for IR-remote control applications)
The board operates with 3V or 3.3V which is needed for the sensors to work correctly. To be able to connect the board to other devices (for example GTA04, OpenPandora, Always Innovating devices), the I/O voltage can be anything between 1.8V and VCC. To use the board with the Freerunner, just short the VCC and VCCIO solder points.
All sensors feature a "conversion complete" output which can trigger an interrupt. These signals are now available at small solder points.
I2C Addresss Map
Used I2C addresses
|0x41||BMA180||Accelerometer||git repository (first try, help needed)|
|0x45||TCA6507||LED Controller||source file (untested)|
|0x50||MPR121||Touch Controller||git repository (help needed)|
|0x54||M24LR64||I²C/RFID EEPROM||none yet|
|0x77||BMP085||Pressure/Temperature sensor||git repository (also available upstream since 2.6.35)|
|VCC||Supply voltage for sensors.||3 - 3.6|
|VCC I/O||Interface voltage of the I2C bus.||1.8 - VCC|
|SCL||I2C clock line||VCC I/O|
|SDA||I2C data line||VCC I/O|
|VCC/E||Target (external) VCC||VCC - 5.5|
|SCL/E||level translated I2C clock line||VCC/E|
|SDA/E||level translated I2C data line||VCC/E|
|OE||Output enable: connect to VCC I/O to enable the level shifter||VCC I/O|
LED Controller TODO
RFID EEPROM TODO
Touch Controller TODO
38kHz Oscillator TODO
To connect the FRNBv3 to your Freerunner, follow the instructions for the Freerunner Navigation Board v2 and then short the VCC and VCC I/O pads with a solder blob.
with I2C voltage levels below 3.6V
If you want to connect the FRNBv3 to other devices such as the Open Pandora, you need 3V-3.6V as supply voltage for the sensors. The I2C interface can work with a different, lower voltage level. Lots of devices use 1.8V here. Connect an additional wire to VCC I/O to specify the voltage level of the I2C interface.
with I2C voltage levels up to 5.5V
To connect the board I2C busses with higher voltages the integrated level shifter on complete assembled boards comes in handy. Connect the target voltage to VCC/E and the I2C bus lines to SDA/E and SCL/E. Then wire OE to VCC I/O to enable the level translator. Remember that the board still needs a supply voltage between 3V and 3.6V to power the sensors. This can be gained with a simple 3V LDO. Connect the 3V power supply to VCC and short this pad to VCC I/O.
Example: connect the board to a graphics card
The VGA connector uses an I2C bus for DDC. Since such a connector it is available on most notebooks, it is a good candidate to connect the FRNBv3 to. Luckily the VGA connector also carries 5V which can be used to power the board: a simple LDO will generate the 3V sensor supply voltage. I used the TPS73630 but any other LDO should be fine too. Connect Pin 9 (5V) and 10 (GND) to the LDO and its output to VCC and VCC I/O on the FRNBv3. Then connect the I2C bus:
|Pin 9 (+5V DC)||VCC/E|
|Pin 10 (GND)||GND|
|Pin 12 (SDA)||SDA/E|
|Pin 15 (SCL)||SCL/E|
Finally, use a short wire to connect OE to VCC I/O (both solderpads are on the backside) and you are done.
All sensors on the FRNBv3 support powermanagement. The current consumption of each sensor is listed in the table below. These values are taken from the datasheets, the real current consumption could be different. It often increases with higher sample rates.
|BMP085||0.1µA||12µA||average current in high resolution mode (default), 1 Hz|
|BMA180||0.5µA||975µA||"low noise" mode|
The power state of each sensor can be controlled through the I2C bus. Most kernel drivers expose a sysfs file to change it. Integration with the generic linux powermanagement code is planned.
Known HW or SW Issues Nothing known yet.
This program provides altitude or weather information on Neo Freerunners with bmp085 pressure sensors installed. The bmp085 is available as part of the Freerunner Navigation Board. Source code and binaries can be found here.
Two assembly options are available:
- Complete: Contains all chips as described above.
- Standard: Top-Side only, contains all sensors relevant for navigation purposes. The compass chip should be a little bit more accurate since a few capacitors on the bottom side are missing. They could distord the magnetic field.