Basestation does not connect to relay board

I received the:
Relay Controller 1-Channel General Purpose SPDT + 8 Channel ADC ProXR Lite - 5 Amp SPDT, and the
WiFi Communications Module with Bluetooth USB MQTT

I have downloaded and installed the Basestation software.
The Relay board is connected to a 12VDC supply
The Relay board is also connected via USB to a Windows 10 computer. The USB device is recognized at a “Silicon Labs CP210x USB to UART Bridge(COM11)”

At startup, the comm board displays a blue and a red LED, that quickly changes to green and red, then to just the red LED flashing twice in quick succession.

When I run Basestation and select COM11 and 115200 baudrate and click OK, Basestation tries to connect and displays a message (The controller did not respond at the baud rate you selected), tries a bunch of other rates, fails and exits.

It does not advertise for Bluetooth pairing, and does not show up as a WiFi access point.

Any suggestions as to how I can get Basestation to talk to the relay module?

Thanks,

jw

Any suggestions at all from the company on this one?

I have spent a fair amount of time trying to get you product to be recognized by my Windows machine, to no avail. I posted a fairly detail description of the problem above, and heard nothing at all.

Any help at all here, or it is just RMA time?

Hi,

Are you supplying 12VDC to the relay controller the module is installed in? It cannot be powered over USB, it requires 12VDC.

Yes. As mentioned in the original post, above: The Relay board is connected to a 12VDC supply

Ultimately, there was incorrect firmware in the radio module. The company supplied a radio module with the correct firmware, and I was able to
a) push the ‘c’ button to take the radio module to configuration mode,
b) connected to the radio module via WiFi (NCD_NexGen/NCDBeast)
c) went to the associated URL at http://172.217.28.1/ (Caution: This is google’s URL. Make sure you subnetting is setup correctly
d) On the web page, turned on bluetooth.

After that, the steps I used to configure an embedded Debian system to talk to the relay board are as follows:

The following commands enabled communication with the NCD.io relay board from a Debian Linux system (Debian 9.12 stretch)

Note: For whatever reason, the rfcomm executable refused to run with rfcomm built into the kernel (It would generate Protocol Not Supported errors). Rebuilding the kernel with rfcomm built as a module resolved this issue. (?)

Note2: Not absolutely sure we need to pair using bluetoothctl first, but that is what I did, and it ended up working. The bluetoothctl dialog below is paraphrased. YMMV.

use bluetoothctl to pair with the device

$ bluetoothctl

power on
scan on

wait for device to appear

Discovery started
[CHG] Controller 00:19:86:00:3D:50 Discovering: yes

[CHG] Device 30:AE:A4:D8:88:4A NexGen

scan off

trust 30:AE:A4:D8:88:4A

Changing 30:AE:A4:D8:88:4A trust succeeded

pair 30:AE:A4:D8:88:4A

message indicating successful pairing

devices
Device 30:AE:A4:D8:88:4A NexGen

The above is persistent across reboots, so only needs to be done once. It appears

The following is required for each reboot.

bring up the local Bluetooth device

$ hciconfig hci0 up

look for the NCD device

$ hcitool scan
Scanning …
30:AE:A4:D8:88:4A NexGen

we found the MAC, now browse it with sdptool

$ sdptool browse 30:AE:A4:D8:88:4A

Browsing 30:AE:A4:D8:88:4A …
Service RecHandle: 0x10000
Service Class ID List:
“Generic Attribute” (0x1801)
Protocol Descriptor List:
“L2CAP” (0x0100)
PSM: 31
“ATT” (0x0007)
uint16: 0x0001
uint16: 0x0005

Service RecHandle: 0x10001
Service Class ID List:
“Generic Access” (0x1800)
Protocol Descriptor List:
“L2CAP” (0x0100)
PSM: 31
“ATT” (0x0007)
uint16: 0x0014
uint16: 0x001c

Service Name: ESP32SPP
Service RecHandle: 0x10002
Service Class ID List:
“Serial Port” (0x1101)
Protocol Descriptor List:
“L2CAP” (0x0100)
“RFCOMM” (0x0003)
Channel: 1
Profile Descriptor List:
“Serial Port” (0x1101)
Version: 0x0102

note the channel number of the Serial Port interface above (Channel: 1)

call rfcomm to bind device /dev/rfcomm0 to the Channel #1 interface on the device’s mac address

$ rfcomm bind rfcomm0 30:AE:A4:D8:88:4A 1

verify that the device is bound (clean)

$ rfcomm -a
rfcomm0: 30:AE:A4:D8:88:4A channel 1 clean

verify that the newly created device exists:

$ ls -lt /dev/rfcomm0
crw-rw---- 1 root dialout 216, 0 Feb 4 01:37 /dev/rfcomm0

set the port parameters to 115200 bps, no handshaking

$ stty -F /dev/rfcomm0 ispeed 115200 ospeed 115200 -crtscts -ixon -ixoff

turn the #1 relay on, using the API. This should cause the relay to audibly energize and a red LED to light up

$ echo -en ‘\xaa\x03\xfe\x6c\x01\x18’ > /dev/rfcomm0

turn the #1 relay off, using the API. This should cause the relay to audibly de-energize and the red LED to turn off

$ echo -en ‘\xaa\x03\xfe\x64\x01\x10’ > /dev/rfcomm0