Week 18 : Project Development, Applications & Implications¶
This documentation focuses on higher-level planning of the project - please refer to the final project overview for further details on each building block (i.e. SBC, MCU, power supply, and payment system).
Scope¶
Kilat is a portable, pay-to-use solar pv system for street vendors. Customers trade mostly in the evening, earn on a daily basis, and have limited access to reliable or more affordable electrcity.
Generally, product features such as solar tracking and pay-as-you-go (PAYG) functionality are developed as separate modules targeting different market needs. This prototype, however, integrates selected features from these systems into a unified solution and catered for the street vendors inspired by the following past resources :
- Dual-axis tracker : David Fernandez Fab Academy 2025 Final Project. This project deliberately uses a single-axis tracker as the seasonal north-south swing is small.
- PAYG solar system: M-KOPA. This project borrows the payment and lock concept.
The scope is from there determined to be :
- Prototype (current):
- A single-axis (east–west) solar tracker that keeps the panel oriented toward the sun through the day so the battery is charged before the evening trading hours.
- Energy is stored in a battery pack so power is available after sunset.
- The user can draw power (the prototype focuses on USB phone charging as the representative load) only while their subscription / payment is active.
- Activation is handled remotely through the payment/lock logic with a MOSFET load switch acting as the physical "lock".
- The panel is raised on a manually-elevated mast held by a spring-detent button, and the components are packaged in a compact control unit that can be stored vertically or horizontally.
- Future vision (documented, not built in prototype):
- Additional loads beyond phone charging (e.g. lamps and other small appliances).
- A real, transactional payment system rather than the dummy/token subscription used for the prototype.
Design, make-or-buy, and processes¶
| Sub-system | Made / Bought | Process / Tools | Design |
|---|---|---|---|
| Tracker head | Made | CAD → FDM 3D print (PLA/PETG) | Panel bracket and east–west rotation joint carrying the servo and phototransistors |
| Control-unit enclosure | Made | FDM 3D print + laser-cut back panel | Houses battery and PCB; chamfered edges, heat-set inserts; back panel laser-cut due to 3D-printer build-plate size limit |
| Mast + spring-detent lock | Made / Bought | 3D print + assembly | Manually elevated mast with internal cable routing so no wiring is visible. spring detent lock selected as a purchased component to ensure sufficient mechanical strength and durability under load |
| Custom PCB | Made | PCB milling + soldering | Phototransistor sensing channels, servo output(s), MOSFET load switch (payment/lock + USB enable), and the power path |
| Cast logo | Made | Molding & casting | Fluorescent accent on the casing with crystal epoxy mixture, no added LEDs |
| Embedded software | Made | MQTT + Node-RED (Pi); Cloudflare + Vercel + MongoDB | Local tracking loop (sensors → servo); MOSFET lock logic; remote payment path |
| Solar panel, regulator, battery, servo, sensors, Pi, LoRa, OLED | Bought | - | Energy and compute components integrated into the system rather than fabricated (see BOM) |
Bill of materials (BOM)¶
Almost all components were sourced externally through Taobao, while a small number of items were already available in-house or obtained off-the-shelf. The BOM below compares the planned quantities and costs with the actual quantities and costs incurred during the project. Costs are listed in RMB, with total costs also converted to USD for reference. An analysis of it is also conducted for future improvement.
Note: Actual quantities may be fractional where only part of a purchased multi-pack was consumed in the build (e.g. a portion of a 100-pack of screws, resistors, or connectors). Rows with an actual quantity and cost of 0 indicate components that were purchased or considered during development but were ultimately not used in the final prototype.
| Component / Material | Source | Qty (Planned) | Price (Planned) | Qty (Actual) | Price (Actual) |
|---|---|---|---|---|---|
| Filament PLA basic 10105 | Taobao | 2 | 116.2 | 1.0 | 58.1 |
| 2.42 inch OLED | Taobao | 1 | 56.0 | 1.0 | 56.0 |
| Filament PETG Basic 30107 | Taobao | 2 | 103.6 | 1.0 | 51.8 |
| Solar panel | Taobao | 1 | 45.0 | 1.0 | 45.0 |
| Battery 5V5A 5600 mAh | Taobao | 1 | 42.0 | 1.0 | 42.0 |
| MG996R 180 servo | Taobao | 3 | 44.2 | 2.0 | 29.5 |
| ESP32-DEV CH340 | Taobao | 2 | 42.0 | 1.0 | 21.0 |
| 50x 22AWG dupont cable | Taobao | 1 | 36.1 | 0.5 | 18.0 |
| Phototransistors | Taobao | 4 | 35.2 | 2.0 | 17.6 |
| 3P alternating pin socket | Taobao | 4 | 11.0 | 4.0 | 11.0 |
| MG996R metal arms | Taobao | 1 | 9.0 | 1.0 | 9.0 |
| Heat tubes | Taobao | 1 | 8.8 | 1.0 | 8.8 |
| NCE01P30K PMOS TO-252 | Taobao | 5 | 7.7 | 5.0 | 7.7 |
| Cable skeleton | Taobao | 1 | 6.8 | 1.0 | 6.8 |
| White-blue fluorescent powder | Taobao | 1 | 11.6 | 0.5 | 5.8 |
| 10x30p pin socket | Taobao | 1 | 11.0 | 0.5 | 5.5 |
| USB C breakout board | Taobao | 4 | 9.2 | 2.0 | 4.6 |
| AMS1117 3.3V linear regulator | Taobao | 10 | 6.4 | 5.0 | 3.2 |
| USB A connector with silicone casing | Taobao | 2 | 5.6 | 1.0 | 2.8 |
| 10x6p pin socket | Taobao | 1 | 4.8 | 0.5 | 2.4 |
| Kafuter silicon | Taobao | 2 | 6.6 | 0.5 | 1.7 |
| 100x Ceramic capacitor 100 nF | Taobao | 1 | 3.0 | 0.5 | 1.5 |
| 100x resistor 100 Ohm | Taobao | 1 | 3.0 | 0.5 | 1.5 |
| 100x resistor 100 kOhm | Taobao | 1 | 3.0 | 0.5 | 1.5 |
| 10x Ceramic capacitor 10 µF | Taobao | 2 | 3.0 | 1.0 | 1.5 |
| 10x M3x6x4.2 heat insert | Taobao | 3 | 6.2 | 0.7 | 1.4 |
| Buck converter | Taobao | 1 | 1.2 | 1.0 | 1.2 |
| 20x JST PH2.0 mm cable 2P red-black | Taobao | 1 | 4.7 | 0.3 | 1.2 |
| 20x JST PH2.0 mm cable 2P black-red | Taobao | 1 | 4.7 | 0.3 | 1.2 |
| 10x M3x4x4.2 heat insert | Taobao | 3 | 5.2 | 0.7 | 1.1 |
| Spring detent lock F8 | Taobao | 1 | 1.1 | 1.0 | 1.1 |
| KCD1 switch | Taobao | 2 | 4.4 | 0.5 | 1.1 |
| 5x Alternating pin header 40p | Taobao | 1 | 4.8 | 0.2 | 1.0 |
| JST PH2.0 mm 4P | Taobao | 10 | 1.3 | 5.0 | 0.7 |
| 100x M3x4 countersink screw | Taobao | 1 | 2.6 | 0.2 | 0.5 |
| 100x M3x6 countersink screw | Taobao | 1 | 2.6 | 0.2 | 0.5 |
| 100x 2N7002 NMOS SOT-23 | Taobao | 1 | 5.0 | 0.1 | 0.5 |
| JST PH2.0 mm 2P | Taobao | 10 | 0.9 | 5.0 | 0.5 |
| Aluminum capacitor 100 µF | Taobao | 10 | 0.9 | 5.0 | 0.5 |
| 50x M3x4 counterbore screw | Taobao | 1 | 1.0 | 0.4 | 0.4 |
| 50x M3x6 counterbore screw | Taobao | 1 | 0.8 | 0.4 | 0.3 |
| Yellow-orange fluorescent powder | Taobao | 1 | 11.5 | 0.0 | 0.0 |
| White-yellow fluorescent powder | Taobao | 1 | 13.4 | 0.0 | 0.0 |
| Spring detent lock F6 | Taobao | 1 | 0.3 | 0.0 | 0.0 |
| Spring detent lock F3 | Taobao | 1 | 1.2 | 0.0 | 0.0 |
| Spring detent lock AF | Taobao | 1 | 1.5 | 0.0 | 0.0 |
| Spring detent lock T | Taobao | 1 | 2.1 | 0.0 | 0.0 |
| Spring detent lock | Taobao | 1 | 0.2 | 0.0 | 0.0 |
| Spring detent lock F1 | Taobao | 1 | 0.2 | 0.0 | 0.0 |
| Spring detent lock AX | Taobao | 1 | 0.1 | 0.0 | 0.0 |
| Spring detent lock AB | Taobao | 1 | 0.1 | 0.0 | 0.0 |
| 10x Grove-Universal 4 pin connector | Taobao | 1 | 11.0 | 0.0 | 0.0 |
| MG996R 360 servo | Taobao | 2 | 32.8 | 0.0 | 0.0 |
| Spring M6x10x3x3 | Taobao | 1 | 5.1 | 0.0 | 0.0 |
| Spring M8x12x4.5x3 | Taobao | 1 | 6.0 | 0.0 | 0.0 |
| Spring M3x8 | Taobao | 1 | 3.0 | 0.0 | 0.0 |
| Spring M3x6 | Taobao | 1 | 3.0 | 0.0 | 0.0 |
| Spring M3x5 | Taobao | 1 | 2.7 | 0.0 | 0.0 |
| 100x resistor 5.1 kOhm | Taobao | 1 | 3.0 | 0.0 | 0.0 |
| 20x 2N7002 NMOS SOT-23 | Taobao | 2 | 2.4 | 0.0 | 0.0 |
| PH2.0 male and female set | Taobao | 1 | 5.3 | 0.0 | 0.0 |
| 30N06 NMOS TO-252 | Taobao | 1 | 2.6 | 0.0 | 0.0 |
| Non alternating pin header 40p | Taobao | 2 | 0.3 | 0.0 | 0.0 |
| USB Type-C connector | Taobao | 1 | 2.6 | 0.0 | 0.0 |
| USB Type-C connector split | Taobao | 1 | 4.3 | 0.0 | 0.0 |
| 4P alternating pin socket | Taobao | 4 | 6.2 | 0.0 | 0.0 |
| USB A connector without silicone casing | Taobao | 1 | 4.2 | 0.0 | 0.0 |
| Solar regulator | Taobao | 1 | 13.2 | 0.0 | 0.0 |
| Battery 5V1A 6000 mAh | Taobao | 1 | 36.3 | 0.0 | 0.0 |
| Raspberry Pi 4 | Off the shelf | 1 | - | 0.0 | 0.0 |
| Grove - LoRa 868 MHz | Off the shelf | 2 | - | 0.0 | 0.0 |
| Grove - Compass V2.0 | Off the shelf | 1 | - | 0.0 | 0.0 |
| Basswood | Off the shelf | 1 | - | 0.0 | 0.0 |
| Total price (RMB) | 852.7 | 427.3 | |||
| Total price (USD) | 127.90 | 64.09 |
A few observations stand out from the BOM :
- The actual spend came in at roughly half of the plan — about 427 RMB (≈ $64) actual against 853 RMB (≈ $128) planned. In the future perhaps this could become a benchmark of budget that should be allocated for product creation.
- The cost is dominated by a handful of items. Even after that optimisation, the seven most expensive parts — the two filament reels, the OLED, the solar panel, the battery, the servo, and the dupont cabling — already account for about three-quarters (~74%) of the actual cost, while the remaining line items together make up only the final quarter. Focus on supply-chain or alternative components would therefore be a priority for optimisation.
- The economics are encouraging for the pay-as-you-go model. At an actual hardware cost of approximately $64, a vendor paying around $1 per day would recover the full device cost in roughly two months, after which the system could effectively be owned outright. That of course depends on the other features that will be added and whether similar price range could be obtained in Indonesia compared to China.
Evaluation, status and open questions¶
| Aspect | Success criterion | Status so far | Open question |
|---|---|---|---|
| Tracking | Panel follows the sun east–west over several hours and parks/stows at night | Servo + light-direction sensing drives E–W alignment | Does single-axis tracking capture enough charge for an evening? Is one servo enough or is a second axis needed? |
| Energy | Panel charges the battery in sun, and the battery delivers USB power afterward | Stable 5 V rail and uninterrupted output once the UPS/pass-through battery was adopted | Is the battery sized for a full evening of trading? |
| Payment lock | USB output is off when "unpaid" and on when "paid", reproducibly, driven by a functional payment system | MOSFET load switch gives a clean, electronically-controlled cut-off for the lock | The payment system should be functional rather than a dummy. Would the user be willing to pay a deposit to guarantee the product is not stolen and is returned? |
| Portable form | Stows compactly and deploys with the spring-assisted mast, without a fixed tower | Compact control unit + manually-elevated mast with a selected spring-detent lock | Is the mast quick to deploy/stow in a stall? Robust enough for daily outdoor use, and does the fit/placement hold after assembly? |
| Sensing / orientation | Status and orientation shown reliably to the user | OLED status display, RTC for timekeeping, and the compass heading are all working | GPS is not added yet. If the product is stolen, can its location still be tracked and the unit retrieved? GPS works poorly in enclosed/indoor places, so is there a better-suited technology for theft tracking? |
| Affordability (product / users) | Hardware cost low enough for a daily micro-payment model | Actual hardware cost ≈ $64 → roughly two-month payback at $1/day | What pricing model (daily / weekly / monthly) and price point would vendors accept? |
Lessons learned & next-iteration improvements¶
- Cable management :
- The wiring is not tidy enough — signal-and-return pairs should be twisted and the routing planned more deliberately.
- The cable skeleton did not perform as hoped. Perhaps the diameter should be bigger so that it creates less stress to the cables and minimizes connection failure. Alternative is perhaps to consolidate the connection of the phototransistors onto a separate PCB and from there less number of cables are needed to the control unit.
- Design around the fasteners instead of the other way around. Too many options creates confusion.
- A single MG996R motor is actually in the end sufficient for the tracking. Load analysis should be performed next time.
- Mast locking mechanism : the spring-detent lock can be released / removed too easily, which is both a usability and a security concern for a deployed, potentially-unattended product. Perhaps a cam-lever clamp, twist/collet collar could be explored in the future.
- The fluorescent logo did not work as well as hoped — as soon as the OLED display lights up, its brightness overpowers the faint glow and the fluorescent effect is lost. The glow is only really visible in full darkness, so it does not hold up next to an active light source. Thus a cast logo with back-light from an LED should be explored in the future.