BASIC Stamp, Microchip PIC, 8051, and Remote Control Projects

Wireless Communications
With The -- BASIC Stamp --

This article shows how to use the TWS-434 RF transmitter, and RWS-434 RF receiver with the BASIC Stamp -- for a quick & simple RF communications project.

Note: This is a simple project, and can easily be expanded to transmit temperature data, alarm status, remote control signals, and other information over wireless links between several BASIC Stamps. Once you have your BASIC Stamps communicating over this inexpensive wireless link, the possibilities are virtually endless.....!

Figure 1:  BS1-IC Pin Diagram.

The BS1-IC or BASIC Stamp I (Rev.B) was chosen for the transmitter circuit due to it's small size.  This version of the BASIC Stamp is also relatively inexpensive -- and dedicating it to our transmitter section keeps the overall project cost down. Figure 1 shows the BS1-IC pin descriptions for reference during the remainder of this article.

The TWS-434 & RWS-434 RF modules have become extremely popular, and many visitors/customers have asked us to post a project showing how to use these inexpensive RF modules with the BASIC Stamp.

This article will help you get started, and provide the basic information you'll need to establish an effective RF communications network using the BASIC Stamp with the TWS/RWS RF modules.


Figure 2:  BS1-IC & TWS-434 Connections.

Connect Pin# 7 (P0) of the BS1-IC to the data-input pin of the TWS-434 RF transmitter module. Pin# 4 of the TWS-434 is the antenna connection, and requires only a 13-inch piece of insulated hobby wire for an effective antenna. For maximum range, use an antenna that matches the frequency of the transmitter, and provides a 50-ohm load for the transmitter output.  This provides maximum RF energy transfer, and will let you reach the maximum operating distance. Under favorable conditions -- the TWS-434 will work up to 400'.

This project works exceptionally well at 100'. We didn't bother to test it further -- since previous tests have shown these RF modules operate at well over 300' with matching 50-ohm antennas.

Using the SEROUT command:

The SEROUT command is used to send data to the transmitter input at 2400 baud. Since the data sheet for the TWS-434 specifies a maximum data-rate of 3Kbps, 2400 baud works reliably without pushing the envelope, and faster baud-rates for this application aren't necessary.

The BS1 Code:

symbol dat = b2
symbol synch = b3
symbol junk = b4
synch = "A"
junk = 126

start:
pause 1000
for dat = 1 to 255
  serout 0,N2400,(junk,synch,dat)
  pause 50
next
  serout 0,N2400,(junk,synch,0)
  goto start

What's What:

The code has been kept very simple to help you understand a few details of making an effective wireless link. Three variables are initially setup to hold data to be transferred to the receiver.

bulletdat holds the data we want the receiver to decode, and act on.
bulletsynch holds the synchronization byte we'll use to synchronize the transmitter and receiver.
bulletjunk holds a byte of data that helps us make sure the receiver oscillator is stable, and ready for the next two incoming data bytes.

Now -- here's how it works.  The junk byte is only for sending a data stream to the receiver as a warm-up byte. This starts up the receiver oscillator, and helps ensure the receivers oscillator circuit is ready for the next byte. This is kind of a crude way of doing this, but it's effective enough to help avoid missing data that follows the junk byte.

With RF wireless communications -- it's often easy to miss the first byte coming from the transmitter. When this happens, we run the risk of receiving junk characters, or missing the transmission completely. Since our code for the BS2 will effectively ignore the junk byte, it's not a problem if we miss the first byte of data coming from the transmitter.

The synch (synchronization byte), lets us use the ability of the BS2 SERIN command with the WAIT modifier, and helps to synchronize the transmitter/receiver.

Without using the WAIT modifier in the serial input routine, it's likely that we'll simply receive garbage characters on occasion, or possibly with every transmission. Here's why....!

Suppose the data you expect to see is the number 15.  The number 15 will look like this when it arrives: 00001111.

Now suppose we miss the first few bits of data, and the incoming number looks like this 00000111.  This can definitely cause problems.  Using the BS2 SERIN command with the WAIT modifier lets us make sure we first receive the synchronization byte before we accept further incoming serial data. This is very useful, and helps to avoid receiving garbage characters.

The Receiver Code:

' RF test program
' This test program is for the RF receiver.

' The serial input routine waits until the
' letter "A" is received before processing
' further incoming serial data. This method
' allows us to synchronize the receiver to
' the transmitter, and avoid false receptions

SYNCH CON "A"    'Establish synchronization byte
BAUD  CON 16780  'N2400 baud (MAX)
DAT   VAR byte   'Data storage variable
DIRH = %11111111 'All outputs

START:

	SERIN 0,BAUD,[WAIT(SYNCH),DAT]
	OUTH = dat	
	GOTO START

The receiver code simply waits for the synch byte "A" to arrive before accepting the remaining data. Once the synch byte is received, the data we are looking for will be placed on the Stamp port pins P8 - P15 using the command OUTH = dat.

Program flow then returns to the serial input routine to wait for the next incoming serial data-stream.

Note: Using the SERIN wait modifier helps to synchronize the receiver to the transmitter data. Without the wait modifier, noise can cause the receiving Stamp to receive noise or junk characters. This is a simple example, but works well enough for this application. For larger data packets, you may want to explore using CRC of other methods to qualify the incoming data.

Figure 3 shows how to connect the BS2 to the RWS-434 receiver module.

Figure 3:  RWS-434 & BS2 Connections

The serial data stream flows from the digital output of the RWS-434 receiver module into the BASIC Stamp II I/O-pin P0.

The LED's:

Figure 4: Connecting LED's To The Stamp

Using LED's connected to the BS2 I/O-pins, we have an easy way to see how the wireless link is performing. For range testing -- you can replace the LED's with a beeper, buzzer, or other device that can generate an audible signal you can hear at a distance.

A little experimentation with the various options available with the BS2 SERIN command can even make this setup work better, but this should be sufficient to help you get started using the TWS-434 & RWS-434 RF modules with the BASIC Stamp.

Until the next project -- have fun........!

Grab a set of TWS-434 & RWS-434 RF modules at
Remote Control Store
Add RF Remote Control to your next BASIC Stamp project.
Click HERE to visit our Remote Control Store

Other Stock Items:

bullet

PicBasic Compilers HERE

bullet

RF Remote control & Infrared components HERE

 

| Contact Information |

| How to order | Shipping Options |