-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RPi Pico - Potential Instability Issue #215
Comments
My first reaction to this is: Did the clang-format change to
If it only affects the RP2040, then we can add a call to #if defined(RP2) || defined(ARDUINO_PICO) // these might be incorrect macro names
setCallback(yield);
#endif I'm not really sure where to put something like this in documentation. My initial idea is to add a note in the
Only one way to find out for sure. I rarely ever use |
Ironically, the author of that Arduino-pico core also heavily contributed to the esp8266 Arduino core. And |
Yeah, that is still ugly to add to a bunch of examples unless they are Pico specific imho. I'd rather add a note somewhere since this is an issue specific to that piece of hardware. Wish there was a better solution... this may take a while to test too, I only have one device to test with. |
Your comment about the ESP8266 got me thinking, there is a spot in RF24Ethernet where yield() is called for the 8266, so I added it for the Pico, removed the mesh.callback line and am now testing that out now to see if the problem is actually at teh Ethernet layer. |
I just purchased a RPi pico W board, so I'll be better equipped to test the picoSDK support (want to try diagnosing nRF24/RF24#857). Any problems with this issue since adding a |
Nope, she has been running steady since that change, want to run it a bit longer though to make sure, but I think it’s good.
… On Aug 12, 2022, at 2:29 PM, Brendan ***@***.***> wrote:
I just purchased a RPi pico W board, so I'll be better equipped to test the picoSDK support (want to try diagnosing nRF24/RF24#857).
Any problems with this issue since adding a yield() to the Ethernet layer?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.
|
I haven't found any evidence in the picoSDK that mandates However, none of our examples (for Arduino or PicoSDK) use the FreeRTOS feature because we don't use multi-threading for the RP2040 (for simplicity - might be beneficial for IRQ). It is possible that the Ethernet layer needs to call |
I have one Pico running the stock RF24Ethernet MQTT example using the Arduino IDE, and I found there was some instability issues. The device would typically work for a while, a few days? then I would find it just blinking the LED and not responding to anything. Further testing revealed that adding
mesh.setCallback(yield);
in my setup function resolved the issue. I would assume this issue would affect the RF24Mesh examples as well. I'm not sure exactly how to address the issue. maybe put something in the documentation etc?@2bndy5 I know there are examples for the Pico SDK, would this issue potentially affect those examples also? I haven't looked into this too much to see if having to call the
yield()
function is normal for the Pico, but it may be worth investigating.I'm pretty sure the issue is with the RF24Mesh layer technically, but I'll see about recreating it without using RF24Ethernet. It seems easiest to recreate the issue if the master node is taken down for a while and the Pico has to continually renew its address.
The text was updated successfully, but these errors were encountered: