CHANGELOG.md 12.7 KB
Newer Older
Rahix's avatar
Rahix committed
1
2
3
4
5
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

Rahix's avatar
Rahix committed
6
## [Unreleased]
Rahix's avatar
Rahix committed
7
8
9
10
11


## [v1.12] - 2019-10-19 - [Leek]
[Leek]: https://card10.badge.events.ccc.de/release/card10-v1.12-Leek.zip

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
### Added
- **USB Storage mode**!  You can now select 'USB Storage' in the menu and
  access card10's filesystem via USB.  No more rebooting into bootloader!
- LED feedback on boot.  If your display is broken, you can still see it doing
  something now.
- `./tools/pycard10.py --set-time` to set card10's system time from your host.
- 4 new functions in `utime` modules:
  * `set_time_ms()`
  * `set_unix_time_ms()`
  * `unix_time()`
  * `unix_time_ms()`

### Changed
- Updated BLE stack
- Refactored gfx API for drawing images (internal).
- Draw partially clipped primitives in all cases (Fixes menu scrolling
  animation).
- Fatal errors are now handled in a central 'panic' module.

### Fixed
- Make BLE interrupts higher priority than anything else to hopefully increase
  stability.
- Turn off BLE encryption after closing a connection.
- Fixed mainline bootloader being broken.
- Fixed menu entries being ordered by path instead of name.
- Fixed menu crashing without a message.
- Fixed QSTR build-system.
Rahix's avatar
Rahix committed
39
40
41
42
43


## [v1.11] - 2019-09-24 - [Karotte]
[Karotte]: https://card10.badge.events.ccc.de/release/card10-v1.11-Karotte.zip

Rahix's avatar
Rahix committed
44
45
46
47
48
49
50
51
52
53
54
55
### Added
- **Support for sleep-mode instead of full power-off.  This means the RTC now
  retains its state!**
- For debugger users: A GDB macro `task_backtrace` which allows to view
  backtraces of tasks which are currently swapped out.  Use like
  ```text
  (gdb) task_backtrace serial_task_id
  ...
  (gdb) task_backtrace dispatcher_task_id
  ...
  (gdb) task_backtrace ble_task_id
  ```
Rahix's avatar
Rahix committed
56
57
58
- BHI160 magnetometer sensor
- ESB API in Pycardium.
- Monotonic clock API
Rahix's avatar
Rahix committed
59
- New FOSS font ...
Rahix's avatar
Rahix committed
60
61
62

### Changed
- `Display.print()` uses a transparent background when printing with `bg == fg`.
Rahix's avatar
Rahix committed
63
64
- Try different crc16 module during build because different environments might
  have different ones installed.
Rahix's avatar
Rahix committed
65
66
- Improved ECG app, it can now blink on pulse and more!
- Improved BHI160 and BME680 apps.
Rahix's avatar
Rahix committed
67
68
69
70
71
72
73
74
75
76
77
78

### Fixed
- Fixed a regression which made it impossible to turn off the flashlight.
- Fixed CRT for l0dables not allowing to overwrite interrupt handlers.
- Fixed ECG App not closing the sensor on `KeyboardInterrupt`.
- Fixed a bug which made the power-button unresponsive when pressed during boot
  (Interrupts were getting ignored).
- Fixed `simple_menu.Menu.exit()` not actually working.
- Added a few missing locks in `leds` module.
- Added a workaround for BHI160 axis mapping not being applied in some cases.
- Added a critical-section in BLE stack initialization to prevent weird lock-ups.
- Fixed vibra module crashing when calling `vibra.vibrate()` while already running.
Rahix's avatar
Rahix committed
79
- Fixed sensor-sample overflow leading to I2C bus lockup.
Rahix's avatar
Rahix committed
80
81
82
83
84


## [v1.10] - 2019-09-05 21:42 - [JerusalemArtichoke]
[JerusalemArtichoke]: https://card10.badge.events.ccc.de/release/card10-v1.10-JerusalemArtichoke.zip

Rahix's avatar
Rahix committed
85
### Added
Rahix's avatar
Rahix committed
86
87
- **ws2812**: Connect Neopixels to the wristband GPIOs and make your card10
  even more colorful!
Rahix's avatar
Rahix committed
88
- DigiClk is now in the default prelude!
Rahix's avatar
Rahix committed
89
- High-pass filter and pulse detection in default ECG app.
Rahix's avatar
Rahix committed
90
91
- Actually added `uuid` module - it was not built into the firmware before,
  by accident.
