Inspiration
Who helps travellers when the lights go out? We imagined a blackout‑proof flight board powered by a single USB battery and personal phones.
What it does
Operators type a flight once; seconds later every connected phone shows the update—no routers, no cloud, just BLE.
How we built it
- GUI writes rows to SQLite.
- Python script packs each row as
<3s H c B B I>and streams it. - Arduino 101 republishes those bytes via a custom BLE characteristic.
- PWA subscribes, caches assets for offline use and renders a table.
Challenges
- Web Bluetooth needs HTTPS; we created a local TLS cert script.
- CurieBLE is limited to 20‑byte notifications—had to optimise struct size.
- Keeping browser FPS smooth on low‑end devices (we capped rows/page).
Proud Accomplishments
- Operates > 8 h on a power bank.
- 90 ms median latency UART → browser.
- Zero external JS libraries.
Lessons Learned
- BLE Limitations.
- How python can interact with the database and serial port.
- How to create a small protocol to send data.
What’s Next
- Add CRC + length byte to the BLE frame.
- Recharge‑aware scheduling (show “low power” icon when < 30%).
- Kiosk mode with QR pairing for faster passenger onboarding.
Log in or sign up for Devpost to join the conversation.