From 618bb9b8f4e6477bf4c143bf16780c5276b2f05e Mon Sep 17 00:00:00 2001 From: Oprea Radu-Gabriel Date: Sun, 26 Apr 2026 22:59:49 +0300 Subject: [PATCH 1/4] documentation --- .../2026/radu_gabriel.oprea/diagram.webp | Bin 0 -> 8852 bytes .../project/2026/radu_gabriel.oprea/index.md | 76 ++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/diagram.webp create mode 100644 website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md diff --git a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/diagram.webp b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/diagram.webp new file mode 100644 index 0000000000000000000000000000000000000000..03fadb56ee0f397ce3c7536a4be042a1575eb9ba GIT binary patch literal 8852 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 literal 0 HcmV?d00001 diff --git a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md new file mode 100644 index 00000000000..dff041d01ff --- /dev/null +++ b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md @@ -0,0 +1,76 @@ +# ESP32 Ukulele Tuner (Rust) +A real-time ukulele tuner using ESP32 and Rust with visual feedback on a TFT display. + +:::info + +**Author**: Oprea Radu - Gabriel \ +**GitHub Project Link**: https://github.com/UPB-PMRust-Students/fils-project-2026-Radur12 + +::: + +## Description + +A simple real-time ukulele tuner that captures audio using a digital microphone, detects pitch, and displays tuning accuracy (flat, sharp, or correct) on a TFT screen. + +## Motivation + +This project was chosen to explore embedded systems programming with Rust, real-time audio processing, and hardware interfacing. It combines signal processing with a practical and interactive use case (musical instrument tuning), making it both educational and useful. + +## Architecture + +### Main components: + +Audio Input Module (INMP441 microphone) +Signal Processing Module (pitch detection using FFT) +Control Unit (ESP32 microcontroller) +Output Interface (TFT display) + +### Connections: + +The microphone captures sound via I2S and sends it to the ESP32. +The ESP32 processes the signal to detect frequency (pitch detection). +The detected pitch is compared with standard ukulele tuning values (G4, C4, E4, A4). +Results are sent to the TFT display, showing whether the note is flat, sharp, or in tune. + +### System Data Flow + +![Diagram](./diagram.webp) + +## Log + +### Week 5 - 11 May + +Initial project setup, component selection, and environment configuration for Rust on ESP32. + +### Week 12 - 18 May + +Implemented audio capture via I2S and basic signal processing (FFT). + +### Week 19 - 25 May + +Integrated display output and completed pitch detection logic with visual feedback. + +## Hardware +ESP32 DevKit1 (ESP-WROOM-32) +INMP441 I2S Digital Microphone +1.3” TFT Display (ST7789, 240x240) + +### Schematics + +KiCAD schematics will be added here as soon as it's done. + +## Bill of Materials +Device Usage Price +ESP32 DevKit1 Main microcontroller 42 RON +INMP441 I2S Microphone Audio input for pitch detection 20 RON +1.3” TFT Display (ST7789) Displays tuning feedback 40 RON + +## Software +Library Description Usage +embedded-hal Hardware abstraction layer Used for interfacing with ESP32 peripherals +microfft / rustfft FFT libraries Used for pitch detection +embedded-graphics 2D graphics library Used for drawing to the display +esp_idf_hal::i2s I2S module Used for audio input processing +espup ESP Rust tooling Used for setting up and building the project + +## Links \ No newline at end of file From 5859aadbb88e71e99e2c36b19f0235030c3da60e Mon Sep 17 00:00:00 2001 From: Oprea Radu-Gabriel Date: Wed, 29 Apr 2026 23:07:59 +0300 Subject: [PATCH 2/4] added table formating from table and links --- .../project/2026/radu_gabriel.oprea/index.md | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md index dff041d01ff..786a4b281fb 100644 --- a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md @@ -59,18 +59,30 @@ INMP441 I2S Digital Microphone KiCAD schematics will be added here as soon as it's done. -## Bill of Materials -Device Usage Price -ESP32 DevKit1 Main microcontroller 42 RON -INMP441 I2S Microphone Audio input for pitch detection 20 RON -1.3” TFT Display (ST7789) Displays tuning feedback 40 RON +### Bill of Materials + +| Device | Usage | Price | +|--------|--------|-------| +| [ESP32 DevKit V1](https://sigmanortec.ro/placa-dezvoltare-esp32-cu-wifi-si-bluetooth?SubmitCurrency=1&id_currency=2&srsltid=AfmBOoqsWrsP--au7FCZ8bSrXUsl5neEnXNTZ6X_o2jJOZFMJI9ANC0hGgE) | Main microcontroller | [42 RON](https://sigmanortec.ro/placa-dezvoltare-esp32-cu-wifi-si-bluetooth?SubmitCurrency=1&id_currency=2&srsltid=AfmBOoqsWrsP--au7FCZ8bSrXUsl5neEnXNTZ6X_o2jJOZFMJI9ANC0hGgE) | +| [INMP441 I2S Microphone](https://www.optimusdigital.ro/en/others/12548-inmp441-mems-high-precision-omnidirectional-microphone-module-i2s.html?srsltid=AfmBOoorwAe9erzXWIhca8h9l2gHLA-k6hmzWy75FjUOStzRLvaQ1qG6) | Audio input for pitch detection | [20 RON](https://www.optimusdigital.ro/en/others/12548-inmp441-mems-high-precision-omnidirectional-microphone-module-i2s.html?srsltid=AfmBOoorwAe9erzXWIhca8h9l2gHLA-k6hmzWy75FjUOStzRLvaQ1qG6) | +| [1.3” TFT Display (ST7789)](https://sigmanortec.ro/display-tft-13-ips-spi-65k-culori-lcd-st7789v-240x240-7p) | Displays tuning feedback | [31 RON](https://sigmanortec.ro/display-tft-13-ips-spi-65k-culori-lcd-st7789v-240x240-7p) | + +--- ## Software -Library Description Usage -embedded-hal Hardware abstraction layer Used for interfacing with ESP32 peripherals -microfft / rustfft FFT libraries Used for pitch detection -embedded-graphics 2D graphics library Used for drawing to the display -esp_idf_hal::i2s I2S module Used for audio input processing -espup ESP Rust tooling Used for setting up and building the project - -## Links \ No newline at end of file + +| Library | Description | Usage | +|---------|-------------|-------| +| [embedded-hal](https://github.com/rust-embedded/embedded-hal) | Hardware abstraction layer | Used for interfacing with ESP32 peripherals | +| [rustfft](https://github.com/ejmahler/RustFFT) | FFT libraries | Used for pitch detection | +| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Used for drawing to the display | +| [esp-idf-hal](https://github.com/esp-rs/esp-idf-hal) | I2S module | Used for audio input processing | +| [espup](https://github.com/esp-rs/espup) | ESP Rust tooling | Used for setting up and building the project | + +--- + +## Links + +1. [ESP32 INMP441 - audio](https://github.com/ZioTester/ESP32-MMB-MAX98357A-INMP441-audio) +2. [embedded-graphics examples](https://github.com/embedded-graphics/embedded-graphics/tree/master) +3. [rustfft documentation](https://github.com/ejmahler/RustFFT) \ No newline at end of file From 96e75b7e6a66188d0c560fe941b08ff6928e55d9 Mon Sep 17 00:00:00 2001 From: Oprea Radu-Gabriel Date: Sun, 10 May 2026 23:59:11 +0300 Subject: [PATCH 3/4] Added kicad schematic and changed the LCD --- .../project/2026/radu_gabriel.oprea/index.md | 6 +- .../project/2026/radu_gabriel.oprea/kicad.svg | 20656 ++++++++++++++++ 2 files changed, 20659 insertions(+), 3 deletions(-) create mode 100644 website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/kicad.svg diff --git a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md index 786a4b281fb..e324b1e4320 100644 --- a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md @@ -53,11 +53,11 @@ Integrated display output and completed pitch detection logic with visual feedba ## Hardware ESP32 DevKit1 (ESP-WROOM-32) INMP441 I2S Digital Microphone -1.3” TFT Display (ST7789, 240x240) +1.44" SPI LCD Module with ST7735 Controller (128x128 px) ### Schematics -KiCAD schematics will be added here as soon as it's done. +![Kicad](kicad.svg) ### Bill of Materials @@ -65,7 +65,7 @@ KiCAD schematics will be added here as soon as it's done. |--------|--------|-------| | [ESP32 DevKit V1](https://sigmanortec.ro/placa-dezvoltare-esp32-cu-wifi-si-bluetooth?SubmitCurrency=1&id_currency=2&srsltid=AfmBOoqsWrsP--au7FCZ8bSrXUsl5neEnXNTZ6X_o2jJOZFMJI9ANC0hGgE) | Main microcontroller | [42 RON](https://sigmanortec.ro/placa-dezvoltare-esp32-cu-wifi-si-bluetooth?SubmitCurrency=1&id_currency=2&srsltid=AfmBOoqsWrsP--au7FCZ8bSrXUsl5neEnXNTZ6X_o2jJOZFMJI9ANC0hGgE) | | [INMP441 I2S Microphone](https://www.optimusdigital.ro/en/others/12548-inmp441-mems-high-precision-omnidirectional-microphone-module-i2s.html?srsltid=AfmBOoorwAe9erzXWIhca8h9l2gHLA-k6hmzWy75FjUOStzRLvaQ1qG6) | Audio input for pitch detection | [20 RON](https://www.optimusdigital.ro/en/others/12548-inmp441-mems-high-precision-omnidirectional-microphone-module-i2s.html?srsltid=AfmBOoorwAe9erzXWIhca8h9l2gHLA-k6hmzWy75FjUOStzRLvaQ1qG6) | -| [1.3” TFT Display (ST7789)](https://sigmanortec.ro/display-tft-13-ips-spi-65k-culori-lcd-st7789v-240x240-7p) | Displays tuning feedback | [31 RON](https://sigmanortec.ro/display-tft-13-ips-spi-65k-culori-lcd-st7789v-240x240-7p) | +| [1.44" SPI LCD Module with ST7735 Controller (128x128 px)](https://www.optimusdigital.ro/en/lcds/3552-modul-lcd-de-144-cu-spi-i-controller-st7735-128x128-px.html) | Displays tuning feedback | [30 RON](https://www.optimusdigital.ro/en/lcds/3552-modul-lcd-de-144-cu-spi-i-controller-st7735-128x128-px.html) | --- diff --git a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/kicad.svg b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/kicad.svg new file mode 100644 index 00000000000..b48804ed2d0 --- /dev/null +++ b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/kicad.svg @@ -0,0 +1,20656 @@ + + + +SVG Image created as Oprea_Radu-Gabriel.svg date 2026/05/10 17:40:11 + Image generated by Eeschema-SVG + + + + + + + + + + + +1 +1 + + + + + +2 +2 + + + + + + + + + + +3 +3 + + + + + + + + + + + + + +4 +4 + + + +5 +5 + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + +2 +2 + + + + + + + + + + +3 +3 + + + + + + + + + + + + + +4 +4 + + + +5 +5 + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + +A +A + + + +B +B + + + + + + + + + + + + + + + + + + +C +C + + + + + + + + + + + + + + + +D +D + + + + + + + + + + + + + + + +A +A + + + +B +B + + + + + + + + + + + + + + + + + + +C +C + + + + + + + + + + + + + + + +D +D + + + + + + + + + + + + +Date: +Date: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +KiCad E.D.A. 8.0.2 +KiCad E.D.A. 8.0.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rev: +Rev: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Size: A4 +Size: A4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Id: 1/1 +Id: 1/1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Title: +Title: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +File: Oprea_Radu-Gabriel.kicad_sch +File: Oprea_Radu-Gabriel.kicad_sch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Sheet: / +Sheet: / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PWM +PWM + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + ++ ++ + + + + +2 +2 + + + + + + + + + + + + + + + +- +- + + + +3 +3 + + + + + + + + + + + + + + + +M1 +M1 + + + + + + + + + +Motor Servo SG90 +Motor Servo SG90 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + +J1 +J1 + + + + + + + + + + +INMP441_1 +INMP441_1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3V3 +3V3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-1 +J2-1 + + + + + + + + + + + + + + + + + + + + + + + + + + +IO26 +IO26 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-10 +J2-10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO27 +IO27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-11 +J2-11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO14 +IO14 + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-12 +J2-12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO12 +IO12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-13 +J2-13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND1 +GND1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-14 +J2-14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO13 +IO13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-15 +J2-15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SD2 +SD2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-16 +J2-16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SD3 +SD3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-17 +J2-17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CMD +CMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-18 +J2-18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EXT_5V +EXT_5V + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-19 +J2-19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EN +EN + + + + + + + + + +J2-2 +J2-2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SENSOR_VP +SENSOR_VP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-3 +J2-3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SENSOR_VN +SENSOR_VN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-4 +J2-4 + + + + + + + + + + + + + + + + + + + + + + + + +IO34 +IO34 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-5 +J2-5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO35 +IO35 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-6 +J2-6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO32 +IO32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-7 +J2-7 + + + + + + + + + + + + + + + + + + + + + + + +IO33 +IO33 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-8 +J2-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO25 +IO25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2-9 +J2-9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND3 +GND3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-1 +J3-1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO5 +IO5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-10 +J3-10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO17 +IO17 + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-11 +J3-11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO16 +IO16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-12 +J3-12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO4 +IO4 + + + + + + + + + + + + + + + + + + + + + + +J3-13 +J3-13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO0 +IO0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-14 +J3-14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO2 +IO2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-15 +J3-15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO15 +IO15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-16 +J3-16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SD1 +SD1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-17 +J3-17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SD0 +SD0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-18 +J3-18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CLK +CLK + + + + + + + + + + + + + + + + + + + + + + +J3-19 +J3-19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO23 +IO23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-2 +J3-2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO22 +IO22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-3 +J3-3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +TXD0 +TXD0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-4 +J3-4 + + + + + + + + + + + + + + + + + + + + + + + + + + + +RXD0 +RXD0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-5 +J3-5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO21 +IO21 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-6 +J3-6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND2 +GND2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-7 +J3-7 + + + + + + + + + + + + + + + + + + + + + + + + + + +IO19 +IO19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-8 +J3-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IO18 +IO18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3-9 +J3-9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +U1 +U1 + + + + + + + + + + + + + + +ESP32-DEVKIT +ESP32-DEVKIT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + + + + +5 +5 + + + + + + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + + + +7 +7 + + + + + + + +8 +8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J4 +J4 + + + + + + + + +LCD ST7735 +LCD ST7735 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + +J2 +J2 + + + + + + + + + + + + + + + +INMP441_2 +INMP441_2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + +BZ1 +BZ1 + + + + + + + + + + + + + + + + + + + + + + + + + + +Buzzer +Buzzer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_CS +LCD_CS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +INMP441_L/R +INMP441_L/R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5V +5V + + + + + + + + + + + + + + + + + + + + +INMP441_WS +INMP441_WS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +INMP441_L/R +INMP441_L/R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SERVO +SERVO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_SDA +LCD_SDA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_DC +LCD_DC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_RES +LCD_RES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_SCK +LCD_SCK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_BLK +LCD_BLK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3V +3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +INMP441_SD +INMP441_SD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_RES +LCD_RES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_BLK +LCD_BLK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_DC +LCD_DC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_CS +LCD_CS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3V +3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +INMP441_SD +INMP441_SD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +INMP441_WS +INMP441_WS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +BUZZ +BUZZ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +INMP441_SCK +INMP441_SCK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_SCK +LCD_SCK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3.3V +3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +BUZZ +BUZZ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +LCD_SDA +LCD_SDA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +INMP441_SCK +INMP441_SCK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SERVO +SERVO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5V +5V + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 85c1cbc7df02f95d0112edfb2daa25e84259aec6 Mon Sep 17 00:00:00 2001 From: Oprea Radu-Gabriel Date: Thu, 28 May 2026 21:11:51 +0300 Subject: [PATCH 4/4] Update --- .../project/2026/radu_gabriel.oprea/index.md | 29 +- .../project/2026/radu_gabriel.oprea/kicad.svg | 10886 ++++++++-------- 2 files changed, 5315 insertions(+), 5600 deletions(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md index e324b1e4320..d98c653108a 100644 --- a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/index.md @@ -21,9 +21,11 @@ This project was chosen to explore embedded systems programming with Rust, real- ### Main components: Audio Input Module (INMP441 microphone) -Signal Processing Module (pitch detection using FFT) +Signal Processing Module (YIN pitch detection) Control Unit (ESP32 microcontroller) Output Interface (TFT display) +Actuator Module (DS04-NFC continuous rotation servo) +Audio Feedback Module (3.3V passive buzzer) ### Connections: @@ -31,6 +33,8 @@ The microphone captures sound via I2S and sends it to the ESP32. The ESP32 processes the signal to detect frequency (pitch detection). The detected pitch is compared with standard ukulele tuning values (G4, C4, E4, A4). Results are sent to the TFT display, showing whether the note is flat, sharp, or in tune. +If the detected string is flat or sharp, the ESP32 drives the DS04-NFC continuous rotation servo to tighten or loosen the string. +When the string is in tune, the passive buzzer provides a short audio confirmation. ### System Data Flow @@ -51,9 +55,14 @@ Implemented audio capture via I2S and basic signal processing (FFT). Integrated display output and completed pitch detection logic with visual feedback. ## Hardware + ESP32 DevKit1 (ESP-WROOM-32) INMP441 I2S Digital Microphone 1.44" SPI LCD Module with ST7735 Controller (128x128 px) +DS04-NFC Continous Rotation Servo +3.3V Passive Buzzer +SYB-170 Colored Mini Breadboard +30 cm 40p Male-Female Wires ### Schematics @@ -66,6 +75,10 @@ INMP441 I2S Digital Microphone | [ESP32 DevKit V1](https://sigmanortec.ro/placa-dezvoltare-esp32-cu-wifi-si-bluetooth?SubmitCurrency=1&id_currency=2&srsltid=AfmBOoqsWrsP--au7FCZ8bSrXUsl5neEnXNTZ6X_o2jJOZFMJI9ANC0hGgE) | Main microcontroller | [42 RON](https://sigmanortec.ro/placa-dezvoltare-esp32-cu-wifi-si-bluetooth?SubmitCurrency=1&id_currency=2&srsltid=AfmBOoqsWrsP--au7FCZ8bSrXUsl5neEnXNTZ6X_o2jJOZFMJI9ANC0hGgE) | | [INMP441 I2S Microphone](https://www.optimusdigital.ro/en/others/12548-inmp441-mems-high-precision-omnidirectional-microphone-module-i2s.html?srsltid=AfmBOoorwAe9erzXWIhca8h9l2gHLA-k6hmzWy75FjUOStzRLvaQ1qG6) | Audio input for pitch detection | [20 RON](https://www.optimusdigital.ro/en/others/12548-inmp441-mems-high-precision-omnidirectional-microphone-module-i2s.html?srsltid=AfmBOoorwAe9erzXWIhca8h9l2gHLA-k6hmzWy75FjUOStzRLvaQ1qG6) | | [1.44" SPI LCD Module with ST7735 Controller (128x128 px)](https://www.optimusdigital.ro/en/lcds/3552-modul-lcd-de-144-cu-spi-i-controller-st7735-128x128-px.html) | Displays tuning feedback | [30 RON](https://www.optimusdigital.ro/en/lcds/3552-modul-lcd-de-144-cu-spi-i-controller-st7735-128x128-px.html) | +| [DS04-NFC Continous Rotation Servo](https://www.optimusdigital.ro/en/servomotors/1161-ds04-nfc-continous-rotation-servo.html?search_query=servo&results=171) | Mechanically tightens or loosens the ukulele string | [40 RON](https://www.optimusdigital.ro/en/servomotors/1161-ds04-nfc-continous-rotation-servo.html?search_query=servo&results=171) | +| [3.3V Passive Buzzer](https://www.optimusdigital.ro/en/buzzers/12247-3-v-or-33v-passive-buzzer.html?search_query=buzzer&results=62) | Audio feedback when the string is in tune | [1 RON](https://www.optimusdigital.ro/en/buzzers/12247-3-v-or-33v-passive-buzzer.html?search_query=buzzer&results=62) | +| [SYB-170 Colored Mini Breadboard](https://www.optimusdigital.ro/en/breadboards/244-white-mini-breadboard.html?search_query=breadboard&results=194) | Prototyping board for connecting the modules | [2 RON](https://www.optimusdigital.ro/en/breadboards/244-white-mini-breadboard.html?search_query=breadboard&results=194) | +| [30 cm 40p Male-Female Wires](https://www.optimusdigital.ro/en/wires-with-connectors/878-set-fire-mama-tata-40p-30-cm.html?search_query=wires&results=429) | Jumper wires for connecting the ESP32, display, microphone, buzzer, and servo | [10 RON](https://www.optimusdigital.ro/en/wires-with-connectors/878-set-fire-mama-tata-40p-30-cm.html?search_query=wires&results=429) | --- @@ -73,11 +86,13 @@ INMP441 I2S Digital Microphone | Library | Description | Usage | |---------|-------------|-------| -| [embedded-hal](https://github.com/rust-embedded/embedded-hal) | Hardware abstraction layer | Used for interfacing with ESP32 peripherals | -| [rustfft](https://github.com/ejmahler/RustFFT) | FFT libraries | Used for pitch detection | -| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Used for drawing to the display | -| [esp-idf-hal](https://github.com/esp-rs/esp-idf-hal) | I2S module | Used for audio input processing | -| [espup](https://github.com/esp-rs/espup) | ESP Rust tooling | Used for setting up and building the project | +| [esp-idf-svc](https://github.com/esp-rs/esp-idf-svc) | ESP-IDF bindings and services for Rust | Used for GPIO, SPI, I2S, LEDC/PWM, delays, and logging | +| [embedded-hal](https://github.com/rust-embedded/embedded-hal) | Hardware abstraction traits | Used for SPI and GPIO traits in the ST7735 display driver | +| [anyhow](https://github.com/dtolnay/anyhow) | Error handling library | Used to simplify error propagation across hardware initialization and runtime logic | +| [log](https://github.com/rust-lang/log) | Logging facade | Used for serial debug messages during pitch detection | +| [embassy-time](https://github.com/embassy-rs/embassy) | Embedded timing support | Provides the generic time queue required by the ESP-IDF service features | +| [espup](https://github.com/esp-rs/espup) | ESP Rust tooling | Used for installing and configuring the Rust toolchain for ESP32 | +| [espflash](https://github.com/esp-rs/espflash) | ESP flashing tool | Used to upload the compiled firmware to the ESP32 | --- @@ -85,4 +100,4 @@ INMP441 I2S Digital Microphone 1. [ESP32 INMP441 - audio](https://github.com/ZioTester/ESP32-MMB-MAX98357A-INMP441-audio) 2. [embedded-graphics examples](https://github.com/embedded-graphics/embedded-graphics/tree/master) -3. [rustfft documentation](https://github.com/ejmahler/RustFFT) \ No newline at end of file +3. [rustfft documentation](https://github.com/ejmahler/RustFFT) diff --git a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/kicad.svg b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/kicad.svg index b48804ed2d0..335dd4abd41 100644 --- a/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/kicad.svg +++ b/website/versioned_docs/version-fils_en/project/2026/radu_gabriel.oprea/kicad.svg @@ -7,7 +7,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="297.0022mm" height="210.0072mm" viewBox="0.0000 0.0000 297.0022 210.0072"> -SVG Image created as Oprea_Radu-Gabriel.svg date 2026/05/10 17:40:11 +SVG Image created as Oprea_Radu-Gabriel.svg date 2026/05/16 16:52:34 Image generated by Eeschema-SVG - - - - - - - - + + + + + + + -PWM PWM - - - - - - - - - - - - - - - - - - -1 1 - - - - - - -+ + - - -2 2 - - - - - - - - - - - -- - - -3 3 - - - - - - - - - - - - - -M1 M1 - - - - - - - - - -Motor Servo SG90 -Motor Servo SG90 -DS04-NFC +DS04-NFC + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - +1 +1 + - - - - - + - +2 +2 + - - - - - - - - - - + - +3 +3 + - - - - - - - - - - - - - +J2 +J2 + - - - - - - - - - - - - - - -INMP441_2 +INMP441_2 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - -1 1 - - - - - - -2 2 - - - - - - - - - - - -3 3 - - - - - - - - - - - - - -J1 J1 - - - - - - - - - - -INMP441_1 INMP441_1 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + +BZ1 +BZ1 + + + + + + + + + + + + + + + + + + + + + + + + + + +Buzzer +Buzzer + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -13660,6973 +14019,6314 @@ L99.2112 70.4295 - - - - - - - - + + + + + + + + - -1 1 - - - - - - -2 2 - - - - - - - - - - - -3 3 - - - - - - - - - - - - - - -4 4 - - - - -5 5 - - - - - - - - - - - - - - - - -6 6 - - - - - - - - - - - - - - - - - - - - - - -7 7 - - - -8 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -J4 J4 - - - - - - - - -LCD ST7735 LCD ST7735 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + -INMP441_SCK +INMP441_SCK + - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - -J2 -J2 - - - - - - - - - - - - - - - -INMP441_2 -INMP441_2 - - - - - - - - - - - - - - - - - - - - - - - - + + +5V +5V + - - - - - - - - - - - - - - - - - - - - - - - +d="M 72.3900,121.9200 +71.2787,120.6496 +67.6465,120.6496 +67.6465,121.9200 +67.6465,123.1904 +71.2787,123.1904 +Z" /> -1 -1 -SERVO +SERVO + - - - - - - - - - -2 -2 - - - - - - - - - - - - -BZ1 -BZ1 - - - - - - - - - - - - - - - - - - - - - - - - - - -Buzzer -Buzzer - - - - - - - - - - - + + +INMP441_WS +INMP441_WS + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LCD_CS -LCD_CS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -INMP441_L/R -INMP441_L/R - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -5V -5V - - - - - - - - - - - - - - - - - - - - -INMP441_WS -INMP441_WS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -INMP441_L/R -INMP441_L/R - - - - - - - - - - - - +3.3V +3.3V + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SERVO -SERVO - - - - - - - - - - - - - - - - - - - - - - -INMP441_SD +INMP441_SD + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LCD_SDA -LCD_SDA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +BUZZ +BUZZ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LCD_DC -LCD_DC - - - - - - -GND +GND + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +LCD_SDA +LCD_SDA + - - - - - - - - - - - - - - - - - - - - - - -LCD_RES -LCD_RES - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +LCD_BLK +LCD_BLK + - - - - - - - - - - - - - - - - - - - - - - -LCD_SCK -LCD_SCK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +LCD_DC +LCD_DC + - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - -LCD_BLK -LCD_BLK - - - - - - - - - - - - - - - - - - - - - + + +LCD_CS +LCD_CS + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.3V -3.3V -LCD_RES +LCD_RES + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -INMP441_SD -INMP441_SD -LCD_SCK +LCD_SCK + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LCD_RES -LCD_RES - - - - - - - -LCD_DC +LCD_DC + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LCD_BLK -LCD_BLK -LCD_SDA +LCD_SDA + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + -LCD_DC -LCD_DC -LCD_CS +LCD_CS + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + -LCD_CS -LCD_CS -LCD_RES +LCD_RES + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.3V -3.3V -LCD_BLK +LCD_BLK + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -INMP441_SD -INMP441_SD - - - - - - - - - - - - - - - - - - - - - + + +INMP441_L/R +INMP441_L/R + - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - + -INMP441_WS INMP441_WS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BUZZ -BUZZ -INMP441_L/R +INMP441_L/R + - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - -INMP441_SCK -INMP441_SCK -5V +5V + - - - - - - - - - - - - - - - - - + + +GND +GND + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +SERVO +SERVO + - - - - - - - - - - - - - - - - - - - - - -LCD_SCK -LCD_SCK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +INMP441_SCK +INMP441_SCK + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.3V -3.3V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND +text-anchor="start" opacity="0">GND GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BUZZ -BUZZ - - - - +INMP441_SD +INMP441_SD + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LCD_SDA -LCD_SDA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +3.3V +3.3V + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -INMP441_SCK -INMP441_SCK -LCD_SCK +LCD_SCK + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SERVO -SERVO -3.3V +3.3V + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +GND +GND + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + -5V -5V -GND +GND + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + -GND -GND -BUZZ +BUZZ + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - -