After some preliminary research we shortlist the M5StickC to be a suitable candidate for mass adoption for the following reasons:
- Opensourced design
- (easy to inspect and reverse engineer)
- Easy usage: Quick Start
- Mass availability (various sources, >1000 qty)
- Small, low-cost ($10) and extensible
- Singaporean founder based MCU (ESP32-WROOM, Espressif) with BT/BLE/WiFi
- Comes with various desirble features OutOfTheBox (OOTB): including accelerometer, clock battery, usb support, expansion, OLED, buttons
- Potentially able to quickly target the M5Stack too for extended purposes
- Target to last at least 16h without extra battery
- Collected data stored in 1MB on-flash partiton
- Primary factors for ESP32 include cost, availability, openly available libraries, specifications and most importantly an open and familiar toolchain.
- Possible to target a larger device (M5 Stack FIRE / Grey)
- Available GPS module
- 16M flash (instead of the usual 4M)
- Larger battery
A 16h projected runtime gives us an average current budget of about 5mA
MCU power consumption estimation w/ modem sleep:
- Idle: 1mA
- 1s broadcast interval: 2.6mA
- 1s scan duration, 60s period: 1.6% duty cycle: average 2.4mA
- 1s scan duration, 1s broadcast interval, 60s period: avg ~3.66mA
- Ideally we should use prime periods, but thats another story
- Ref
Overhead is given to cover other losses (to be tested) from components such as regulators, led, accelerometer, etc. Other optimizations to be considered:
The existing form factor is only sufficient for mounting but not so much for usability and clipping/strapping onto things.
There is a need to design a 3d-printable external chassis with the following features:
- Belt loop - to slide onto belts
- Covers most holes/gaps but leave buttons reachable - improve weatherproofing
- Could be designed in 2 halves and secured w/ up to 3 screws.
- M5Stick:
- Space for optional 3x Lp602040 450mAh cells (connected in parallel with onboard 80mAh cell) for extended runtime (optional)
- M5Stack:
- Space for 1700mAh (2x 850) additional battery (optional)
- ESP32-IDF cross referenced w/ stock code
- BlueTrace protocol
- Power optimization
- Using MPU9250 for motion sensing and snooze (disable radio)
- Using display for diagnostics on button press (storage usage, steps, encounters, etc)
- High power mode (via attached charger/cable):
- Serial interface for configuration and data retrieval
- Button-press to enter screen
- Diag: displays diagnostics
- [stretch goal] Config: configures unique id and wifi parameters via audio coupling (static site/app to generate parameters)
- [stretch goal] Upload data over wifi to an api endpoint
- Such a design could potentially be adapted to other deployment models and use cases, when desired:
- Placed on a public transport
- Placed at a mall entrance
- Solar powered
- Attached to an external power bank
- Attached or integrated into other objects e.g. school bags, shoes, helmets
- Additional sensors/deviecs could be added to spare ports
- GPS
- Larger flash devices for longer storage (up to 16MB)
- FLIR (for long-range temperature taking)
- digital temperature sensor