Is Domino compatible with the Arduino Lithium backpack shield?

Scope and voltmeter for the world! :smiley:

Hey Wolf, if you do use the HMC6343 I just finished writing a class for bearing - I’ll be updating to to add some calibration routines and such but it works very well. Feel free to use it:

// HMC6343 Digital Tilt-Compensated Driver
// Written by Greg Oberfield
// Feel free to use, modify or distribute this code for non-commercial use
// This header must remain intact - if you make changes, please add your name
// 2010-08-30: Greg Oberfield: Initial Build

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;

namespace HMC6343
    public class Compass : IDisposable
        const ushort HMC6343_ADDRESS = 0x32 >> 1;
        const int CLOCK_FREQ = 100;
        const int DELAY = 100;

        //Write buffer
        byte[] headingCommand = new byte[] { 0x50 }; // Read bearing command

        //Read buffer
        private byte[] inBuffer = new byte[6]; // Six bytes, MSB followed by LSB for each heading, pitch and roll

        public float realHeading = 0.0f;
        public float realPitch = 0.0f;
        public float realRoll = 0.0f;

        //Create Read & Write transactions
        I2CDevice compass;
        I2CDevice.I2CTransaction[] bearingTrans;
        I2CDevice.I2CTransaction[] readTrans;

        /// <summary>
        /// Initializes a new instance of the <see cref="HMC6343"/> class.
        /// </summary>
        public Compass()
            Thread.Sleep(500); // As per spec sheet, give the compass 500ms to warm up - doing it here guarantees it
                               // is done only once on object creation
            compass = new I2CDevice(new I2CDevice.Configuration((ushort)HMC6343_ADDRESS, CLOCK_FREQ));
            bearingTrans = new I2CDevice.I2CTransaction[] { I2CDevice.CreateWriteTransaction(headingCommand) };
            readTrans = new I2CDevice.I2CTransaction[] { I2CDevice.CreateReadTransaction(inBuffer) };

        /// <summary>
        /// Releases unmanaged and - optionally - managed resources
        /// </summary>
        public void Dispose()
            bearingTrans = null;
            readTrans = null;

        /// <summary>
        /// Reads heading, pitch and roll and converts to usable degrees.
        /// </summary>
        public void ReadBearings()
            compass.Execute(bearingTrans, DELAY);
            Thread.Sleep(1);  // Give the compass the requested 1ms delay before reading
            compass.Execute(readTrans, DELAY);

            int heading = (int)(((ushort)inBuffer[0]) << 8 | (ushort)inBuffer[1]);
            int pitch = (int)(((ushort)inBuffer[2]) << 8 | (ushort)inBuffer[3]);
            int roll = (int)(((ushort)inBuffer[4]) << 8 | (ushort)inBuffer[5]);
            realHeading = heading / 10.0f;
            realPitch = (float)pitch / 10.0f;
            if (realPitch > 6400)
                realPitch = (realPitch - 6400 - 155);
            realRoll = (float)roll / 10.0f;
            if (realRoll > 6400)
                realRoll = (realRoll - 6400 - 155);


All, i tested the battery backpack and it says just under 5v after a day of charging but the light never turns off (on the charging process) and the screen still does a flicker and the battery doesnt last very long if im using the screen, the USB logging and GPS

i ran a test last night with the rc car battery plugged into the barrel connector (made my own adapter). it logged gps coordinates on the USB every 5 seconds with the screen on the whole time for 7 hours before it died. my chassis is going to be an rc car anyways so i think im satisfied that this will work fine for my idea.

thanks! i think i am going to use the same compass as well. Have you worked out GPS yet? when i plot my coordiantes in excel i notice there is a big warp when compared to an actual map. Looks like the ratio of N:W coordinates isnt 1:1 like i assumed (i think it maybe ONLY at the equator). here in charlotte i think its more like 1:0.22 ( thats 1 to .22). noticed anything like that?

also web admins: what about the ability to send private messages so i dont have to put my email out here just to talk offline?

also, my issue with the battery may relate more to the amount of power i am attempting to use (screen, GPS, and USB all at once) and not the battery itself. I know the rc car battery packs a much bigger jolt than the cell phone type battery on the backpack. if your project uses less power this might work out perfect. i was able to get screen backlight-off, USB logging with GPS for about 1.5 hours with the backpack. i am also ordering a USB phone charger pack and testing that too. ill update you later.

were do you want the wiki to go? for the gps driver…

We have chat as an option for direct communication.

The wiki is here (link removed)