Hardware Specification
Hardware Specification
Actual Badge (Prototype / v0.1)
The badge is the product’s primary hardware artifact. Everything else is infrastructure for it.
Functional Requirements
| Requirement | Target | Notes |
|---|---|---|
| Battery life | ≥ 7 days continuous operation | Single charge, normal duty cycle |
| GPS accuracy | ≤ 15m from known property boundary | Under open sky; degraded in dense tree cover |
| BLE detection range | ≥ 5m reliable, ≥ 10m line-of-sight | Equipment tag detection |
| BLE detection rate | > 85% over 100 test events at 5m | Exit gate metric |
| Upload reliability | > 95% of scheduled batch uploads succeed | Under normal cellular coverage |
| Operating temperature | -10°C to 55°C | Field conditions in Southeast US |
| Weather resistance | IP54 minimum | Rain and dust exposure expected |
| Display | Worker ID + shift start time readable in sunlight | E-ink; no backlight required |
| Form factor | Wearable; lanyard or badge clip compatible | Not to exceed credit card footprint by > 2x |
Component Stack
MCU — Primary candidates
Option A: Nordic nRF52840
- Architecture: ARM Cortex-M4F, 64 MHz
- RAM: 256 KB, Flash: 1 MB
- BLE: 5.0 (scanner + peripheral in simultaneous roles)
- Power: Deep sleep ~1.5 µA; BLE advertising ~4 mA; active ~5 mA
- SDK: Zephyr RTOS (recommended) or Nordic nRF5 SDK
- Reason to prefer: Best-in-class BLE power profile; Zephyr has strong community and Blues Wireless examples
Option B: Espressif ESP32-C3
- Architecture: RISC-V single-core, 160 MHz
- RAM: 400 KB, Flash: 4 MB (module dependent)
- BLE: 5.0
- Power: Deep sleep ~5 µA; active ~80 mA (higher than nRF; manage with duty cycle)
- SDK: ESP-IDF or Arduino framework
- Reason to prefer: Lower cost, faster firmware prototyping, large community
- Reason to prefer nRF instead: Better power efficiency for 7-day target
Selection note: MCU is finalized during Phase 2 by the firmware engineer. The firmware architecture document covers both paths. The hardware spec will be updated to reflect the final selection after the first 72-hour battery test.
Cellular + GPS Module — Blues Wireless Notecard
Model: NOTE-WBEX (LTE-M/NB-IoT + GPS, worldwide)
- Connectivity: LTE-M (Cat-M1) and NB-IoT on global bands
- GPS: u-blox SARA-R4 integrated (same module)
- Interface to MCU: I2C or UART (I2C preferred for simplicity)
- API: JSON over I2C/UART — no AT commands; human-readable request/response
- Data routing: Notehub (Blues cloud router) → HTTPS webhook to ingest API
- Power: Active ~400 mA (cellular transmit peak); idle ~7 mA; sleep ~8 µA
- Operating temp: -40°C to 85°C
Notehub routing configuration: Events from the Notecard are routed through Blues Notehub to a configurable HTTPS endpoint. The ingest API URL and API key are provisioned in Notehub at device registration time. The MCU sends events to the Notecard as JSON; the Notecard batches and uploads them to Notehub; Notehub forwards to the ingest API.
Why Blues Notecard:
- Eliminates the need to manage SIM cards, APN configuration, or cellular provider relationships
- GPS is collocated with cellular in one module — no separate GPS chip required
- JSON-native API dramatically reduces firmware complexity
- Blues Developer Relations is reachable and responsive (community forum + Discord)
- Dataplan included in hardware cost at low volumes; bulk plan available at scale
Single-source risk: See [docs/roles/10-hardware-ops-supply-chain.md] for mitigation strategy and alternative modem candidates.
BLE Scanner (on MCU)
The MCU BLE radio operates in scanner role to detect equipment tag advertisements.
- Scan interval: 200ms (configurable to balance power vs. detection latency)
- Scan window: 50ms per interval
- Detection criterion: RSSI > -70 dBm (configurable; corresponds to ~5m range in open air)
- Tag identification: by Bluetooth MAC address or UUID (protocol TBD by firmware engineer; MAC preferred for simplicity at prototype)
- Event generated:
ble_proximityevent when a known tag MAC/UUID is detected above threshold
Accelerometer
Purpose: Motion state classification (moving vs. stationary). Used to:
- Tag GPS events with motion context
- Suppress spurious GPS pings during stationary periods (power optimization)
- Detect shift-end condition (extended stationary period at end of day)
Candidate: Bosch BMA400 or STMicroelectronics LIS2DH12
- Both support hardware low-power wake-on-motion interrupt
- SPI or I2C interface
- Current draw in low-power mode: < 5 µA
E-ink Display
Purpose: Worker-facing status without requiring a phone or backlit screen.
Displays:
- Worker ID (assigned at shift start)
- Shift start time
- Badge status: charging / active / offline (no cellular)
Candidate: Waveshare 2.13” e-ink HAT (212 × 104, black/white) or equivalent
- SPI interface
- Refresh rate: ~2 seconds (acceptable for shift-start assignment; not used for real-time data)
- Power: ~26 mW active; ~0 µW holding static image
Power
Battery target: Lithium polymer (LiPo), 2000–3000 mAh Charging: USB-C, 5V charging circuit Power management: Hardware duty cycling on MCU + Notecard sleep modes
Rough power budget (for 7-day target at 2000 mAh):
| Mode | Current draw | Duty cycle | Avg contribution |
|---|---|---|---|
| MCU active (GPS + BLE scan) | ~10 mA | 20% | 2.0 mA |
| Notecard cellular upload | ~400 mA | 0.5% (2 min/30 min) | 2.0 mA |
| Notecard idle | ~7 mA | 79.5% | 5.6 mA |
| MCU sleep | ~2 µA | 0% (not used for main loop) | ~0 mA |
| Estimated average | ~9.6 mA |
At 2000 mAh ÷ 9.6 mA = ~208 hours ≈ 8.7 days of operation.
This is a first-order estimate. Actual will be lower due to GPS cold starts, startup current spikes, and accelerometer overhead. Firmware engineer validates against the 7-day exit gate.
Enclosure
Version at prototype: 3D-printed PLA or PETG
- IP54 rating is the target (see Industrial Designer role doc)
- Dimensions: TBD by Industrial Designer during Phase 2 optional engagement
- Mounting: Lanyard attachment point + belt clip hole
- At prototype: enclosure is functional but not production-grade
Note: Do not engage the Industrial Designer until the firmware exit gate is met. The enclosure design should follow a working firmware, not precede it.
Equipment Tag (BLE Beacon)
The equipment tag is a passive BLE beacon attached to a truck, trailer, or mower. It is not made by Actual. It advertises over BLE on a standard profile.
Requirements
| Requirement | Target |
|---|---|
| BLE version | 5.0 |
| Advertisement interval | ≤ 200ms (ensures fast detection by badge scanner) |
| RSSI at 1m | ≥ -50 dBm |
| Battery life | ≥ 12 months |
| Weather resistance | IP65 minimum (outdoor equipment exposure) |
| Mounting | Adhesive + optional screw mount |
| Form factor | < 50mm × 50mm × 15mm |
Candidate Devices
Option A: Ruuvi Tag (RuuviTag Pro)
- IP67, weatherproof, CR2477 battery (~12-18 months)
- Open-source firmware; configurable advertisement interval
- Available in bulk from Ruuvi.com
Option B: Nordic Semiconductor Thingy:53 (repurposed)
- Development kit option only; not a production recommendation
Option C: Generic iBeacon / Eddystone beacon (various manufacturers)
- Search: “IP65 BLE beacon industrial” on Alibaba or Mouser
- Verify: advertisement interval, battery life, temperature rating before ordering
- Risk: firmware is not field-upgradeable on generic beacons
Recommended for prototype: Ruuvi Tag. Known quality, IP67, field-proven. Switch to a lower-cost generic at scale once detection is validated.
Tag-to-Equipment Assignment
Each tag has a MAC address. The MAC address is recorded at provisioning and mapped
to a piece of equipment (e.g., truck-001, trailer-003, mower-005) in the
device registry in PostgreSQL.
When a badge detects a tag MAC, the cloud system resolves the MAC to equipment ID. The engineer does not hard-code equipment names in firmware — firmware reports the MAC address; the cloud resolves identity.
Hardware BOM (Prototype Estimate)
| Component | Unit cost (est.) | Qty per badge kit | Notes |
|---|---|---|---|
| Blues Notecard NOTE-WBEX | $49.00 | 1 | Retail; bulk pricing available |
| Blues Notecarrier (breakout board) | $12.00 | 1 | Dev use; custom PCB replaces this in v1 |
| nRF52840 module (Adafruit Feather nRF52840) | $25.00 | 1 | Prototype; custom PCB in v1 |
| LiPo battery 2000 mAh | $10.00 | 1 | |
| USB-C charging board | $5.00 | 1 | |
| E-ink display (2.13”) | $15.00 | 1 | |
| Accelerometer module | $3.00 | 1 | |
| Misc (connectors, wire, headers) | $5.00 | 1 | |
| 3D-printed enclosure | $5.00 | 1 | Material cost only |
| Badge total (prototype) | ~$129.00 | ||
| Ruuvi Tag (equipment tag) | $35.00 | per equipment unit |
Per crew deployment (5 crew members, 4 equipment units):
- 5 badges × $129 = $645
- 4 equipment tags × $35 = $140
- Total hardware per crew: ~$785
This is prototype BOM. Production PCB integration of MCU + Notecard + sensors will reduce the badge BOM to an estimated $40–$60 per unit at 100-unit volume.