I am also working with the Romi, and was looking at how to add an external voltage regulator for powering the accessories connected to the five standard GPIO ports. You’ve raised some excellent points here that I hadn’t fully considered.
I had picked up three different Pololu regulators to try out. They are similar parts capable of handling increasing power levels. For a variety of reasons, I’ll consider this part first: Pololu 5V, 2.5A Step-Down Voltage Regulator D24V22F5 - the same 2.5A 5V regulator circuit that is used on the Romi controller board itself.
@nuttle raises an excellent point, which is that powering the regulator from VSW means that the accessory power must pass through the soft-switch mosfet in the controller board’s power circuit, while powering from VBAT means the regulator is always connected to the power source, even when the 'bot is powered off.
Looking at the specs for the power circuit, it appears that the mosfet can switch up to 6A, which should be enough to supply two of these regulator circuits. So I am inclined to connect VSW to VIN on my regulator. The Raspberry Pi also gets its power through this circuit.
The alternative is to connect VIN to VBAT and then use the ENable input on the regulator to turn it off. This means we would need an active high enable signal from the controller. We could use VSW for this, although it is not a regulated 5V logic level, so could theoretically have issues. I considered using the PG “Power Good” signal (from the Romi controller’s regulator circuit), but was worried this would self-oscillate when the battery power dropped below threshold. A more stable option might be to connect EN to VCC on the controller.
As a last resort, I might commandeer two unused GPIO pins to monitor PG on the external regulator and control EN in software. This would require a bit of code added to the Romi firmware image.
So I’m hoping the simple setup works. I should know later today.