summaryrefslogtreecommitdiff
path: root/TODO.md
blob: 546770a12bca767b2d04c77ba1af23c456509f9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Roadmap

## M1: Dumb watch feature parity

The focus for M1 is to get WASP both to meet feature parity with a dumb
watch and to have a bootloader and watchdog strategy that is robust enough
to allow a PineTime case to be confidently glued shut.

### Bootloader

 * [X] Basic board ports (PineTime, DS-D6, 96Boards Nitrogen)
 * [X] OTA application update
 * [X] Enable watchdog before starting the application
 * [X] Splash screen
 * [X] Ignore start button for first few seconds
  
### MicroPython

 * [X] Basic board ports (PineTime, DS-D6, 96Boards Nitrogen)
 * [X] Long press reset (conditional feeding of the watchdog)
   - [X] Feed dog from REPL polling loop
   - [X] Feed dog from a tick interrupt
 
### WASP

 * [X] Display driver
   - [X] Display initialization
   - [X] Bitmap blitting
   - [X] RLE coder and decoder
   - [X] Optimized RLE inner loops
 * [X] Backlight driver
 * [X] Button driver (polling)
 * [X] Battery/charger driver
 * [X] Simple clock and battery level application
 * [X] Basic (WFI) power saving
 * [X] Implement simple RTC for nrf52

## M2: Great developer experience

The focus for M2 is to make development faster and easier by providing
a file system and file transfer code. This allows much faster
development cycles compared to full downloads of frozen modules.
Additionally support for multiple event-driven applications will be
added during M2 to further help developers by providing example
applications.

### Bootloader

 * [X] OTA bootloader update
 * [X] RTC time measurement whilst in bootloader

### MicroPython

 * [X] SPI FLASH driver
 * [X] Enable LittleFS on SPI FLASH (at boot)
 * [X] BLE file transfer

### WASP

 * [X] Add dd/mm/yyyy support to RTC
 * [X] Button driver (interrupt based)
 * [X] Touch sensor driver
 * [X] Event driven application framework
 * [X] Stopwatch app
 * [X] Settings app
 * [X] PC-hosted simulation platform
 * [O] Documentation
   - [X] Sphinx framework and integration with github.io
   - [X] Document bootloader protocols
   - [X] Application writer's guide
   - [ ] Write full docstring documentation for all WASP components
 * [X] Application Launcher
 * [X] Debug notifications
 * [o] Multi-colour RLE images
   - [X] Optimized "2-bit" RLE encoder and decoder
   - [ ] Logarithmic RBG332 <-> RGB56516bit color space conversion

## M3: Smartwatch

At M3 we start to build out full fitness tracking and notification
functionality.

### Bootloader

 * [ ] Stay in bootloader after battery run down
 * [ ] Implement power off support (no splash screen)

### Micropython

 * [ ] Use SoftDevice sleep logic
 * [ ] Automatically enter SPI flash power saving mode

### WASP

 * [ ] Enable heart rate sensor
   - [ ] HRS3300 driver
   - [ ] HRS data post-processing
   - [ ] Heart rate counter app
 * [ ] Notifications
   - [ ] BLE notification protocol
   - [ ] Notification popups
   - [ ] Notification app (show notification history)
   - [ ] Find a recommended Android app
 * [ ] Step counting
   - [ ] BMA421 driver
   - [ ] Step counter app