Closed NW-Lab closed 1 year ago
Catch Node is no good either.
Extend the delay time and execute for the time being. .
The Catch node is triggered if there is an I2C error. I've confirmed that works.
But, if the read succeeds without an error but returns an invalid result, the Catch node cannot help.
In either case, you don't really need any Delay nodes. You can just route a message back to the I2C In node to retry. Because of the way Node-RED processes messages, it will never block other nodes. That would look like this:
A completely different solution: you could implement an ECMA-419 Sensor driver for the BNO055 orientation sensor. It will allow you to write code exactly like your Arduino example. Then it can just work with the Sensor node.
thank you It may not work properly due to some kind of communication failure. This circuit does not have a pull-up resistor, so connect it and try again. (I checked with the information that Arduino works)
Thanks for suggesting his ECMA-419 sensor driver implementation for BNO055. I think the threshold is a little high for me.
It may not work properly due to some kind of communication failure. This circuit does not have a pull-up resistor, so connect it and try again. (I checked with the information that Arduino works)
OK. Good luck. From my tests above, I'm reasonably sure that the Node-RED MCU runtime has the pieces you need to make this work. If I can help somehow, please let me know.
My colleague points out this note from the Adafruit page about the BNO055.
The BNO055 I2C implementation violates the I2C protocol in some circumstances. This causes it not to work well with certain chip families. It does not work well with Espressif ESP32, ESP32-S3, and NXP i.MX RT1011, and it does not work well with I2C multiplexers. Operation with SAMD51, RP2040, STM32F4, and nRF52840 is more reliable.
Maybe this is related to your communication failures? They note that RP2040 works. If you have a Raspberry Pi Pico available, you might try that.
thank you for the advice.
There may be a problem with the part you pointed out. I would like to check with RP2040.
Hello
With Arduino, the following code waits for a restart, but how can this be achieved with a Node-RED MCU?
Now I can't read with I2CIn and get an error. If Timeout can be selected, it may become possible to tranrate.
Is there a better way?
Thank,