Skip to the content
PCBKitNew board
2 layers87 × 33 mmBatmon, the printed circuit board in 3D

A device to assist in extending the life of EBike batteries.

Size
87 × 33 mm
Copper layers
2
Thickness
1.6 mm
Parts
58
Nets
52
Pads
181
Tracks, vias
399, 40
Pours
4
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
11 May 2022
Updated
23 Dec 2023

Overview

Batmon is an open-source printed circuit board by pjaos, from the pjaos/batmon repository on GitHub, published under the MIT licence. It is a 2-layer board of 87 × 33 mm with 58 parts on 52 nets, routed with 399 tracks and 40 vias.

It is built around the ESP32-WROOM-32, ADS1115IDGS and LM2576HVS-ADJ, with the MCP9700-E/TT, LM1117-3.3 and IRF520NPBF among its other parts. Its parts include 20 resistors, 16 capacitors, 6 connectors, 5 diodes and 4 ICs. It belongs with the ESP32 boards of this library.

Main components

7

README

README.md

BATMON

Overview

The batmon device connects to a Lithium ION battery (primarily aimed at Ebike batteries) and allows the user to trade off the lifetime of the battery against the maximum single charge. The life of a lithium ION cell is affected by many things, the maximum charge level of the cell, the temperature of the cell, the maximum discharge of the cell etc. The batmon device allows the user to limit the maximum charge voltage of the cell to reduce stresses on the battery chemistry.

For example if the maximum charge voltage of a Lithium ION cell is set to 4.1 volts per cell rather than the maximum of 4.2 volts per cell then the number of charge/discharge cycles that the battery is capable of could be doubled. The trade off for this is that you will loose about 10 % of the range on a single charge. If set to 4.0 volts per cell then the number of charge/discharge cycles that the battery is capable of could be increased by four times. The trade off for this is that you will loose about 25 % of the range on a single charge. The batmon device allows the user to set this trade off by selecting the maximum charge voltage in five 0.05 volt steps from 4.2 to 4.0 volts.

The device also ensures that the battery is not charged when to cold or hot which also limits the batteries lifetime. Charging at temperatures of 0°C or below can also be dangerous.

As stated previously this project is primarily aimed at improving the lifetime of Ebike batteries although the hardware could be used for other battery voltages with slight changes to the software. The device provides a WiFi connection. This can connect to your home WiFi network or run in stand alone (AP) mode. The Yview App can be used (Android phone/tablet or a Windows, Linux PC) to access the state of the battery (charge voltage/current etc) and configure the device settings.

System Requirements

An initial set of requirements for the system is shown below.

  • Charge the battery to a maximum voltage of between 4.0 and 4.2 Volts, configurable by the user.
  • Display the charge voltage, current and power.
  • Turn off charging if the battery temperature is too cold (<= 0°C).
  • Turn off charging if the battery temperature is too hot (> 45°C)g.

Hardware.

The hardware design uses an ESP32 CPU which provides the WiFi connectivity. An ADS1115 I2C 16 bit ADC device is used to measure the battery voltage, charge current and battery temperature. A Mosfet is used to turn off the battery charge once it reaches the configured charge voltage. The case for the module was 3D printed to provide a robust mount for the module inside the battery case.

Top Level Schematic Top Level Schematic Top Level Schematic PCB PCB PCB PCB

Module installed into case in charger lead.

PCB

Module installed inside Ebike battery box.

PCB PCB PCB PCB

Software

The software that runs on the device is written in C and uses the Mongoose OS. It provides a web interface and integrates with the YView Iot archetecture. The web interface is shown below. PCB PCB

The configuration page allow the user to trade off battery charge level against the longevity of the battery pack via the 5 radio buttons at the top of the page.

  • 5 = max battery life but only charges the battery pack to 4 volts per cell.
  • 1 = min battery life but charges the battery pack to 4.2 volts per cell.

The default is 3 with charges the battery pack to 4.1 volts per cell. This setting should approximately double the life (number of charge discharge cycles) when compared option 1. EBike battery chargers will normally charge a battery pack to this level. If option 5 is selected then the life of the battery should be approximately 4 times longer when compared to option 1.

The storage voltage checkbox can be selected if the user wishes to store the ebike for some time (E.G through the winter) and maximise the battery performance. This charges the battery to 3.7 volts.

The Device name can be set which sets the name that the device will appear as in the YView Iot network.

The group name can be set if the user wishes to partition the Iot network such that some users can see some devices.

The Enable syslog option is used for debugging and sends debugging information via the syslog protocol to the server running the YView Iot gateway process.

