Freerunner Navigation Board

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Gyroscope vala bindings)
(removed extended sensmon description; added valacompass as end user software)
 
(32 intermediate revisions by 4 users not shown)
Line 1: Line 1:
''Preliminary Information. This page will be moved as soon as it contains the most important imformation about the board. (probably this weekend).''
+
Note: a [[Freerunner_Navigation_Board_v2 | second generation version]] has been announced that will add a 3D Gyroscope and a Barometer sensor: http://lists.openmoko.org/nabble.html#nabble-f1954
 
+
= Freerunner Navigation Board =
+
  
 +
<hr>
  
 
The Freerunner Navigation Board is a small PCB which can be mounted inside the case to extend the Freerunner with additional Hardware.
 
The Freerunner Navigation Board is a small PCB which can be mounted inside the case to extend the Freerunner with additional Hardware.
The Board contains the triaxial [[digital compass]] chip [http://www.honeywell.com/sites/portal?smap=aerospace&page=Magnetic-Sensors3&theme=T15&catID=CF84B17AB-A90F-716D-10BC-A1E75441138E&id=HF916B4E0-4F71-9DB5-DFA8-51B1944918EE&sel=2&sel4=1 HMC5843] from Honeywell and two gyroscope chips from InvenSense to provide a triaxial gyroscope solution.
+
The Board contains the triaxial [[digital compass]] chip [http://www.honeywell.com/sites/portal?smap=aerospace&page=Magnetic-Sensors3&theme=T15&catID=CF84B17AB-A90F-716D-10BC-A1E75441138E&id=HF916B4E0-4F71-9DB5-DFA8-51B1944918EE&sel=2&sel4=1 HMC5843] from Honeywell and two gyroscope chips from InvenSense ([http://invensense.com/mems/gyro/idg650.html IDG650], [http://invensense.com/mems/gyro/isz650.html ISZ650]) to provide a triaxial gyroscope solution.
  
 
Full [http://chonyota.net/freerunner/gyro-V5-schematic.pdf schematics] and layout files are available from [http://chonyota.net/freerunner chonyota.net/freerunner]
 
Full [http://chonyota.net/freerunner/gyro-V5-schematic.pdf schematics] and layout files are available from [http://chonyota.net/freerunner chonyota.net/freerunner]
  
== Hardware details ==
+
= Hardware details =
 
The board can be connected to the [[I2C]] bus which is available on testpads around the debug connector.
 
The board can be connected to the [[I2C]] bus which is available on testpads around the debug connector.
  
The compass chip is directly connected to the I2C bus. The gyroscopes have an analog output which is digitized using a 16-bit A/D converter [http://focus.ti.com/docs/prod/folders/print/ads1115.html ADS1115] from Texas Instruments.
+
The compass chip is directly connected to the I2C bus. The gyroscopes have analog outputs which are digitized using the 16-bit A/D converter [http://focus.ti.com/docs/prod/folders/print/ads1115.html ADS1115] from Texas Instruments.
  
Additional features which were planned but are not implemented yet:
+
Additional features which are planned but are not implemented yet:
 
The board contains the footprint to add an additional MSP430 microcontroller from TI. It would be used to control the offset compensation features of the gyroscopes, read their internal temperature sensors and switch them off when not used. Latter can actually be done using a GPIO line which is available at a testpoint H-TP1516.
 
The board contains the footprint to add an additional MSP430 microcontroller from TI. It would be used to control the offset compensation features of the gyroscopes, read their internal temperature sensors and switch them off when not used. Latter can actually be done using a GPIO line which is available at a testpoint H-TP1516.
  
== Software support ==
+
== Board Pictures ==
 +
{|
 +
| [[Image:FRNavBoard-Top.JPG|thumb]]
 +
| Top side: a voltage regulator and two gyroscopes from InvenSense
 +
|-
 +
| [[Image:FRNavBoard-Bottom.JPG|thumb]]
 +
| Bottom side: the digital compass chip, space for a MSP430 microcontroller and two ADCs.
 +
|}
 +
 
 +
== Installation ==
 +
 
 +
{|
 +
| [[Image:FRShields.JPG|thumb]]
 +
| Make sure that the shield or the GPS connector can't cause short circuits.
 +
|}
 +
 
 +
{|
 +
| [[Image:FRNavBoardInstalled1.JPG|thumb]]
 +
| [[Image:FRNavBoardInstalled2.JPG|thumb]]
 +
| Insert the board into the empty space under the GPS connector. It fits exactly.
 +
|}
 +
 
 +
{|
 +
| [[Image:FRNavBoardInstalled3.JPG|thumb]]
 +
| Solder the I2C-Wires to the testpoints at the debug connector. Refer to [[I2C]] for the pinout. The white wire is used to control the power supply of the gyroscopes. It connects to H-TP1516, or directly to 3.3V if this functionality is not needed. Power can be stolen from the AUX-Switch or, in this case, from the decoupling capacitor of the accelerometer. This power source will be disabled when the device suspends.
 +
|}
 +
 
 +
{|
 +
| [[Image:FRNavBoardInstalled4.JPG|thumb]]
 +
| Reassemble the phone and stuff the remaining wires into the free space under the main PCB.
 +
|}
 +
 
 +
{|
 +
| [[Image:FRNavBoardInstalled5.JPG|thumb]]
 +
| That's it!
 +
|}
 +
 
 +
= Software support =
 
Right now, this additional hardware is not supported out of the box, but there are some pieces of software available to demonstrate that the hardware actually works.
 
Right now, this additional hardware is not supported out of the box, but there are some pieces of software available to demonstrate that the hardware actually works.
  
=== Drivers ===
+
== Drivers ==
 
Hardware drivers are available from [http://gitorious.org/freerunner-navigation-board gitorious].
 
Hardware drivers are available from [http://gitorious.org/freerunner-navigation-board gitorious].
  
==== Digital compass ====
+
=== Digital compass ===
 
A kernel driver is available to control the HMC5843 digital compass through sysfs entries. Vala hackers can use a vala library for easier access.
 
A kernel driver is available to control the HMC5843 digital compass through sysfs entries. Vala hackers can use a vala library for easier access.
  
==== Gyroscope ====
+
=== Gyroscope ===
The Gyroscopes need a driver for the ADCs which can be downloaded from the [http://gitorious.org/freerunner-navigation-board/ads1115 ADS1115 repository]. Besides the kernel module, these chips can be accessed from userspace using the i2c-dev driver and a userspace library for easier access. Vala bindings are in developement.
+
The Gyroscopes need a driver for the ADCs which can be downloaded from the [http://gitorious.org/freerunner-navigation-board/ads1115 ADS1115 repository]. Besides the kernel module, these chips can be accessed from userspace using the i2c-dev driver and a userspace library. Vala bindings are available.
 +
 
 +
== End user software ==
 +
A Vala-based sensor monitor called [[SensMon]] developed by [[User:MicVM]] can be used to visualize the sensor values. The software is very experimental. You are using it at your own risk :)
 +
 
 +
[[ValaCompass]] can be used to use the 3d compass integrated in the navigation board
 +
 
 +
= Extending the Hardware extension =
 +
Since each of the two ADC chips provides two channels and the gyroscope solution needs only three out of four, one channel is free for use. A wire can be soldered onto a tiny testpad or directly to the pin on the chip.
 +
 
 +
Possible use cases
 +
* connect an ambient light sensor
 +
* other cool stuff
  
=== End user software ===
+
=Known issues=
A vala based [http://gitorious.org/sensor-monitor/sensor-monitor sensor monitor] developed by [[User:Micvm]] can be used to visualize the sensor values.
+
* Using the navigation board together with the [[I2C Pressure Sensor]] results in a not working NOR uboot. Everything else seems to be alright. If you have any clue what's happening, please tell me!
 +
* A few features of the gyroscopes such as "auto zero" or the integrated temperature sensor can not be used without an additional microcontroller.
  
  
== Hacking ==
+
[[Category:Neo FreeRunner reworks and mods]]
Since each ADC provices two channels and the gyroscope is 'only' triaxial, one channel is free for use. A wire can be soldered onto a tiny testpad or directly to the pin on the chip.
+

Latest revision as of 23:37, 9 March 2011

Note: a second generation version has been announced that will add a 3D Gyroscope and a Barometer sensor: http://lists.openmoko.org/nabble.html#nabble-f1954


The Freerunner Navigation Board is a small PCB which can be mounted inside the case to extend the Freerunner with additional Hardware. The Board contains the triaxial digital compass chip HMC5843 from Honeywell and two gyroscope chips from InvenSense (IDG650, ISZ650) to provide a triaxial gyroscope solution.

Full schematics and layout files are available from chonyota.net/freerunner

Contents

[edit] Hardware details

The board can be connected to the I2C bus which is available on testpads around the debug connector.

The compass chip is directly connected to the I2C bus. The gyroscopes have analog outputs which are digitized using the 16-bit A/D converter ADS1115 from Texas Instruments.

Additional features which are planned but are not implemented yet: The board contains the footprint to add an additional MSP430 microcontroller from TI. It would be used to control the offset compensation features of the gyroscopes, read their internal temperature sensors and switch them off when not used. Latter can actually be done using a GPIO line which is available at a testpoint H-TP1516.

[edit] Board Pictures

FRNavBoard-Top.JPG
Top side: a voltage regulator and two gyroscopes from InvenSense
FRNavBoard-Bottom.JPG
Bottom side: the digital compass chip, space for a MSP430 microcontroller and two ADCs.

[edit] Installation

FRShields.JPG
Make sure that the shield or the GPS connector can't cause short circuits.
FRNavBoardInstalled1.JPG
FRNavBoardInstalled2.JPG
Insert the board into the empty space under the GPS connector. It fits exactly.
FRNavBoardInstalled3.JPG
Solder the I2C-Wires to the testpoints at the debug connector. Refer to I2C for the pinout. The white wire is used to control the power supply of the gyroscopes. It connects to H-TP1516, or directly to 3.3V if this functionality is not needed. Power can be stolen from the AUX-Switch or, in this case, from the decoupling capacitor of the accelerometer. This power source will be disabled when the device suspends.
FRNavBoardInstalled4.JPG
Reassemble the phone and stuff the remaining wires into the free space under the main PCB.
FRNavBoardInstalled5.JPG
That's it!

[edit] Software support

Right now, this additional hardware is not supported out of the box, but there are some pieces of software available to demonstrate that the hardware actually works.

[edit] Drivers

Hardware drivers are available from gitorious.

[edit] Digital compass

A kernel driver is available to control the HMC5843 digital compass through sysfs entries. Vala hackers can use a vala library for easier access.

[edit] Gyroscope

The Gyroscopes need a driver for the ADCs which can be downloaded from the ADS1115 repository. Besides the kernel module, these chips can be accessed from userspace using the i2c-dev driver and a userspace library. Vala bindings are available.

[edit] End user software

A Vala-based sensor monitor called SensMon developed by User:MicVM can be used to visualize the sensor values. The software is very experimental. You are using it at your own risk :)

ValaCompass can be used to use the 3d compass integrated in the navigation board

[edit] Extending the Hardware extension

Since each of the two ADC chips provides two channels and the gyroscope solution needs only three out of four, one channel is free for use. A wire can be soldered onto a tiny testpad or directly to the pin on the chip.

Possible use cases

  • connect an ambient light sensor
  • other cool stuff

[edit] Known issues

  • Using the navigation board together with the I2C Pressure Sensor results in a not working NOR uboot. Everything else seems to be alright. If you have any clue what's happening, please tell me!
  • A few features of the gyroscopes such as "auto zero" or the integrated temperature sensor can not be used without an additional microcontroller.
Personal tools

Preliminary Information. This page will be moved as soon as it contains the most important imformation about the board. (probably this weekend).

Freerunner Navigation Board

The Freerunner Navigation Board is a small PCB which can be mounted inside the case to extend the Freerunner with additional Hardware. The Board contains the triaxial digital compass chip HMC5843 from Honeywell and two gyroscope chips from InvenSense to provide a triaxial gyroscope solution.

Full schematics and layout files are available from chonyota.net/freerunner

Hardware details

The board can be connected to the I2C bus which is available on testpads around the debug connector.

The compass chip is directly connected to the I2C bus. The gyroscopes have an analog output which is digitized using a 16-bit A/D converter ADS1115 from Texas Instruments.

Additional features which were planned but are not implemented yet: The board contains the footprint to add an additional MSP430 microcontroller from TI. It would be used to control the offset compensation features of the gyroscopes, read their internal temperature sensors and switch them off when not used. Latter can actually be done using a GPIO line which is available at a testpoint H-TP1516.

Software support

Right now, this additional hardware is not supported out of the box, but there are some pieces of software available to demonstrate that the hardware actually works.

Drivers

Hardware drivers are available from gitorious.

Digital compass

A kernel driver is available to control the HMC5843 digital compass through sysfs entries. Vala hackers can use a vala library for easier access.

Gyroscope

The Gyroscopes need a driver for the ADCs which can be downloaded from the ADS1115 repository. Besides the kernel module, these chips can be accessed from userspace using the i2c-dev driver and a userspace library for easier access. Vala bindings are in developement.

End user software

A vala based sensor monitor developed by User:Micvm can be used to visualize the sensor values.


Hacking

Since each ADC provices two channels and the gyroscope is 'only' triaxial, one channel is free for use. A wire can be soldered onto a tiny testpad or directly to the pin on the chip.