esp-rs / esp-openthread

42 stars 4 forks source link

Update dependencies to use esp-hal workspace & update to newer openthread #8

Closed nand-nor closed 2 months ago

nand-nor commented 2 months ago

PR for the following updates/changes:

Tested with Thread Border Router running SiLabs GSDK 4.3.3 (acting as parent/router providing ot-cli)

nand-nor commented 2 months ago

cc @bjoernQ @jessebraham

bjoernQ commented 2 months ago

Thanks, and sorry for the delay in getting to this. The code changes look good to me but going through the testing chapter in the README.md doesn't work anymore for me (running ot_cli on an H2, the example on C6). It works fine on the main branch however

Can you perform the testing steps successfully?

nand-nor commented 2 months ago

I tested with a silabs radio (EFR32 MG1):

test_efr32_mg1_to_esp32c6

But I will test again with another c6 running ot-cli and will try with an H2

nand-nor commented 2 months ago

@bjoernQ I used a different channel (channel 11 is noisy for me so in my tests used channel 25) and set it along with the channel mask before enabling netif & setting thread up in the example main fn. With that was able to ping / exchange udp packets using the ot_cli example from esp-idf (tag v5.2.1). I had been testing with those dataset fields using a different example main but reverted that change when cleaning up the PR. In the super minimal example I think that starting up with the channel in the dataset is necessary; otherwise the child device quickly and continually jumps between channels, not staying long enough on any one channel to wait for a parent response / receive an Announce message. Anyway I tested it with a few different radios / configs to confirm:

parent & ot binary child (esp-openthread-example) result
h2 ot_cli h2 TBD
h2 ot_cli c6 TBD
c6 ot_cli h2 TBD
h2 (rcp) ot_rcp c6 partial
c6 ot_cli c6 pass
efr32 (rcp) silabs GSDK 4.3.3 c6 pass
nrf52 (rcp) ot-cli-rcp v1.3 c6 pass

The rows listed as TBD I will hopefully have answers for soon, waiting for some new H2 dev boards to arrive. The ones I have are part of the border router gateway v1.2 board and dont support writing to serial without setting up a USB-to-UART bridge. I set one up as a BR to use the H2 in RCP config; I was able to ping the child device & receive UDP on the child just not able to send back due to the br example app itself so calling it a partial success.

c6 parent + c6 child image nrf52 (rcp dongle running with an rpi) parent + c6 child image esph2-rcp parent + c6 child image

Im working on a follow up PR that adds a new, slightly less minimal example along with a few more config settings that I hope will help with the efforts to add support for SED/SSED/FTD. I'll update results once the H2s arrive

bjoernQ commented 2 months ago

Thanks a lot! I was able to successfully test H2-ot-cli and the example on C6!

I will approve and merge this! Looking forward to your follow up PR