Hardware (Bill of Materials)
This document lists a suggested Bill of Materials (BOM) for an Open-Locker test cabinet build.
It reflects the hardware used in the current Raspberry Pi based setup and documents the cabinet-independent electrical parts first. An ESP-based build is planned, but it is not yet built or validated.
This BOM focuses on:
- controller and communication hardware
- relay and lock control hardware
- wiring, connectors, and power distribution
- optional parts that simplify assembly and cabinet expansion
This BOM intentionally does not cover cabinet-specific mechanical integration, for example:
- how locks are mounted into a wooden cabinet
- how locks are mounted into a metal locker
- drilling, brackets, sheet metal work, or reinforcement
Those details depend heavily on the cabinet type and should be documented separately once there is a repeatable cabinet design.
General Notes
Section titled “General Notes”- Supplier links are examples only. Equivalent parts from other suppliers are acceptable unless a specific part is marked as required.
- We currently do not have affiliate relationships with any of the suppliers referenced in this document.
- Use neutral technical names when sourcing parts. Marketplace titles often contain marketing language that is not useful for documentation.
- The Modbus relay board must be the Waveshare board listed below because the
current implementation depends on verified Waveshare-specific flash and
digital-input behavior. See
docs/adr/0004-waveshare-hardware-flash-and-supported-boards.md. - Cable lengths depend on cabinet size and wire routing.
- Power supply sizing depends on the number of compartments, locks, and relay boards in the final cabinet.
- This BOM is a documented example of how the project was built. It is not a guarantee for a specific supplier, brand, or part revision.
Build Profiles
Section titled “Build Profiles”Raspberry Pi Based Build
Section titled “Raspberry Pi Based Build”This is the currently used and validated build profile.
ESP-Based Build
Section titled “ESP-Based Build”This build profile is planned, but not yet built or validated.
One reason for planning this variant is that the Raspberry Pi based setup was not always reliable in our tests and occasionally dropped out.
At a high level, the cabinet-side hardware is expected to stay similar:
- lock hardware
- relay hardware
- wiring
- connectors
- power distribution
The planned controller board for the first ESP-based build is the Waveshare
ESP32-S3-ETH-8DI-8RO. See
docs/adr/0005-esp-build-controller-board-selection.md.
For builds with up to 8 compartments, the board’s onboard 8 relays and 8 digital inputs are the planned starting point.
For builds with more than 8 compartments, add one or more external Waveshare
Modbus RTU Relay (D) boards over RS485.
Recommended Connection Board
Section titled “Recommended Connection Board”We recommend using the Open-Locker connection board from the repository to make the cabinet wiring easier.
Recommended variant:
This is the 3.5 mm terminal variant. It is easier to wire and service than direct point-to-point wiring.
Per Modbus board / connection board, this design typically uses:
- 10x 2-pin PCB screw terminal connectors
- 13x 4-pin PCB screw terminal connectors
Example connector set:
- 3.5 mm PCB screw terminal connectors example link
PCB manufacturing reference:
- We ordered our PCBs from JLCPCB.
Other PCB layouts in this repository
Section titled “Other PCB layouts in this repository”All KiCad projects live under hardware/. Besides the recommended
connection-board-cut-out_3_5 variant above, the repository also contains:
hardware/connection-board-cut-out_2_54(2.54 mm terminal pitch)hardware/mtu-connection-boardhardware/mtu-connection-board-large
Pick the layout that matches your connector pitch, compartment count, and mechanical constraints.
3D-printed spacers and adapters
Section titled “3D-printed spacers and adapters”Optional printable parts for lock mounting and PCB standoffs are maintained as
OpenSCAD sources under hardware/models/, for example
spacer variants for FIT0620-style cabinet locks (spacer1.scad, spacer2.scad)
and a PCB mounting adapter (pcb_mounting_adapter.scad). Export STL locally or
add pre-generated STL files to the repository when they are available.
Quantities and material depend on your cabinet layout.
The same mechanical spacing and mounting can be solved in other ways—for example with cut-to-size wood, sheet stock, or other shop-made brackets—depending on your tools and cabinet. The Open-Locker reference builds used the 3D-printed parts described here.
Common Components
Section titled “Common Components”These parts are shared by both build profiles unless noted otherwise.
| Item | Typical quantity | Notes | Example link |
|---|---|---|---|
| 8-channel Modbus RTU relay board with digital inputs | 1 per up to 8 compartments | Required part. Use the Waveshare Modbus RTU Relay (D) board because the current software uses its flash and digital-input features. Each compartment needs one relay output and one digital input. | Waveshare relay board |
| 12 V cabinet lock with feedback switch | 1 per compartment | Use a lock variant with an integrated status or detection switch if possible. Exact mounting depends on the cabinet material and door design. | Example A, Example B |
Rectifier diode 1N4007 | 1 per lock | Recommended as a flyback protection diode across inductive 12 V loads such as cabinet locks. | Example diodes |
| 12 V DC power supply | 1 per cabinet | Size the power supply for the maximum number of simultaneously active locks plus controller and relay board overhead. | Example PSU |
| Internal cabinet wire | as needed | Choose the wire length based on cabinet geometry and routing paths. | Example wire |
| Ferrules, 0.34 mm2 | as needed | Recommended for clean and reliable termination on screw terminals. | Example ferrules |
| 2-pin plug connectors, 2.5 mm pitch | optional | Optional. Can be replaced with direct soldered wire connections if preferred. | Example connectors |
| Panel-mount DC barrel jack, 5.5 x 2.1 mm | 1 per cabinet | Useful for bringing external 12 V power into the cabinet enclosure. | Example DC jack |
| 4-pole GX16 connector set | optional | Useful when electrically linking multiple cabinets together. | Example GX16 connector |
| Connection board, 3.5 mm terminal variant | as needed | Recommended to simplify cabinet wiring. Use the design from hardware/connection-board-cut-out_3_5. | Repository design |
| 3.5 mm PCB screw terminal set for the connection board | 1 set per connection board | Typical population: 10x 2-pin and 13x 4-pin connectors per board. | Example terminal set |
| Short-run cabinet wire between connection board and relay board | as needed | Speaker wire or similar stranded wire is acceptable for short runs. Use wire suitable for up to 12 V / 2 A for the intended path. | No fixed supplier |
Raspberry Pi Specific Components
Section titled “Raspberry Pi Specific Components”These parts are only required for the currently used Raspberry Pi based build.
| Item | Typical quantity | Notes | Example link |
|---|---|---|---|
| Raspberry Pi 4 or 5 | 1 per cabinet controller | The current build uses a Raspberry Pi 4 with 4 GB RAM. | No fixed supplier |
| USB to RS485 adapter | 1 | Used to connect the Raspberry Pi to the Modbus RTU relay board. | Waveshare USB to RS485 adapter |
| 12 V to 5 V DC-DC converter | 1 | Used to power the Raspberry Pi from the cabinet’s 12 V supply. | Example DC-DC converter |
ESP-Based Build Status
Section titled “ESP-Based Build Status”The ESP-based build is not yet finalized.
For now, treat the following as stable:
- lock hardware
- relay board requirement
- connection board recommendation
- internal cabinet wiring approach
- basic 12 V power distribution
- planned ESP controller board: Waveshare
ESP32-S3-ETH-8DI-8RO - planned expansion path for more than 8 compartments: external Waveshare
Modbus RTU Relay (D)board over RS485
The following items still need a dedicated design and validation step:
- RS485 interface strategy
- controller power conversion and protection
- service and update workflow
- final ESP software and service model
Until that work is complete, this document only provides a validated BOM for the Raspberry Pi based build.
Cabinet-Specific Items Not Covered Here
Section titled “Cabinet-Specific Items Not Covered Here”The following topics are intentionally excluded from this BOM because they depend on the exact cabinet:
- lock brackets and mounting plates
- drilling templates
- door reinforcement
- mounting hardware for wooden cabinets
- mounting hardware for metal lockers
- enclosure cut-outs and finishing work
Document those items in a cabinet-specific build guide once a repeatable cabinet design exists.
Disclaimer
Section titled “Disclaimer”This BOM is provided as a practical reference for the Open-Locker project. Parts and suppliers may change over time. The project does not provide warranty or supplier guarantees for the listed parts.
Feedback
Section titled “Feedback”If you build an Open-Locker cabinet based on this BOM, we would appreciate your feedback.
Useful feedback includes:
- which parts worked well
- which parts were hard to source
- compatible alternative parts or suppliers
- cabinet-specific lessons learned
- corrections for quantities, ratings, or wiring assumptions
Community feedback helps us improve this BOM and make future builds easier to replicate.