Design¶
Hardware¶
- 15X Energizer LED Solar pathway Lights
- 1X Adafruit Feather HUZZAH32 ESP32
- 1X Adafruit 128x64 OLED FeatherWing
- 1X Adafruit INA260 Current + Voltage + Power Sensor Breakout
- 1X Adafruit Universal USB / DC / Solar Lithium Ion/Polymer charger - bq24074
- 1X Adafruit PowerBoost 1000 Basic - 5V USB Boost
- 2X IMREN 3.7v 18650 Rechargeable Battery 3000mAh
- 1X NITECORE UMS2 Charger
- 1X 18650 2 Battery Holder 7.4V
- 1X EBL 9V Li-ion Battery Charger
- 1X CT-Energy Lithium Coin Button Batteries Charger
- 1X 10kΩ Resistor
- 1X Adafruit Feather Stacking Headers - 12-pin and 16-pin female headers
- 2X Cylewet 5mm High Knob Vertical Slide Switch 3 Pin 2 Position 1P2T SPDT Panel
- 1X ELEGOO 3pcs Breadboard 830 Point Solderless Prototype PCB Board Kit
- 1X Anmbest 5PCS 1S 3.7V 4A 18650 Charger PCB BMS Protection Board
Note
If the output from the battery turns off, it may be because the BMS needs to be reset. This may be done by shorting the P-
and B-
on the BMS.
I opted to drop support for the ESP8266
for a few reasons:
- The need to short pin
16
in order to wake the Feather from deeps sleep removes the ability to use buttonB
on the OLED screen. - Button
A
on the OLED screen was tied to the Feather LED. - There is no way to determine the method that was uesd to wake the Feather.
Electronics¶
On the bq24074, carefully cut the 1.0A
jumper and solder the 1.5A
to increase the current limit. This needs to be verified that the panel is actually outputting more than 1A.
Panel¶
BMS¶
The BMS is really small and can be difficult to mount and use. I thought about hot gluing it to the battery holder and then soldering the wires to it directly. However, I opted against it because I was too afraid that the wires soldered to the P+
and P-
and going to the rest of the breadboard would break off easily. Therefore, I soldered pins to the BMS pads and connected it to the system via the breadboard.
I used the standard header pins that come with a lot of the Arduino type boards and just removed the plastic spacer. I then added pre-tinned the pins as well as the BMS pads. I then inserted the pins into the breadboard at the correct locations then clamped the outer pins to the BMS using a set of helping hands. Then soldered the pins to the pads.
Battery Holder¶
The battery holder comes wired in series but this design requires that the batteries be wired in parallel. Connect the positive terminals of both batteries together and add a negative lead wire from the end of the holder that connects the two batteries. Insert one of the batteries in reverse where the spring is touching the positive end of the battery.
Warning
Inserting the batteries incorrectly will cause them to short!
Services¶
Software¶
- arduino-cli
- ubuntu server
- go-task
- GNU Screen
- jq (for go-task)
- pre-commit
- arduino-lint
- yamllint
Circuit¶
- Connect the output of the battery to the
Vin+
of the INA260. - Connect the
Vin-
of the INA260 to theLIPO
pin of the bq24074. - Connect the
BAT
pin of the Feather to theOUT
pin of the bq24074. - Connect a 1P2T switch to the
EN
pin of the Feather to ground. - Connect a 1P2T switch to the
EN
pin of the Powerboost and a10kΩ
resistor. - Connect pin 33 of the Feather to a node between the Powerboost switch and the
10kΩ
resistor. - Connect all
GND
pins together. - Connect the
SCL
andSCA
pins of the Feather to theSCL
andSCA
pins of the INA260. - Connect the
3V
pin of the Feather to theVCC
pin of the INA260. - Connect the BMS in between the battery, ground, and
V+
of the INA260.
Circuits made with Circuit Diagram
Warning
The li-ion batteries are wired in parallel even though the 2 battery holder come wired in series.
Warning
The JST pins, depending on where they are purchased, may be backwards in terms of the wiring. See this link to determine the correct wiring according to IoT convention.
IoT devices must use batteries wired like this: With the key facing down and the wires toward you, the red is on the right.