Wireless UART Speed Shift

arduinosparkfunwireless

I'm building a MindFlex-based EEG. Basically, I'm sniffing a 9600bps bus, analyzing the data with an Arduino*, and sending it to Processing/Java for display. To make it absolutely isolated from mains power, I want to make it wireless, but the only wireless gear I can afford (transmitter, and its matching receiver) transmits at 2400bps. I think that if I move the Arduino into the headset, I can make a SoftSerial connection at 2400bps to operate the transmitter, then use hardware serial at 9600bps to talk to the headset. That way, I can hook up a reciever to a FTDI USB-TTL adaptor and send the data to Processing.

Will that work? If it helps, new data comes from the headset about once per second, and I plan on implementing a timestamp into the data from the Arduino, so lag shouldn't be too much of an issue. I also cannot afford XBees, Bluetooth, or anything else.

*Before anyone says anything, if wireless works, I will use an Arduino Pro Mini, and if it doesn't I'm going to use a BoArduino – I'm not throwing an entire Uno at this project.

Best Answer

If your data is infrequent bursts, then you should be able to resend it at a lower data rate, using any micro controller which has two UARTs and enough memory to store an entire burst. You could probably even do it with some tiny single-UART parts by bit-banging the slow side.

As long as you can resend on the slow side before new data comes on the fast side, I don't think you should have any problem. And your delays should be deterministic within a few clock cycles so you may not need the timestamp (or does that wireless link do resend on error?)