Help with Bluetooth
mynet43
Posts: 644
I have two of the Parallax Easy Bluetooth modules (#30085).
I'm doing my best to get them to talk to each other, using the code examples given in the Parallax App Note.
The sample code is given in BASIC for the BOE. I've translated this to spin for the Prop and downloaded the transmit and receive routines into the two Prop Demo boards I'm using. I'm able to send data from my PC to the receive Bluetooth module, so I know it's basically working. On the transmit module, the Bluetooth light is blinking as I tell it to send out data, so I think it's working. But they aren't communicating.
I've included debug output for each module, using two PST screens. These seem to both be working fine.
These modules are supposed to be easy to work with, using just a standard serial interface. Would someone please take a look at my code to see if you can see what I'm doing wrong? I also attached a screen shot, showing the receiver Bluetooth Device Address from my PC control panel.
Here's the receive code:
Here's the transmit code:
Thank you for your help and support.
Jim
I'm doing my best to get them to talk to each other, using the code examples given in the Parallax App Note.
The sample code is given in BASIC for the BOE. I've translated this to spin for the Prop and downloaded the transmit and receive routines into the two Prop Demo boards I'm using. I'm able to send data from my PC to the receive Bluetooth module, so I know it's basically working. On the transmit module, the Bluetooth light is blinking as I tell it to send out data, so I think it's working. But they aren't communicating.
I've included debug output for each module, using two PST screens. These seem to both be working fine.
These modules are supposed to be easy to work with, using just a standard serial interface. Would someone please take a look at my code to see if you can see what I'm doing wrong? I also attached a screen shot, showing the receiver Bluetooth Device Address from my PC control panel.
Here's the receive code:
{ BT-receiver.spin } CON _clkmode = xtal1 + pll16x _xinfreq = 5_000_000 BRX = 1 ' Bluetooth Rx BTX = 0 ' Bluetooth Tx baud = 38_400 ' Bluetooth serial baud rate VAR byte rxbyte ' Bluetooth string data OBJ serio : "FullDuplexSerialPlus" debug : "FullDuplexSerialPlus" DAT sw_ver byte "1.02",0 ' software version number PUB Bluetooth | count waitcnt(clkfreq*10+cnt) ' wait until BT initialized for transparent input initialize repeat debug.str(string("*")) ' show that we're here, in case stuck in rx routine rxbyte := serio.rx ' wait for byte from Bluetooth debug.tx(rxbyte) ' display on terminal screen debug.str(string(" ")) if count++ == 20 ' new line every 20 characters count := 0 debug.tx(13) PRI initialize serio.start(BRX,BTX,0,baud) ' start Bluetooth I/O debug.start(31,30,0,115200) ' start debug output waitcnt(clkfreq/4+cnt)
Here's the transmit code:
{ BT-transmitter.spin } CON _clkmode = xtal1 + pll16x _xinfreq = 5_000_000 BRX = 1 ' Bluetooth Rx BTX = 0 ' Bluetooth Tx baud = 38_400 ' baud to Bluetooth device OBJ serio : "FullDuplexSerialPlus" debug : "FullDuplexSerialPlus" DAT sw_ver byte "1.01 ",0 ' software version number bltest byte "testing ",0 ' BT receiver ID is: 00: 17: A0: 01: 6C: 94 reverse est_lnk byte $02,$52,$0A,$08,$00,$64,$01,$94,$6C,$01,$A0,$17,$00,$01,$03 trans_cmd byte $02,$52,$11,$01,$00,$64,$01,$03 ' transparent command PUB Bluetooth | count initialize debug.str(string(13,"Start Transmitting Data:",13)) count := 33 ' start with '!' repeat serio.tx(count) ' output Bluetooth character debug.tx(count++) ' send same data to terminal screen debug.str(string(" ")) ' space if count == 127 ' stop here, last regular character count := 33 ' reset to '!' character debug.tx(13) ' new line to terminal waitcnt(clkfreq+cnt) ' wait a second between outputs PRI initialize serio.start(BRX,BTX,0,baud) ' start Bluetooth serial output debug.start(31,30,0,115200) ' start debug output waitcnt(clkfreq/4+cnt) debug.str(string(13,"Establish Link",13)) send_cmd(@est_lnk) ' establish link waitcnt(clkfreq*5+cnt) debug.str(string(13,"Transparent Mode",13)) send_cmd(@trans_cmd) ' transparent mode command for serial xfr waitcnt(clkfreq*3+cnt) PRI send_cmd(bt_cmd_adr) | i ' send transparent mode command to Bluetooth debug.str(string(13,"Start Send Command",13)) repeat i from 0 to 63 ' send 8 command code message serio.tx(byte[bt_cmd_adr][i]) ' send the ith code data to BT receiver debug.hex(byte[bt_cmd_adr][i],2) ' display the code debug.str(string(" ")) ' space if byte[bt_cmd_adr][i] == $03 ' end of message quit debug.tx(13) ' new line for terminal debug.str(string("Exit Send Command",13))
Thank you for your help and support.
Jim