D36V28F5 for Romi 32U4 Control Board

Hello,
We are an FRC team and have been using the incredible Romi robots with the Pi Board controller. They are superb.

We also have many Vex EDR parts including many motors. So, we are using the VSW with the D36V28F5 as our feed for the power rail for the 5 EXT pins. That way, motors and sensors will have the correct voltage to work.

We decided on this particular unit (as opposed to a boost/ buck) because we thought the extra current of this particular device could be helpful, and the technician we chatted with through email said we could use the Analog monitor to trigger en and ensure we did not get into a power-starved situation with the board.

However, when the boards arrived, and I began testing, the analog monitor (PF6 on the 32U4) seemed too high to un-trigger EN (at ~4 volts, it outputs 1.3-1.6 volts). In looking at the datasheet, it seems like 5.3 volts is the minimum voltage the D36V28F5 can handle.
.
Under normal circumstances, if the battery voltage drops below 5.4 volts, we lose connection with the computer, and cannot drive the robot. However, if there is a runtime error in our code, sometimes, but rarely, motors go full-on (bypassing motor safety). So, it is possible however unlikely, that we could get into a situation where motors are on full, and the batteries are less than the required voltage.

I spent some time on Chief Delphi asking about setting up en with either a voltage divider or PG, but we do not seem to have enough information about the device itself. So, after this long intro, my questions…

  1. Can I assume this device would be safe under normal operating conditions going as low as 5.4 volts input (If the motors stall when they run low, they could potentially max out the current draw of the board). I assume dropout voltage only affects the output to the motors, but not the safety of the device, is this correct?

  2. In the rare case that the robot cannot stop and the input voltage drops below 5.3 volts is it still going to be safe because the board has “Output undervoltage and overvoltage protection”

  3. In the case that either of the above situations could be dangerous or damage either board (the D36V28F5 or 32U4), can you recommend how to wire it to use EN to un-trigger if there is a starved situation? I cannot figure out how to use PG with a pull-up and have it work with EN. I am wondering if creating a voltage divider between En and Vin would be better, and if so, how to wire that given there is an internal resistor already. Or, is none of this craziness necessary as the device should be safe in the way we are using it?

Thanks for such wonderful products.
~Mr. R^2

Edit: As I am reading this message board, I wonder, should we be concerned about back-voltage/ current since there will be motors attached? The motor controllers we are using are the Vex 29s,

Hi, Mr R^2

It sounds like your major worry is making sure that the Romi does not damage itself or do anything unpredictable when the batteries get drained. As we mentioned though email, the best way to do that is to monitor the battery level input (pin A1) in the main loop of your program and turn off peripherals and give a warning when it is too low. Rather than connecting the pin A1 to the regulator, I recommend connecting an unused pin from the Romi Control Board to the regulator’s EN pin and driving it low when the program detects low batteries.

If something does happen to cause regulator’s input voltage to drop below 5V + the dropout, I generally expect that the regulator’s output voltage will start to drop proportionally to the input voltage. (Though regulator manufacturers generally do not define behavior in this region of operation, so it is good practice to avoid it.) This regulator’s output undervoltage protection does not kick in until the output is at 20% of nominal, so it probably won’t get triggered for you.

It sounds like you plan to power a Vex motor controller from the 5V output of the D36V28F5. Do you plan to power anything else from the regulator? Do you know the voltage range of the Vex 29 controller and your motors? It is often best to run motors directly off the batteries since they tend to draw a lot of power and be noisy.

-Claire

1 Like

Claire,
Thank you for your response. I think this helps a lot. We cannot do the monitoring in software, because in the use case I am concerned about, the software will no longer be controlling the robot. When the batteries drop below 5.4 volts, the raspberry pi begins to turn off the websocket controlling the robot. Our program is running on the computer and using websockets not on the robot it works essentiallyin a bi-wire setup. We do not write the code for the Arduino at all. I could modify the Arduino code, but I would need to learn a lot more programming to do so (it is not just arduino, which I know, but the javascript and typescript layer that communicates between the Arduino and the FRC system. In addition, it would make running future updates of the FRC system much more difficult.

So, I figured a hardware solution would be better.
I agree that powering the motors directly from the batteries would be optimal (the mc29 is actually designed for 7.2-9 volts, but I have run off 5 with no problems in other projects). However, since we are using the FRC system, they have the convenience of the rails right next to the gpio (PB7-PF1). This makes it easy to safely plug the motors in, but also allows them to use the same ports for other uses. They may use any of the following on these pins, DIO, AI, or PWM. Some of the pwm signals may be used to power servos not motors, and we also have a robot arm kit, for which, the docs say to avoid powering them directly from the batteries. It is only motors and servos that require the extra current of VSW, but if I had the students wire to VSW directly, the wiring complication could be a fire hazard (I do know from experience the mc29 is not reverse-polarity protected; oops).

I thought the best approach would be to use a separate 5 volt source for the 5v rail that could handle the expanded current requirement of the motors without damaging the sensors which led me to this device.

Obviously, this is not the most efficient path, and we may run into too much noise, but that is a learning experience I am willing to go through with them. For robots in students’ homes, I am looking first and foremost for the safest and most versatile solution.

I would be open to other ways of protecting the boards if it was worth it, if it was safe enough to run this board in the instances I mentioned above, it is probably better for us to just not worry about low input voltage at all.

So, it sounds like that is the case, yes? If not, I am willing (and may need help) to investigate other solutions, both hardware and otherwise.

If as we get going, we run into those other limitations (noisy inputs, motor limitations, etc), I am willing to change how we do things. That gives us a reason to learn the more complex wiring, and in doing so, hopefully, the students will understand it better and make fewer mistakes.

By the time 6 NiMH rechargable batteries read 5.4V, I expect they have almost no energy left. Cutting off the robot when the batteries read 6V (1V each) would likely not cost much run time. Would that be possible to do from the RPi in your setup? In general, if things go wrong and the motors are left on while the robot is in error, I expect the batteries to just run down until the drivers controlling the motors cannot stay on and the motors stop. If you are still worried and don’t think using a higher threshold on the RPi is a viable solution, I can tell you how to make a voltage divider to automatically disable your D36V28F5 regulator.

Powering your motors and servos off a regulator shouldn’t be an issue as long as the regulator can handle the current draw. If you want to power multiple motors, you might need more than one regulator. Depending on your motor and controller, it is possible a brushed DC motor could generate big enough voltage spikes of back EMF to damage its controller or the regulator powering it. You could use something like a TVS diode or one of our shunt regulators to protect against that, but I recommend doing some testing and looking at the power rail to the motors with an oscilloscope in stressful situations to see if you need to worry about it. If interference from the motors is the only concern, powering sensors and other sensitive electronics from different rails than the motors will help. Please note that connecting your motor controller with reverse polarity to the 5V regulator will still likely damage it.

I hope that addressed most of your questions so far. As you mentioned, it is hard to plan for everything that will go wrong with a project, but the mistakes are where the most learning happens.

-Claire

1 Like

Thank you. That helps a lot. I will look into an oscillator. We do not have one, but I suspect I could make one with an arduino and that would suffice. I may need to lower the voltage, but I can figure that out as well.