I just got one of these nifty devices transmitting via USART a few moments ago. Right now I am only able to run at 300bps at short range (~2 ft) because: (a) I have no antennas attached, and (b) My external clock is probably not an ideal selection for serial.
A few questions:
(1) Antennas: Where can I buy antennas for these? Datasheet recommends 23cm for the 315MHz ones. I didn’t see this on Sparkfun
(2) When really using these, with USART, is a form of error-control necessary? [Recommendations?]
(3) I plan on linking up 3-4 widgets through RF, send/receive on all. If using these, I’d have to have a set on each widget. Is that feasible? I understand I’ll need to code in addresses, etc. I just worry that the local Tx will overpower the Tx from all other nodes.
Can anyone recommend other mid-range (20yd), low cost transceivers that may be a suitable alternate?
(1) Antennas: Where can I buy antennas for these? Datasheet recommends 23cm for the 315MHz ones. I didn’t see this on Sparkfun
You can purchase 1/4 wave antennas by Linx Technologies and other manufactures. Digikey carries them (see ANT-315-PW-LP-ND for one example).
zbalz:
(2) When really using these, with USART, is a form of error-control necessary? [Recommendations?]
It depends upon your application. Since you seem to building a system based on both transmitters and receivers, having an ACK/NAK system would be an advantage. The biggest issue is keeping the transmitted data balanced. This can be down via Manchester Encoding or simply sending a data byte followed by its complement. This has been discussed on several threads in the forum. The data output on some of these types of receivers stretch the pulse output which can cause problems with UARTS. However, I have used the 432Mhz versions successfully with the hardware UART. I have a system in place that is a 100 foot data link operating at 2400 baud, software UART, and using a simple sync sequence followed by my data (and its complement).
zbalz:
(3) I plan on linking up 3-4 widgets through RF, send/receive on all. If using these, I’d have to have a set on each widget. Is that feasible? I understand I’ll need to code in addresses, etc. I just worry that the local Tx will overpower the Tx from all other nodes.
You will need to develop a protocol that listens before transmitting and then transmits the data. If an ACKnowledgement is not received (receiver not online, bad data received, or collision with another transmitter), the transmitter waits a bit and then retries the transmission. Most algorithms employ a random or psuedo random delay to mitigate any collision situations.
zbalz:
Can anyone recommend other mid-range (20yd), low cost transceivers that may be a suitable alternate?
X-Bee Series 1 for about $20 per node is hard to beat. You can also roll your own solution using the RF2401 chip, but that’s a bit more work.
Thanks riden! Its funny, I just took a wireless systems course last year. Funny how quickly it comes around where I may actually apply theory I learned. I’ll dust off the ole’ books to look at some basic protocols.
Since you mentioned you used these links successfully, do you use them off a battery? I was curious how the power consumption is on these.
Good call on the XBee’s. After you mentioned them, I took a look around and they seem to be quite popular (and CHEAP!) If I go this route, I suppose the XBee module would handle all protocols, handshaking, error recovery? And the transfer would essentially be transparent to the micro? That could save some time with “reinventing the wheel” too much (although sometimes thats good for learning)
Last side question, after some searching, I understand the reason for the data balancing (AGC on the receiver). Is this strictly an issue with THESE receivers? Or is this fairly common across most receivers out there?