4
$\begingroup$

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 create@irobot.com 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:

Breadboard wiring overview of the new setup

Wiring schematic of the new setup

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.

$\endgroup$
2
$\begingroup$

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:

  1. Measure the voltage during the power-on sequence and see if your supply voltage is normal - manual states it should be 12-16 volts.
  2. Disconnect the Create2's driven motor and see if the problem continues.
  3. Try connecting to a higher-power source (main brush) and see if the problem continues.

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.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Hi Chuck! Thanks for your remarks. As I acknowledged on Steve's answer, we might be dangerously running the Raspberry Pi close to the serial port's power limit, so we'll try tapping from the main brush altogether. Regarding your steps: 1) I'll check later 2) As stated in the now edited original question, all motors were disconnected during our trials. 3) See above $\endgroup$ – XabiGarde Jul 21 at 10:34
2
$\begingroup$

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.

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ Hi Steve! Thanks for the fast reply. Your remark regarding the RaspberryPi being dangerously close to the power limit is spot on. I already suspected we might encounter problems with that down the road, but since it worked so far, we kept it as-is. I am now convinced that we should change this. Thank you! After brainstorming how to solve the bootsrapping, we thought of using a MOSFET to switch between the serial and MainBrush. $\endgroup$ – XabiGarde Jul 21 at 9:30
  • 1
    $\begingroup$ (cont.) When first pressing 'Clean' button, the Crate2 goes to PASSIVE mode, and the RPi would power from the serial. After the RPi's OS loads, a script would automatically send the Open Interface commands to the Create2 to turn on the Main Brush. $\endgroup$ – XabiGarde Jul 21 at 9:31
  • 1
    $\begingroup$ I have just edited the original question and added the schematic for the new design. We are still waiting for some parts, but will report with results ASAP. $\endgroup$ – XabiGarde Jul 22 at 10:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.