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

  1. GUI writes rows to SQLite.
  2. Python script packs each row as <3s H c B B I> and streams it.
  3. Arduino 101 republishes those bytes via a custom BLE characteristic.
  4. 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.

Built With

Share this project:

Updates