904 Commits

Author SHA1 Message Date
ivmarkov
d12abc976a Fix the build for ESP IDF 4.4.X 2024-10-01 06:36:31 +00:00
ivmarkov
b9d0ffd502 Fix CI by temporarily not using v5.1 2024-10-01 06:13:16 +00:00
ivmarkov
64adce1381 Fix CI by temporarily not using v5.1 2024-10-01 06:05:02 +00:00
Eli Lipsitz
bba51cdfc9 spi: Add SpiBusDriver::operation and operation_async
This allows the use of the Operation enum with SpiBusDriver, enabling
support for multi-line transfers.
2024-09-29 19:39:47 +02:00
Eli Lipsitz
f21a58818f spi: Add Operation::ReadWithWidth and Operation::WriteWithWidth
This adds support for multi-line half-duplex SPI operations.
2024-09-29 19:39:47 +02:00
Eli Lipsitz
edf7527e34 spi: Fix half-duplex read transactions
Half-duplex read transactions should not use a write buffer. Previously,
only 3-wire half-duplex transactions followed this, but the esp-idf
error-checking logic applies to all half-duplex transactions.
2024-09-29 19:39:47 +02:00
Eli Lipsitz
a0bae3035a spi: Add custom spi::Operation enum
This replaces the Operation enum which was previously re-exported from
embedded_hal.

As of this commit, the enum is identical to the embedded_hal Operation,
except that there is no Word type parameter, as esp-idf-hal only uses u8
for SPI. Additionally, the `#[non_exhaustive]` attribute has been added
to allow for future expansion.
2024-09-29 19:39:47 +02:00
Eli Lipsitz
3ebdcb5c08 spi: Add LineWidth enum 2024-09-29 19:39:47 +02:00
Eli Lipsitz
b0aa07d828 spi: Add SpiDriver new_dual and new_quad constructors 2024-09-29 19:39:47 +02:00
Eli Lipsitz
3dbf3fe332
Fix esp_reset_reason_t constant names (#483)
The esp_reset_reason_t ESP_RST_PG and ESP_RST_CPU constant names don't
seem to exist. Instead, the actual names (added in esp-idf 5.2.2) are
ESP_RST_PWR_GLITCH and ESP_RST_CPU_LOCKUP.

The incorrect names caused the second-to-last match arm to be
interpreted as a binding name (that is, a catch-all), causing incorrect
behavior and build warnings when using esp-idf 5.2.2 and up.
2024-09-26 10:19:21 +03:00
Eli Lipsitz
d3247c29c8
Clippy (#484) 2024-09-26 10:17:25 +03:00
ivmarkov
4f4478718e Apply latest cargo fmt 2024-09-23 06:07:23 +00:00
ivmarkov
030a721445 Allow modem splits even when only HW coex is used 2024-09-21 15:00:25 +00:00
ivmarkov
9b8ff7b96b Allow modem splits even when only HW coex is used 2024-09-21 14:57:57 +00:00
ivmarkov
01f0518d92 Re-use the SPI config struct of the SPI driver 2024-09-19 06:12:13 +00:00
ivmarkov
eb791c9cca Make the UART config to ESP-IDF C config reusable outside the UART driver 2024-09-19 05:48:31 +00:00
ivmarkov
09dc34aa6b Support the thread modem peripheral on the c6 MCU 2024-09-17 10:49:53 +00:00
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