The save button will apply the configuration selected. The other buttons names are self explanatory.

Parts

58
QtyValueFootprintReferences
90.1ufCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC3, C6, C8, C10, C11, C12, C13, C15, C16
40.16RResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR14, R15, R16, R17
41kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR11, R12, R18, R19
210kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6, R7
210ufCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC9, C14
222kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4, R20
24K7Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR9, R10
24V7Package_TO_SOT_SMD:SOT-23D4, D5
2Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ5, J6
2DNFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2, C5
11000uf 16vCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC4
1100KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR5
1100uHPJA_Inductors:Sumida_CDRH74L1
1100ufCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC1
110VDiode_SMD:D_MELFD2
11KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR13
11k5Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR2
12N7002Package_TO_SOT_SMD:TSOT-23Q2
1470RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR8
14k7Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1
15APJA_Fuses:Scherter_OMT125F1
15k6Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3
1ADS1115IDGSPackage_SO:TSSOP-10_3x3mm_P0.5mmU5
1BAT-MountingHole:MountingHole_3.2mm_M3_PadH1
1DNFCapacitor_Tantalum_SMD:CP_EIA-6032-20_AVX-F_Pad2.25x2.35mm_HandSolderC7
1ESP32-WROOM-32RF_Module:ESP32-WROOM-32U3
1IRF520NPackage_TO_SOT_THT:TO-220-3_VerticalQ1
1LEDDiode_SMD:D_1206_3216Metric_Pad1.42x1.75mm_HandSolderD3
1LM1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U4
1LM2576HVS-ADJPackage_TO_SOT_THT:TO-220-5_VerticalU2
1MCP9700Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ9
1ResetPJA_Switches:switch_SPST_5mmx3mmx2.5mmSW1
1SS36Diode_SMD:D_MELFD1
1SW_&_LEDConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ7
1Serial ConsoleConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ8
1WiFiPJA_Switches:switch_SPST_5mmx3mmx2.5mmSW2
1XT60 ConnectorConnector_AMASS:AMASS_XT60-F_1x02_P7.20mm_VerticalJ1

Questions

How big is the Batmon PCB?

It measures 87 × 33 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Batmon use?

58 parts, built around the ESP32-WROOM-32, ADS1115IDGS, LM2576HVS-ADJ and MCP9700-E/TT. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Batmon KiCad files?

From the pjaos/batmon repository on GitHub, at the commit this page was made from: the board is hardware/schemtic_pcb/batmon.kicad_pcb and its schematic hardware/schemtic_pcb/MCU.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Batmon design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers192.5 × 80 mmPlugInDC Load, the printed circuit board in 3D

    PlugInDC Load

    janni0609/DC-Load

    A programmable DC electronic load built on the Raspberry Pi Pico 2 (RP2350). It sinks a user-defined current from a DC source under test and measures voltage, current, power, capacity, and energy in real time on a…

    525 parts
  • 2 layers36 × 96.5 mmTemper, the printed circuit board in 3D

    Temper

    pjaos/temper

    The hardware and software to monitor temperature and humidity via 4 sensors.

    60 partsMIT
  • 2 layers100 × 76 mmEmc flyback, the printed circuit board in 3D

    Emc flyback

    ChengminLi/AI-PCB-layout

    AI agent skill for designing and reviewing power-electronics PCBs, with a human review gate after every step

    90 parts31CC-BY-4.0
  • 2 layers81.3 × 45.7 mmRefactored winner, the printed circuit board in 3D

    Refactored winner

    3lkgrove/refactored-winner

    Racing Timing Light with Remote Trigger.

    22 partsGPL-3.0
  • 2 layersPirled, the printed circuit board in 3D

    Pirled

    mwalsh161/pirled

    Design goals: 1. A single ESP8266 governs up to 4 LEDs + 4 PIR sensors (+4 virtual signals). 2. Any LED can trigger on/off with any grouping of PIR sensors/virtual signals. - Note, logical OR with each other hard-coded.

    8 parts
  • 2 layers51 × 78.3 mmSEPIC, the printed circuit board in 3D

    SEPIC

    spiwocoal/547452

    Convertidor DC/DC topología SEPIC para ramo Taller de sistemas electrónicos

    22 parts
  • 2 layers65 × 56 mmRadioberry preamp, the printed circuit board in 3D

    Radioberry preamp

    OE9SAU/SAUBerry9

    SDR TRX from Radioberry

    142 parts4
  • 2 layers100 × 50 mmEsp12e devboard, the printed circuit board in 3D

    Esp12e devboard

    EspIt/Hardware

    The EspIt PCB and Schematic

    117 parts