Robotics Asked by XabiGarde on January 6, 2021
Problem Overview: our project consists of an iRobot Create2, a RaspberryPi 4 and a YDLIDAR X4. The RaspberryPi is powered from the Create2 serial port. We tried to power the lidar from the RaspberryPi, but reached the limits of the Create2 serial port power/current. We managed to directly tap from the Create2 battery, and also from the Main Brush. However, we are experiencing problems when tapping to the Vacuum’s power, which would have been a more elegant and simpler solution.
Context: As per the suggested approach from the official documentation’s, when the serial port of the Create 2 (rated at 20.5V-10V 0.2A) is not enough for powering your project, one can try to draw power from one of the motor brushes:
Method Voltage Current Power
-------------- -------------- -------------- ------------
Serial 20.5V–10V 0.2A 2W
Main Brush 16V – 12V 1.45A 17W
Side Brush 16V – 12V 0.54A 6.5W
Vacuum Brush 16V – 12V 0.56A 6.7W
The Vacuum Brush (rated at 0.56A 6.7W) should be more than enough for our YDLIDAR X4, whose datasheet specifies that it requires up to 480mA when starting, but then idles at 350mA:
Subject Min. Typical Max. Unit Remark
-------------------- ------- ---------- ------- ------- ------------------------------------------------------------------------------------------------------------------------------
Supply Voltage 4.8 5 5.2 V If the voltage exceeds the max value, it may damage the core. Too low Voltage may affect performance and even stop ranging
Voltage Ripple 0 50 100 mV High ripple may cause working failure
Start current 400 450 480 mA Relatively higher current is required at startup of the device
Sleep mode Current 280 300 340 mA System dormancy with motor rotating
Work mode Current 330 350 380 mA
We have used the recommended 2.2mH 1.5A inductor (specifically, the Murata 1422514C inductor, as per the manual), and are also using an LTC3780 based DC/DC BUCK BOOST Converter (we know this is overkill, and are waiting for a bunch of LM2596 based Buck converters to be shipped).
Despite all our efforts, the YDLIDAR X4 is only powered for about 5 seconds, and then the Create 2 cuts all current to the Vacuum Brush. We have no idea why this happens.
We have verified that this happens both when we press the "Clean" button to turn on the robot’s default program, and also when we set the robot to FULL mode and send the turn-motors-on command through the tethered serial connection using RealTerm.
We have checked all related questions, but none mention the power cut we are experiencing:
We have also contacted support at [email protected] but have not gotten any answer (yet).
EDIT:
When trying to tap to the Vacuum power, we had already disconnected the vacuum’s motor. The same goes to the Main Brush’ motor.
EDIT 2:
Taking Steve & Chuck’s remarks into account, we have redesigned our initially intended setup.
Since we were indeed running the Raspberry Pi 4 dangerously close to the power limit of the Mini DIN serial port, we have decided to power it from the Main Brush motor drive (16V – 12V, 1.45A, 17W).
This, on the other hand, raises a bootsrapping problem (as noted by Steve). To overcome this, we have come up with the solution shown below:
In short, we have added a MOSFET that powers the Raspberry Pi from the Mini DIN serial port by default (when the Create 2 is Passive/Safe/Full modes). After the Raspberry Pi boots, a script will command the Create 2 through the Open Interface to power the Main Brush motor drive. The current coming from the main brush driver will automatically switch the MOSFET, and the Raspberry Pi will now be powered by the main brush driver. We have added a capacitor just in case the switching is not fast enough and cause a power outage on the Raspberry Pi.
Finally, the LIDAR is now powered through the Raspberry Pi’s USB ports.
Hopefully, this design will be handy for anyone trying to tap directly from the Create 2 battery.
NOTE: this new setup has not yet been tested. We’re still waiting for some remaining components to be shipped, but I will report back with our results once we have finished building and testing the new wiring setup.
A few thoughts, here:
First thought: you are dangerously close to the power limit on the serial port with just the Raspberry Pi 4. Worst case trip power out of the serial port is 12 V @ 0.2 A = 2.4 W (assuming perfect DC to DC conversion), but the Pi 4 B draws 3.4 W at idle. I suspect you're getting away with this (for now) because your battery is (currently) fully charged; on the dock, you'll see 21 V, which will get you 4.2 W continuous. Once the battery droops, your Pi may reset.
Second thought: As @Chuck pointed out, you can't run both the LIDAR and the associated motor at once, so if you haven't disconnected the motor, please do that.
Third thought: The motor PWM is switching the low side, but if you're powering the Pi off the serial port still, the PTC is on the high side. There might be some weird current flowing that is tripping the current limit on the motor driver.
If this were my project, I would run everything off the main brush power port; clip the leads to the brush motor, add the Murata inductor you mentioned in series, and you'll have 17 W at your disposal, which should be more than enough for the Pi and the LRF. The only downside of that is that you end up with a bootstrapping problem when the robot is on the dock. I don't have a good answer for you on that one.
Please note that I am an iRobot employee, but the postings on this site are my own and don't necessarily represent iRobot's positions, strategies, or opinions.
Answered by Steve on January 6, 2021
Welcome to Robotics, XabiGarde. I can't tell from the documentation whether the stated power is the total amount the driver can source or if it's the net amount available AFTER accounting for the motors themselves. You're looking at a startup power draw of 2.25 W on a port rated for 6.7 W. It would seem like that's capable, but you might also be browning out the bus if the 6.7 W is also driving the motor. The 5-second shutoff might be a short-circuit protection built into the Create2.
Troubleshooting steps I would try are:
If you try the above and the problem persists, please post the code section you're using to run the motors. It's been a while since I looked at the OP codes for the Create2.
Answered by Chuck on January 6, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP