I am sending a small sailing drone on a trans-Atlantic attempt (again).
My first one used a 6V, 2W solar panel, a 4400mAh 3.7vdc lipo battery pack, a smart solar/lipo charger and a booster to get 500mA at 5V to the Arduino.
Everything was fine and this set up has plenty of power and can run for a couple weeks without any sun whatsoever. But.. I was wondering if I could make each component totallt redundant so that a failure in any would be overcome. As long as I had one working solar panel, one charger, one battery and one booster, all would be well.
I believe I just need diodes in the right places. In the attached diagram I've omitted grounds for clarity and put diodes in front of the solar panels. If I put them elsewhere (essentially any positive coming out of a component) would that be alright?
What about the batteries, which I essentially would gang most of the time? Any implications of connecting lipos in parallel for discharge and recharge?
What kind of diodes? And do they affect the current or voltage? I wouldn't want the nice 5vdc coming out of the boosters to be sacrificed, nor the solar charge diluted, etc.
Very cool project. I looked at the Gortobot site and applaud you for the concept, the effort and the successful launch! I've had the Microtransat challenge in mind for a couple of years now, but for the learning phase I'm modifying the Nirvana RC sailboat.
Your basic idea of having parallel redundant solar/battery systems is fine. They could be completely separate except with a diode OR at the outputs, or you could have redundant solar panels/battery chargers/batteries, diode ORed to a common boost regulator. I favor the latter approach.
The downside is that silicon diodes have a significant voltage drop, which depends on the current, but likely between 0.7 and 1.0 volts. You can use Schottky diodes for a significantly lower voltage drop and power loss.
With the diode OR arrangement, the two power sources would probably contribute unequal currents (unless one power source fails) but the balance is impossible to predict because of differences in the characteristics of the voltage regulators, the battery voltages and the output diodes.
A much less lossy arrangement would be a custom "smart" power source switch using MOSFET transistors, similar to the Pololu pushbutton power switch. quote: "Allows multiple (parallel) switches for improved user interface". If you post on the Pololu forum, a knowledgeable engineer would probably have some good suggestions for how to implement that possibility.
Thanks for the response, jremington. I've attached an updated Fritzing diagram. I think this is what you mean by diode ORs. I see how I can isolate the solar panels and the chargers. The final booster, that takes the 3.7vdc (really b/w 4.2 and 3.3 in my case) and outputs just over 5vdc- I don't want a voltage drop behind that since I want the Arduino to have 5 volts, so I won't use redundant boosters.
I encourage you to try sailing a robot! If you want to see my physical design for #2 taking shape, you can try Onshape (really cool new 3D solid modelling software, cloud-based, and totally over-kill for my project, but too fun to pass up). Search for "gortobot." It's a public model.
I like your first hull design and will check out the new one.
From the diagram it appears that you now have two independent solar panels feeding a common connection to two chargers, that are separately charging one battery. This will not work as LiPo chargers are carefully tuned to monitor the battery voltage in their charging scheme. Plus, the chargers aren't identical and will tend to fight each other.
I've attached a schematic of my proposal. Boost converters are not designed with source diodes in mind, so the capacitor shown on the input of the boost charger may be needed for proper operation.
However, parallel chargers/batteries is not the way I would go. I suspect that the boost converter is a major source of your power problems. It is at best capable of about one ampere continuous. The startup and heavy load current of motors is much higher than the free-running current (I budget 1 ampere per servo), and the satellite modem will consume perhaps an ampere when transmitting. You should more carefully analyze the current consumption, but at the very least use a higher current boost converter.
If you are committed to parallel power systems, the best approach is to have the navigation and the motors be independently powered by two completely separate PV/charger/battery/converter systems (with common ground), to reduce noise and processor reset problems. That way if the motor power system fails, you still know where the boat is and what happened.
Finally I strongly urge you to abandon Fritizing diagrams. They are confusing and misleading, and only for the least informed beginners. Even a photo of a pencil and paper schematic drawing will be much, much clearer!
Thanks again for the advice. Here are some comments:
I agree I need to get comfy with proper schematics. But what is nice about Fritzing is that I constantly re-arrange my breadboards (and forget how I had them arranged) and then eventually construct the circuit on a stripboard. It's just so easy to plan it all out physically in Fritzing. But you're right- my electrical design should really be done first in schematic.
I will most likely separate the power for electronics from that for motors on #2. That said, I do not use servo's so the twitch you mention (which I have observed) is not a culprit. My code also protects against some low power situations. If the batteries drop below 3.4vdc, the whole program will wait until they rise back to 3.5vdc. That did occur on the voyage. However, the Arduino never shut down (I can tell because the messages include a flag that would have reverted.) The batteries themselves have a low voltage shut down (as many lipo's do) at about 3.2vdc. That was never invoked.
In terms of power, my code only allows one thing at a time. So, the motors will adjust the sails, and then stop. The GPS will get a fix, and then power off. The satcom as well. The GPS and satcom are not big draws. (The satcom will peak at about 250mA if I recall, but it uses a super-capacitor. The GPS uses like 50mA.)
The motors in testing did not seem bad, either, but I probably didn't have the means to test them well enough.
I suspect that I may have had a problem with the batteries. The super-capacitor in the satcom may have actually been absorbing a 5v charge while the sun was out, and then running the system all day and into the night. This was an unintended event, but maybe something worth keeping. The RockBlock (satcom) manual actually suggests using the 5v output on the unit to deliver regulated power.
Another reason I can see for separate power systems is that the motors can operate from 3-12vdc, but they're more efficient at 12v. So I can boost the voltage to them and not worry about fluctuations, while keeping a steady 5v to the electronics.
OK, I looked more closely at the info on your design page. It is a bit sparse, but nice motor! I agree that my scenario is not correct.
If the slightest amount of seawater got into the sail position pots, the readings would probably be nonsense.
I wonder if the boat ever turtled. You might consider including the BNO055 absolute orientation sensor in the next project. It is not expensive and works very well for me, but it is essential to run the calibration procedure in the sensor's final place of installation.
You've got to properly analyze what might fail. Yes a cell might go bad in a battery so a second independent battery is a possible solution but what if there's a problem with your output diodes? Then all the batteries will get drained regardless of how good the battery is.
I'm more in favour of making one good battery. That way you don't have a lot of complexity of these automatic switching systems, which themselves may go wrong. If you don't install it on the boat then it weighs nothing, costs nothing, takes up no space and it can never fail.
It's been awhile but I'm still at it. I launched my second boat in 2016 and lost communication with it 8 days later., and assumed it sank.
But the good news is that it drifted for 265 days (starting off Boston) and was found in the Azores! Unfortunately, water got in (I assume after it grounded) and there was not much to salvage. But the batteries did take a charge, which means something went wrong between the solar panel and the battery.
So attached is what I'd like to for the next one. Taking some of jremington's advice, I drew a proper (I think) schematic. The idea is that battery 1 will be used to power the Arduino (and everything other than the sail drive motor). If solar panel 1 or charger 1 or battery 1 have a problem, then the system would still be powered by battery 2.
The motor (and its step-up booster) would only get powered by battery 2. I have a low-side switch so that the motor step-up booster and motor driver are only powered when I want them.
Most of the time my Arduino is in sleep mode. And I execute tasks serially (GPS, Satcom, sail drive) to keep power requirements at a minimum. The wifi module does not go into the final design.
The "sail pot" is what I use to tell the position of the sail (it's a 10-turn, 100k pot geared 4:1 to the mast). And I use two pins to power the GPS because it starts up at 60mA, which is more than the 40mA of this Arduino Mega per pin.
Again, great project! I followed the launch of Gortobot 2 and commiserated about the loss. However, it is fascinating that she ended up in the Azores.
I like the idea of two separate, diode isolated power supplies -- that part looks fine.
However, I can't make sense of the 2A booster wiring. The schematic shows no connection to IN- and it is not clear what transistor Q1 attached between motor driver GND, OUT- and equipment ground is supposed to accomplish.
If any moisture gets in to the sail position pot, it is toast. You might look into a sealed absolute shaft encoder.
So, the IN- and OUT- are tied together on the board and are the grounds. What I'm doing with Q1 (which is a S9013 NPN transistor) is making a low-side switch that completes the ground to both the step up booster and the motor driver. When I set pin 32 to HIGH, it turns on the booster and motor driver so I can adjust the mast.
I want to make sure that in a failure, those components just stay off. I noticed in testing that keeping the booster powered, even though not drawing anything off it, was consuming some mA's.
The sail pot is mounted inside the waterproof compartment with the drive motor. I agree, salt anywhere will fry just about anything. My design has the mast penetrating the deck with a waterproof gland so that nothing is exposed.
One other thing I just noticed is that the satcom will only work if batt 1 is available. I'll probably tie that in to Vcc so that it can work even if batt 1 fails.
The final thing is that the 5Avdc boosters will essentially duel for supplying the main system. I'll need to test that out to see if there are any negative effects.
I think you need a high-side switch. Otherwise the motor/driver/booster combination is floating at an unknown voltage above ground. It's likely to be high enough to fry the Arduino pins which are connected to that module.
If you control the 3.7V LiPo battery line going to the booster with a P-type MOSFET, your 5V Arduino can turn it off very positively. The schematic can be simpler than what you already have.
I think your diodes on the two 5V converters are adequate to make sure that both of them can power the Arduino and a fault with one won't stop the other one from working. Why is the WiFi module only connected to one of them?
I agree about the high side switch for the 2A booster. Make sure you choose a logic level P-MOSFET. If it is switching 3.7V, then you should have no problem with the Arduino output pin providing 0V (for ON) and 5V (for OFF) on the gate. (The problem arises when switching higher "high side" voltages, like 12V).
I really appreciate the feedback guys. I agree, the high-side switch feels better.
I've done some reading on MOSFETs. I understand why to use a logic-level MOSFET, but why not use an N-channel? I like the idea of knowing that if things are powered down (if the Arduino resets for some reason) and I supply 0vdc, the booster will be off. Any downside to this approach?
Something like this?
Or, reading another forum, I found this MOSFET, which seems friendlier as I breadboard:
It looks like I need resistor in front of that MOSFET. Is it true of all MOSFETs I might choose?
And, since I'm switching less voltage than the base (or gate) why won't an NPN transistor work where I have the new MOSFET (Q1)? I guess the question is, why can't I use a NPN transistor in a high-side switch when switching lower volume than the base?
I've attached an updated schematic. To answer MorganS's question, the wifi is not going on the final circuit, but I did notice that the Iridium Sat modem should be attached after the diodes, and so I changed that and the wifi at the same time. Good catch!
Three problems: you have the source and drain swapped on the P-MOSFET (the source must be connected to the positive supply, the drain to the load), and OUT- should be grounded. You need a ~10K resistor from the gate to the source, so that the drain does not float.
Good question. It took me 3 attempts to come up with this answer and I'm not sure it's the complete answer...
The N MOSFET is switched on by a positive VGS. That's the voltage between the gate and the source. The voltage on the drain is not important unless it gets high enough to destroy the device (the damaging voltage may be as low as 20V.)
If used as a high-side switch, the N MOSFET will have its source connected to the load. (The names are somewhat backwards because the source sources negatively-charged electrons.) If you've got a fully-charged 3.7V battery, the source will also be about 3.7V. With a 5V control voltage on the gate, VGS is only 1.3V. That's not enough to properly turn it on, even with a logic MOSFET.
I have seen many datasheets for things that use an N MOSFET as a high-side switch. Those devices usually have a voltage-booster circuit that gives about 10V above the supply voltage, which is enough to fully turn on a regular MOSFET.
jremington: I am showing an N-MOSFET in my schematic. I think I have it hooked up correctly. My symbol looks different than yours, but my understanding is that battery is hooked to the source, the drain is hooked to the booster. That was my intent. And this booster has two grounds, but they are connected on the board (I checked with my multi-meter) so I just show one grounded.
10K between gate and source, got it!
morganS: that makes sense. I'll have to re-think using the N MOSFET.
I'll re-work this. Thanks again for the input.
Oh- jremington, the stall current is 1.7A. I'll need to look at that again.
The resistor between the gate and source (battery V+) keeps the gate at the same voltage as the source, and therefore keeps the switch off. When I pull the gate to 0V with the Arduino pin, it switches on the power to the booster and driver.
And I see I need the P-channel because with an N-channel I would not have enough Vgs.
I'm still having some problems with my circuit. Schematic attached.
I have 3.8V at batt1 and 3.6V at batt2. I would expect that the 5VDC step up booster will only use the 3.8V source because diode D1 should "win". But, both batteries are discharging.
I've disconnected the Arduino to see if the right side of the circuit works on its own, just powering a dummy load. It looks like it might be working okay (I need to wait a bit longer to declare victory).
But with the Arduino hooked up, batt2 is definitely discharging. I'm not using the motor driver either. Pins 29, 39 and 46 are in output mode. And the motor driver draws negligible current when not in use.
Does anyone see something wrong with the design? The diodes are Schottky with Vf of 0.16, measured.