diff --git a/Firmware/CHANGELOG.md b/Firmware/CHANGELOG.md
index 7c9738c1..b4a39e4b 100644
--- a/Firmware/CHANGELOG.md
+++ b/Firmware/CHANGELOG.md
@@ -11,6 +11,9 @@ Please add a note of your changes below this heading if you make a PR
### Changed
* Build system is now tup instead of make
+* Most code from `lowlevel.c` moved to `axis.cpp`, `encoder.cpp`, `controller.cpp`, `sensorless_estimator.cpp`, `motor.cpp` and the corresponding header files
+* Refactoring of the developer-facing communication protocol interface. See e.g. `axis.hpp` or `controller.hpp` for examples on how to add your own fields and functions
+* Change of the user-facing field paths. E.g. `my_odrive.motor0.pos_setpoint` is now at `my_odrive.axis0.controller.pos_setpoint`. Names are mostly unchanged.
## [0.3.4] - 2018-02-13
diff --git a/Firmware/README.md b/Firmware/README.md
index be43a816..8c6d2952 100644
--- a/Firmware/README.md
+++ b/Firmware/README.md
@@ -61,7 +61,6 @@ Note that UART is only supported on ODrive v3.3 and higher.
- `UART_PROTOCOL_LEGACY`: Use the human-readable legacy protocol
Use this option if you control the ODrive with an Arduino. The ODrive Arduino library is not yet updated to the native protocol.
- `UART_PROTOCOL_NONE`: Ignore UART communication
- - `USE_GPIO_MODE_STEP_DIR`: Step/direction control mode (use in conjunction with `UART_PROTOCOL_NONE`)
## Compiling and downloading firmware