Using Particle Mesh Devices with the OpenThread Border Router

I have 9 x nrf52840 usb dongles, 3 fanstel, 3 nordic and 3 makerdiary. (Which is kind of useless for Mesh owners, would be much better to make Particle devices talk to openthread.) My dongles all work with the Openthread border router and can ping or scan for the Mesh devices. I can't communicate with the mesh devices since the Mesh.publish() command is much more complex behind the scenes than openthread commands. Example below of a basic udp message using openthread.

udp send ff02::1 1234 Hello Mesh

The Particle Mesh devices should be able to connect to OTBR using a serial USB connection. Pre-made software needs to be installed to run the commands, but that is for a later date. Presently I just want to get the mesh devices talking to the linux screen (or putty) program. I found this code from:

Not sure if that will get the Mesh devices talking to putty or screen but I will give it a try, my backup plan is just to use my normal putty communication program

// Use putty serial mode 
// gete putty here   https://www.putty.org/
// To find which COM port use the device manager
// If no access to the device manager type on a windows command line   CMD or powershell
// mode





int incomingByte = 0; // for incoming serial data

void setup() {
    Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
    Serial.print("Press any key, then try the letter A");
}

void loop() {
  // send data only when you receive data:
    if (Serial.available() > 0) {
    // read the incoming byte:
        incomingByte = Serial.read();

        Serial.print("I received: ");
        Serial.println(incomingByte, DEC);
        
        if ((char)incomingByte == 'A'){   // #65
            Serial.println("Cool, you entered an 'A' ");
 
        }        
        if ((char)incomingByte == 'a'){   // #97
            Serial.println("Sweet, you entered an 'a' ");
 
        }
        
    }
  
}

The hard part is going to be getting the opehthread-cli working on mesh devices. If anyone wants to mess around with openthread I have a github/gitpod ready to go

or run this pre-made gitpod: (fairly advanced stuff and takes about 5 min to load.)

Open in Gitpod

Commands like the following should run (the commands below generate the .hex files to load on my usb dongles so you can send OTBR commands using "screen").

              make -f examples/Makefile-nrf52840 USB=1 BOOTLOADER=1 BORDER_AGENT=1 BORDER_ROUTER=1 COMMISSIONER=1 JOINER=1 UDP_PROXY=1 CFLAGS+=-UCONFIG_GPIO_AS_PINRESET 

              arm-none-eabi-objcopy output/nrf52840/bin/ot-ncp-ftd -O ihex output/nrf52840/bin/ncp_app.hex       
             
              arm-none-eabi-objcopy output/nrf52840/bin/ot-cli-ftd -O ihex output/nrf52840/bin/ot-cli-ftd.hex                 
1 Like