LoRaWAN Blueprint Anyone Have it Working?

I have a couple Muons, mostly working fine, been making a basic temp/humid sensor with them to test all the connectivity options. I want to eventually make them communicate over LoRaWAN.

I have spend a few days trying to get the blueprint to work, along with my own code and other simple examples.

I keep getting a couple things happening: the KG200Z to do much of anything. It will not appear on i2x, nor can I talk to it via UART.

The Muon is in m1e and works fine otherwise - ethernet, wifi, etc... all work fine.

Is there some physical thing I need to do to enable this KG200Z? Is there some confict I am inadvetanty stepping into with another device? All my other i2c devices are on different addresses and I can use them, so I know i2c is working.

I am kind of stumped...

Use I2C Scanner firmware to see if the chip is visible. It should be at address 0x61.

On power-up, the KG200Z is not connected to the I2C bus, but the blueprint should enable it.

  • 3V3_AUX power must be enabled in order to power up the chip. That's done from app.cpp.
  • The chip reset and bus select pins are controlled by the MCP23S17. This is in lib/lorawan/src/LoRaWAN.cpp

Make sure you haven't disabled any of this code accidentally.

The test timed out. The -160 timeout persists, indicating the KG200Z isn't responding. Checking if 3V3_AUX needs to be HIGH earlier or if there's a timing issue. In setup(), 3V3_AUX is set HIGH, so it should already be HIGH when we call lorawanBeginIfReady(). Verifying we're not toggling it unnecessarily:

3V3_AUX is already HIGH from setup(). The -160 timeout suggests the KG200Z isn't responding. Since the blueprint works, checking if Serial1 needs initialization or if there's a timing issue. Summary:

Test Results:

  • Keys set successfully (JoinEUI and AppKey)

  • testLorawan: -160 (timeout - KG200Z not responding)

  • lorawanJoin: -3 (begin failed)

Current Status:

The code matches the blueprint:

  • Uses std::move(conf)

  • Uses defaultDevEui()

  • Calls process() immediately after begin()

  • No delays after setting 3V3_AUX HIGH

  • Library matches (no 100ms delay)

Just to be sure I asked copilot to make sure I didn't do something to the blueprint. But it seems it is the same as my code.

What might I be doing wrong or not have setup right. This is a muon in an m1e on usb-c power. It is using Ethernet as well, which I am now wondering if that is the issue? Can I use both at once?

Unfortunately, I have not been able to get this to work and had to abandon using this platform for this use case. Was able to get another device from another vendor working in about an hour. This is sad given the enclosure and other factors where were perfect...leave this note so anyone else who is confused about why this seems not to work knows it might not be you! HAHAHA! Will try again when I see that the repo and instructions are updates.

Ok I got it working!!! There are some really unclear to me things about the firmware and how it pushes it to the radio. It seems that using the particle console to manage this was not working for a couple days or something because the errors just went away.

Now the real issue I am facing is it seems Wire1 is not fully exposed to the pins :frowning: which is really a bummer because sps30 is the same address as another device. So would have been cool to expose that 1 pin and / or make the stemma connectors on different busses.