787 Commits

Author SHA1 Message Date
GamerBene19
a619f13871
Add support for ESP internal temperature sensor (#337)
* Add first version of temp sensor driver

Code is very rudimentary and still suspect to change.
Notably, error handling is not implemented yet.

* Change cfg attribute to not any

* Rename TemperatureSensor to TemperatureSensorDriver

* Switch to `core::ptr`

* Add error handling

* Build the internal temperature sensor only on supported targets

* Fix the derives in TemperatureSensorConfig, TemperatureSensorClockSource

* Implement From<TemperatureSensorConfig> for temperature_sensor_config_t

* Use right clocks for temperature sensor depending on target

* Rename config and move it into own module

* Provide const new constructor for temperature sensor config

* Change config argument to be a reference

* Rename TemperatureSensor to TempSensor

* Avoid cloning config in temp driver constructor

* Add back derived Copy trait for TempSensorClockSource

* Add non_exhaustive option to TempSensorConfig

* Add temp sensor peripheral

* Cause panic if uninstalling the temp driver fails

* Implement Send for TempSensorDriver

* Make use of esp_idf_soc_temp_sensor_supported

* Add an example for temperature_sensor

---------

Co-authored-by: Luca Barbato <lu_zero@gentoo.org>
2024-09-09 19:46:26 +03:00
hyx0329
e20ef5c92f
Add an example of using interrupt directly without async (#474) 2024-09-09 18:16:26 +03:00
ivmarkov
b9baeedfd9 Clippy 2024-08-26 08:30:09 +00:00
ivmarkov
580a5f8c9b Clippy 2024-08-26 08:14:00 +00:00
ivmarkov
1ef5f8de66 Replace 0 with delay::NON_BLOCK 2024-08-22 11:22:07 +00:00
ivmarkov
a2e2888855 Fix for #475 2024-08-22 11:05:29 +00:00
DaneSlattery
aa0e257ffe
RMT Onewire Peripheral (#454)
* commit test 1

test commit 2

next device

asd

* try example, haven't built yet

* Add feature flags for legacy RMT examples

Remove references to the ds18b20 specific device.

Add a feature flag `rmt-legacy` that, when enabled, will build the
original rmt modules from v4 of the esp-idf. When disabled, the v5
rmt interface can be used for one wire applications.

Implement the Iterator trait for a device search and use the Iterator
in the example.

* Add more feature guards to examples compile

* Add alternative main functions for examples

* Use std threading

* Add std to thread sleep

* use std duration

* correct use for legacy rmt component

* Remove local bindings and use the esp-idf-sys master

* fix a typo

* Remove esp-idf component inclusion

* Update gitignore

* Fix examples

* mut-ex out the example compilation

* add implementation for temperature readings

* Conditional compile

* esp4.4 compile

* Changes to cargo and config

* Remove OWDevice and simplify API

* Remove phantomdata that is not required

* adjust lifetimes for single search at a time

* Keep RMT peripheral and add channel to onewire

Moves the RMT driver into a private `driver` module, which will only be compiled in rmt-legacy mode.

Also reduce the number of cfg feature flags in examples by wrapping the implementation in a module.

* modularise examples

* Fix for CI

* update example name to make it pop

---------

Co-authored-by: Dane Slattery <dane@polarmonitoring.com>
Co-authored-by: DaneSlattery <dane_s@umantec.net>
2024-08-10 16:11:38 +03:00
Frederick Vollbrecht
098e2dfb19 bump enumset to at least use 1.1.4 such that EnumSete::empty() is const 2024-08-09 17:27:20 +02:00
ivmarkov
72f6448c64 Fix no_std build 2024-08-05 21:46:52 +00:00
ivmarkov
ba95e728f5 Fix the build; enable the experimental features in CI 2024-08-05 21:27:46 +00:00
ivmarkov
c83cbe6b66 Fix the build; enable the experimental features in CI 2024-08-05 21:19:20 +00:00
ivmarkov
b186a3be4c Bugfix: sdmmc_card_t needs to be boxed, because ESP IDF takes long living references to it in the VFS layer 2024-08-05 07:39:28 +00:00
ivmarkov
71e7e87749 Clippy 2024-07-23 07:08:26 +00:00
ivmarkov
d04dcf5880
SD Card driver; SD Card host drivers (SPI and SDMMC) (#457)
* SD Card driver; SD Card host drivers (SPI and SDMMC)

* fmt

* fix typo

* Fix riscv32 build

* Better names for the GPIO matrix constructors

* Fix CI for esp32s3 and esp32p4

* Fix CI for esp32s3 and esp32p4

* SD-MMC finally works

* Address feedback from code review
2024-07-23 09:58:41 +03:00
xiaguangbo
d2c031acd9 Fix DMA description 2024-07-18 14:09:39 +02:00
xiaguangbo
d6f6922185
Update spi.rs, fix half3wire read (#459)
* Update spi.rs, fix half3wire read

* Update spi.rs, fix half3wire
2024-07-18 13:01:17 +02:00
xiaguangbo
7d4edb9989
Update uart.rs, add rs485 half duplex (#456)
* Update uart.rs, add rs485 half duplex

* Update uart.rs, fmt
2024-07-14 18:17:28 +03:00
phuongtran7
a61e24ba11
Docs: Add some docstrings for ADC module. (#455)
* Docs: Add some docstrings for ADC module

---------

Co-authored-by: Phuong <>
2024-07-12 17:56:14 +02:00
ivmarkov
8558064034 Clippy v0.44.1 2024-07-09 06:51:22 +00:00
ivmarkov
a12f0d14dd Clippy 2024-07-09 06:27:45 +00:00
ivmarkov
92d846ec56 Clippy 2024-07-09 06:26:56 +00:00
ivmarkov
fc1b0650d9 New version 2024-07-09 06:23:00 +00:00
ivmarkov
b3a42520ce Fix rust-analyzer by not using rust libtest harness 2024-07-08 07:59:38 +00:00
ivmarkov
4c029cc789 Update changelog 2024-07-07 16:44:24 +00:00
ivmarkov
d1ace4b79a
Add imac targets to CI + fix ESP IDF 4.4.x builds for imac target (#450) 2024-07-07 17:33:28 +02:00
Jorge Muñoz
74ffea5c0c
Fixes #443: Add new ResetReason enum items (#444)
* Fixes #443: Add new ResetReason enum items

* Fix examples/reset_reason.rs comments

* Add forgotten 5.1.3 version to conditions

* Add forgotten 5.1.3 version to more conditions
2024-07-02 16:17:48 +02:00
ivmarkov
d849cac7f9 New release v0.44.0 2024-06-23 08:20:04 +00:00
ivmarkov
470a36f784 New release 2024-06-23 08:11:43 +00:00
Frederick Vollbrecht
35f29fb2e7 do not patch embedded-svc. We do not depend on it 2024-06-20 18:18:24 +02:00
Frederick Vollbrecht
a62c0b46e0 patch esp-idf-sys / embuild / embedded-svc to git master 2024-06-20 18:11:47 +02:00
Frederick Vollbrecht
cbc7360807
i2c: use correct xtal for esp32c2 on timeout calculations (#438)
* i2c: use correct xtal for esp32c2 on timeout calculations

* update CHANGELOG
2024-06-20 18:06:55 +02:00
Frederick Vollbrecht
7a305980dd
fix clock usage in timer driver for idf 5 (#441)
* fix clock usage in timer driver for idf 5

* fix esp32

* clippy allow from_over_into

* clippy fix idf 4

* fix esp32

* fix esp32h2 matching

* derive default

* add CHANGELOG entry
2024-06-20 17:11:09 +02:00
Danila Gornushko
f237ab13e3
Adding new_without_sclk SpiDriver constructor in SPI driver (#440)
* added new_without_sclk SpiDriver constructor for more flexibility

* cargo fmt

* update CHANGELOG.md
2024-06-18 23:14:24 +02:00
Frederick Vollbrecht
2dfbf41972
update changelog (#432)
* update changelog

* changelog

* changelog

* apply suggestions & include latest changes

* apply suggestions & include latest changes

* feedback

* typo

* rename Changed to Breaking
2024-06-16 20:11:59 +03:00
Frederick Vollbrecht
c6afacb151
Merge pull request #433 from esp-rs/legacy-drivers
Hide the legacy ADC driver behind a feature flag
2024-06-16 12:23:16 +02:00
ivmarkov
f20b9f71a5 Replace with 2024-06-16 07:50:15 +00:00
ivmarkov
941ee8d0a8 Fix the hall sensor code 2024-06-16 07:35:35 +00:00
ivmarkov
16823abd7d Protect the legacy example; do not make the oneshot_legacy mod an API (yet) 2024-06-16 07:35:35 +00:00
ivmarkov
e3e8a37807 Hide the new ADC oneshot driver behind a feature flag 2024-06-16 07:35:35 +00:00
Alexander Ananiev
affb66942e
Allow split bidirectional I2S (#435) 2024-06-16 10:31:55 +03:00
Alexander Ananiev
53c9312951
Update embassy-sync version to 0.6.0 (#437) 2024-06-16 10:15:53 +03:00
Lorenz
d290357bba
Fix wrong max_duty (#431)
the max duty cycle is 2^N, only when using the maximum timer resolution is must be 2^N-1 to prevent overflow
2024-06-11 19:43:55 +03:00
Frederick Vollbrecht
e4e608908e clippy 2024-06-01 14:37:01 +02:00
Frederick Vollbrecht
91b6c3a504 fix missing EnumSet import 2024-06-01 14:12:06 +02:00
Frederick Vollbrecht
5a741ae248
Merge pull request #424 from esp-rs/high-speed-ledc
(ESP32 only) Support for the high-speed channels
2024-05-26 17:17:12 +02:00
ivmarkov
127a903a53 Add high speed indicator 2024-05-24 07:51:21 +00:00
ivmarkov
fefb4cfa6a (ESP32 only) Support for the high-speed channels 2024-05-23 19:19:35 +00:00
ivmarkov
2ae14905c6 Clippy 2024-05-23 18:55:49 +00:00
Frederick Vollbrecht
51afc5ee72
🗑️ remove deprecated 4.3 api (#420) 2024-05-23 10:44:41 +03:00
Frederick Vollbrecht
f060df2b59
fix esp-idf >= 5.3 (#419)
* fix esp-idf >= 5.3

* gate the newly introduces field correctly

* cammel_case clippy
2024-05-23 10:42:30 +03:00