ESP8266 115200 Baud Issues
I have a couple of ESP8266 modules, and I am trying to make them work with the Propeller.
I am able to get most of the responses from the module, as shown below:
However, the responses are mangled sometimes, as shown in the log.
My code is shown below:
Any ideas as to why the responses would be mangled?
I am able to get most of the responses from the module, as shown below:
Starting Up Terminal AT OK AT+RST OK ets Jan 8 2 boot mode:(3,6load 0x40100000m 16 tail 12 chksum 12 room 4 loan 3168, room 12 tail 4 chksum e8c60, len 4956, room 4 tail 8 chksum ready AT+CWMODE=1 no change AT+CWJAP="blackbox","BlackBox44" OK AT+CIFSR 192.168.254.18 AT+CIPMUX=0 OK AT+CIPSTART="TCP","taylorcoffelt.com",80 Starting Up Terminal AT OK AT+RST OK ets Jan 8 2 boot mode:(3,6load 0x40100000m 16 tail 12 chksul 12 room 4 loen 3168, room 12 tail 4 chksum e8c60, len 4956, room 4 tail 8 chksum ready AT+CWMODE=1 no change AT+CWJAP="blackbox","BlackBox44" OK AT+CIFSR 192.168.254.18 AT+CIPMUX=0 OK AT+CIPSTART="TCP","retro.hackaday.com",80 OK Linked AT+CIPSEND=18 GET / HTTP/1.0\r\n usy SEND OK +IPD,323:HTTPuest Server: n: Thu, 09 Oct 2 Content-Type:ent-Length: 172ose <html> Bad Request</tody bgcolor="whh1>400 Bad Requ> <hr><center>ter> </body> </html> OK OK Unlink
However, the responses are mangled sometimes, as shown in the log.
My code is shown below:
{Object_Title_and_Purpose}
CON
_clkmode = xtal1 + pll16x 'Standard clock mode * crystal frequency = 80 MHz
_xinfreq = 5_000_000
baud = 115200
RXPIN = 1
TXPIN = 0
OBJ
serial : "FullDuplexSerialPlus"
term : "FullDuplexSerialPlus"
stringEngine : "StringEngine"
PUB main | i,j,request
serial.start(RXPIN, TXPIN, 00, baud)
term.start(31,30,0,115200)
waitcnt(clkfreq*4+cnt)
term.str(string("Starting Up Terminal",13))
sendCommand(string("AT"))
getResponse
'repeat
sendCommand(string("AT+RST"))
getResponse
sendCommand(string("AT+CWMODE=1"))
getResponse
sendCommand(string("AT+CWJAP=",34,"SSID",34,",",34,"Passwd",34))
getResponse
sendCommand(string("AT+CIFSR"))
getResponse
sendCommand(string("AT+CIPMUX=0"))
getResponse
sendCommand(string("AT+CIPSTART=",34,"TCP",34,",",34,"retro.hackaday.com",34,",80"))
getResponse
request := string("GET / HTTP/1.0\r\n")
sendRequest(request)
getResponse
repeat
PRI getResponse | i, a
serial.rxflush
i:= serial.rx
repeat while i <> -1
term.tx(i)
i:= serial.rxtime(5000)
return true
PRI waitFor(char) | i
serial.rxflush
i:= serial.rx
repeat while i <> char
term.tx(i)
i := serial.rxtime(5000)
if i == -1
sendCommand(string("AT+CIPCLOSE"))
term.str(string("Connection Timeout"))
abort
return true
PRI sendCommand(strng) | i
repeat strsize(strng)
term.tx(byte[strng])
serial.tx(byte[strng++])
term.tx(13)
serial.tx(13)
serial.tx(10)
return true
PRI sendRequest(request)
term.str(string("AT+CIPSEND="))
term.dec(strsize(request))
term.tx(13)
term.tx(10)
serial.str(string("AT+CIPSEND="))
serial.dec(strsize(request))
serial.tx(13)
serial.tx(10)
waitFor(">")
sendCommand(request)
Any ideas as to why the responses would be mangled?

Comments
Also, my Bluetooth terminal program *might* be useful in getting started with these. I originally wrote a simple terminal program on my system to talk to the module.
https://www.dropbox.com/s/mm5b663t5u9w7k6/Bluetooth_Helper.zip
Are those on the Obex?
And I'll check out the Bluetooth terminal program.
comment out the serial.rxflush part, just for a try. It may delete needed chars in the buffer.
Enjoy!
Mike
I'll post the code after I've cleaned it up a bit.