Hi Chris,

As Steve says, I do plan on adding these features to BoilerPlate, but it
could be a while before I get around to it.

If you need to get it working yourself before then, two things that are
wrong with your code:
1. You seem to be getting the arguments for setGain() and setOutputRate()
swapped. This is not the cause of your problem, because you are still
passing in valid values, but you just won't end up with the results you are
expecting.

2. The reason the output is breaking is that you are writing values to the
magnetometer (the gain, output rate, and the command to start continuous
conversion), but you are not waiting for one write to complete (as signaled
by Magnetometer.writeDone()) before writing the next value.

Mike


On Sun, Jun 19, 2011 at 2:46 AM, steven ayer <[email protected]> wrote:

> hi chris,
>
> glad i could help.  mike healy is in the process of adding some new
> features to boilerplate, and that's one of them.  you should await his
> mods...
>
> btw, boilerplate wasn't meant to be the uber-app, it was just written so
> that people who weren't comfortable writing their own code could get started
> easily using their shimmers, and/or use it as a reference to see how to make
> particular sensors operate in an application.
>
> take it easy,
>
> steve
>
>
> On 6/18/11 1:18 PM, Chris B wrote:
>
>> Thanks for the pointers, Steve.
>>
>> Incidentally, I was also trying to add Magnetometer gain and sample rate
>> settings functionality to the BoilerPlate app (see code snips that i
>> inserted below). However, doing this seems to break the magnetometer
>> output (just outputs constants). Am i implementing this correctly?
>>
>> regards
>>
>> Chris
>>
>>
>> #include "Magnetometer.h"
>> module BoilerPlateC {
>> ...
>> ...
>> task void startSensing() {
>> if(stored_config[NV_SENSORS0] & SENSOR_GYRO){
>> call GyroInit.init();
>> call GyroStdControl.start();
>> }
>> if(stored_config[NV_SENSORS0] & SENSOR_MAG)
>> {
>> call MagInit.init();
>> /*
>> * 0.5, 1, 2, 5, 10 (default), 20, 50hz. 20 and 50 up power burn
>> dramatically
>> * values 0 - 6 map to values above, respectively
>> */
>> call Magnetometer.setOutputRate(**ONE_GAUSS);
>>
>> /*
>> * +-0.7, 1.0 (default), 1.5, 2.0, 3.2, 3.8, 4.5Ga
>> * values 0 - 6 map to values above, respectively
>> */
>> call Magnetometer.setGain(TEN_HZ);
>> call Magnetometer.**runContinuousConversion();
>> }
>> ...
>> ...
>>
>>
>>
>>  > Date: Tue, 14 Jun 2011 15:31:51 -0400
>>  > From: [email protected]
>>  > To: [email protected]
>>  > CC: [email protected]
>>  > Subject: Re: [Shimmer-users] logging magnetometer data to SD card
>>  >
>>  > hi chris,
>>  >
>>  > you're in fairly tricky territory here.
>>  >
>>  > yes, you need to switch bus modes; see any application or driver (hint:
>>  > the sd driver does!) that uses spi to understand how to wire in
>>  > usartcontrol to do what you want.
>>  >
>>  > you're on the right track, but there are a couple of really important
>>  > things that you should note first. since the msp430 shares one pin that
>>  > conducts traffic in i2c (sda) and spi modes (simo), and the clock pin,
>>  > you'll need to disable the card itself, or it will think that you're
>>  > talking to it when you ask the magnetometer for data.
>>  >
>>  > if you follow the calls inside the fatfs module to their
>> implementations
>>  > (diskio layer) you'll find what you need to bring the card up and down
>>  > while you pull data from the magnetometer. so, you can use the calls
>>  > that the filesystem uses. you might also try just doing the
>>  > lowest-level things in the card disable/enable functions.
>>  >
>>  > you'll also need to consider the timing; writing one disk block takes
>>  > about 14 ms, so if you're reading the magnetometer at 10hz, then you'll
>>  > have to slip the (relatively infrequent) disk writes in during the 72
>> ms
>>  > that it's idle between samples. sounds easy, but notice that the driver
>>  > has to pause during start-up for a power cycle (longer than sd spec,
>> but
>>  > we found that not all cards meet that spec).
>>  >
>>  > i hope that this helps.
>>  >
>>  > have fun,
>>  >
>>  > steve
>>  >
>>  > On 06/14/2011 03:02 PM, Chris B wrote:
>>  > > Deal all,
>>  > >
>>  > > I am trying to enable SD card logging of timestamp, accelerometer,
>> gyro
>>  > > and magnetometer data on the Shimmer2r + Kinematics board. I'm
>> getting a
>>  > > bit stuck on enabling SD logging of the magnetometer data.
>>  > >
>>  > > To start with, I have essentially extended the Shimmer
>> HostTimeLogging
>>  > > app. I am aware that the Magnetometer and SD card access utilise the
>>  > > same bus USART0, thus i need to switch USART0 between the
>> Magnetometer
>>  > > (I2C mode) and the SD card access (SPI mode) in a timely manner.
>>  > >
>>  > > This seems straightforward for the Magnetometer, i just use calls to
>>  > > Magnetometer.enableBus() or Magnetometer.disableBus(). However, I
>> can't
>>  > > figure out which commands I should be using for the SD card access.
>> I'm
>>  > > not sure whether those within the FatFs interface such as
>> FatFs.mount()
>>  > > and FatFs.unmount() are the correct calls to make in this instance,
>>  > > looking at the lower-level code, they seem to do more than just set
>> up
>>  > > the bus mode. I think i should be using calls such as
>>  > > Usart.setModeSpi(config) but am unsure how to expose these function
>> in
>>  > > the top level code in a safe manner alongside FatFs.
>>  > >
>>  > > Any help on this would be appreciated.
>>  > >
>>  > > regards
>>  > >
>>  > > Chris
>>  > >
>>  > >
>>  > >
>>  > > ______________________________**_________________
>>  > > Shimmer-users mailing list
>>  > > [email protected]
>>  > > 
>> https://lists.eecs.harvard.**edu/mailman/listinfo/shimmer-**users<https://lists.eecs.harvard.edu/mailman/listinfo/shimmer-users>
>>
> ______________________________**_________________
> Shimmer-users mailing list
> [email protected]
> https://lists.eecs.harvard.**edu/mailman/listinfo/shimmer-**users<https://lists.eecs.harvard.edu/mailman/listinfo/shimmer-users>
>
_______________________________________________
Shimmer-users mailing list
[email protected]
https://lists.eecs.harvard.edu/mailman/listinfo/shimmer-users

Reply via email to