Rendered from electronics/ELECTRONICS.md + docs/power-solar.md + docs/BOM.csv in the repository at build time.
Estimates are labelled as such in the source; nothing on this page is a measured result unless it says so.
Versions A, B and C
All three share the heads, the XIAO ESP32C6 and the two ULN2003A drivers; they differ in how the controller box is powered. Compare them in the 3D model (switch A/B/C there).
| A: USB-C | B: Battery + USB-C | C: Battery + solar + USB-C | |
|---|---|---|---|
| Box base STL bbox (mm, as printed) | 63.1 × 39.6 × 11.4 | 57.6 × 47.6 × 21.7 | 57.6 × 47.6 × 21.7 |
| Box lid STL bbox (mm, as printed) | 63.0 × 39.5 × 7.3 | 57.6 × 47.6 × 8.0 | 57.6 × 47.6 × 8.0 |
| Parts only in this version |
|
|
|
| Pane pack | none | none | panel only, 12 V 1.5 W panel between the panes |
Common to all versions: Seeed Studio XIAO ESP32C6 (pre-soldered headers); ULN2003A 7-channel Darlington array DIP-16; Electrolytic capacitor 470 uF 16 V 8 x 9 mm; Tact switch 6 x 6 x 4.3 mm; Perfboard FR2 70 x 50 mm; JST-PH 5-pin housing; JST-PH 5-pin header straight (top entry); JST-PH crimp contacts AWG28-22; 6-wire flat modular cable white 6.8 x 2.4 mm; 3M double-sided acrylic foam tape 12 mm; Printed cable clip (hardware/cad/cable_clip.scad); 28BYJ-48 5 V unipolar geared stepper (stock 5-wire); NBR O-ring 8 x 2 mm (70 Shore A); USB-C 5 V 3 A power supply with captive cable (white); Matt white PETG (close to RAL 9010) or ASA; TPU 95A.


From the electronics doc
0. Cost-down default build (round 5, 2026-10-17): 2x ULN2003A, versions A / B / C#
This section is the default build from round 5 on. §1-§2 and §4-§5 describe the TMC2209 build, kept as the quiet option (StealthChop, current limit, bipolar-modded motors). §10 is the old LiFePO4/BQ25570 study. Values are typical or estimated unless a source is given. Verify every board pinout against your parts.
| Version | Power | Controller box (hardware/cad/ebox.scad) |
|---|---|---|
| A | 5 V USB-C wall supply, always plugged in | power_variant="usb" |
| B | 2000 mAh 1S LiPo, charged over USB-C | power_variant="battery" |
| C | as B + 12 V 1.5 W panel between the panes (pane_pack.scad) |
power_variant="solar" |
Common to all three: Seeed XIAO ESP32C6, 2x ULN2003A (DIP-16, one per motor) soldered on the perfboard, stock 5-wire 28BYJ-48 (no bipolar trace cut), one 5-pin JST-PH header per head, 6-wire flat cable to the head.
Pin maps, wiring and power paths for each version →
Energy, from the power budget (estimates)
C1. Move energy and daily load (2000 mAh LiPo, Thread sleepy device 150 uA)#
| v0.3 TMC2209 | v0.4 ULN2003A | |
|---|---|---|
| 1/2-turn move | 0.58 mWh (2.5 s) | 2.42 mWh (10 s) |
| daily re-home | 1.31 mWh | 6.99 mWh |
| load, 2 blinds x 4 moves/day | 21.4 mWh/day | 47.6 mWh/day |
| load, 2 blinds x 8 moves/day | 26.0 mWh/day | 66.9 mWh/day |
| battery-only life, 2 x 4 moves | about 247 days | about 122 days |
| battery-only life, 2 x 8 moves | about 209 days | about 88 days |
| battery-only life, 1 blind x 4 moves | about 287 days | about 179 days |
The ULN build roughly halves battery-only life (version B). The cause is the 4x longer move at 3 rpm at full coil current, and the daily re-home at 2 rpm (about 30 % of the daily load is sleep, the rest is motion). If the coils really are 200 ohm (the motor listing's value) the motor power is about 0.16 W and the 2 x 4 load is about 26.0 mWh/day -> about 209 days. Measure one coil before trusting either figure. Levers if B is too short: re-home weekly instead of daily (saves about 12 mWh/day for 2 blinds), fewer moves, or the quiet TMC2209 option.
C2. Solar balance, version C (panel inter-pane on the outer pane = placement B, 2 x 4 moves, 47.6 mWh/day)#
December mean harvest into the cell minus load, and the lowest charge over 2015-2023 (PVGIS hourly):
| Facade | Dec net, no shade | minimum charge | Dec net, half shaded | minimum charge | empty days/yr |
|---|---|---|---|---|---|
| South | +153 mWh/day | 89 % | +50 | 81 % | 0 |
| East | -11 | 77 % | -32 | 51 % | 0 |
| West | -20 | 59 % | -36 | 41 % | 0 |
| North | -40 | 45 % | -46 | 13 % | 0 |
- v0.3 (P124 + TMC2209) for comparison: South +248 mWh/day / 97 %, North 86 % unshaded.
- At 2 x 8 moves (66.9 mWh/day) half-shaded North runs empty about 28 days a year; East/West stay above 12 %.
- Room-side panel placement (behind the slats) is much weaker: South 77 %, East 29 %, West 23 %, North empty about 25 days/yr at 2 x 4 moves. Keep the panel between the panes.
- June surplus is large everywhere (about +0.8 to +1.7 Wh/day), so the cell refills over the summer; the risk is the December-January deficit on East/West/North windows.
- Cold: the charger only charges above 0 C (NTC on TS after the 6106 rework, ELECTRONICS.md §0.4). The cell stays in the room-side box, so the 0 C gate does not block winter charging.
Plot: docs/power_budget.png (v0.4). The 0.75x panel factor is the weakest number here: log one week of
charge current on a south window before relying on the December figures.
C3. Fit (from the CAD echoes)#
| Part | Outer size | Notes |
|---|---|---|
Controller box A (ebox.scad, usb) |
63.1 x 39.6 x 16.7 mm | was 61.6 x 37.6 x 23.6 |
Controller box B / C (battery / solar, cell under the board) |
57.6 x 47.6 x 27.2 mm | was 65.6 x 47.6 x 34.6 |
Box B / C, cell_layout="beside" |
111.6 x 47.6 x 16.9 mm | flattest, longer |
Pane pack panel_only (12 V panel) |
87.8 x 117.8 mm, 3.7 mm (4.1 at the hooks) | was 68.8 x 115.8 x 3.3 |
Pane pack with_cell |
134.4 x 117.8 mm, 4.2 mm | cell inter-pane only if needed |
Heights inside the box use two ASSUMED component heights (terminal block 8.5 mm, mated JST-PH + wire bend
10 mm): tb_h and jst_h in ebox.scad.