Getting horribly frustrated now, I have Pro XR Lite relay boards. I cannot get any response from them. I see my API commands hitting the board (at least that’s what I suspect) as the light flashes on one of them at least when I transmit to the board (using S38 modems) but I never see any response.
I’ve also tried setting everything up in transparent mode and just sending the commands that way for example AA 03 FE 74 01 20 but no reply. I’ve tried also with CR and CR LF and LF appended but still no apparent reply from the board.
Maybe I have some setting wrong on the modem or the digi device connected to the relay. I found an XML document for the base station settings but nothing for the relay board settings.
I really need some help here.
I’ve worked on some message formats and am able to get a “Transmit Status” reply now. As pasted below but does not seem to meet the format you say should be the reply from the relay. In addition, I used the API calculator web page that you have to generate a message for read status, but that message doesn’t even generate the Transmit Status reply. I’m addressing the modem directly via it’s unique address and the remote is set to “Broadcast Reply” but still no reply and again no control of the relay using switch on and toggle commands even though I get a transmit status message reply. Not sure what to try next…
Transmit Status (API 1)
7E 00 07 8B 01 FF FE 00 00 00 76
Start delimiter: 7E
Length: 00 07 (7)
Frame type: 8B (Transmit Status)
Frame ID: 01 (1)
16-bit dest. address: FF FE
Tx. retry count: 00 (0)
Delivery status: 00 (Success)
Discovery status: 00 (No discovery overhead)
If you’re using a modem that is set to API mode in XCTU then you can use this API calculator to generate a byte array that you can send over the serial port to the module that will target a particular device: API Calculator - ncd.io.
If you haven’t changed the settings for the modules in the ProXR Lite boards they should send a response that your module can receive. I don’t have a proxr lite board with a digi module in front of me at the moment.
Attaching a screenshot of the API calculator. You’ll need to replace the address in step 1 with the address of the module you want to communicate with.
Thanks for that, but as I said in the post above, the message created by the API generator does not elicit a response from the remote device, and even when I get a response, nothing happens to the relays, I can’t read a status or toggle or turn on or turn off. Nothing!
Same with your comm software.
Perhaps what I need to understand is how does the command sent to the remote S38 board unit cause the relay or relays to turn on? Note that I have one R25PL_XSC and one R110PL_XSC presumably a serial command or is it just setting an IO pin?
The relays are activated using a serial command that are interpreted by the onboard processor to drive the relays.
To send commands as you’re showing in Comm Operator you will need to set the Modem to AT mode. In API mode you will need to send a fully realized DigiMesh API packet.
A digimesh API packet will look like this:
(Read Relay 1 Status)
7E 00 14 10 00 00 13 A2 00 41 8C 31 A8 FF FE 00 C0 AA 03 FE 74 01 20 97
The reason it is much longer than the commands you’re trying to send is that the packet also indicates what type of transmission, what module it is sending this transmission to, and how long the transmission is.
In AT mode you can send the simplified commands such as “AA 03 FE 74 01 20”, but it will only go to the destination address specified in the configuration of the modem’s module (default is 00 00 ff ff which is broadcast to all devices). To target devices you will need to send an AT command to the modem to change the destination address.
Thanks, is AT Mode set on both the remote and the modem. Also, what should the Baud rate etc be set on the remote and the modem or doesn’t it matter?
Baud rate on the module in the relay board should be 115200. Baud rate of the module connected to the computer can be whatever you prefer, most customers use 115200.
The module in the relay board should be in AT mode. The module in the modem(connected to computer) can be AT or API mode this depends on your preference. However it does dictate what bytes you must write to the COM/Serial port to send a transmissions to the remote relay board. If in AT mode then you must set the destination address of the module to the address of the module in the relay board, then you can write the ProXR commands directly to the COM port without any additional Digi commands. If it is in API mode then you must write the full Digi Transmit Request format with the ProXR command bytes as the payload. Digi has documentation on that here:
See section Frame Descriptions/Transmit Request.
If you are in API mode tell me the address of the relay board module and I can send you example on/off commands for relay 1.