Liquidware GeoShield and Fez

Hi,

One of my friend give me a GeoShield(GPS, Accelerometer, Compass) from Liquidware http://www.liquidware.com/shop/show/SEN-GEO/GeoShield for trying to make it work under my Fez Domino (Still waiting for Panda II).

As for now, I’ve can read the accelerometer values and I want to get the GPS value. I’ve been playing around but looks like I’m still in the dark… If someone can give me a clue to hook up my GPS Data it will be very appreciated!

GeoShield Schematics http://www.liquidware.com/system/0000/3669/GeoShield-RevB.pdf
GeoShield Arduino (C++) source code:https://github.com/liquidware/LibGeoShield

You should be able to modify this sample code to use with your shield,
since most GPS shield, included your, use UART (TX/RX) Serial Comm.
This one is using GPRMC GPS’s sentence.
http://www.tinyclr.com/downloads/Extension/FEZ_Extensions_GPS.cs

Here is a link to AdaFruit.com regarding the sample sketches to read GPS data logger.
which is using GPSACP GPS’s sentence.
http://www.ladyada.net/make/gpsshield/download.html

And here is a link regarding the GPS NMEA data format.
http://www.gpsinformation.org/dale/nmea.htm

Thanks Sam,

I’m going to look at this during the weekend.

I’ve tried to modified the code to match my GPS chip (based on this http://www.locosystech.com/product.php?zln=en&id=19:

                
_port = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);
_port.ReadTimeout = 0;
_port.ErrorReceived += new SerialErrorReceivedEventHandler(_port_ErrorReceived);
_port.Open();
_port.DataReceived += new SerialDataReceivedEventHandler(_port_DataReceived);

But I got a Frame error each time. I’m not really sure what can cause a framing error. Any ideas?

Gabriel,
Sorry for getting back to you late. 'Cause I’m travelling! :slight_smile:

Have you tried to do the simple Serial Comm. between GPS and PC using terminal program, something like the sample from the eBook, to see that the communication is working fine before step to more complicate thing?

Sam,

[quote]Sorry for getting back to you late. 'Cause I’m travelling!
[/quote]
I’m not in an hurry and enjoy your trip!

I’ve seen the code from the eBook but since the GPS is not a USB device, the DeviceConnected event is never fired. Do you know a workaround?

Sorry for asking a lot of questions, I’m not too familiar with the hardware portion…

Gabriel,
Totally forget about this, sorry!

I was looking in to this GeoShield and here is what I found:

GeoShield Summary:
Compass (HMC6352)
using I2C

Accelerometer (LIS302SG)
An0 to read X value
An1 to read Y value
An2 to read Z value

GPS (MC-1513)
using software serial with the Baudrate of 9600
(this sofware serial library [for Arduino] allows you to specify any digital pins as TX and RX, in this case,
Di4-RX, Di5-TX as TX/RX Comm. Shown as COMM2 on the Schematic, page 2)
http://www.liquidware.com/system/0000/3669/GeoShield-RevB.pdf
At the same time, these GPS RX/TX pins also hook up to COM1 (Di0-TX, Di1-RX)

So you could get by the problem by using COM1(I hope!) in the code instead of COM2, like this


_port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
_port.ReadTimeout = 0;
_port.ErrorReceived += new SerialErrorReceivedEventHandler(_port_ErrorReceived);
_port.Open();
_port.DataReceived += new SerialDataReceivedEventHandler(_port_DataReceived);

And like I said earlier,

Hope this would help you solve the problem! :wink:

If that image is correct the R11 and R12 isn’t installed. DNP=Do Not Populate. Thus Com1 will not work…

You will have to install R11 and R12, and preferably remove R6 and R7…

Thanks,
Errol

Errol,

It’s really hard to know what is the connections underneath from the picture provided on the web page:
(the shield look good though!)

http://www.liquidware.com/shop/show/SEN-GEO/GeoShield

You probably right! since the value of R6, R7 and R11, R12 is 0 Ohm.
So they must prepare the solder holes for user can connect the wire from GPS TX/RX traces
to connect to the choosen TX/RX.

Thanks for the note!
Sam

Thanks for the feedback,

If I understand right (I’m far from an hardware guru), if I put some resistance on R6, R7 (R11 , R12 are also at 0ohm) that will activate the COM1 port?

If so, I will have to use some tweaking since they do not expose anything from the shield except the Arduino pinout. And yes, this is a pretty neat board when it works (under the arduino…)

This shield consisted of four layers of board! Look like a top secret board. ::slight_smile:

Well, here is my way to find out if there is a connection to the COM1 TX/RX pins(Di0, Di1).
Just use the external battery (2xAA - 3V) or equivalent and hook the positive (+) to the 5V pin on the shield.
And hook the negative(-) to Di0 and see if one of the LED on top of the shield lid up.
If it lits up that means there is a connection from GPS to COM1-RX.

Then try to hook the negative(-) to Di1 and see if one of the LED on top of the shield lid up.
If so there is a connection from GPS to COM1-TX.

Then you could proceed to use the GPS on this shield.

Hope this help.