HydroBot - a Fuel Cell Powered Robot
373 Views, 2 Favorites, 0 Comments
HydroBot - a Fuel Cell Powered Robot






HydroBot is a demonstrator platform for fuel cell electric vehicles. The aim of the project was to develop a remote-controlled robot that is powered by a hydrogen fuel cell. The power supply system was designed analogously to fuel cell cars, with a fuel cell stack and a battery as a combined power supply system. The robotic platform uses Mecanum wheels as a drive system, which allows it to drive in any direction without requiring a classical steering assembly.
HydroBot was developed by the Helmholtz-Institute Erlangen-Nürnberg for Renewable Energy (HI ERN) to showcase an application of fuel cells. The idea of the project was to manufacture a prototype suitable as a demonstrator for fairs, and to get a glimpse into system integration, which is not part of the core competencies of the department that developed HydroBot.
This Instructable is meant to provide a brief introduction to fuel cells and fuel cell-powered vehicles, as well as detailed insight into the design and pitfalls during the development of this robot. The documentation of HydroBot is open source, but a direct copy of this project is not recommended, as this prototype requires some custom-machined metal parts, pipe-bending tools, and its design is not particularly assembly-friendly.
Disclaimer: Hydrogen is an odorless, flammable, and explosive gas, and lithium-ion batteries can overheat, burn, and explode, thereby releasing toxic gases. Working with fuel cells and batteries requires knowledge of the risks involved, and safety measures need to be implemented to avoid damage and injury. Note that the background information in this Instructable (steps 1 and 2) is missing citations, as this format does not allow seamless integration of references. The same information and references can be found in the robot’s manual on GitHub.
Contributors: HydroBot was developed by the Electrocatalytic Interface Engineering Research Department of the Helmholtz-Institute Erlangen-Nürnberg for Renewable Energy, which is part of Forschungszentrum Jülich in Germany. Members of the project team are (in alphabetical order) Dr. Thomas Böhm, Anna T. S. Freiberg, Carina Götz, Adrian Hartert, Christoph Hübner, Hye Jin Lee, Marco Martini, Julian Mitrovic, Rohit Rajendran Menon, Nico Roubicek, Prof. Dr. Simon Thiele, and Anja Tröster. AISLER is gratefully acknowledged for sponsoring PCBs used in this project.
Supplies
Most of the custom parts of HydroBot are 3D printed from PETG or TPU (FDM printing), and a few transparent components are 3D printed using an SLA printer with a clear resin. The CAD files can be downloaded from the linked Autodesk Fusion project or as .stp files from GitHub. Manufacturing of PCBs and machining of acrylic glass and aluminum blocks and plates (CNC laser cutting and milling) were outsourced to external service providers. The formats and positions of the mounting through-holes of these components are part of the CAD files. The assembly of the robot requires M3 and M6 cylinder head screws of different lengths, as well as M3 and M6 nuts and M3 threaded inserts. The main frame of HydroBot consists of 10 mm Makerbeam aluminum profiles with different lengths (18x 40 mm, 4x 60 mm, 8x 100 mm, 4x 150 mm, 6x 200 mm, as indicated in the CAD files).
Necessary tools
- Soldering equipment for electronics
- Pipe bending equipment
- Pliers for cutting, clamping, and crimping, screw drivers, Allen keys, etc.
Energy components
- 1x Horizon H-60 PEM fuel cell stack with controller
- 8x Horizon Hydrostik Pro hydrogen cartridge
- 8x Horizon single-step pressure reducer for Hydrostik Pro
- 1x Horizon Hydrofill Pro electrolyzer unit (required to fill the metal hydride cartridges with hydrogen)
- 1x pbq LF 7.2-12 LiFePO4 battery
- 1x Meanwell GSM90A24-P1M power supply, 24 V, 3.75 A, 5.5/2.1 mm connector (power supply for charging)
- 1x Wika PE81.60 pressure sensor (0-1 bar, 0-5 V analog output)
- 1x solenoid valve
- Metal tubing, fittings, wires (2.5 mm² (motors), 1.5 mm² (FC), 0.25 mm² (logic), connectors (XT60)
Power train components
- 2x Cytron MDD20A motor driver
- 4x Servocity geared brushed motor, 27:1, 313 rpm, 12 V, 0.5 A idle current (link)
- 4x flange coupler Lynxmotion HUB-02 6 mm coupler (link)
- Bearings: 4x 6816, 24x 696, 88x 608
Electronics components (robot)
- 1x power button DELOCK 20986 (two independent close/open connectors + light)
- 1x DC power jack 5.5x2.1 mm DELOCK 90170
- 1x E-Stop RAFI RAFIX FS+ 22
- 4x HC-SR04 distance sensor breakout board (link)
- 1x 1602 I2C LCD module (link)
- 1 m 100 LEDs/m WS2812B RGB LED strip (link)
- Molex SL connectors male/female with crimp pins to connect RGB LED segments and external components with the headers on HydroBot’s mainboard (70107-000x male, 50-57-940x female, 16-02-0102 crimp pin female, 16-02-0114 crimp pin male)
Electronics components (HydroBot PCB)
- 1x custom PCB for HydroBot
- 1x NodeMCU ESP32 (38 pin version) with 2x 1x20 2.54 mm pin header
- 1x Arduino Nano with 2x 1x16 2.54 mm pin header
- 1x MCP23017 with 2x14 pin IC socket
- Current sensors: 1x ACS712ELCTR-20A, 1x ACS712ELCTR-05B
- ADCs: 2x ADS1115 10pin breakout board (link) with 2x 1x10 2.54 mm pin header
- Capacitors (ceramic): 1x 2220 10 µF 50 V, 4x 1206 22 µF 10 V, 1x 0805 1 µF 25 V, 3x 0805 100 nF 50V, 2x 0805 1 nF 50 V
- Diodes: 5x SOD-123 1N5819HW, 1x DO-201AD SBR 10U45SD1-T
- DC-DC converters: 1x Traco TSR1-2433E, 1x Traco TSR2-2450
- Fuse: 1x iMAXX_H7810 fuse holder, 1x miniOTO 20 A fuse
- Connectors: 1x Wago 2604-3106, 1x Wago 2601-3104, 4x Wago 2601-3102, 6x Molex SL 1x02 P2.54 socket (70543-0001), 6x Molex SL 1x03 P2.54 socket (70543-0002), 5x Molex SL 1x04 P2.54 socket (70543-0003), 2x 1x03 P2.54 pin header, 2x jumper 2.54 mm
- Relays: 1x Hongfa HFD2/012-S-L2D, 1x HF46F-G/12-HS1, 1x Omron G6K-2P 5DC
- Transistors: 5x SOT-23 IRLML6344, 1x TO-247 IRFP7430PBF
- Resistors (all 0805): 1x 470 Ohm, 4x 1 kOhm, 2x 10 kOhm, 8x 22 kOhm, 12x 33 kOhm, 4x 100 kOhm, 6x 10 kOhm (optional pullup/pulldown resistors)
Electronics components (DC-DC converters)
- 2x custom PCB for DC-DC converter
- 2x TDK Lambda i7C4W008A120V-P03-R
- Connectors: 4x Wago 2601-3102, 2x Molex SL 1x02 P2.54 (70543-0001)
- Capacitors: 8x electrolytic 330 µF 35 V 10 mm SMD (Wuerth 865080557015), 2x ceramic 0805 22 µF 35 V, 4x ceramic 0805 100 nF 100 V
- Resistors: 4x 0603 2.2 kOhm, 2x 0603 1 kOhm
- Potentiometers: 2x Bourns 3223W-1-502E, 2x Bourns 3223-1-103E
Electronics components (remote control)
- 2x KY-023 joystick module (link)
- 2x Marquardt toggle switch 1821.6101
- 1x Marquardt on/off switch 1801-1148
- 1x 2004 I2C LCD module (link)
- 1x 6x AA battery holder (link)
- Molex SL connectors female with crimp pins to connect external components with the headers on the PCB (50-57-940x female, 16-02-0102 crimp pin female)
Electronics components (remote control PCB)
- 1x custom PCB for remote control
- 1x NodeMCU ESP32 (38 pin version) with 2x 1x20 2.54 mm pin header
- Capacitors: 1x 2220 10 µF 50 V, 3x 1206 22 µF 10 V, 1x 0805 100 nF 50 V
- ADC: 1x ADS1115 10 pin breakout board (link) with 1x 1x10 2.54 mm pin header
- Connectors: 4x Molex SL 1x02 P2.54 socket (70543-0001), 2x Molex SL 1x04 P2.54 socket (70543-0003), 1x Molex SL 1x05 P2.54 socket (70543-0004), 1x 1x03 P2.54 pin header, 2x 1x02 P2.54 pin header, 2x jumper 2.54 mm
- Resistors (all 0805): 1x 22 kOhm, 1x 47 kOhm, 4x 10 kOhm (optional pullup/pulldown resistors)
- DC-DC converters: 1x Traco TSR1-2433E, 1x Traco TSR1-2450
- Logic level shifter: 2x 6 pin bidirectional logic level converter breakout board (link)
A Brief Introduction to Fuel Cells

Fuel cells are electrochemical energy converters, which means they convert chemical energy into electrical energy. Their fuel is an energy-rich substance, and by oxidation within the fuel cell, it turns into a low-energy product. This reaction within a fuel cell occurs spontaneously (without having to apply external energy), which is why they are also termed galvanic cells. Fuel cells can operate with different kinds of fuels, the most common being hydrogen (H2). If hydrogen reacts directly with oxygen (O2) from the atmosphere, which requires an ignition source, it burns or explodes, releasing energy in the form of heat, and forms water (H2O) as a product.
2 H2 + O2 → 2 H2O + energy
A fuel cell catalyzes the same reaction but differs from this direct combustion by spatially separating the fundamental reactions involved. Hence, no combustion can take place, as the reactants are never in direct contact. Instead, the overall reaction is split into two parts and can be tightly controlled. In one of the most common types of fuel cells, proton exchange membrane fuel cells (PEMFCs), these are the oxidation of hydrogen to form protons (H+) and electrons (e-), and the reduction of oxygen by recombination with the protons and electrons from hydrogen to form water.
2 H2 → 4 H+ + 4 e-
O2 + 4 H+ + 4 e- → 2 H2O
Separating these two reactions allows for harvesting electrical energy by bypassing the electrons through an electrical circuit, thereby producing a usable electric current. The reaction rate can be limited by adjusting the current flow, which allows a safe and controlled conversion of chemical energy into electrical energy. The protons travel from the hydrogen side of the fuel cell, which is also called the anode, through an ion-conducting medium, the so-called electrolyte, to the oxygen side of the cell, which is termed the cathode. Importantly, electrolytes are electrical insulators, which enables the setup of an external electrical circuit to make use of the generated current.
Anode and cathode are the two electrodes of a fuel cell, and they require catalysts such as platinum to allow the reactions to occur at usable rates. Catalysts are materials that reduce the activation energy of a reaction without being consumed within the reaction, meaning they accelerate the reaction. The electrolyte is a flexible polymer membrane, often a polymer called Nafion, a derivative of the very durable plastic Teflon, which not only allows proton conduction but also offers the required chemical and mechanical robustness needed for long-term fuel cell operation.
Benefits and drawbacks of fuel cells
Fuel cells are a promising means to convert chemical energy into electrical energy. For example, PEMFCs are locally emission-free, meaning they do not produce greenhouse gases or toxic exhaust fumes. They only produce water. On the other hand, they come with certain limitations. For instance, thermodynamics states that the maximum efficiency of a PEMFC is less than 83 %, with real-world efficiencies of around 60 % and less. This efficiency is significantly lower than the efficiency of a battery, which can reach more than 90 % within a charge-discharge cycle. Notably, this consideration does not account for the means and energy costs of hydrogen production for the fuel cell or electricity production for the battery, which is highly dependent on the use case and location. Hence, each technology has benefits and drawbacks, and a direct comparison is always difficult.
An important difference between fuel cells and batteries is that the fuel of a fuel cell is stored separately from the electrode-electrolyte compartment, the actual fuel cell. In contrast, a battery combines storage and reaction compartments in a closed system. Therefore, the output power of a fuel cell is uncoupled from its energy storage capacity, whereas increasing the capacity of a battery typically also increases its maximum output power. Consequently, increasing the size of the fuel tank of a fuel cell increases the runtime but not the peak power output of the system, similar to adjusting the size of the fuel tank of a gasoline-powered car. It may sound advantageous to increase power output and energy capacity simultaneously, like when increasing the size of a battery, but uncoupling both also has its benefits. In a battery, the costs increase directly with capacity since the battery only becomes bigger. In the fuel cell, the fuel cell and the components required for operating the cell (balance of plant) stay identical, irrespective of the fuel tank size. Hence, increasing the energy capacity of a fuel cell can be cheaper than increasing the capacity of a battery. Further, refueling a fuel cell is done by refilling or replacing a fuel tank, which can be performed faster than recharging a battery, which requires electrochemical reactions.
The voltage of a PEMFC is typically around 0.9 to 1 V when no load is applied to the cell (open-circuit voltage), and it drops with increasing current to around 0.6 to 0.7 V at its peak power output. Therefore, like single-cell batteries such as cylindrical AA batteries, multiple cells must be arranged in series to reach usable voltage ranges. In fuel cells, the assembly of multiple single cells is termed a stack. A fuel cell also needs peripheral components, such as its fuel tank, a means to feed fuel and oxidant to the cell in a controlled way, and active cooling during operation. Hence, a controller and an external power source are needed to safely start, operate, and stop a fuel cell, which is significantly more sophisticated and expensive than what a multi-cell battery needs for operation. Namely, it needs a battery management system that ensures voltage equality between the different cells and disconnects the load/charger if the tolerated voltage window is exceeded.
The Concept of Fuel Cell Electric Vehicles




Three main types of (partially) electric vehicles can be differentiated: BEVs (battery electric vehicles), FCEVs (fuel cell electric vehicles), and PHEVs (plug-in hybrid electric vehicles). BEVs are solely powered by a battery that supplies energy to their electric motors. PHEVs use an internal combustion engine as a main power source for propulsion, which is supported by an electric motor and a battery that are used to provide additional power when needed and increase the car’s range and efficiency. FCEVs are electric vehicles that use hydrogen as a chemical energy carrier (fuel), like gasoline or diesel. However, instead of burning this fuel like an internal combustion engine vehicle (ICEV) or PHEV, they use a fuel cell to directly convert the chemical energy stored in compressed hydrogen gas into electrical energy.
BEVs have the advantage of a very simple and very efficient power train (compared with ICEVs), but recharging them takes more time than refueling gasoline- or diesel-powered cars, and their achievable drive range is typically shorter than for ICEVs. PHEVs combine the advantages of combustion engines (fast refueling, long range) with the higher efficiency of BEVs, but at the cost of a more complex and heavy combined power train, and their overall efficiency is poorer than that of a BEV. FCEVs operate locally emission-free, like BEVs, outperform ICEVs in terms of efficiency, can reach drive ranges like ICEVs, and can be refueled as quickly as ICEVs. However, they are significantly less efficient than BEVs, and their power systems are expensive, large, and complex. Therefore, each propulsion system has advantages and disadvantages, and the ideal choice highly depends on the use case and the available infrastructure.
How to implement a fuel cell in a robot
HydroBot is a demonstrator platform intended to showcase the operating principle of FCEVs. This robotic platform is powered by a battery that is used to drive its motors and auxiliary systems, and that also fuels the balance of plant of the onboard fuel cell. The fuel cell can be activated on demand to charge the battery and power the robot.
HydroBot requires a battery because fuel cells are not suited to power vehicles directly without a buffer battery: They need external electrical components to start, control, and stop their operation safely. Hence, a mobile platform always requires an external power source like a battery to run a fuel cell power system. Once the fuel cell is running, it can power its own balance of plant, but an external power source is needed at least during startup and shutdown. Further, while PEMFCs (the fuel cell technology used in FCEVs) can adapt to load changes quickly, they are prone to damage when left at idle for longer times (open circuit voltage, when the fuel cell is active but either no or only a very small current is drawn), and their efficiency drops significantly when operated at very high loads (relative to their size). Thus, for an FCEV, a buffer battery is essential, for example, to act as a load while idling, or as an additional energy source when very high currents are needed (like during fast accelerations). Also, a battery can make use of the energy released from braking an electric vehicle (regenerative braking), whereas a fuel cell can only release but not store electrical energy.
Fuel cell size matters
A careful selection of the size and capacity of the fuel cell and battery allows the design of an efficient power system: The conversion efficiency of a fuel cell drops with its current density (current output per cell area), meaning the fuel cell should not be operated at very high loads. On the other hand, the larger the fuel cell, the more space is needed for the stack, the more weight is added, and the more expensive its components become. For a battery, the capacity directly scales with its size and weight. On the other hand, adding additional hydrogen storage capacity requires less space than increasing battery capacity. Hence, when aiming at long drive ranges, FCEVs can outperform BEVs in terms of size, weight, and fueling time. Therefore, an efficiency-focused FCEV power system consists of a medium-sized fuel cell compared to the car’s power demand. This fuel cell allows powering the car on average at the fuel cell’s ideal operation point, which is the sweet spot between low current (equals high efficiency) and high current output (equals a small required fuel cell footprint). The battery capacity must be chosen according to the expected power draw spikes of the car’s drive profile, so that it can buffer intervals of high current draw and be recharged in between without adding unnecessary weight and costs to the vehicle.
HydroBot is not intended to reach these efficiency goals, but it is meant to showcase the principle of this type of power system. Therefore, it uses a comparably simple fuel cell setup, which does not reach the technically possible conversion efficiency of chemical into electrical energy, which is up to ~60 % for PEMFCs. Instead, it reaches a peak conversion efficiency of around 40 %. On the other hand, it does not require sophisticated auxiliary components such as a feed gas humidification unit. The robot’s fuel cell peak power output is rated as 60 W, and the combined capacity of the eight hydrogen cartridges offers up to 88 Wh of electrical energy. The balance of plant of the active fuel cell requires around 10 W. Considering the battery capacity of 92 Wh, the fuel cell system can be considered as a range-extender for HydroBot that increases the run time by up to a factor of two when neglecting the costs for balance of plant of the fuel cell. This comparably large battery is chosen to offer reasonable operation time and to be able to cover possible current spikes when all four motors of HydroBot’s Mecanum wheel drive system are operating. HydroBot has an idle power draw of 4 W and typically consumes around 30 W while driving at a constant speed on an even surface.
BEV or FCEV?
Essentially, HydroBot has two operation modes. In the first mode, it is a BEV. This is the operation mode when starting the system. The robot is solely powered by the battery, which supplies energy to the motors as well as to its onboard electronics. This mode is required since the fuel cell cannot be started without powering its control unit. Once the robot is active, it monitors its components: state-of-charge of the battery, fuel cell status, and hydrogen supply pressure. If the battery voltage, which indicates its state-of-charge, drops below a certain threshold, and if the hydrogen supply pressure is high enough, its fuel cell can be activated. In a commercial FCEV, this is done automatically, while it is manually controlled for HydroBot.
Choosing Fuel Cell and Battery







HydroBot’s fuel cell was selected based on available commercial fuel cell systems. This project aims to showcase the concept of fuel cell electric vehicles, but not to develop a fuel cell stack and controller. Therefore, an off-the-shelf solution was sought that allows simple integration into the robot. There are several fuel cell manufacturers, but due to the complexity and costs of this technology, only a few options are available on the consumer level. For instance, one available option is EFOY’s direct methanol fuel cell, which offers between 40 and 125 W of power and is designed to be directly connected to a 12 or 24 V battery.
However, they require quite bulky canisters of diluted methanol as a fuel, and since fuel cell cars such as the Hyundai Nexo and Toyota Mirai use hydrogen fuel cells, the latter was preferred for this project. Horizon Educational has various fuel cell stacks available, and the 60 W stack was chosen as the average power draw of HydroBot was expected to be less than that. Operating the fuel cell at partial load increases its efficiency.
Hydrogen supply
Horizon Educational also provides the required fuel cell controller along with the stack, and they provide metal hydride storage containers as a hydrogen fuel tank. A disadvantage of this storage method is that HydroBot requires multiple of these containers connected in parallel to provide enough hydrogen flow since Horizon only sells them in one (rather small) size. However, the advantage of a small hydrogen tank is safety. In total, HydroBot only has up to 8 g of hydrogen onboard, which limits possible risks in case of a leak. Further, a ready-to-use combination is advantageous compared with having to look for pressure containers and pressure reducers in the right size and ensuring safe operation of these components together with the fuel cell stack.
The employed hydrogen supply system consists of eight Hydrostik metal hydride containers, each of which is connected to the required pressure reducer from Horizon Educational. The latter is needed to ensure the correct hydrogen pressure for the fuel cell stack. HydroBot uses a custom-machined hydrogen distribution block made from aluminum. Note that not all metals are compatible with hydrogen. For instance, only specific types of steel are long-term durable when in contact with hydrogen. Unsuited types of steel experience hydrogen embrittlement, a specific form of material degradation that reduces the ductility of the metal (the ability to bend instead of break under load) and can finally cause a pressure cylinder to burst.
Hence, it is noteworthy that hydrogen is challenging to work with on different levels. It is not only a flammable and explosive gas but also degrades metals. Further, hydrogen is a very small molecule. Consequently, it has higher diffusion rates through materials than other gases, meaning it travels through these materials faster, which poses additional requirements to the tubing used to transport the gas. Hence, hydrogen-compatible Swagelok metal tubing was used to connect the hydrogen distribution block with the fuel cell.
Battery
The battery for HydroBot needs to fulfill multiple purposes. First, it needs to provide energy to run the robot while the fuel cell is not yet active and has to cover any current spikes from the robot’s drive system. Therefore, its tolerated maximum discharge current must be high enough to power the robot’s four brushed DC motors. Second, it is supposed to be charged directly from the fuel cell, which does not offer a special charge profile without adding an extra circuit. Third, it needs to be able to run onboard the robot for several charge-discharge cycles without having to plug it into an external charger. Lithium batteries are the ideal choice regarding high discharge currents and simple charge profiles, as they can be charged simply by applying a constant current until their voltage indicates they’re fully charged.
Lithium polymer battery packs from RC cars or drones are the most common compact and energy-dense lithium batteries for powering such a robot. However, they don’t include an integrated battery management system. Hence, they need to be charged by a charger that takes care of balancing the cells, which is not intended for HydroBot. Therefore, a lithium iron phosphate (LiFePO4) battery from pbq with an internal battery management system was chosen. It is specified for up to 20 A continuous discharge current, which is more than enough for the four motors of HydroBot.
The voltage-current profile of a fuel cell
Before discussing the connection between the fuel cell and battery in the robot, the power output profile of a fuel cell must be mentioned. A fuel cell is an electrochemical power source, like a battery. Both show a change in voltage upon drawing current, which is called polarization. The larger the current, the more the voltage drops. Three factors cause this effect. First, activation polarization is the “voltage toll” that must be paid for the reactions to happen. Second, the cells have internal resistances, which lead to Ohmic polarization, a current-dependent voltage loss due to the finite conductivity of the internal components. Third, concentration polarization occurs when the cells run out of reactants. For the battery, which is a closed system, this happens at a very low state of charge, when the battery is nearly depleted. For a fuel cell, which is fed with fuel from an external source, this can happen even when the fuel tank is still filled, but at high loads, when the reactants can’t reach the cell fast enough to maintain the current, or if the product water can’t leave the cell fast enough.
While the two systems share these similarities, the polarization of a fuel cell has a much greater effect on its voltage than on a lithium battery. For instance, the 60 W fuel cell stack used for HydroBot is expected to drop from around 19 V (open circuit voltage, when the fuel cell is running, but no load is attached to it) to 12 V at its peak power output (60 W, which equals 5 A). Hence, the fuel cell loses 7 V under load, more than 1/3 of its open circuit voltage. This corresponds to the typical polarization profile of a single PEMFC, which is expected to have an open circuit voltage of around 0.9 to 1 V, and a peak power output at around 0.6 V. On the other hand, lithium batteries with high current ratings show an almost negligible voltage drop under load. For example, the 3S 5 Ah lithium polymer battery used in this project only dropped from around 12.2 to 11.5 V when drawing 20 A, which is only 0.7 V, or less than 6 %.
Power circuit
Consequently, when powering a device with a fuel cell, the expected voltage drop under load must be accounted for. Suppose the load acts like an Ohmic resistance and can tolerate changes in electrical current. In that case, the fuel cell stack can be designed accordingly to supply energy directly from the fuel cell. However, when the load is variable or a constant voltage is required, the circuit must compensate for the voltage profile of the fuel cell.
The first approach for connecting HydroBot’s fuel cell and battery was the use of a buck-boost DC-DC converter with the option of current limiting. This component can convert a variable input voltage into a constant output voltage, and if the set output current is exceeded, the output voltage is reduced by the converter to maintain the set maximum output current (achieving a CC-CV charge profile for the battery). This method allows charging the battery from a power source with non-constant voltage, like the fuel cell stack, as the converter works with an input voltage range from 10 to 53 V. The fuel cell stack’s power output can be chosen by adjusting the current limiting option of the DC-DC converter.
A failed first attempt
While this approach sounds good in theory, it failed in practice. First, setting the operation point of the fuel cell by limiting its output power only works when the fuel cell has a stable state of health. A fuel cell can deliver more or less current at a given voltage, depending on factors such as membrane humidification, available catalyst surface area, or electrode flooding. Since this configuration does not allow for adjusting the fuel cell voltage directly but only its output power, the actual voltage differs depending on the state of health. It may even drop below a safety threshold if the fuel cell requires an initial break-in (the first few hours of operation during which the performance increases until it reaches a steady state).
Essentially, tripping the safety threshold happened when this configuration was tested. After starting the fuel cell stack, it reached an open circuit voltage of around 18.6 V, and as soon as the DC-DC converter was added as a load, even when set to an output current of only 2 A (corresponding to <30 W load when charging the 12.8 V battery), the fuel cell controller instantly triggered a safety shutdown. This could either be due to an incomplete break-in of the fuel cell or simply because the capacitive load of the DC-DC converter’s input capacitance was too large, meaning the inrush current triggered an overcurrent or undervoltage protection of the fuel cell controller before reaching steady state.
The alternative solution
Consequently, a different approach was chosen. In the second revision, the fuel cell was directly wired to the battery. The battery’s voltage determines the fuel cell’s operation point in this more straightforward approach. Since the fuel cell has an open circuit voltage of around 19 V, and the 4S LiFePO4 battery is fully charged at 14.6 V, current will automatically flow from the fuel cell to the battery (from higher to lower voltage). With increasing current, the fuel cell’s voltage drops, but since it is a power source, while the battery can act as a load and a power source, it is charged from the fuel cell, which starts with a higher initial voltage. The current is limited by the achievable power of the fuel cell, which is around 5 A for this fuel cell according to the datasheet. The voltage difference between the fuel cell and battery when they are connected then reflects the Ohmic resistance in this configuration.
The battery is typically between 13.6 V and 12.8 V, and the fuel cell stack has its peak power output at 12 V. Therefore, with a voltage of around 13.5 to 14 V, the fuel cell runs at a partial load, which results in better efficiency and a lower hydrogen consumption rate than at peak power. However, there is a safety problem with this configuration: In case of a catastrophic failure of the fuel cell, such as an internal short circuit, the voltage cannot drop below the battery voltage, which would otherwise serve as an indicator for this failure mode. Instead, the battery would “power” the fuel cell and feed current through the fuel cell stack, causing hazards such as overheating components or even fire as flammable hydrogen is still fed to the fuel cell.
This safety concern was addressed by adding a Schottky diode between the fuel cell and the battery, which acts as a reverse current protection. The diode only lets the current flow from the fuel cell to the battery, but not in reverse. Further, a relay was added between the fuel cell and the battery, which allows galvanic isolation between both circuits. Hence, the fuel cell’s voltage can be monitored prior to connecting it to the battery, which means its open circuit voltage can be checked before the load is connected. Thus, only when the open circuit voltage is within acceptable safe limits, the circuit is closed, and the battery is charged.
Chassis, Mounting Points for the Components, LEDs, and LCD






Hydrobot is a quite heavy robot (almost 18 kg), which is why it requires a stable chassis. Further, the project’s goal was to showcase the fuel cell and battery power components by mounting them on top of the robot. Consequently, the electronics and motors had to be placed below these power parts, which is why a metal frame with two identical metal base plates was built. The metal frame consists of 10 mm Makerbeam aluminum profiles, and the metal base plates are custom-machined 2.5 mm aluminum plates. The upper metal base plate is used to attach the fuel cell, the fuel cell controller, the hydrogen storage unit, and the battery. The lower metal base plate is used to attach the robot’s mainboard, the DC-DC converters, the motor drivers, and the four Mecanum wheels. The space between the two metal plates is used for cable management, meaning hiding the wire connections out of sight.
This concept was chosen to allow different teams to work on electronics and design while flawlessly matching the results afterwards. This goal was achieved, but the assembly of the metal frame, as well as the disassembly of parts of the robot to reach the space between the two plates, can be a hassle, as the chassis is connected using a lot of screws. Further, the electrical connections between the upper and lower plates require connectors between the plates to allow a straightforward disassembly, and care must be taken to label all wires and use reverse-polarity protected connectors.
The CAD files of the aluminum frame include the required mounting holes to connect them to the Makerbeam profiles, to attach the Mecanum wheels, and to attach the component on top of the upper and below the bottom plates. However, note that additional holes are needed to feed the wires through the plates. The mounting points for the components are 3D printed plastic bars with holes for threaded inserts every 10 mm, which allowed flexibility with regard to where to place the different components.
3D printed side, top, and bottom covers
The robot’s outer shell is based on 3D printed plates (PETG) that are screwed into the Makerbeam profiles (side covers) or into the mounting bars on the top and bottom aluminum plates. The side panels include transparent inlays that were printed using a Formlabs Form 3+ with clear resin. They contain 3-LED segments of an RGB LED strip. Further, two stripes with 12 LEDs each are added to the top of the robot. The LEDs are used as indicators to show the robot’s status.
The bottom cover panels include cut-outs to add ultrasonic distance sensors, which are meant to detect obstacles and prevent the robot from hitting them in case the driver does not pay enough attention. The main cover on the bottom is an acrylic plate, which allows a view of the electronics without having to disassemble the robot, and at the same time, prevents dust and dirt from entering the electronics section.
HydroBot’s top cover can be removed after loosening eight screws, which allows access to the energy components. The top cover is meant to hide connectors and cables, but not the components. Individual adapters are used to attach them safely to the robot’s top aluminum plate. Further, the top side includes a power button, E-stop, DC charge port, and an LCD. The specifications and usage of these I/O parts are covered in step 8.
Mecanum Wheels and Distance Sensors








HydroBot’s drive system relies on Mecanum wheels, which are driven wheels including rollers that are aligned perpendicular to the main wheel’s orientation, with their side walls facing the ground, mounted at 45° relative to the vehicle’s front. These rollers can freely spin. Since the vehicle employs four Mecanum wheels, all with their own independent power train, this propulsion system allows the robot to cover 360° transversal driving (omnidirectional driving) without requiring a classical steering linkage to alter the angle of the wheels. Instead, steering is conducted by adjusting the speed and direction of the single Mecanum wheels relative to each other. Equally, this adjustment of speed and direction also allows the robot to rotate on the spot.
Mecanum wheels offer advantages for vehicles that must navigate in narrow spaces, like a forklift in a warehouse. On the other hand, Mecanum wheels are not suited for off-road applications or driving at high speeds. Since HydroBot is meant as a demonstration platform, it does not need to perform either of the latter but rather drive indoors at fairs and conferences. Thus, Mecanum wheels are perfect for this robot’s drive system.
Custom printed wheels
The Mecanum wheels are a 3D printed assembly. The main wheel is printed from PETG, and the rollers are printed from TPU. The rollers are integrated into the main wheel using M6 screws and nuts, which renders them surprisingly sturdy. The wheels are not directly connected to their motor hubs but include internal planetary gearboxes. These are added to further reduce the speed of the employed geared brushed DC motors. The 3D printed gearboxes add a final stage to the gear reduction, meaning they only operate at comparably low speeds, which keeps the noise of these gearboxes within acceptable limits.
The planetary gearbox design uses a fixed planet carrier, which is bolted to the chassis using M6 screws, rendering the assembly very stiff. The sun gear is connected to the motor hub, and the hollow gear is the inside of the “rim” of the Mecanum wheel. The gearbox is identical for all four wheels, but the Mecanum wheel is needed in two mirrored versions that differ in the angle of the rollers. On the inside of the planetary gearbox, a large bearing is used as a seal against dust and dirt. On the outside, an acrylic cover is added to seal the gearbox while allowing a look inside. Lubrication is not strictly necessary since these gearboxes don’t operate at high speeds or for long periods uninterruptedly. Grease should be used sparingly to prevent grease stains on the transparent acrylic covers.
Controlling the Mecanum wheel drive system
HydroBot is controlled by inputs from two joysticks. One of the joysticks is used to read the desired speed (tilt angle of the joystick relative to its center (z-axis)) as well as the desired direction (tilt direction along x- and y-axis). This input is provided on a Cartesian coordinate system and internally converted into polar coordinates, which provides a vector length (speed) and orientation (drive direction). These two inputs are used to compute the required rotation direction and speed of each Mecanum wheel. Hence, HydroBot can freely drive in 360° based on a single joystick input. The second joystick is used to add rotation to HydroBot’s movement. Here, only the x-axis of the joystick is read, and its input is used to modify the transversal movement of the robot. It allows the robot to rotate stationarily but also to turn at variable radii while driving transversally. The geometry of the Mecanum wheels was calculated based on this paper. The motor control algorithm for HydroBot is adapted from this site.
The four ultrasonic distance sensors are mounted at HydroBot’s front, rear, left, and right sides. They are continuously read, and if a distance below 25 cm is detected, the robot automatically stops moving. This motor stop only affects the direction in which an obstacle is detected. Therefore, the other directions are still available to drive back and avoid the obstacle. Notably, the sensors do not cover 360° of the robot, which means they cannot prevent collisions with obstacles at around 45° relative to HydroBot’s main axes (front-rear / left-right).
Electronics










HydroBot needs a wireless connection to the remote control to receive control inputs; it needs to run four distance sensors, an LCD screen, two motor drivers, RGB LEDs, two external analog-digital converters, and several digital I/O pins to control relays and transistors. All these functions and components are implemented on the robot’s mainboard. The motor drivers, as well as two large DC-DC converters, are additional boards in HydroBot’s electronics section.
The ESP32 is the main microcontroller
The mainboard includes all the control logic, and the primary “brain” of the robot is the ESP32 microcontroller. This powerful IC includes most of the required functions. It offers WiFi, freely adjustable PWM pins, an I2C interface, and multiple digital I/O pins. The limitations of this microcontroller are its limited number of I/O pins and the noisy integrated analog-digital converters. However, adding an I/O pin expander chip and external analog-digital converters can easily circumvent these limitations.
Therefore, the ESP32 is responsible for controlling the two motor drivers (using PWM), receiving inputs from the remote control (using WiFi with the proprietary ESP-NOW protocol of the ESP32), controlling the RGB-LEDs with a digital pin, and connecting with two ADS1115 analog-digital converters, an MCP23017 I/O expander, and a 16x2 LCD screen via the I2C serial protocol. Further, it controls the fuel cell using relays and the external DC-DC converters via digital pins.
Components connected via I2C
The ADS1115 is a 16-bit, 4-channel analog-digital converter. Two of them are needed to read all the sensor inputs of the robot, which are the hydrogen pressure sensor, voltages of the fuel cell, the battery, and the charge port, and current sensing for the battery and fuel cell. Current sensing is performed by ACS712 Hall effect sensors, which avoid the resistive losses of measuring current by shunt resistors. Voltage dividers are used to reduce the sensor voltages to the tolerated voltage range of the analog-digital converters.
The MCP23017 is an I/O expander, which means it provides digital pins via the I2C protocol. The I2C protocol is a serial data interface that requires only two pins. Therefore, by sacrificing two pins of a microcontroller, the MCP23017 adds another 16 digital pins. In the case of HydroBot, these two I2C pins are needed anyway for controlling the LCD screen and the analog-digital converters.
The 16x2 LC display is addressed by I2C, too, but it cannot be operated at 3.3 V like the rest of the components. A logic level shifter that converts the two voltages can typically resolve this issue. However, in this case, maybe because of the number of attached I2C components and where their pullup resistors are located, using a logic level shifter did not work. Instead, a workaround was chosen. The display receives 5 V logic voltage from a diode, which drops its input voltage to around 4.6 V, which is sufficient for maintaining the high brightness of the LCD. Then, when the display receives a logical high through I2C at 3.3 V, this equals >0.7*VDD, and therefore is safely interpreted as a logical high according to the specifications of the I2C chip on the display (NXP PCF8574). Note that this solution requires that there is no pullup resistor soldered to SDA and SCL on the PCB of the LCD, as the I2C bus is, by default, at logical high (external pullup resistors), and the connected devices can only actively set the lines low.
An auxiliary Arduino
Additionally, an Arduino Nano is added to the mainboard. This microcontroller is used to run the four ultrasonic distance sensors. No logic level shifting is needed since they run on 5 V, like the Arduino. Further, the ultrasonic distance sensors are read using the pulseIn() Arduino function, which lets the microcontroller wait for the echo of the ultrasonic sound pulse that these sensors use to measure distance. Therefore, using an additional microcontroller that does not have to run other tasks in parallel avoids unexpected lags in the code. The feedback from the Arduino to the ESP32 is provided using a very simple parallel interface with four digital pins that allows sending 24 = 16 different signals, which is sufficient to provide the required information of the four distance sensors. The output of these pins is reduced from 5 V to 3 V using voltage dividers, which allows the 3.3 V-powered ESP32 to read these pins safely.
Software power off and a MOSFET power switch
HydroBot can cut its own power supply via software, which is used to switch off the robot automatically when it loses the connection to the remote control. A bistable relay enables this circuit. This relay is connected to the power button of the robot. Once the power button is pressed, the relay is switched to the “on” state, which activates the robot. Pressing the button again does not switch the robot off via hardware, since the relay is switched to the “off” state with a different coil. This reset coil is powered by the ESP32, which allows the robot to switch itself off via software. Hence, the power button is additionally connected to a digital pin of the ESP32.
The bistable relay does not act as the robot’s main power switch but switches a high-power MOSFET on and off. The MOSFET does not require a constant current like a monostable relay or a bipolar transistor, and since it has a very small on-resistance, this configuration allows minimal power consumption while allowing large current flow. HydroBot’s E-stop is directly connected to the MOSFET power switch, which means that pressing the E-stop while the robot is active leaves the bistable relay in its “on” state. Therefore, it will automatically switch on again as soon as the E-stop is reset. On the other hand, this connection bypasses the bistable relay, which improves the E-stop safety: Even if the relay fails, the E-stop can still cut the power supply to the robot. The mainboard includes a push button that activates the reset coil of the bistable relay to allow setting it “off” when the E-stop is pressed.
Motor drivers and DC-DC converters
The motor drivers for the four Mecanum wheels are two Cytron MDD20A, which are dual-channel brushed DC motor drivers with up to 20 A per channel. They were chosen when the required motor size and power draw of the robot had not been finalized yet. Therefore, some headroom was preferred. They are overpowered when considering the employed DC motors, which typically require around 1-2 A under load in this configuration. Hence, smaller drivers would also be suited for the selected motors, but since they were already integrated into HydroBot, nothing was modified anymore.
The DC-DC converters are used for two different functions. First, the fuel cell controller for the H-60 PEM fuel cell needs a regulated 13 V input. This could probably be provided directly from the battery, which provides nominally 12.8 V, but since the voltage window of the battery can exceed the tolerance of the fuel cell controller, a converter was sought that can increase and decrease an input voltage to a stabilized output voltage. As this voltage is uncommon for common plug-and-play DC-DC converters, a high-end solution from TDK Lambda was purchased. The i7C series of DC-DC converters are buck-boost converters, which operate in the required voltage window to provide a stable voltage output, and their output voltage as well as current can be adjusted according to the application.
This DC-DC converter was added to the robot twice since one converter was intended to charge the battery from the fuel cell. However, this configuration did not work, so the second converter was used as a charge controller for the robot’s battery. HydroBot includes a charge port that accepts a DC voltage between 10 and 32 V, which is converted by the 2nd i7C DC-DC converter to 14 V with a current limit of 3.5 A. Hence, this converter effectively produces a CC-CV charge profile (constant current – constant voltage), which is the typical charge profile for LiFePO4 batteries. Note that the battery has an end-of-charge voltage of 14.6 V according to the datasheet, and a slightly lower value was chosen to reduce stress on the battery.
Remote Control and Code






The remote control of HydroBot directly follows the requirements for operating the robot. It uses an ESP32 to allow bidirectional communication via ESP-NOW between the robot and remote control, it has an LCD to show telemetry data of the robot, and it has the necessary input devices to allow the user to operate the robot. Two joystick modules are used to drive the robot (right stick: x and y axis, for omnidirectional driving; left stick: x axis only, for rotation). Further, two toggle switches and the push buttons within the joystick are used to control the fuel cell.
Internally, the ESP32 is used to read digital inputs directly. An ADS1115 is used to read analog signals of the three joystick axes and the battery voltage of the remote control, which is powered from six NiMH batteries (AA). They can be removed by unscrewing the battery cover on the bottom side of the remote control. As the LCD operates at 5 V, a logic level shifter enables the I2C communication between the 3.3 V ESP32 and the display.
Remarks on the code
The code used in this project is written in Arduino IDE and uploaded to the ESP32 boards using the esp32 boards manager in version 2.0.17. Note that version 3.x.x introduced changes in the syntax of some ESP32 functions, which means they are incompatible. Most of the code uses helpful libraries and their documentation, which minimizes complexity and effort during development. However, some important lessons learned are shared here to provide additional information on the code.
First, ESP-NOW is used in this project without extracting the microcontrollers’ MAC addresses beforehand. MAC addresses are needed when using ESP-NOW in unicast mode, which means one ESP32 sends a data packet to a specific other ESP32 and waits for an acknowledgement from this other ESP32 to ensure successful data transmission. Therefore, the connected microcontrollers need to know the MAC addresses of their peers. Here, reading the MAC addresses of the used ESP32s is omitted as it is possible to overwrite the MAC address of an ESP32 in software, allowing one to set a MAC address for the remote control and the robot that is then used by them, irrespective of the hardware MAC address of the employed ESP32 boards.
Second, the loop time of the ESP32 was improved by tuning the I2C clock speed and the sampling rate of the ADS1115. HydroBot does not drive very fast, but by increasing the refresh rate of user inputs and sending updates to the robot more frequently, the input lag can be noticeably reduced. The issue is not due to the ESP32, which is more than fast enough to execute the employed codes, but due to the external analog-digital converters needed to read the joystick inputs. The ADS1115 is limited to a sampling rate of 860/s, and to achieve this rate, it must be manually set in the Adafruit library. Otherwise, a rate of only 128/s is used. Further, the default I2C clock speed of 100 kHz can be increased to 400 kHz, which allows faster sending of data to the LCD and reduces the time needed for communication between the analog-digital converter and the ESP32.
Third, safety measures are needed for remote-controlled vehicles. Implementing a “stop all motors” command is essential in case HydroBot loses the connection to the remote control. This connection loss can have multiple causes – from dying batteries in the remote control to interference or exceeding the possible connection range. In that case, it is important that the robot does not continue to drive according to the last input it received, but stops until it is connected to the remote control again. As ESP-NOW in unicast mode checks if the data transmission was successful, this check can be used to measure the quality of the connection. In the case of HydroBot, the connection is assumed to be stable if more than 6 out of the last 20 data packages were received and new data packages sent every 25 ms.
Fourth, controlling the motors is not done directly based on the user inputs, but with an interpolation. This procedure makes motions smoother, as no abrupt accelerations and decelerations occur. Such abrupt speed changes of the motors not only result in jerky motions of the robot, but they also cause unnecessary stress on the drivetrain, which is partially 3D printed and, therefore, prone to damage from high-torque impacts. The interpolation algorithm checks how much a new user input changes the desired motor speed. If the difference to the current motor speed is too large, the executed change in speed is limited. This algorithm has to be tuned based on the robot and user preferences, as a balance is needed between smooth motions and quick responses to user inputs.
Controlling the Robot






When HydroBot is fully assembled and connected, it should first be checked without hydrogen cartridges to ensure it is operating as expected. The hydrogen storage cartridges should only be installed directly before switching the robot on (they must not be kept in the connector block for longer than necessary if the fuel cell is not used). All eight should be loosely attached to the pressure reducers, and once they are in place, they need to be screwed hand-tight in a quick sequence to avoid hydrogen leaking through open pressure transducers. Omit this step if the robot should be operated in BEV mode only.
HydroBot is started once the power button is pressed and released, and then the rocker power switch of the remote control is flipped to the “on” position. Note that the remote control’s toggle switches must be flipped downwards to start the system. The robot performs a self-test of its LED light indicators upon startup. Sequentially, they must light up in red, green, and blue.
After startup, the remote control’s display shows page 1, which indicates the robot’s and the control’s sensor and input readouts. The robot is ready to run if neither a low battery warning nor a connection issue is displayed. The robot’s LCD automatically flips sequentially from page to page to show all relevant sensor data to the user (the images showing LCD screens were created using this website).
Driving the robot
HydroBot is controlled by the two joysticks of the remote control. The right joystick specifies the direction and speed of transversal movement (combined x- and y-axis), and the x-axis of the left joystick specifies the rotation direction and speed. Note that the sides with the logo plates are the robot’s front and rear. The fuel cell controller faces the front side of the robot, and the LCD is on its rear side.
The robot includes four distance sensors mounted on HydroBot’s front, left, right, and rear. The robot will automatically stop transversal movements toward the direction of a sensor if an obstacle is detected. The motors are stopped when a sensor detects an object at ≤25 cm. Transversal movements in unblocked directions are not affected by this routine. Further, rotations are not influenced by the distance sensors. HydroBot automatically stops driving if the connection to the remote control is lost or the battery is drained.
Fuel cell control
The fuel cell can be started if the battery is not fully charged (<13.5 V) and if the hydrogen pressure is >0.4 bar. First, the left toggle switch of the remote control must be flipped upwards to supply power to the fuel cell controller. Then, the fuel cell is started by pressing the two joystick push buttons simultaneously. The system then triggers the fuel cell controller to start the fuel cell stack. The system waits for the fuel cell to reach its open circuit voltage (20 s) before automatically connecting the battery as a load.
The fuel cell status can be viewed in more detail by switching from the default screen page 1 of the remote control’s LCD to page 2, which is done by flipping the right toggle switch upwards. Flipping the toggle switch downwards returns to screen page 1.
The fuel cell automatically shuts down if the battery is full (>13.9 V) or if the hydrogen pressure is low (<0.4 bar). Further, it can be manually turned off by pressing the two joystick push buttons once simultaneously, or by flipping the left toggle switch downwards. Pressing the joystick push buttons switches off the cell but leaves the fuel cell controller powered on. The power supply to the fuel cell controller is cut by flipping the toggle switch downwards. Notably, switching off the fuel cell with the left toggle switch does not instantly cut power to the fuel cell controller, but results in a safe shutdown routine internally before disconnecting the controller from its power supply.
Manual fuel cell control
HydroBot includes a manual operation mode for the fuel cell, which can be used as an alternative to the standard (automatic) fuel cell control. The manual control option is enabled in the remote control by pressing the right push button once immediately after startup, while the screen shows the welcome page. The LCD shows if the manual operation mode was successfully activated. Note that this setting is not stored permanently in the system. The manual fuel cell control mode must be set every time the remote control is switched on (the automatic mode is entered as a default).
The manual control mode differs from the automatic control by turning off all safety features of the fuel cell and by letting the user manually start/stop the fuel cell and manually (dis)connect it to the battery. In manual mode, the fuel cell is started/stopped by pressing both joystick push buttons once. The fuel cell is connected to the battery by flipping the left toggle switch upwards and disconnected by flipping it downwards. Connecting the fuel cell to the battery before it reaches its final open circuit voltage (>18 V) can cause a low-voltage error of the fuel cell controller, independent of HydroBot’s onboard electronics. HydroBot’s system does not know if the fuel cell is switched on or off in the manual control mode. Hence, an on/off signal is forwarded to the fuel cell controller whenever the two push buttons are pressed. Therefore, the manual control mode is not meant for standard usage, but only for debugging.
Battery charging
The remote control includes 6 AA NiMH batteries. They can be removed from the remote control by unscrewing its battery cover and charged in a suitable charger. The remote control indicates when its batteries need to be recharged (at <6.9 V, which equals <1.15 V/cell).
The LiFePO4 battery of the robot is not meant to be removed from HydroBot. It is charged by connecting a DC power supply with an output voltage between >10 and <32 V to the built-in charge port. The robot must be switched on before connecting a power supply to its charge port. The robot automatically starts charging when a power supply is connected to its charge port. The charger can be removed at any time, but do not cut the robot’s power while charging the battery. Once the battery is full, the robot automatically stops charging it. Battery charging is indicated in the robot’s LCD (page 4). Battery charging starts when the battery voltage is <13.5 V and stops when the battery voltage is >13.9 V.
Shutdown procedure
The remote control is switched off by flipping its power rocker switch to the “off” position. HydroBot automatically switches itself off 30 s after losing connection to the remote control. It can also be manually switched off by pressing the power button for 1 s. Note that the latter is not executed while charging the robot. The remote control can be switched off while charging the robot. In this case, the robot automatically switches itself off upon removing the power supply from the charge port.
Switching off the remote control or losing connection to the remote control does not trigger the robot to switch itself off while the fuel cell controller is powered on (automatic fuel cell mode). No such safety feature is available in the manual fuel cell operation mode.
LED light indicators
The LED light indicators of HydroBot show important sensor readings, status information, and errors. The upper two LED light indicators on the robot’s top show status information of the battery and fuel cell. The LED light indicators in the side panels show information on the connection quality to the remote control and the drive and distance sensor status. The different light signals and their description are listed in a table in the images linked to this step.
Downloads
Remaining Issues and Limitations
HydroBot is a fully functional FCEV that uses a fuel cell as a power source for driving. Hence, it successfully showcases this concept, but this prototype is far from a perfect platform. As mentioned in the introduction, HydroBot is not recommended for a direct copy, as this prototype is not ideal in terms of simple maintenance and assembly. In addition to these points, HydroBot has some limitations that are generally linked to fuel cell-powered devices, and issues that could be resolved within a new revision of this project.
- Costs: Fuel cell equipment to power a vehicle is more expensive than batteries. Fuel cells include expensive materials, but those are not the only explanation for their high prices. Two important reasons are that they are not produced on a similar scale to batteries, which means that scale effects could lower their prices. Further, the additionally required components, such as hydrogen storage containers and a means to refill a hydrogen tank, add even more costs. The latter is a critical issue for commercial FCEVs, too, since hydrogen fuel stations are only scarcely available, whereas options for gas and diesel for cars are virtually ubiquitous.
- Ease of use: HydroBot uses a set of eight hydrogen cartridges to power its fuel cell. Replacing a set of eight storage containers is less user-friendly than only having to replace one container. Hence, a bigger metal-hydride storage container, or a single pressure cylinder, would simplify refueling the robot. Further, the refilling time is very long when Horizon’s tabletop water electrolyzer, Hydrofill Pro, is used to refill the cartridges. This electrolyzer requires around 4-6 h to fill one empty Hydrostik cartridge. Notably, this issue is not related to electrolysis being generally slow in hydrogen production, but to the fact that this 60 W fuel cell is not intended for use with the small Hydrostik cartridges.
- Reliability: HydroBot’s fuel cell requires following a strict protocol for storage and operation according to the manufacturer’s manual to ensure long-term stability and high performance. For instance, the hydrogen cartridges need to be removed when the fuel cell is not in use, and the fuel cell should be stored in a sealed bag to prevent a dry-out of the membrane. As the robot’s design is not intended to remove the fuel cell stack, this can hardly be achieved. Therefore, the stack must be injected with ultrapure water before starting the robot when it has not been used for several days. This procedure ensures sufficient humidification of the fuel cell. However, the manufacturer only recommends this procedure as a last option if the fuel cell does not reach its rated power, as injecting water may cause contamination of the sensitive stack components. A more sophisticated fuel cell setup with an external humidifier would solve this problem, but add additional costs and complexity.
- General improvements: HydroBot uses a combination of custom electronics, which are used to control the robot remotely, while the fuel cell is controlled by Horizon’s proprietary controller. This approach was chosen as a simple solution without reverse-engineering the fuel cell controller. On the other hand, this method does not allow direct control of the fuel cell, as the robot does not receive any feedback from the fuel cell controller, and can only trigger the on/off button of the fuel cell controller. Further, HydroBot’s electronics can be improved in different ways. For example, upgrading the brushed DC motors to speed-controlled brushless motors would improve efficiency and controllability, and the distance sensors could be modified to cover 360° around the robot instead of only limited angle intervals.
Conclusion


HydroBot was built to fulfill two purposes. First, the researchers involved in the project (mostly PhD students) focus on very specific details of one type of electrochemical energy converter within their studies. For example, developing a composite polymer membrane for a fuel cell that reduces unwanted fuel crossover. Such a research topic deals in-depth with a particular fuel cell component. Lab work in such a project often does not extend beyond the operation of single fuel cells within a dedicated test station. Hence, HydroBot served as a chance to get a hands-on glimpse into the field of system integration, which is highly relevant for industrial applications, but not in fundamental science projects.
Second, HydroBot serves as a demonstration to the external audience of the application of fuel cells. The Helmholtz-Institute Erlangen-Nürnberg mainly focuses on material development and characterization in the hydrogen and solar technology field, and providing hands-on examples helps greatly when communicating the goal of such a research topic.
When considering these two points, HydroBot is a great success. The complexity of integrating a fuel cell into a car is a fascinating and challenging topic. Clearly, this project only touches system integration superficially, but it highlights the fascinating engineering to the researchers at the institute. Further, HydroBot will be displayed at various fairs as a demonstrator in the coming years.
With that being said, the lessons learned from developing HydroBot show that there is a lot of potential for optimization. HydroBot can be designed to be more compact, efficient, and maintenance-friendly, with a more robust and easy-to-operate fuel cell-battery combination. As usual in engineering, there is always room for improvement, which has its own beauty and frustration. Maybe there will be a second generation of HydroBot at some point?