Direct communication between 2 core modules

Hi,
is it feasible to directly communicate between 2 core modules (or cloonys in my case) without USB dongle? I expect no problem on HW side, as dongle and core are largely identical, but how hard would it be to implement it with Tower SDK? Direct point to point communication without dongle is sufficient for me.

I was thinking about making a bicycle lights with direction and brake lights using some digital LED strips with separate front and rear lights controller with wireless communication so I don’t have to route wires around the bike :slight_smile:

Thanks.

Hi mixi,

check these two repos

I have base station under my bed and I’m able to pair button kit with its own firmware. I remember also that it allowed to pair PIR module, but in the code above it is not in it. It is a long time, not sure I will be able to find the code on my computer(s) or repos.

The one module which is listening constantly cannot be low power.

Please look at it and let us know if you need more help.

Thanks a lot. It seem that lot of things changed in past 7 years though, as there is no twr_radio_enrollment_start(); function. I looked at old and current SDK radio sources and my guess is I might need something like this:

  • on master: twr_radio_peer_device_purge_all() + twr_radio_pairing_mode_start()
  • on slave: twr_radio_pairing_request()
  • on master I should get event TWR_RADIO_EVENT_ATTACH, slave ID can be found by twr_radio_get_peer_id() on index 0 (as I purged the device list before pairing) or maybe better using twr_radio_get_event_id()
  • on master, paired device list is saved at the end of EEPROM

Now I should have devices paired and able to communicate, but how?

  • slave → master: My guess is that any published messages will be received by master, I just need to subscribe topics?
  • master → slave: probably using twr_radio_send_sub_data() with properly constructed payload containing both topic and data

And one last thought - is pairing even necessary? In theory, I might be able to communicate directly between peers using their ID via twr_radio_send_sub_data() even if they are already paired to dongle. E.g. pair them with dongle as usual and send them each others ID via MQTT.

Am I right?

Thanks
Mixi