diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..172b851b --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,30 @@ +FROM debian:bullseye +ENV DEBIAN_FRONTEND=noninteractive +ENV LC_ALL=C.UTF-8 +ENV LANG=C.UTF-8 +ARG CONTAINER_USER=esp +ARG CONTAINER_GROUP=esp +ARG NIGHTLY_VERSION=nightly-2022-03-10 +RUN apt-get update \ + && apt-get install -y vim nano git curl gcc ninja-build cmake libudev-dev \ + python3 python3-pip libusb-1.0-0 libssl-dev pkg-config libtinfo5 clang \ + && apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts +RUN adduser --disabled-password --gecos "" ${CONTAINER_USER} +USER ${CONTAINER_USER} +WORKDIR /home/${CONTAINER_USER} +ENV PATH=${PATH}:$HOME/.cargo/bin +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \ + --default-toolchain ${NIGHTLY_VERSION} -y \ + && $HOME/.cargo/bin/rustup component add rust-src --toolchain ${NIGHTLY_VERSION} \ + && $HOME/.cargo/bin/rustup target add riscv32i-unknown-none-elf \ + && $HOME/.cargo/bin/cargo install cargo-generate cargo-espflash espmonitor bindgen ldproxy +ENV ESP_BOARD=esp32c3 +ENV ESP_IDF_VERSION=release/v4.4 +RUN mkdir -p .espressif/frameworks/ \ + && git clone --branch ${ESP_IDF_VERSION} -q --depth 1 --shallow-submodules \ + --recursive https://github.com/espressif/esp-idf.git \ + .espressif/frameworks/esp-idf-v4.4 \ + && .espressif/frameworks/esp-idf-v4.4/install.sh ${ESP_BOARD} \ + && rm -rf .espressif/dist \ + && rm -rf .espressif/frameworks/esp-idf-v4.4/docs +CMD "/bin/bash" \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100755 index 00000000..642c1e0a --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,34 @@ +{ + "name": "espressif-training", + "build": { + "dockerfile": "Dockerfile", + "args": { + "NIGHTLY_VERSION": "nightly-2022-03-10", + "CONTAINER_USER": "esp" + } + }, + "settings": { + "editor.formatOnPaste": true, + "editor.formatOnSave": true, + "editor.formatOnSaveMode": "modifications", + "editor.formatOnType": true, + "lldb.executable": "/usr/bin/lldb", + "files.watcherExclude": { + "**/target/**": true + }, + "rust-analyzer.checkOnSave.command": "clippy", + "[rust]": { + "editor.defaultFormatter": "matklad.rust-analyzer" + }, + }, + "extensions": [ + "matklad.rust-analyzer", + "tamasfe.even-better-toml", + "vadimcn.vscode-lldb", + "serayuzgur.crates", + "mutantdino.resourcemonitor", + "yzhang.markdown-all-in-one", + ], + "workspaceMount": "source=${localWorkspaceFolder},target=/home/esp/workspace,type=bind,consistency=cached", + "workspaceFolder": "/home/esp/workspace/" +} \ No newline at end of file diff --git a/advanced/button-interrupt/exercise/Cargo.toml b/advanced/button-interrupt/exercise/Cargo.toml index 59868c1a..7446982c 100644 --- a/advanced/button-interrupt/exercise/Cargo.toml +++ b/advanced/button-interrupt/exercise/Cargo.toml @@ -26,4 +26,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/advanced/button-interrupt/solution/Cargo.toml b/advanced/button-interrupt/solution/Cargo.toml index e47ba7f9..cc49e0a6 100644 --- a/advanced/button-interrupt/solution/Cargo.toml +++ b/advanced/button-interrupt/solution/Cargo.toml @@ -26,4 +26,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/advanced/i2c-driver/solution/Cargo.toml b/advanced/i2c-driver/solution/Cargo.toml index 682ea66a..67c0085c 100644 --- a/advanced/i2c-driver/solution/Cargo.toml +++ b/advanced/i2c-driver/solution/Cargo.toml @@ -28,4 +28,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/advanced/i2c-sensor-reading/solution/Cargo.toml b/advanced/i2c-sensor-reading/solution/Cargo.toml index 8e5a9982..d2cb259f 100644 --- a/advanced/i2c-sensor-reading/solution/Cargo.toml +++ b/advanced/i2c-sensor-reading/solution/Cargo.toml @@ -33,4 +33,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/common/lib/esp32-c3-dkc02-bsc/Cargo.toml b/common/lib/esp32-c3-dkc02-bsc/Cargo.toml index 74a2a8e7..fb410ab8 100644 --- a/common/lib/esp32-c3-dkc02-bsc/Cargo.toml +++ b/common/lib/esp32-c3-dkc02-bsc/Cargo.toml @@ -19,4 +19,4 @@ toml-cfg = "0.1" riscv = { version = "0.7", features=["inline-asm"] } [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/common/lib/esp32-c3-dkc02-bsc/src/wifi.rs b/common/lib/esp32-c3-dkc02-bsc/src/wifi.rs index 741ddbe2..73d7ed14 100644 --- a/common/lib/esp32-c3-dkc02-bsc/src/wifi.rs +++ b/common/lib/esp32-c3-dkc02-bsc/src/wifi.rs @@ -4,7 +4,8 @@ use std::sync::Arc; use anyhow::bail; use embedded_svc::wifi::{ - self, ClientConfiguration, ClientConnectionStatus, ClientIpStatus, ClientStatus, Wifi as _, + self, AuthMethod, ClientConfiguration, ClientConnectionStatus, ClientIpStatus, ClientStatus, + Wifi as _, }; use esp_idf_svc::{ netif::EspNetifStack, nvs::EspDefaultNvs, sysloop::EspSysLoopStack, wifi::EspWifi, @@ -20,11 +21,13 @@ pub struct Wifi { } pub fn wifi(ssid: &str, psk: &str) -> anyhow::Result { + let mut auth_method = AuthMethod::WPA2Personal; if ssid.len() == 0 { anyhow::bail!("missing WiFi name") } if psk.len() == 0 { - anyhow::bail!("missing WiFi password") + auth_method = AuthMethod::None; + info!("Wifi password is empty"); } let netif_stack = Arc::new(EspNetifStack::new()?); let sys_loop_stack = Arc::new(EspSysLoopStack::new()?); @@ -60,6 +63,7 @@ pub fn wifi(ssid: &str, psk: &str) -> anyhow::Result { ssid: ssid.into(), password: psk.into(), channel, + auth_method: auth_method, ..Default::default() }))?; diff --git a/intro/hardware-check/Cargo.toml b/intro/hardware-check/Cargo.toml index 0658bb18..41dc2caa 100644 --- a/intro/hardware-check/Cargo.toml +++ b/intro/hardware-check/Cargo.toml @@ -28,4 +28,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/intro/http-client/exercise/Cargo.toml b/intro/http-client/exercise/Cargo.toml index 84572c3e..bf2a4d58 100644 --- a/intro/http-client/exercise/Cargo.toml +++ b/intro/http-client/exercise/Cargo.toml @@ -29,4 +29,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/intro/http-client/solution/Cargo.toml b/intro/http-client/solution/Cargo.toml index 9acd4564..63b124dd 100644 --- a/intro/http-client/solution/Cargo.toml +++ b/intro/http-client/solution/Cargo.toml @@ -29,4 +29,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/intro/http-server/exercise/Cargo.toml b/intro/http-server/exercise/Cargo.toml index b44dad04..7fa4a268 100644 --- a/intro/http-server/exercise/Cargo.toml +++ b/intro/http-server/exercise/Cargo.toml @@ -30,4 +30,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/intro/http-server/solution/Cargo.toml b/intro/http-server/solution/Cargo.toml index b44dad04..7fa4a268 100644 --- a/intro/http-server/solution/Cargo.toml +++ b/intro/http-server/solution/Cargo.toml @@ -30,4 +30,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/intro/mqtt/exercise/Cargo.toml b/intro/mqtt/exercise/Cargo.toml index 861d6cab..56d3828c 100644 --- a/intro/mqtt/exercise/Cargo.toml +++ b/intro/mqtt/exercise/Cargo.toml @@ -35,4 +35,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"} diff --git a/intro/mqtt/solution/Cargo.toml b/intro/mqtt/solution/Cargo.toml index 861d6cab..56d3828c 100644 --- a/intro/mqtt/solution/Cargo.toml +++ b/intro/mqtt/solution/Cargo.toml @@ -35,4 +35,4 @@ embuild = "0.28" anyhow = "1" [patch.crates-io] -riscv = { git = "https://github.com/rust-embedded/riscv", branch = "master"} +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "396fb9b"}