I have some more observations regarding using Node Red on a RPI5 and getting information from the Cerbo Gx via modbus. The Node Red flows that I wrote seemed to work reasonably well, but I was still getting some reboots on the Cerbo. I have been thinking about the modbus requests and came to the conclusion that my Node Red flows might be sending too many requests for the Cerbo to process while still doing its main internal processes.
The Node Red routines that I wrote were being triggered via separate inject nodes and I was making requests every second. I decided to change the programming by setting up a single master injection node on a 4 second cycle. I send this signal to several delay nodes that pass the signal after a delay. So the first signal gets sent immediately, the next signal gets sent 130ms later, then next at 260ms, and so on. I removed the individual inject nodes and connected the flows to the separate delay nodes. Now the Cerbo gets a single request and has 130ms to respond before another request comes in. Also, the requests come in a more logical order and each piece of information is updated once every 4 seconds and not once a second. If, during testing, I find that the Cerbo is still being pushed, I can easily add more delay between requests. As it stands right now, I send my last request within the first second of the 4 second cycle which leaves the Cerbo 3 seconds to work through any other processes.
I am still in the process of checking the latest version of my Node Red flows, but I noticed that a regular “Timed Out” error that I had been getting has disappeared.