Seeeduino, IMU, Rx and GPS connectivity?

Hello,

I’m looking for information about how to connect several pieces of hardware to my Seeeduino. I’m not looking for an overly in depth explanation, just a push in the right direction and confirmation of whether or not what I want to achieve is possible.

I’m building a autonomous quadcopter based around the Arduino/Seeeduino platform. Hopefully what I wan’t to achieve isn’t impossible.

I have a Seeeduino http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=510&osCsid=j90j5kqfegquksdbumahtmuqg5 which states that it has:

Digital I/O Pins : 14 (of which 6 provide PWM output)

Analog Input Pins : 8

To this, i’d like to be able to connect my Rx crystal from my TxRx as well as a Razor 9DOF IMU http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=462&osCsid=j90j5kqfegquksdbumahtmuqg5 and also a GPS module http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=210 as well as an XBEE using an XBEE shield.

Whilst i’ve seen other projects use each of these components individually, i’m unsure as to whether or not they will all be able to interface with the Seeeduino in tandem?

It is my understanding that the Razor 9DOF IMU transmits data on the RxTx pins. Will this interfere with my XBEE transmitting data on those pins too?

I’m unsure about the GPS and how to interface it with the Seeeduino. The cables that come with them seem to be nothing i’ve seen before.

As far as i’m aware, my Rx crystal has 6 I/O leads which will mean i’ll need to use 6 pins to connect this to the Seeeduino. I’m worried that this won’t leave enough inputs for the additional IMU and GPS sensors.

Worst comes to worst, I can probably omit the GPS (i’d rather not though as this would be damn handy!). I’m just struggling to determine how to connect everything together and whether the Seeeduino is capable of handling them all in tandem?

Sorry if my questions are a little vague. I’m still new to the world of arduino and reading data sheets isn’t an easy task. Any help anyone can provide would be greatly appreciated!

Will this interfere with my XBEE transmitting data on those pins too?

Transmitting to what? The XBee sends over-the-air anything that appears on the TX pin, and puts anything it receives over-the-air, on the RX pin.

If it is IMU data that you want to be wirelessly transmitting to something, then there is no interference. If you think you can use the TX/RX pins for Serial usage AND IMU usage, you are going to be disappointed.

Using all of the devices that you mention is going to present a problem unless you have multiple hardware serial ports. That link you posted is crap. It does not take you to a specific device, unless, maybe, you are a registered customer. I will not register just to see which Seeeduino you have. Why not post a link to the Seeeduino site, instead?

NewSoftSerial can be used to create software serial ports, on Arduinos with only one hardware serial port. These work fine, as long as you can control which device is sending data to the Arduino. GPSs and IMUs send at there own pace. If the NewSoftSerial port for the device is not the active port, serial data sent by that device will be lost.

Hi,

Thanks for your reply.

Sorry for the shady link, it seems that website isn't all that. Heres a link to the Seeeduino website: http://www.seeedstudio.com/depot/seeeduino-v22-atmega-328p-p-669.html?cPath=79_80

The reason I asked these questions is because i'm not overly familiar with the in's and out's of how the arduino/seeeduino handles data coming in from other sensors.

I have an XBee to XBee network setup between two seeeduinos currently and want to add the GPS and IMU to one of the seeeduinos for onboard processing as well as sending the data back to the 2nd seeeduino for monitoring the data.

Whats confusing me at the moment is how to connect everything and whether there will be enough inputs to handle all of the sensors?

The IMU will be used to stabilise the quadcopter whislt the GPS would be handy for waypoints so I can make the whole thing autonomous. The data from these two sensors would be processed on Seeeduino #1 and then transmitted to seeeduino #2 for logging and processing in a visual environment.

I'm simply trying to discern whether this is all possible. Given that the GPS and IMU sensors aren't cheap, I just want to make sure that i'm not throwing money away if the Seeeduino isn't capable of interfacing with everything all at once.

I see the GPS modules use a serial connection at pretty high baud rates. Again, would this interfere with the XBee's? Is it possible to open more than one serial connection at a time? Is this what you were getting at with:

NewSoftSerial can be used to create software serial ports, on Arduinos with only one hardware serial port. These work fine, as long as you can control which device is sending data to the Arduino. GPSs and IMUs send at there own pace. If the NewSoftSerial port for the device is not the active port, serial data sent by that device will be lost.

Is it possible to open more than one serial connection at a time?

Yes, it is. All the hardware serial ports can be open, and any number of software serial ports. The seeeduino that you reference has only the one hardware serial port.

The problem with software serial ports is that, unlike hardware serial ports, they are NOT interrupt driven.

When serial data arrives on a hardware port, an interrupt is generated, which causes the Arduino to stop what it is doing, and collect the serial data in a buffer.

The arrival of serial data on a software port is not cause for an interrupt to fire, so the Arduino needs to poll the RX pin continuously. It is capable of polling only one polling one such pin at a time.

So, having the IMU and GPS on software serial ports will mean that only one of them can provide input at a time.

Software serial is ideal for output of serial data, but not so ideal for input.

Your project just cries out for multiple hardware serial ports, like the Mega has. http://www.seeedstudio.com/depot/seeeduino-mega-p-717.html?cPath=79_80

Forgive my ignorance, this is all very new to me still.

At a basic level you're saying that the Seeeduino doesn't have the capability to handle all of the connected devices?

I've had a look at the seeeduino mega and it looks like a vastly superior successor to the one I currently have. Having 128KB flash memory around would be handy but it's a shame the clock speed is still only 16MHz.

I assume these are still compatible with the standard arduino shields? I have a prototype shield and xbee shield too and it would be a major pain in the ass to have to purchase new boards again :/

Having 128KB flash memory around would be handy but it’s a shame the clock speed is still only 16MHz.

16MHz is plenty fast for dealing with the devices you have listed.

I assume these are still compatible with the standard arduino shields?

Valid assumption.

I have a prototype shield and xbee shield too and it would be a major pain in the ass to have to purchase new boards again

You won’t be needing any Preparation H.

Thanks for the info Paul :)

I've ordered a Seeeduino Mega and will have a gander at hooking everything up when it arrives.

In the meantime i've purchased a new book for reading up on the arduino platform, namely: Practical Arduino. Hopefully I can glean some useful information and stop nagging people on forums for info :P

Thanks again for the push in the right direction :)