aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/CHANGELOG.md
blob: c23613f19e778508155c54d3af93c19cdead850f (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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# Changelog for embassy-nrf

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/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

<!-- next-header -->
## Unreleased - ReleaseDate

- added: Add basic RTC support for nRF54L
- changed: apply trimming values from FICR.TRIMCNF on nrf53/54l
- changed: do not panic on BufferedUarte overrun
- added: allow direct access to the input pin of `gpiote::InputChannel`
- bugfix: use DETECTMODE_SEC in GPIOTE in secure mode
- added: allow configuring the idle state of GPIO pins connected to PWM channels
- changed: allow configuring the PWM peripheral in the constructor of `SimplePwm`
- changed: support setting duty cycles with inverted polarity in `SimplePwm`
- added: support setting the duty cycles of all channels at once in `SimplePwm`
- changed: updated to nrf-pac with nrf52/nrf53/nrf91 register layout more similar to nrf54
- added: support for nrf54l peripherals: uart, gpiote, twim, twis, spim, spis, dppi, pwm, saadc

## 0.8.0 - 2025-09-30

- changed: Remove `T: Instance` generic params in all drivers.
- changed: nrf54l: Disable glitch detection and enable DC/DC in init.
- changed: Add embassy-net-driver-channel implementation for IEEE 802.15.4
- changed: add persist() method for gpio and ppi
- added: basic RTC driver
- changed: add persist() method for gpio, gpiote, timer and ppi
- changed: impl Drop for Timer
- added: expose `regs` for timer driver
- added: timer driver CC `clear_events` method
- changed: Saadc reset in Drop impl, anomaly 241 - high power usage

## 0.7.0 - 2025-08-26

- bugfix: use correct analog input SAADC pins on nrf5340

## 0.6.0 - 2025-08-04

- changed: update to latest embassy-time-queue-utils

## 0.5.0 - 2025-07-16

- changed: update to latest embassy-usb-driver

## 0.4.1 - 2025-07-14

- changed: nrf52833: configure internal LDO
- changed: nrf5340: add more options to clock config
- bugfix: clean the SAADC's register while dropping
- changed: Remove Peripheral trait, rename PeripheralRef->Peri.
- changed: take pins before interrupts in buffered uart init
- changed: nrf5340: add wdt support
- changed: remove nrf radio BLE
- changed: add Blocking/Async Mode param.
- bugfix: fix PWM loop count
- bugfix: fixing the nrf54l drive configuration bug
- changed: add temp driver for nrf5340
- changed: add support for rand 0.9

## 0.3.1 - 2025-01-09

- bugfix: nrf twim return errors in async\_wait instead of waiting indefinitely
- bugfix: fix missing setting input as disconnected.
- changed: Modify Uarte and BufferedUarte initialization to take pins before interrupts ([#3983](https://github.com/embassy-rs/embassy/pull/3983))


## 0.3.0 - 2025-01-06

Firstly, this release switches embassy-nrf to chiptool-based `nrf-pac`
implementations and lots of improvements, but also changes to API like
peripheral and interrupt naming.

Second big change is a refactoring of time driver contract with
embassy-time-driver. From now on, the timer queue is handled by the
time-driver implementation and `generic-queue` feature is provided by
the `embassy-time-queue-utils` crate. Newly required dependencies are
following:
  - embassy-time-0.4
  - embassy-time-driver-0.2
  - embassy-time-queue-utils-0.1

Add support for following NRF chips:
  - nRF54L15 (only gpio and timer support)

Support for chip-specific features:
  - RESET operations for nrf5340
  - POWER operations (system-off and wake-on-field) for nrf52840 and nrf9160

- nfc:
  - Adds support for NFC Tag emulator driver
- pwm:
  - Fix incorrect pin assignments
  - Properly disconnect inputs when pins are set as output
- uart:
  - `try_write` support for `BufferedUarte`
  - Support for `embedded_io_async` trait
- spim:
  - Support SPIM4 peripheral on nrf5340-app
- time:
  - Generic refactor of embassy-time-driver API
  - Fix for missed executor alarms in certain occasions (issue #3672, PR #3705).
- twim:
  - Implement support for transactions
  - Remove support for consecutive Read operations due to hardware limitations

## 0.2.0 - 2024-08-05

- Support for NRF chips:
  - nrf51
  - nrf9151
- Support for new peripherals:
  - EGU
  - radio - low-level support for IEEE 802.15.4 and BLE via radio peripheral
- Peripheral changes:
  - gpio: Drop GPIO Pin generics (API break)
  - pdm: Fix gain register value derivation
  - pwm:
    - Expose `duty` method
    - Expose `pwm::PWM_CLK_HZ` and add `is_enabled` method
    - Allow specifying OutputDrive for PWM channels
    - Fix infinite loop
  - spim:
    - Reduce trace-level messages ("Copying SPIM tx buffer..")
    - Support configuring bit order for bus
    - Allow specifying OutputDrive for SPI pins
    - Add bounds checks for EasyDMA buffer size
    - Implement chunked DMA transfers
  - uart:
    - Add support for rx- or tx-only BufferedUart
    - Implement splitting Rx/Tx
    - Add support for handling RX errors
- Miscellaneous changes:
  - Add `collapse_debuginfo` to fmt.rs macros.
  - Drop `sealed` mod
  - nrf52840: Add dcdc voltage parameter to configure REG0 regulator

## 0.1.0 - 2024-01-12

- First release with support for following NRF chips:
  - nrf52805
  - nrf52810
  - nrf52811
  - nrf52820
  - nrf52832
  - nrf52833
  - nrf52840
  - nrf5340
  - nrf9160