PDA

View Full Version : Cheap Wireless Prop-Prop Communication



Philldapill
03-16-2009, 01:04 PM
I've posted something similiar to this before, but I can't find it, so here goes - again.

A few months back, I learned of a wireless chip that got me really excited about the things I could do with it. It's the nRF24L01+ from NORDIC Semi. Sparkfun sells a breakout board for $19.95(http://www.sparkfun.com/commerce/product_info.php?products_id=691). $20 is a little steap, IMO, plus I'd like to be able to completely integrate the chip itself into my next Propeller based PCB. i.e., I don't want to have an external board, in addition to my main board.

Datasheet: http://www.nordicsemi.com/files/Product/data_sheet/nRF24L01_Product_Specification_v2_0.pdf

This is why I want to source the parts myself, and design a PCB with the chip, and other parts designed into it. The only problem with this whole wireless chip, is that there isn't an OBEX object for it! The XBee is a great little wireless solution, but boy is it expensive. I think this NORDIC solution would only cost, at most, $5 in parts - super cheap.

Now, the point of this post, is to get other members aware of it, and hopefully, get some of those coding geniuses out there to write up an object for the community. Yes, this may be one of those "Do my work for me - please?" type of posts, but I think having an object written for this device could open up so many doors for the Propeller Community. Just think of alllll the inexpensive wireless gadgets you could make with this... I, of course, have a christmas list full of things I want to make, but sadly software isn't my cup of tea.

Dr_Acula
03-16-2009, 01:58 PM
Looks very interesting. But complicated *eyes glazing over*.

The absolute cheapest solution would be to use those little raw RF receivers and transmitters that only cost $2 each, and combine then with the very clever modem object software that is currently running as an active thread. Then you have control over noise filtering and the like. Or just send raw RS232 through a module, but if you do that you need at least 6 ascii U characters at the beginning of a packet to bias things correctly (U=01010101), and if you are sending long packets, you need some sort of Manchester coding or similar to keep the number of 1s and 0s the same.

Personally, I'm doing a lot of work with Yishi modules that have an onboard micro. Yes, they cost more, but they are the only company that make ones with a big buffer (256 bytes) and you need a big buffer to transfer files with xmodem (132 byte packets). I've sent 30-40k files with no problems and xmodem can recover from glitches and ask for a resend for a bad packet.

So not a software project I can help with but maybe someone has some code.

Philldapill
03-16-2009, 02:19 PM
Whoa, what RF receivers are you talkinga bout that are $2? These nordic chips are also $2, but need other stuff to get them working($5 in all parts).

MagIO2
03-16-2009, 03:05 PM
It's in the ObEx: http://obex.parallax.com/objects/112/

Maybe the driver is for an older version, but I'd not expect to much changes in the interface. Estpecially the physical protocoll is SPI and won't have changed. Just grap the Object and the Datasheet and modify the object if it does not work.

@DR_Arcula:
This module has only a 32 Byte FIFO buffer, but it has Auto-Acknowledge and Auto-Retransmit.

Post Edited (MagIO2) : 3/16/2009 7:10:18 AM GMT

BradC
03-16-2009, 06:01 PM
Dr_Acula (James Moxham) said...
Looks very interesting. But complicated *eyes glazing over*.

The absolute cheapest solution would be to use those little raw RF receivers and transmitters that only cost $2 each, and combine then with the very clever modem object software that is currently running as an active thread. Then you have control over noise filtering and the like. Or just send raw RS232 through a module, but if you do that you need at least 6 ascii U characters at the beginning of a packet to bias things correctly (U=01010101), and if you are sending long packets, you need some sort of Manchester coding or similar to keep the number of 1s and 0s the same.



The problem most people seem to have with any cheap modules is trying to force straight NRZ serial data into them. The Data slicers become badly biased very quickly and they become very unreliable quite quickly. I'm toying with Differential Manchester encoding which is making things infinitely more reliable over distance.

Standard cheap-o 433 Mhz tx/rx pairs are pretty effective, but for "bang for your buck" the 7 dollar Hope RFM12B tranceiver provide great value.
www.futurlec.com/Radio.shtml (http://www.futurlec.com/Radio.shtml)

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Cardinal Fang! Fetch the comfy chair.

Dr_Acula
03-16-2009, 08:52 PM
I hope this link works stores.ebay.com/e-MadeinCHN_Transmitting-Receiver-Modules_W0QQcolZ4QQdirZ1QQfsubZ3QQftidZ2QQtZkm (http://stores.ebay.com/e-MadeinCHN_Transmitting-Receiver-Modules_W0QQcolZ4QQdirZ1QQfsubZ3QQftidZ2QQtZkm)


$2 for a Rx and $2.63 for a Tx. The nordic parts seem good value too (and that is a transceiver for $5 I presume, not a seperate Tx and Rx).

Hope are extremly good value. I've got a group of 6 of them working. Great for short messages. Indeed, there are heaps of modules around if you want to keep the bytes to 32 or less.

Maybe I'm the only one interested in xmodem. I kind of like it - it has been around since the late 1970s, it seems to be in every terminal program, and it is much simpler to understand than protocols like Kermit. I was able to write a vb.net xmodem transceiver in less than half a day using the machine code source as the example. I was able to kludge some code together to run xmodem on the Hope modules by putting in hard coded delays to force the module to send a packet after 30 bytes, but it was not the most efficient system and was slow. But I did get it up to 9600 baud.

With respect to wireless, it very much depends if you want to send short messages or send files. If just short messages then many modules will work fine. If you want to send files, you can code your own protocol or use an existing one. I'm sending files because I want to be able to upgrade software via wireless, and that involves sending a new version of a program, and then telling the old version to chain the new version. That came about because developing wireless comms systems seems to involve multiple rewrites of the code and it got tedious downloading it via wires to each module. So much easier to send updates via wireless as well.

But if a system is just sending short messages, then there are a myriad of options. And if the comms are only ever one way, then there is no need for a transceiver module, just a Tx and Rx.

I'd be very interested to see a quick demo with these Nordic modules. Nothing beats a photo of a breadboard with a working demo system...

CannibalRobotics
03-16-2009, 09:38 PM
I've been working pretty hard and long trying to get the Linx "RF made easy" modules to get close to their spec. They run in the 433MHz band.
I like the idea but the problem I have run into with anything 2.4 is band crowding and noise. With 2.4 you have; Zigbee being put into building control systems, access points everywhere, bluetooth devices coming and going, cameras, base phones and now most new cell phones & iPhone's are thumping the air all of the time for WiFi connectivity. Don't get me wrong, I love the idea and the multiple data pipes is very cool but I drowned in 2.4 noise about 2 years ago. I can't imagine it's gotten better.
Jim-

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Signature space for rent!
Send $1 to CannibalRobotics.com.