Nrf Hal Versions Save

A Rust HAL for the nRF family of devices

v0.16.0

1 year ago

New Features

  • Enable all SPIM and UARTE interfaces on the nRF9160 (#391).
  • Add a reset_event method to Timer (#390).
  • Add a free method to Saadc (#389).
  • Add OpenDrainIO pin state for bidirectional open drain GPIOs (#401 #402).

Enhancements

  • Make SCK pin optional for Spi and Spim APIs (#400 #406).
  • Update PACs and nrf-usbd to the newest version (#404).

Fixes

  • Fix pin connection checks in free methods (#397 #407).

v0.15.1

1 year ago

New Features

  • Support the nRF5340 Net Core (#386).
  • Add internal VDD channels for the nRF51 ADC (#382).
  • Implement MultiWriteNorFlash for the nRF9160 (#383).

Fixes

  • Fixed the nvmc erase procedure on nRF91 & nRF53 (#387).
  • Fixed TWIM overruns being reported as DataNack errors (#386).

v0.15.0

2 years ago

New Features

  • Implement MultiwriteNorFlash for nRF52 boards that support it (#373).
  • Enable GPIOTE module for nRF9160 (#376).

Enhancements

  • Unified how pins are are returned in free calls (#372).
  • Improvements to the NVMC driver (#374).
  • Updated embedded-dma, embedded-storage, and PACs (#379).

v0.14.1

2 years ago

New Features

  • Add From impl to degrade pins more easily (#364).
  • Support the nRF5340 Application Core with the new nrf5340-app-hal crate (#366).

Fixes

  • Fix panic in ieee802154 module introduced in 0.14.0 (#369).

v0.14.0

2 years ago

New Features

  • Implement embedded_hal::serial traits for UARTE (#343).

Enhancements

  • Update PACs and other dependencies (#357).

Fixes

  • IEEE 802.15.4: automatically disable radio after transmission (#356).

v0.13.0

2 years ago

New Features

  • USB support (#295).
  • Added Pwm::{swap_output_pin, clear_output_pin} to allow for more flexible PWM pin management (#335).
  • Added an API for the NVMC peripheral (#337).

Enhancements

  • [breaking change] Update rand_core and cortex-m dependencies (#332).
  • Make the deprecated SPI peripheral available on all nRF52 chips (#344).

Fixes

  • Fix TWIS transfer is_done() always returns true (#329).
  • Fix mistake in SPIS Transfer is_done to borrow inner (#330).
  • Fix I2S frequency mapping (#333).
  • [breaking change] Make Pwm::set_output_pin take the pin by-value to fix its soundness (#335).

v0.12.2

2 years ago

New Features

  • Enable PWM for the nRF9160 and nRF52832 (#311 #318).

Enhancements

  • Add a testsuite for the HAL (#291).
  • Document that ieee802154::Radio::recv_timeout writes the received data to packet (#307).
  • Update nRF9160 HAL with latest memory map (#321).
  • Add a simple UART example (#317).
  • Add readme documentation for demos (#246).
  • Link README.md into all sub-crates so they show up on crates.io (#322).
  • Enhance the RTC example with an interrupt (#324).

Fixes

  • Fix spelling errors and RTIC name (#308).
  • ieee802154: mark start_recv as unsafe (#312).
  • Fix PWM EasyDMA max length (#313).
  • Fix EasyDMA max size (#315).
  • Work around erratum when enabling UARTE on nRF9160 (#319).

v0.12.1

3 years ago

New Features

  • nRF9160: Add support for TWIM1-3 (#273).
  • nRF9160: Add support for WDT (#283).
  • PPI: Add clear_fork_task_endpoint (#282).
  • Refactor Pin Selection, add Pin::from_psel_bits and Pin::psel_bits (#285).
  • SAADC: Support internal vddhdiv5 channel (#297).
  • Add an IEEE 802.15.4 radio API (#143 #299).

Enhancements

  • Explain what "sealing" a trait means (#271).
  • Update cfg-if to 1.0 (#286).

Fixes

  • Fix TWIM pin selection for nRF52833 (#274).
  • Return correct error code in UARTE start_read (#280).
  • Fix en-/disabling GPIOTE interrupts for channels (#278).
  • UARTE: Check rx buf against EASY_DMA_SIZE (#284).
  • SAADC: Clear events_calibratedone before calibration (#298).

v0.12.0

3 years ago

New Features

  • Derive more traits for gpio::{Level, Port} (#185).
  • COMP module (#189).
  • QDEC module (#188).
  • LPCOMP module (#195).
  • TWIS module (#196 #230).
  • PWM module (#200 #231).
  • I2S module (#201 #209 #225 #237).
  • SPIS module (#226 #236).
  • Add support for the nRF52811 (#227).
  • Add PPI channel group tasks (#212).
  • Add PPI endpoints for timers (#239).
  • Allow disabling and reenabling the TWIM instance (#266).

Enhancements

  • Improve SAADC docs (#218).
  • Update Embed.toml of all examples to new defaults (#229).
  • Make ConfigurablePpi and subtrait of Ppi (#244).

Fixes

  • Refuse to build nRF52+ HALs for thumbv6m targets (#203).
  • Refuse to build nrf52810-hal for hard-float targets, and nrf51-hal for thumbv7+ targets (#206).
  • Set the correct Port in GPIOTE (#217 #248).
  • Correct TWIM port initialization for P1 pins (#221).
  • Fix race condition in RTC event handling (#243).

Breaking Changes

  • Remove Spi::read in favor of transfer_split_uneven (#190).
  • Seal the timer::Instance trait (#214).
  • Make GPIOs start in a Disconnected state instead of Input<Floating> (#220 #245).
  • 🦭 all Instance traits (#255).
  • 🦭 PPI traits (#259).
  • Various TWIM fixes and improvements - removes automatic transfer splitting (#242).
  • Remove typestate from RTC to make it easier to use (#252).
  • Also return owned Pins from Usart::free() (#261).

Internal Improvements

  • Utilize cargo-xtask to simplify CI and the release process (#207 #210).
  • Add conf() utility function to reduce code duplication in GPIO (#250).

v0.11.1

3 years ago

New Features

  • Add support for the Watchdog Timer peripheral (#175)
  • Support VDD source for the ADC (#181)

Fixes

  • Renamed RTFM examples to RTIC examples (#183)
  • Updated comment style (#180)

Breaking Changes

None