Rahix's avatar
Rahix committed
92
93
94
95
- `leds.get_rgb()`: Get the current color of an LED.
- `leds.get_rocket()`: Get the current brightness of one of the rockets.
- `micropython.mem_use()` function.
- The analog-clock can now also set the time using the buttons.
Rahix's avatar
Rahix committed
96
97
98
99

### Changed
- **Pycardium**: Switched from `long-long` to `mpz` integer representation.
  This should resolve any issues with large numbers which had popped up so far.
Rahix's avatar
Rahix committed
100
- Refactored BME680 sensor interface.
Rahix's avatar
Rahix committed
101
102
- Made OpenOCD scripts work with more debuggers out of the box.
- Internal changes in preparation for button-interrupts.
Rahix's avatar
Rahix committed
103
104
105
106

### Fixed
- Backlight and Vibration motor were not reset when switching apps.
- Mismatch in default settings of the *Card10 Nickname* app.
Rahix's avatar
Rahix committed
107
108
- Fixed the PMIC ADC muxer not being properly reset to neutral after a
  measurement.
Rahix's avatar
Rahix committed
109
110
- Fixed wrong timezone offset calculation in `utime.time_ms()`.
- Fixed bug where `\` characters were not parsed as path separators.
Rahix's avatar
Rahix committed
111
112
- Fixed the alignment request check in our ELF l0der.
- Fixed a buffer-overflow in the config-parser.
Rahix's avatar
Rahix committed
113
114
115
116
117


## [v1.9] - 2019-08-28 23:23 - [IcebergLettuce]
[IcebergLettuce]: https://card10.badge.events.ccc.de/release/card10-v1.9-IcebergLettuce.zip

118
### Added
Rahix's avatar
Rahix committed
119
120
121
122
123
124
125
126
127
128
129
- `tools/pycard10.py`: Tool to interact with card10's serial connection and
  upload files directly:
  ```bash
  ./tools/pycard10.py path/to/python-script.py
  ```
- `epic_disp_print_adv` & `Display.print(font=...)`: Print with different
  fonts!  The following fonts are supported: `8px`, `12px`, `16px`, `20px`,
  and `24px`.
- **pycardium**: Support for RAW REPL mode.
- **bhi160**: Function to disable all sensors (`bhi160.disable_all_sensors()`).
- `ls_cmsis_dap`: A tool to enumerate CMSIS-DAP debuggers.
Rahix's avatar
Rahix committed
130
131
132
133
- Tons of new features to `simple_menu`: Timeout, scrolling of long texts,
  robustness against crashes, and proper exiting.
- `card10.cfg` config file which allows enabling *ELF* files.
- Analog read for wristband GPIOs.
134

Rahix's avatar
Rahix committed
135
### Changed
Rahix's avatar
Rahix committed
136
- Refactored *menu* and *personal-state* apps.
Rahix's avatar
Rahix committed
137
138
139
- `main.py` was moved into an app to allow easier reconfiguration of the
  default app.  The new `main.py` points to the "old" one so behavior is not
  changed.
Rahix's avatar
Rahix committed
140
- After a timeout, the menu will close and `main.py` will run again.
Rahix's avatar
Rahix committed
141
142
143
- BLE security updates.
- More detailed battery state display in nickname app.
- Improved ECG app.
Rahix's avatar
Rahix committed
144
145
146
147
148
149

### Removed
- Some unused font files.

### Fixed
- Fixed a regression which made the ECG app no longer work.
Rahix's avatar
Rahix committed
150
151
- Fixed card10 advertising support for AT-commands.
- Rectangles being one pixel too small.
Rahix's avatar
Rahix committed
152

Rahix's avatar
Rahix committed
153
154
155
156
157


## [v1.8] - 2019-08-27 11:38 - [HabaneroChilli]
[HabaneroChilli]: https://card10.badge.events.ccc.de/release/card10-v1.8-HabaneroChilli.zip

Rahix's avatar
Rahix committed
158
### Added
Rahix's avatar
Rahix committed
159
160
161
162
163
- API-call for direct light-sensor readout: `epic_light_sensor_read`.
- Pause mode in ECG-App.
- `bin` field in metatdata for an alternate entrypoint.
- `shell.nix`: Nix-Shell which installs patched OpenOCD and dependencies.
- Cool LED animation in default ECG app.
Rahix's avatar
Rahix committed
164
165
166

### Changed
- No longer require locking the display for setting the backlight.
Rahix's avatar
Rahix committed
167
168
169


## [v1.7] - 2019-08-24 21:48 - [Garlic]
Rahix's avatar
Rahix committed
170
171
[Garlic]: https://card10.badge.events.ccc.de/release/card10-v1.7-Garlic.zip

Rahix's avatar
Rahix committed
172
### Added
Rahix's avatar
Rahix committed
173
174
- **ESB**: Epic Serial Bus (Better than USB!), stability improvements of the
  USB module.  Preparation for mass-storage access in the Firmware.
Rahix's avatar
Rahix committed
175
- Enabled the Hardware Watchdog;  Card10 will reset itself if the firmware crashes
Rahix's avatar
Rahix committed
176
- Log messages when BLE is pairing / connected.
Rahix's avatar
Rahix committed
177
178
- The name of the offending app is printed to the serial console, if an app
  crashes the metatdata parser.
Rahix's avatar
Rahix committed
179
180
181

### Changed
- Improved log messages in cases of lock-contention.
Rahix's avatar
Rahix committed
182
- Menu will show an error message if a crash occurs.
Rahix's avatar
Rahix committed
183
184

### Fixed
Rahix's avatar
Rahix committed
185
- Fixed race-conditions in serial writes by using a queue.
Rahix's avatar
Rahix committed
186
- "Card10 Nickname" crashing if only `nickname.txt` exists.
Rahix's avatar
Rahix committed
187
188
189
- Lockup when debug prints are enabled.
- Delayed BHI160 startup a bit so the PMIC task can check the battery first.
- Relaxed the PMIC lock-timeouts so other task can take a little more time.
Rahix's avatar
Rahix committed
190
191
192
193
- Fixed off-by-one error in `gfx_line()`.
- Fixed the API interrupts sometimes getting stuck.
- Fixed binary building on MacOS.
- Fixed race-conditions in serial console prints by introducing a queue.
Rahix's avatar
Rahix committed
194
- Fixed API & MAX30001 mutexes being initialized late sometimes.
Rahix's avatar
Rahix committed
195
- Fixed wrong stripe width in bi flag.
schneider's avatar
schneider committed
196
197
198


## [v1.6] - 2019-08-23 20:30 - [Fennel]
Rahix's avatar
Rahix committed
199
200
[Fennel]: https://card10.badge.events.ccc.de/release/card10-v1.6-Fennel.zip

Rahix's avatar
Rahix committed
201
202
- Maxim BLE SDK update

Rahix's avatar
Rahix committed
203
### Added
Rahix's avatar
Rahix committed
204
- **BLE**: Added personal state API to card10 SVC.
schneider's avatar
schneider committed
205
206
- **ECG**: Support for ECG + Python app
- **BLE**: Characteristic to read the time
Rahix's avatar
Rahix committed
207
208
209
210
211
212

### Changed
- Improved performance of circle-drawing algorithm.

### Fixed
- Removed a debug print in the `bhi160` module.
Rahix's avatar
Rahix committed
213
214


Rahix's avatar
Rahix committed
215
216
217
## [v1.5] - 2019-08-23 00:18 - [Eggppppplant]
[Eggppppplant]: https://card10.badge.events.ccc.de/release/card10-v1.5-Eggppppplant.zip

Rahix's avatar
Rahix committed
218
219
### Added
- **bootloader**: Add an error message when flashing fails.
220
221
- **display**: Option to set backlight from Python
- **utime**: Function to read time in ms from Python
Rahix's avatar
Rahix committed
222
223
224

### Changed
- **gpio**: Rename constants for consistency.
225
226
- **ble**: Storing pairings outside BLE stack context
- **security**: Disable ELFs by default, prevent access to some more files
Rahix's avatar
Rahix committed
227
228
229
230
231

### Fixed
- **gpio**: Fix field-setting in `gpio_cfg_t`.


Rahix's avatar
Rahix committed
232
233
234
## [v1.4] - 2019-08-22 19:43 - [DaikonRadish]
[DaikonRadish]: https://card10.badge.events.ccc.de/release/card10-v1.4-DaikonRadish.zip

Rahix's avatar
Rahix committed
235
236
237
### Added
- Support for the `bme680` environmental sensor.
- Support for the `bhi160` sensor fusion.
Rahix's avatar
Rahix committed
238
239
240
241
242
- `simple_menu` module for creating simple menus in Python.
- `power` module to access the voltage and current measurements from the PMIC.
- Support for color themes in the default clock script:
  Color themes are read from a json file, so people can customize their clock.
  Last selected theme is saved in the `clock.json` so it is persistent.
Rahix's avatar
Rahix committed
243
244
245

### Changed
- Refactored BLE card10 service.
Rahix's avatar
Rahix committed
246
- Improved BLE file-transfer (added security).
Rahix's avatar
Rahix committed
247
248
249
250
251
252
253
- Replaced dynamic attribute creation with static attributes.

### Fixed
- Fixed menu listing files starting with `.`.
- Fixed `utime.set_time()` applying the timezone offset in the wrong direction.
- Fixed the PMIC driver not releasing some locks properly.

Rahix's avatar
Rahix committed
254

Rahix's avatar
Rahix committed
255
256
257
## [v1.3] - 2019-08-22 00:12 - [CCCauliflower]
[CCCauliflower]: https://card10.badge.events.ccc.de/release/card10-v1.3-cccauliflower.zip

Rahix's avatar
Rahix committed
258
259
260
261
262
263
264
265
266
267
268
269
### Added
- A splashscreen in Epicardium showing the version number.
- `os.urandom()` function.

### Changed
- BLE file-transfers now create missing folders.

### Fixed
- **gfx**: Add a linebreak before character, not after.  This prevent the last
  character being cut off.
- Fixed serial task overflowing because it had a too small stack size.
- Removed confusing MAXUSB messages.
Rahix's avatar
Rahix committed
270
271


Rahix's avatar
Rahix committed
272
273
## [v1.2] - 2019-08-21 18:18 - [Broccoli]
[Broccoli]: https://card10.badge.events.ccc.de/release/card10-v1.2-broccoli.zip
Rahix's avatar
Rahix committed
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302

```text
8e8d8614 feat(apps): Add scope to preload
e1a7684a fix(cdcacm): Disable before printing error
4c74f061 fix(utime.c): set_time should operate in local tz
e0824843 feat(pmic): Switch off if battery is low
46ef3985 feat(pmic): Add API-call to read battery voltage
79e2fb15 feat(epicardium): Periodically check the battery voltage
5da9e074 feat(pmic): Implement AMUX reading
8c59935e py: timezone workaround
c7f59d3e fix(text_reader): Convert to unix line-endings
78a7a7f4 docs: Fix underlines in ble/card10
15649293 feat(app): Add some preloads
b12e4ef9 chore(docs): Fix utime module docs
3efbab13 feat(utime.c): add python functions to set time
38f83243 chore(docs): Fix color documentation
a966e221 chore(docs): Fix python-directives with double-module
66cd10d4 docs: Document os.reset()
5fe5fe31 docs: Document pride module
338132e5 apped apps folder to search module search path
cda91555 rename Main Clock to Home
c2935c8c fixed syntax
3017591a Rename preloaded apps to make use of hatchery folder structure
842e9ad8 feat(menu.py): support scrolling for long menu entries
fbf7c8c0 fix(menu.py) Refactored menu.py based on !138
8aa8c31f feat(ble): Store bondings
5e5c7a4f fix(menu.py): Fix color-mismatch of selector background
```

Rahix's avatar
Rahix committed
303
## [v1.1] - 2019-08-21 03:14 - Asparagus
Rahix's avatar
Rahix committed
304
305
306
307
308
309
310
311
312
313
314
315
### Added
- Seed ``urandom`` PRNG with ``TRNG`` peripheral.
- Show linenumbers in MicroPython tracebacks.

### Fixed
- **buttons**: Acquire lock before accessing I2C.
- **rtc**: Fix RTC getting stuck because of improper initialization.
- Make lifecycle task more important than dispatcher.

## [v1.0] - 2019-08-21 00:50
Initial release.

Rahix's avatar
Rahix committed
316
317
[Unreleased]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.12...master
[v1.12]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.11...v1.12
Rahix's avatar
Rahix committed
318
[v1.11]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.10...v1.11
Rahix's avatar
Rahix committed
319
[v1.10]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.9...v1.10
Rahix's avatar
Rahix committed
320
[v1.9]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.8...v1.9
Rahix's avatar
Rahix committed
321
[v1.8]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.7...v1.8
Rahix's avatar
Rahix committed
322
[v1.7]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.6...v1.7
Rahix's avatar
Rahix committed
323
[v1.6]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.5...v1.6
Rahix's avatar
Rahix committed
324
[v1.5]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.4...v1.5
Rahix's avatar
Rahix committed
325
[v1.4]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.3...v1.4
Rahix's avatar
Rahix committed
326
327
328
329
[v1.3]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.2...v1.3
[v1.2]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.1...v1.2
[v1.1]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.0...v1.1
[v1.0]: https://git.card10.badge.events.ccc.de/card10/firmware/-/tags/v1.0