BLUF: I'd like to see if there's a solid way to delay the boot-up of the kernel to keep a Pi from sucking up a lot of juice out of the gate, or the USB bus to delay the devices' boot-up until after the Pi is in an "idle" state. Essentially, I'd like to forgo the early-on feeding frenzy of power consumption and try to spread it out across a set amount of time to prevent any brownouts.
Details: After calculating a quick and dirty power budget, I've determined that there may be an issue in my build during boot-up: the Pi might draw too much power once I have all my devices connected (the order for the BOM hasn't come in yet, so I currently don't have all the pieces on hand, hence the question).
Here's my current list with some rough figures:
- Raspberry Pi 4, headless (~750mA peak, ~310mA "idle" [scripts running but no perephrials])
- Alfa Wi-Fi card (~270mA idle)
- 64GB USB thumb drive (~250mA idle, will be writing constantly during operation)
- USB GPS puck (~140mA full operation)
- Cameras x2 (unsure of the current draw; I'm using an old webcam until my ordered cameras come in--they should be much more efficient and will sit in standby mode until turned on by a script, however, they will be initialized at boot-up which could draw about ~250mA each, roughly totaling ~500mA)
- Discrete LEDs and switches (<10mA based off the resistor values I'm using)
The devices' total is roughly 1170mA (pretty close to the 1200mA limit) plus whatever the Pi itself will end up using.
I'll be augmenting the USB 3.0 ports with an expander, but not a powered one. I understand that a powered expander would probably solve all my issues, but I wanted to tackle the issue programmatically first if possible. Also note the Pi won't be easily serviced, so waiting until after boot-up then plugging in additional USB peripherals isn't an option.
I'd love to hear anyone's ideas on how to solve this problem or what you've done in a similar situation! If push comes to shove I'll order powered USB expanders to negate the issue altogether, but I'll roll the dice first! Thank you!