We recently installed an Orange Pi into our photon vision pipeline. We can use it to do various vision tasks like homing onto an object. However, ONLY when plugged in, our robot will randomly have VERY large brownouts where it doesn’t get communications from the remote; this leads our robot to not respond to controls and keep going. It does respond to e-stop, though. When we disconnect our orange pi the robot continues the normal desired behaviour. We often get warning/error messages saying that the periodic of a bunch of things is taking too long or that the watchdog isn’t being fed in x seconds.
You’ll probably want to post your code to get better assistance. In most cases, if it’s a code related issue, it can be difficult to diagnose, or errors can be very sneaky and subtle.
Based on what you’ve said though, it sounds like your communication with the Orange Pi is causing your code to lock up. I would look in your code for places where you either
- do a loop to wait for a response from the orange pi
- Do a “blocking network call” in a subsystem (again, waiting on a network communication)
- Do some really complicated process that takes a long time when you get a response (such as vision processing on the rio itself)
- Accidentally crash based due to a code error.
Any of these will cause the RoboRio code to take more than one robot cycle (which should take less than 50 milliseconds ). When this happens, some safety features on the roborio trigger. This will spam messages containing Loop Overrun errors, and trigger Watchdog errors on Differential drives and certain motor interfaces. A “watchdog” is a motor safety feature, and intended to stop the motor when your code stalls; It’s actually working as intended, although it does not always stop modern CAN motors.
It’s worth noting that this is probably not a brownout, but is a loss of communication/code control on the rio. A brownout refers to draining the voltage on your battery/power supply to levels that cause system malfunction. This is almost certainly not the issue you’re encountering since you did not describe flames and smoke emanating from your orange pi. This would be the only way your Pi would be able to pull a 12V battery into brownout values.
I think the only way you could brown out the rio is by attempting to power the Orange Pi from the Rio’s USB ports; Those certainly will not work. They’re rated for 500mA, not the 3-5A needed by an orange pi doing vision tasks. However, if you did this, I think neither system would work properly.