- Raspberry Pi Zero 2 W (Raspberry Pi)
- UPS Expansion Board for Raspberry Pi Zero 2 W (Geekworm)
- Heatsink for Raspberry Pi Zero 2 W (Geekworm)
- E-ink display (Waveshare)
- Cell modem SIM7600X 4G HAT
- Push button (uxcell)
- ESP32
- Electrical wire (Fermerry 28 AWG)
- E-Stop Button
- Electric tape
- 40-GPIO header (Vilros)
- Cell modem SIM7600X 4G HAT
- microUSB to microUSB cable
- microUSB to USB cable
- Tape over Raspberry Pi USB connections
- Solder Raspberry Pi GPIO pin extender
- Use flux to make soldering easier
- Secure a few pins on each end first for better stability
- May want to clean singe marks from flux after soldering; we used a toothbrush and water for this.
- Apply Raspberry Pi heat sink.
- The Geekworm heatsink we used came with two thermal pads, one is 0.5mm and the other is 1mm. Make sure each pad goes in the right place! It comes with a diagram.
- Screw on the heatsink to the Raspberry Pi, and through to the UPS.
- Add e-ink display to UPS using GPIO header.
Top to bottom: UPS, GPIO header, e-ink display
Add header to underside of e-ink
Install e-ink to UPS by plugging in GPIO header to pins
Now it’s time to starting connecting stuff together. The connections at a glance are shown below.
graph TD
USB-C -->|Power Out| UPS(UPS)
UPS(UPS) -->|Power Out| R(Raspi)
R -->|Control| ES(Eink Screen)
R <-->|USB Power and Data| C(Cell Modem)
C -->|USB Power and Data| E(ESP32)
E -->|D2 to DI, + and GND| L(LED Ring)
E -->|D22 to switch, + and GNDx2| PB(Power Button)
PB -->|switch to input| UPS
UPS -->|Lowbat to D34| E
EB(Estop Button) -->|C to D18| E
EB -->|NC to D21| E
EB -->|NO to D19| E
classDef component fill:#346beb,stroke:#333,stroke-width:2px;
class USB-C,UPS,R,E,C,ES,L,PB,EB component;
We will go through the wire soldering connections in the diagram above one by one. The color of the wires does not actually matter, but they are referred to throughout these instructions to enhance clarity.
- Stop Button to ESP32
- Stop Button C → ESP32 D18 (Blue wire)
- Stop Button NO → ESP32 D19 (Yellow wire)
- Stop Button NC → ESP32 D21 (White wire)
- Don't forget to put O-ring on E-stop button!
Corresponding ESP32 wiring for stop button
- LED Ring to ESP32
- LED Ring DI → ESP32 D2 (Green wire)
- LED Ring PWR5V → ESP32 VIN (Red wire)
- LED Ring GND → ESP32 GND (Black wire)
Corresponding ESP32 wiring for LED ring
- Power Button to ESP32 and UPS
- Power Button LED power terminal → ESP32 D22 and UPS pin 3 (White wires)
- Power Button LED ground and switch contact A → ESP32 GND (Black wire)
- Power Button switch contact B→ ESP32 D23 (Red wire)
- Don’t forget to put O-ring on power button!
Color of oval corresponds color of wire to connect to terminal.
Corresponding ESP32 wiring for LED ring
Black, white, and red wires soldered to ESP32
- Two white wires should be connected to the same terminal on the button (power button LED power terminal)
- Tip: Solder these wires together first, and then solder them to the terminal
- The black wire is soldered across two power button terminals (power button LED ground and switch contact A)
- Tip: Solder the end of the wire to the further terminal first, then the closer one
- Red wire is soldered normally
- UPS to ESP32 (battery indicator)
- Lowbat to D34 (yellow wire)
- Connect cell modem to ESP32 and RPi UPS.
- Modem USB → ESP32 microUSB (solid black cable)
- Modem microUSB → UPS microUSB (black/white cable)
- Add battery to USP.
- Add antennas - if you want to use cellular data instead of WiFi
- Screw on antennas to AUX and MAIN pins on the underside of the modem
Now you're ready to move onto Software