Skip to content
Snippets Groups Projects
CHANGELOG.md 11 KiB
Newer Older
  • Learn to ignore specific revisions
  • rahix's avatar
    rahix committed
    # 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
    ## [Unreleased]
    
    rahix's avatar
    rahix committed
    ### 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
      ```
    
    ### Changed
    - `Display.print()` uses a transparent background when printing with `bg == fg`.
    
    ### 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.
    
    
    
    ## [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
    ### Added
    
    rahix's avatar
    rahix committed
    - **ws2812**: Connect Neopixels to the wristband GPIOs and make your card10
      even more colorful!
    
    rahix's avatar
    rahix committed
    - DigiClk is now in the default prelude!
    
    rahix's avatar
    rahix committed
    - High-pass filter and pulse detection in default ECG app.
    
    rahix's avatar
    rahix committed
    - Actually added `uuid` module - it was not built into the firmware before,
      by accident.
    
    rahix's avatar
    rahix committed
    - `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
    
    ### 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
    - Refactored BME680 sensor interface.
    
    rahix's avatar
    rahix committed
    - Made OpenOCD scripts work with more debuggers out of the box.
    - Internal changes in preparation for button-interrupts.
    
    rahix's avatar
    rahix committed
    
    ### 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
    - Fixed the PMIC ADC muxer not being properly reset to neutral after a
      measurement.
    
    rahix's avatar
    rahix committed
    - Fixed wrong timezone offset calculation in `utime.time_ms()`.
    - Fixed bug where `\` characters were not parsed as path separators.
    
    rahix's avatar
    rahix committed
    - Fixed the alignment request check in our ELF l0der.
    - Fixed a buffer-overflow in the config-parser.
    
    rahix's avatar
    rahix committed
    
    
    ## [v1.9] - 2019-08-28 23:23 - [IcebergLettuce]
    [IcebergLettuce]: https://card10.badge.events.ccc.de/release/card10-v1.9-IcebergLettuce.zip
    
    
    rahix's avatar
    rahix committed
    - `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
    - 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.
    
    rahix's avatar
    rahix committed
    ### Changed
    
    rahix's avatar
    rahix committed
    - Refactored *menu* and *personal-state* apps.
    
    rahix's avatar
    rahix committed
    - `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
    - After a timeout, the menu will close and `main.py` will run again.
    
    rahix's avatar
    rahix committed
    - BLE security updates.
    - More detailed battery state display in nickname app.
    - Improved ECG app.
    
    rahix's avatar
    rahix committed
    
    ### Removed
    - Some unused font files.
    
    ### Fixed
    - Fixed a regression which made the ECG app no longer work.
    
    rahix's avatar
    rahix committed
    - Fixed card10 advertising support for AT-commands.
    - Rectangles being one pixel too small.
    
    rahix's avatar
    rahix committed
    
    
    rahix's avatar
    rahix committed
    
    
    ## [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
    ### Added
    
    rahix's avatar
    rahix committed
    - 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
    
    ### Changed
    - No longer require locking the display for setting the backlight.
    
    rahix's avatar
    rahix committed
    
    
    ## [v1.7] - 2019-08-24 21:48 - [Garlic]
    
    rahix's avatar
    rahix committed
    [Garlic]: https://card10.badge.events.ccc.de/release/card10-v1.7-Garlic.zip
    
    
    rahix's avatar
    rahix committed
    ### Added
    
    rahix's avatar
    rahix committed
    - **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
    - Enabled the Hardware Watchdog;  Card10 will reset itself if the firmware crashes
    
    rahix's avatar
    rahix committed
    - Log messages when BLE is pairing / connected.
    
    rahix's avatar
    rahix committed
    - The name of the offending app is printed to the serial console, if an app
      crashes the metatdata parser.
    
    rahix's avatar
    rahix committed
    
    ### Changed
    - Improved log messages in cases of lock-contention.
    
    rahix's avatar
    rahix committed
    - Menu will show an error message if a crash occurs.
    
    rahix's avatar
    rahix committed
    
    ### Fixed
    
    rahix's avatar
    rahix committed
    - Fixed race-conditions in serial writes by using a queue.
    
    rahix's avatar
    rahix committed
    - "Card10 Nickname" crashing if only `nickname.txt` exists.
    
    rahix's avatar
    rahix committed
    - 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
    - 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
    - Fixed API & MAX30001 mutexes being initialized late sometimes.
    
    rahix's avatar
    rahix committed
    - Fixed wrong stripe width in bi flag.
    
    
    
    ## [v1.6] - 2019-08-23 20:30 - [Fennel]
    
    rahix's avatar
    rahix committed
    [Fennel]: https://card10.badge.events.ccc.de/release/card10-v1.6-Fennel.zip
    
    
    rahix's avatar
    rahix committed
    - Maxim BLE SDK update
    
    
    rahix's avatar
    rahix committed
    ### Added
    
    rahix's avatar
    rahix committed
    - **BLE**: Added personal state API to card10 SVC.
    
    - **ECG**: Support for ECG + Python app
    - **BLE**: Characteristic to read the time
    
    rahix's avatar
    rahix committed
    
    ### Changed
    - Improved performance of circle-drawing algorithm.
    
    ### Fixed
    - Removed a debug print in the `bhi160` module.
    
    rahix's avatar
    rahix committed
    ## [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
    ### Added
    - **bootloader**: Add an error message when flashing fails.
    
    - **display**: Option to set backlight from Python
    - **utime**: Function to read time in ms from Python
    
    rahix's avatar
    rahix committed
    
    ### Changed
    - **gpio**: Rename constants for consistency.
    
    - **ble**: Storing pairings outside BLE stack context
    - **security**: Disable ELFs by default, prevent access to some more files
    
    rahix's avatar
    rahix committed
    
    ### Fixed
    - **gpio**: Fix field-setting in `gpio_cfg_t`.
    
    
    
    rahix's avatar
    rahix committed
    ## [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
    ### Added
    - Support for the `bme680` environmental sensor.
    - Support for the `bhi160` sensor fusion.
    
    rahix's avatar
    rahix committed
    - `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
    
    ### Changed
    - Refactored BLE card10 service.
    
    rahix's avatar
    rahix committed
    - Improved BLE file-transfer (added security).
    
    rahix's avatar
    rahix committed
    - 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
    
    
    rahix's avatar
    rahix committed
    ## [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
    ### 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
    ## [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
    
    ```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
    ## [v1.1] - 2019-08-21 03:14 - Asparagus
    
    rahix's avatar
    rahix committed
    ### 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.
    
    
    [Unreleased]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.10...master
    [v1.10]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.9...v1.10
    
    rahix's avatar
    rahix committed
    [v1.9]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.8...v1.9
    
    rahix's avatar
    rahix committed
    [v1.8]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.7...v1.8
    
    rahix's avatar
    rahix committed
    [v1.7]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.6...v1.7
    
    rahix's avatar
    rahix committed
    [v1.6]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.5...v1.6
    
    rahix's avatar
    rahix committed
    [v1.5]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.4...v1.5
    
    rahix's avatar
    rahix committed
    [v1.4]: https://git.card10.badge.events.ccc.de/card10/firmware/compare/v1.3...v1.4
    
    rahix's avatar
    rahix committed
    [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