I’m considering various configurations to power a GoPiGo3 robot (rated to supply 2.5A to a processor?) equipped with a Raspberry Pi 5 (rated to draw 3A for 0.6A to USB, and 5A for more to the USB) including at the moment:
Simple stack - GoPiGo3 provides power (up to 2.5A? ) thru the 40 pin connector to the Pi5
Simple stack - twin battery (one to GoPiGo barrel connector, one to Pi5 USB-C power connector
Ribbon cable’d stack - GoPiGo3 provides processor power to Pi5
Ribbon cable’d stack with 3v3 and 5v power wires cut - twin battery (one to GoPiGo3, one to Pi5)
The twin battery concept is further subdivided into four ideas
a) PD aware power bank that will supply (only…) 5v 3A over USB-C, or
b) Pololo 5v 5A step down power supply board connected to single or
c) separate power bank.
BTW robot Dave already has a separate 5V power supply for the LIDAR, (Oak-D-Lite (rated 4.5W) currently powered from Pi4 processor’s USB-A port (with 5v 1.2A max) through the GoPiGo3 power system.
d) moves the Oak and the Pi5 to the 5V 5A+ supply along with the LIDAR.
The Pi5 automatically drops USB power limit to 0.6A if processor needs more power than supply will give.
(BTW the Create3 has only 3A supply to the processor which is a problem for the Create3 and TurtleBot4Lite bots to find power for the Oak-D-Lite with a Pi5 that was not there with a Pi4 configuration, although the Pi4 could not be loaded to its max. All these and the GoPiGo3 robots just need a twin PD usb-c power bank if such exists.)
This was my Nov 2022 early start on Power Budget for a ROS 2 GoPiGo3:
If I understand how the red GoPiGo board works, it supplies the power it gets to the raspi so it already does “option” 1. To get option 2, I would think you’d need to disable that unless you have reason to believe that you can power the raspi via both the GoPiGo board and via its USB connection (not sure that is “a thing”). Also, in the process, you lose the ability to power on everything via the GoPiGo board which IS kinda convenient.
The raspi, Oak-D-Lite and YDLIDAR X4 all accept power via some form of USB so I would try to use a power bank that has multiple USB power outputs with the appropriate wattage. An example might be https://www.amazon.com/dp/B07P96JN11 which has 4 USB outputs (1 PD, 1 QC and 2 standard). For the GoPiGo board I would leave the existing TalentCell power bank.
So, option 2c with two power banks for me (unless there is a way to get the GoPiGo board to accept PD or QC power, in which case I’d ditch the TalentCell power bank).
I noticed a problem like that with the Pi-4 where there was enough of a power droop to cause the Pi to throw power alerts. I theorized that there was either a poor contact between the GoPiGo board and the Pi, or that it just didn’t have the chops to do everything it needed and drive the Pi board too.
If you remember the GoPiGo was originally intended to run a lower power draw Pi, and (IMHO) the Pi-3 is just about the upper limit w/o a major redesign of the power circuitry on the GoPiGo board.
I solved that problem by connecting a high current +5v buck-converter directly to the +12 barrel connector pins and running it to the Pi’s USB power connector. This way the GoPiGo board wasn’t the main power source.
The disadvantage is that you have to manually switch power off at the battery.
What I want to do is find a way to connect a MOSFET switch to the power signal and use that to turn on and off the aux supply.
You should be able to find an article I wrote about that, with pictures, somewhere on these forums.
Simply not a problem with the desired 24/7 robot dream I seek for Dave. He’s quite jealous of Carl. I have a dock (which would be powered by the ModRobotics Li-Ion smart charger), and the copper strips ready for Dave to recharge his current single Talent cell Li-Ion battery.
This would give my Pi4 powered Dave impetus to learn enough ROS 2 to undock, navigate a little, SLAM himself back onto the dock to recharge. (When I get a working IMU again, and solve the sensor fusion for the SLAM not to show slight angular procession.)
I don’t really want to break Dave apart to add a Pi5, but I also don’t want to buy another GoPiGo3 to play with the Pi5. (If I was going to buy another robot it would be a Create3, and I would move the Oak-D-Lite to the Create3 to create a Pi5 powered “TurtleBot 4 clone” when Clearpath releases the TurtleBot4 software for Pi5.)
Me. I have to find the motivation to bend the copper, solder/wire the contacts, and build the guide, but I know that I cannot solve the ROS SLAM “navigate and find my way back to the dock” without help from someone that has solved the fusion of IMU and encoders, AND understands the big picture enough to tune one of the many SLAM packages for the GoPiGo3 to get optimum localization and heading control from the GoPiGo3 sensors (LIDAR or Oak-D-Lite for environment sensing and IMU with encoders for robot proprioception).
Yes, I could solve everything by resorting to Carl’s low tech methods that I wrote myself, but I still want to use the benefit of ROS - navigation, localization, sensor fusion, control philosophies written by other people that understand the science, theory, and software engineering that I will never be able to gain.
Yes, I remember you proving it is possible to power the RPi4 processor directly simultaneous with powering the GoPiGo3 via the barrel connector as designed. The docs on the Pi5 warn against this configuration.
I am considering this as the first try solution - the 2d simple stack - twin supply paths from the existing battery:
battery barrel (9-14v)
to GoPiGo3 barrel
to 5v 5+A pololu step-down power supply
This has the least cost impact, and least chassis space/layers impact, and may provide some motor reactive load isolation to the RPi5 and the Oak-D-Lite (which has an onboard processor). I played around with some ferrite on the supply input or the supply output, but didn’t have a scope at that time. Now I might have to revisit with my “toy scope”.
I also already have the 9-14v battery input/output connected to a 5V step-down converter and an open barrel jack used to recharge while operating. The MR supplied smart-charger is a little confused by this and never stops charging, but I just have to either undock based on the time on the dock, or build a model of the charging voltage behavior to recognize the fully charged state like I did with Carl.
Dave’s weight on the wheels is already way above the design parameters. Adding another heavy battery to the mix would not be ideal.
There are a lot of advantages - especially the motor and servo reactive load isolation with separate power banks.
It complicates the 24/7 robot recharge power distribution and perhaps the current 2-contact docking connection plan.
I think I would have to switch the audio to a MonkMakes Speaker Kit (like Carl’s) and put the extra battery over the roller ball on the back. I could balance the CG by moving the existing pack forward of the wheels some.
I’m going to go with a USB adapter. There is some low-quality audio available on the GPIO with adding a cap to smooth it, but the USB adapter is working very well on Carl. I just have to remember to order one next time I collect enough “wants” for free shipping.
Yikes this Pi5 upgrade just gets more and more serious - I’m going to have to add a row to that robot comparison chart for “Pi5 Upgrade Cost”
Pi5 4GB additional cost over a Pi4 4GB $5
Pi5 Cooler: $6
Pi5 RTC Battery: $5
USB Speaker or Speaker/Mic - (smallest is 3.2 x 1.2 x 1.8) $15
Power Supply: $25
Standoffs for more space: $10
USB-C cable (need half) from power-supply: $10
40-pin extender (socket w/header pins): $10
Barrel power cable ( 1Jack->3Plugs ):
Recharger (jack) →
GoPiGo3 (plug) ±->
Battery (plug) ±->
StepDownSupply (plug to jack pigtails to supply, or cut off cable plug to use wire to supply) $15
On Dave to be able to monitor voltage and current I have two more built cables:
- (barrel plug of a cable with a USB-A socket →
(usb plug of) Volt/Power Meter (usb socket) .>
- USB-A plug cable with a barrel jack →
“Battery plug” of power splitter cable - (plugs into battery if no meter desired)
Total: $100 + some unavoidable shipping another $25 or so == $125 for a supercharged GoPiGo3!
(and if the Pi5 is replacing a Pi4 - add that $55 for a total Pi5 investigation of $180. This better succeed.)
Except the more I think about it, the more I see it cannot be a success to my needs or useage:
A Pi5 GoPiGo3 will be a unicorn with a few magical powers that can only be employed by me
It will only run Bookworm derived operating systems
GoPiGo3 software can/will only be installed and used by me
(I know how many people are chomping at the bit to use software I have developed for the GoPiGo3 over the last six years - zero. 0, nada, zip, noone!. I keep proving how great and versatile the “once upon a time” GoPiGo3 is. I’m tired of building the “bridge to nowhere” over and over.)
Will no longer boot GoPiGo OS, RFR, “PiOS Legacy” - Buster or Bullseye, Ubuntu 20.04 or 22.04
(therefore I will not be able to help 99% of folks coming to the GoPiGo3)
There is no ROS or ROS 2 release for Pi5, no folks to help, no official support, only bleeding ahead
It cannot run the GoPiGo3 software I2C therefore cannot run MR BNO055 based IMU
And I have to break down a working Dave, to build a new “bridge to nowhere”.
I proved GoPiGo3 can be installed and run on Bookworm derived PiOS needed for Pi5, but installing the Pi5 on Dave would set me back. Not going there. Won’t consider that a success worth the pain.
I, myself, have used some of your code directly to help characterize the TalentCell battery packs and derive the correct divider network for the state-of-charge indicator, as well as other voltage characterization projects.
Your battery monitoring routines were a primary source of data for my analysis of the voltage droop phenomenon with the Pi-4 and the GoPiGo.
The tabular data you’ve accumulated helped me with my own power projects by providing data that allowed me to scale and calibrate my own work.
I have used your code as inspiration for work I have done.
I have used your code, and your voluminous notes within these forums as a college-equivalent course, both in robotics and in coding in general.
I have gone so far as to clone just about, (maybe all of it?), everything you’ve done to my local repository so I can study it at my leisure.
I cannot speak for others, but I would not be surprised to discover that you are the un-sung hero of many people here.
I know many of the student projects that have appeared here have enjoyed invaluable benefit from both your code and your carefully crafted examples and explanations.
If what you’ve done here are “unicorns”, than I should have the unicorns you have!
What say ye?
What say ye all. . . .
The correct technical term is "BULLSHIT!! " - but I can’t say that here. . .
Hobbies are not like work. With hobbies, IMO, you should do what you like and what benefits you. If others like it and benefit from your experiences, great but that is not the main objective. Work, contrarywise, is mostly about doing things that benefit others - happiness there is optional!
I think that the GoPiGo is a great learning platform, which is why I am here. Certainly, you have learned a lot here and I am sure others have as well. Although I have not taken the ROS2 plunge, I expect to do so later and will thereby benefit from your learning then. Keep in mind that you have at least 6 years on newbies like me in making GoPiGo do amazing things. Unless you go into stasis, we’ll never catch up! But that is ok - it’s not a competition after all! Just keep doing what you love, be happy in your hobbies, and don’t be concerned with whatever/whoever follows you.
Been there, done that, and I have an entire fashion line of those T-shirts.
I really enjoy being able to contribute too. When Nicole, (@cleoqc), merged my pull request for the first time, I was over the moon! (And my wife thought I had lost my mind.)
However much I enjoy helping, the ultimate goal isn’t a Nobel Prize, (though that would be nice ). My primary goal is to “keep doing something” that I can learn from. To whatever extent it can help others, that’s great! But if all I end up with is some “beautiful unicorn”, (i.e. most of my work), than that’s OK too.
What I really enjoy is this community of like-minded people who have similar goals, but different skill-sets. I learn from you. @este learns from @KeithW. We all learn from @cleoqc. She learns from all of us. And the result is a group of friends who help and support each other.