Using a Pololu 5v Voltage Regulator with a ThunderBorg
Forums:
Hi, I've got a robot whose Raspberry Pi is currently powered entirely from the six pin cable from the ThunderBorg. I'm using a 12V Makita power tool battery connected to the ThunderBorg's +/- terminals. All works fine, except that as the robot has grown more complicated, the power load has grown and I'm now having brownouts.
So I've got a Pololu 5V, 5A Step-Down Voltage Regulator (model D24V50F5, https://www.pololu.com/product/2851) and want use it to power the Pi. It's a simple 3 pin type of thing: in, ground and out. So I'd connect the +12V of the battery to it and take the +5v output to the Pi.
The question is this: while I'd certainly want to keep a common ground, if I maintain the six wire connection between the Pi and the ThunderBorg that I have now, the Pi will be getting 5v from the ThunderBorg and 5v from the regulator. That doesn't sound like a good idea.
So would I only connect the I2C pins SDA and SCL and no longer keep either the 3.3v or 5v pins connected to the Pi? I.e., change my current six pin connector to a three pin connector (ground, SDA and SCL)?
Is that what you'd recommend?
Thanks!
BTW, I have several ThunderBorgs and they're great -- I've converted the ThunderBorg.py file for use with python3 if you're interested...
piborg
Sun, 02/28/2021 - 13:09
Permalink
Using a separate 5V regulator for the Raspberry Pi
That is more or less what we would suggest, the only difference is that the ThunderBorg uses the 3.3V connection from the Raspberry Pi.
In other words we would connect the 3V3, SDA, and SCL with one of the 3-pin cables, then use a 1-pin cable to connect a GND pin between the boards.
We actually have a Python 3 version of ThunderBorg.py on the forum already: ThunderBorg with Python 3
It might be interesting to see if you did the conversion differently :)
furusato
Sun, 02/28/2021 - 18:04
Permalink
Re: Using a Pololu 5v Voltage Regulator with a ThunderBorg Prim
Hi, I'd managed to find another forum post that mentioned the 3.3v connection as well, but it's good to have that confirmed, i.e., I'll be using a 4 wire connection.
As to my Python3 version of the ThunderBorg.py file, it's online at
https://github.com/ifurusato/ros/blob/master/lib/ThunderBorg3.py
though it's slightly customised for my own usage in that I've added the Logger class from my robot operating system. I think the only thing that would be necessary to revert that would be to swap the commenting in the Print() function, around line 275. My own changes were otherwise rather modest, only altering the print() statements for the new syntax, but I'm likewise curious to see what else might be different.
You may be interested in seeing how I configure the ThunderBorg so that my two robots can both use the same configuration despite using different batteries (12v and 19-21v). I set a
_max_power_ratio
value used to convert the incoming argument, as well as also adding a power limit since I never want the motors to receive 100% power (no need for the stress, it would only happen in error).https://github.com/ifurusato/ros/blob/master/lib/motor_configurer.py
https://github.com/ifurusato/ros/blob/master/lib/motors.py
https://github.com/ifurusato/ros/blob/master/lib/motor.py
One thing I've been planning to do that you've reminded me is to have a function I can call periodically to update the maximum power ratio used by the controller as the batteries gradually run down. I've got the function already to receive the update in my Motors class, just no updater from MotorConfigurer. The idea here is that a 0.70 motor power setting on a fresh 21v battery is different than when the battery is at 18v.
Thanks very much!