digiampietro / esp8266-rs41

ESP8266 Wemos D1 to setup the Radiosonde RS41 at startup. It will modify the TX registers 75, 76, and 77 to select an arbitrary frequency, usually inside the radio amateur band
22 stars 4 forks source link

Communication problem #2

Open fermars1974 opened 3 years ago

fermars1974 commented 3 years ago

Hi, Thank you for sharing this project; I am very excited to try it but there is something wrong and I cannot find the solution. It seems that there is some kind of communication problem or if the communication is established, the commands sent to the RS41 are not good. I can connect to the RS41 through USB-to-Serial interface and read/record frequencies manually so I assume RS41 and connections are good. I opened a serial interface with PuTTY just to figure out what is going on, you can see this (I activated debug mode):

Read txfreq from EEPROM: nan Read time2sleep from EEPROM: 4294967295 Read ssid from EEPROM: ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ Read password from EEPROM: ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ Invalid time2sleep value, setting to 180 -----> calculateRegisters frequency: nan hbsel: 0 fb: 4294967295 fc: 4294967295 reg75 FFF reg76 FFFFFF reg77 FF -----> Sending STwsv to enter command mode

-----> rs41_slow_write: STwsv

.......entering rs41_get_serial

buftail: 0 buflastline: 0

Serial data from rs41:


======> Error in initializing the RS41 Registers

As you can see, the initial reading of the 75,76,77 are not correct (FF...), and also the Wemos D1 mini is unable to open the STwsv command so the Registers are not set. I am not an expert in C++ or Arduino coding but I can see that it tries to establish the frequency writing just the letter "t" and when I do this via serial connection, I have to enter "t75" directly to get right response, like this:

t75

t Register number (00-7F) >75 Register value 16 >

If I just enter the "t" command and later the number "75" it gives me an error. Could this be the problem?

t

t Register number (00-7F) > 75

75 Failed!

I also modified the GETSERIALTIMEOUT and SLOWTIME_CMD to "2000" as you suggested in your comment but nothing. I run out of ideas, any clue will be appreciated.

Thank you. Fernando.