Off Grid BREAD


The purpose of this document is to detail the design and implementation steps in the Off-Grid BREAD project. The main goal of the Off-Grid BREAD project is to allow BREAD systems to be used outside of a conventional lab setting. To do so a rugged enclosure for BREAD, a power generation system, and a battery management system (BMS) were needed. The BMS allows BREAD to run off an on-board battery or a variety of external power sources.

Rugged Enclosure Status

A base for the enclosure has been created using FreeCAD. The base as it is currently designed is too large for most desktop/Ender3 sized printers to print, and will have to be split into multiple bodies for printing.

Redesigned LOAF Board

Upon looking into the design of the current LOAF board several issues became clear: the existing design had USB ports facing inwards to the center of the board, the slices lacked mounting points, and the level shifter for the SD card was a nonstandard design. These issues necessitated a redesign of the LOAF board. The redesigned board can be found on the OSF repository through a link at the bottom of the article.

BMS Status

This portion of the project has been implemented by creating a slice containing all the necessary electronics for a battery management system which can back feed 12V into the LOAF. This slice, named the BMS slice, uses the BQ24074 from Texas Instruments to manage charging and drawing power from a battery, and it uses the MT3608 boost converter chip to raise the output of the BQ24074 to around 12V. The BMS slice is designed to charge a battery from a solar panel, and it can currently take power from a 5V USB supply or any other source that’s less than 10V.

                The BQ24074 was selected due to both its flexibility and because a complete, open-source battery charging design is available from Adafruit. Most of the circuitry surrounding the BQ24074 is identical to that in Adafruit’s design, but a few modifications were made to best suit the needs of this project. These are as follow:

  • The output connector was removed along with the associated capacitors. The capacitors were replaced with two unpopulated 0603 capacitor footprints in case more capacitance is necessary for specific applications. The output of the BQ24074 is routed directly into the boost converter.
  • The Adafruit design contains two single-pin headers that seem to be for an optional capacitor. These were removed.
  • The USB-C connector was replaced with a micro-USB connector.
  • The PGOOD and CHG pins are connected to Arduino pins D6 and D5 respectively rather than directly to LEDs. This allows the charging status to be read by the Arduino and reported to the LOAF if desired. Note that internal pullup resistors must be used when reading these pins. To do this use “INPUT_PULLUP” rather than “INPUT” when calling pinMode to initialize the pins. Arduino pins D8 and D7 drive indicator LEDs labeled “Power” and “Charging” respectively.
  • The pin ISET is routed to pin A0 of the Arduino, and according to the datasheet can be used to find the current charging current of the battery. An attempt at using this has been made in the Arduino code, but it has not been fully verified.
  • The TS pin of the BQ24074 has been routed to a terminal block near the edge of the board. This is used to connect an NTC thermistor on the battery pack. If a battery doesn’t have an NTC thermistor this can generally be ignored. Read the BQ24074 datasheet for more details.

The MT3608 is used to step the ~4.4V output of the BQ24074 up to around 12V. The exact output voltage is set by two resistors and has been set slightly under 12V so as to not damage any Arduinos connected to it. This chip was selected because it seems to be relatively abundant on amazon and no other suitable in-stock boost converter chip was found. If the MT3608 can’t be found it along with its associated circuitry can be replaced with any boost converter capable of raising ~4.4V to 12V and supplying ~1A.

Motor Charging Status

When designing the BMS/Solar board, it was noted that the BQ24074 can accept an input from any power source. Once this was noted, it was a simple matter to add motor charging capability to the BMS/Solar Slice. A buck converter was designed using a LM2596 to accept a motor input up to 32V, convert it down to 7V, then feed it into the BQ24074.

BMS Future Development

Currently, a modification is being designed which will add a buck converter that feeds the input of the bq24074 so that higher voltage inputs can be accepted. The goal of this is to make it so the BMS slice can charge its battery from a standard DC motor being used as a generator.

                One issue with the current design is that the bq24074 is produced in a 16QFN package that is very difficult to solder without the proper equipment. A future project could be to design a board that uses the pre-assembled battery charging module from Adafruit so someone wishing to produce this board doesn’t need to solder a QFN package.


BMS Files

Of the folders packaged with this project, three are important to someone who’s taking on this project. Documentation contains a datasheet for each of the chips used along with a text file with brief notes on design choices made while working on the BMS slice. It also should contain a copy of this document. Electrical design contains the KiCad files for the BMS slice along with two KiCad libraries, “Adafruit_BQ2407.pretty” and “BREAD_Slice.pretty”. It also contains a BOM. Finally, firmware contains an Arduino sketch that reads the status indicators from the bq24074 and drives status LEDs. This sketch also interprets the ISET pin on the bq24074 and outputs a current reading.

Referenced Links
Battery Charger Design
Battery Charger Module from Adafruit
BQ24074 Details/Datasheet
MT3608 Datasheet
LM2596 Datasheet
LOAF Redesign