Skip to content
fanoush edited this page Dec 28, 2018 · 6 revisions

Hardware

For details see Hardware

Pinout

  • SPI2 (OLED 128x32)
  • Serial - usb data pins
  • TWI0 (HR sensor), TWI1 (accelerometer)
  • motor
  • touch button
  • battery voltage, charging
  • (TODO) some pins configured as inputs can still be used for something e.g interrupts from accelerometer or HR sensor

HW/SW drivers support

I currently use Espruino as it is very easy and quick for developing directly on the device.

OLED

SSD1306 128x32 with memory setup as 128x64 (typical drivers are not setup like this)

  • on/off, basic 128x32 framebuffer, HW rotation (0,180,90,270)
  • (TODO) scrolling, extra memory over 32 lines

Motor

  • on, off, pwm works, simple espruino code for alarm vibration patterns

Accelerometer

  • (TODO) tilting - turn on when raised/rotated
  • (TODO) tap/doubletap detection KX022 HW mode - can be used as additional button/arrows (tap from top, left or right)

Custom Software

Clock app for Espruino

in progress, see Espruino

Micropython

builds fine, based on feather52 board

Arduino

personally low interest, nRF52832 is good enough to be more productive in high level languages

Original Software

DFU bootloader

The app and DFU bootloader uses SoftDevice S132 version 2.0 => it is developed with Nordic SDK 11. While the bootloader is not default Nordic one and does not advertise itself with default Nordic DFU BLE service IDs, it still uses Nordic update package described e.g. here. And since this is SDK11 the bootloader is not secure and DFU package is not signed. Additionally the bootloader supports also DFU update via serial port (two middle usb data pins on USB connector) and for this the Nordic nrfutil tool can be used - both for generating package and also for updating. Matching nrfutil version for SDK11 is 0.5.3. More info about DFU update procedure here.

Stock Clock app

Possible to develop open source software to set clock and send notifications without all the bloat and privacy issues of original app. See AT commands.