diff --git a/CHANGELOG.md b/CHANGELOG.md
index f8295575a2c42a3f5d1769d008c6ac14c2deb4d6..86f77dea9d389838ed7db149cc1278d213693545 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,21 +5,39 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 
 ## [Unreleased]
 ### Added
-- `leds.flash_rocket()` API for making rockets flash asynchronously.
-- Basic API for the MAX86150 pulse-oximeter.
+#### For Users
 - A feature to allow setting the main app on-device.
 - Added compatibility to BLE 5.0 capable phones (including iPhones).
-- Added pairing dialog in BLE app. Device is only visible when BLE app is
+- Added a pairing dialog in the BLE app. card10 is only visible when BLE app is
   active.
-- Option to write HCI layer log files for debugging.
-- _Stub_ `ubluetooth` module.  Not yet functional!
+- G-Watch watch face.
+- App for COVID-19 exposure notification statistics.
+- Experimental app using the MAX86150 pulse-oximeter.
 
+#### For Developers
+- `leds.flash_rocket()` API for making rockets flash asynchronously.
+- Basic API for the MAX86150 pulse-oximeter.
+- CSPRNG as a replacement for the hardware TRNG which does not seem to produce
+  good entropy the way we are using it right now.
+- Option to write HCI layer log files for debugging.
+- Feature in `simple_menu` which detects long button presses.
+- _Stub_ `ubluetooth` module. Not yet functional!
 
 ### Changed
-- Internal changes to the way interrupts are triggered.
-- Updated to a newer version of MicryPython (v1.12).
+#### For Users
+- The default watch face is now G-Watch.
 - Improved BLE security by only allowing man-in-the-middle protected
   pairings and specifying minimum key lengths.
+- Read time/date automatically from iOS devices.
+
+#### For Developers
+- Updated to a newer version of MicroPython (v1.12).
+- All `u{module}` MicroPython modules are now also available as `{module}` which
+  brings card10 more in line with upstream.
+- Updated to SDK version 0.2.1-12
+- The BLE pairing database was completely overhauled.
+- Use the CSPRNG for all MicroPython randomness.
+- Internal changes to the way interrupts are triggered.
 
 ### Fixed
 - Made the `vibra` vibration motor API more stable.
@@ -27,6 +45,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 - Fixed bug which made the USB serial connection unresponsive.
 - Fixed bug which wrote the pairings file more periodically.
 - Fixed invalid filesystem locking in BLE startup.
+- Only print a single warning when a sensor stream overflows instead of spamming
+  the console with errors.
+- Fixed issues from reloading the configuration file.
+- Fixed `pycard10.py` not properly resetting the device before loading a script.
+- Allow to reopen BHI160 sensor from python.
+- Fixed pycardium not exiting when triggering certain failure conditions.
+- Made the config parser more robust.
 
 
 ## [v1.15] - 2020-02-02 - [Okra]
diff --git a/pycardium/modules/py/config.py b/pycardium/modules/py/config.py
index 8d70936ff2ba9c161712ad07a244f6ebe583a646..7fae24c9521ff0c41f65cbc6078417626c6a0d58 100644
--- a/pycardium/modules/py/config.py
+++ b/pycardium/modules/py/config.py
@@ -6,22 +6,22 @@ def set_string(key, value):
     Write a string to the configuration file ``card10.cfg``.
 
     Both ``key`` and ``value`` must be strings or must be
-    convertible to a string using the ``str()`` function.
+    convertible to a string using the :py:func:`str()` function.
 
     ``key`` must not contain spaces, control characters (including tabs),
     number signs ans equal signs.
-    ``value` must not contain control characters (including tabs).
-    Neither is allowed to contain the sub-string ``execute_elf``.
+    ``value`` must not contain control characters (including tabs).
+    Neither is allowed to contain the sub-string ``"execute_elf"``.
 
     The key/value pair is immediately written to the configuration
     file (``card10.cfg``). After the file is written, configuration
-    is read again and the new value is available via ``config.get_string``.
+    is read again and the new value is available via :py:func:`config.get_string`.
 
     :param str key:     Name of the configuration option.
     :param str value:   Value to write.
     :raises OSError: If writing to the configuration file failed.
     :raises OSError: If key or value contain illegal characters.
-    :raises ValueError: If key or value contain the sub-string ``execute_elf``.
+    :raises ValueError: If key or value contain the sub-string ``"execute_elf"``.
 
     .. versionadded:: 1.16
     """
@@ -34,7 +34,7 @@ def get_string(key):
     Read a string from the configuration file ``card10.cfg``.
 
     ``key`` must be a string or must be convertible to a string using
-    the ``str()`` function.
+    the :py:func:`str()` function.
 
 
     :param str key: Name of the configuration option.