Generated by All in One SEO v5.0.1.1, this is an llms.txt file, used by LLMs to index the site. # Hacker Embedded Master Embedded Systems. Build the Future. ## Sitemaps - [XML Sitemap](https://hackerembedded.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [STM32 DWT Cycle Counter Measure Firmware Performance](https://hackerembedded.com/stm32-dwt-cycle-counter-measure-firmware-performance/) - Learn how to use the Arm Cortex-M DWT unit to profile STM32 C functions, DSP algorithms, and AI inference directly in CPU cycles without external hardware. - [STM32 TinyML Lab 3: Human Activity Recognition Using Accelerometer and Gyroscope](https://hackerembedded.com/stm32-tinyml-lab-3-human-activity-recognition-using-accelerometer-and-gyroscope/) - Learn how to build a Human Activity Recognition (HAR) system on STM32 microcontrollers using accelerometer and gyroscope data. Train, optimize, and deploy real-time TinyML models on-device for ultra-low power motion classification. - [STM32 TinyML Lab 4: Keyword Spotting with Hugging Face and a MEMS Microphone](https://hackerembedded.com/stm32-tinyml-lab-4-keyword-spotting-with-hugging-face-and-a-mems-microphone/) - Build an on-device Keyword Spotting (KWS) system on STM32 microcontrollers with MEMS microphones and Hugging Face models. Learn audio sampling, feature extraction, and optimized TinyML deployment for real-time voice recognition. - [Asymmetric Keys with STM32 and ECDSA](https://hackerembedded.com/asymmetric-keys-with-stm32-and-ecdsa/) - Asymmetric cryptography for embedded systems, with a focus on public/private key pairs, digital signatures, and ECDSA on STM32. - [How to use printf with Zephyr and STM32](https://hackerembedded.com/how-to-use-printf-with-zephyr-and-stm32/) - How to use printf with Zephyr and STM32 - [How to use a push button with Zephyr and STM32](https://hackerembedded.com/how-to-use-a-push-button-with-zephyr-and-stm32/) - How to use a push button with Zephyr and STM32 - [How to create your own Zephyr application with STM32](https://hackerembedded.com/how-to-create-your-own-zephyr-application-with-stm32/) - How to create your own Zephyr application with STM32 - [STM32: How to use SPI Full-Duplex Master + Slave with Interrupt & DMA](https://hackerembedded.com/stm32-how-to-use-spi-full-duplex-master-slave-with-interrupt-dma/) - Learn how to configure STM32 SPI1 in full-duplex master mode and SPI2 as slave, using interrupt for reception and DMA for transmission. Step-by-step HAL example included. - [Getting Started with Zephyr and STM32](https://hackerembedded.com/getting-started-with-zephyr-and-stm32/) - Getting started with Zephyr and STM32 - [CMAKE Preset and Optimization Levels in VS Code with STM32CubeIDE Extension](https://hackerembedded.com/cmake-preset-and-optimization-levels-in-vs-code-with-stm32cubeide-extension/) - Learn how to change the build CMAKE Preset and optimization in VS Code with STM32CubeIDE extension. - [How to Debug STM32 in VS Code](https://hackerembedded.com/how-to-debug-stm32-in-vs-code/) - Learn how to debug STM32 in VS Code with STM32CubeIDE extension. - [STM32: How to create a Project with VS Code and STM32CubeIDE extension](https://hackerembedded.com/stm32-how-to-create-a-project-with-vs-code-and-stm32cubeide-extension/) - Learn how to create a project using VS Code and STM32CubeIDE extension from scratch. - [Cryptography on STM32 Implementing Secure Embedded Systems with STM32U0](https://hackerembedded.com/cryptography-on-stm32-implementing-secure-embedded-systems-with-stm32u0/) - Cryptography on STM32U0 explained: learn AES-CBC encryption, hashing, MAC, and digital signatures using X-CUBE-CRYPTOLIB to build secure embedded systems. - [How to Implement the ST Open Bootloader Middleware for STM32 Updates](https://hackerembedded.com/how-to-implement-the-st-open-bootloader-middleware-for-stm32-updates/) - Learn to implement the ST Open Bootloader for STM32G071 using stm32-mw-openbl. Master AN3155 UART protocol, Flash programming, and the jump to application code. - [How to Make the Jump Between a Custom Bootloader and Application](https://hackerembedded.com/how-to-make-the-jump-between-a-custom-bootloader-and-application/) - Learn how to make the jump between a custom bootloader and application. Covering the linker script and vector offset change - [How to implement printf with STM32: Setup for STM32CubeIDE and VS Code](https://hackerembedded.com/how-to-implement-printf-with-stm32-setup-for-stm32cubeide-and-vs-code/) - Learn how to enable printf functionality in STM32CubeIDE and VS Code. Use UART to output debug messages for embedded STM32 projects. - [STM32 Audio Configuring MEMS Microphones with MDF](https://hackerembedded.com/stm32-audio-configuring-mems-microphones-with-mdf/) - Learn to interface MEMS microphones with STM32U5 using the MDF peripheral. Discover PDM vs PCM, Sinc filters, and Sound Activity Detection (SAD) configuration. - [STM32U5 Audio prep for AI: Implementing Real-Time Mel-Spectrograms with CMSIS-DSP](https://hackerembedded.com/stm32u5-audio-prep-for-ai-implementing-real-time-mel-spectrograms-with-cmsis-dsp/) - Learn to implement Audio prep for AI using Mel-spectrograms on STM32U5 using CMSIS-DSP lib, and UART streaming for real-time AI audio feature verification. - [Baby Steps into TinyML: Your First Embedded AI Project on STM32](https://hackerembedded.com/baby-steps-into-tinyml-your-first-embedded-ai-project-on-stm32/) - Learn TinyML on STM32! Deploy a neural network to predict sine waves using X-CUBE-AI. A beginner's guide to embedded AI deployment on ARM Cortex-M. (154 characters) - [How to Build a Simple Audio Player with STM32](https://hackerembedded.com/how-to-build-a-simple-audio-player-with-stm32/) - Build an audio player with STM32N6-DK and WM8904 & SAI1. Learn to convert MP4 to WAV, manage PCM buffers, and implement DMA-based playback for voice prompts. - [ESP32: How to control SG90 Servo Motor via WebSocket](https://hackerembedded.com/esp32-how-to-control-sg90-servo-motor-via-websocket/) - Build a real-time SG90 Servo Motor using the ESP32 and WebSockets. Learn to create a persistent web interface, high-precision 0-180 angle positioning. - [How to play video STM32](https://hackerembedded.com/how-to-play-video-stm32/) - How to play video STM32, convert MP4 to MJPEG AVI for STM32N6 using FFmpeg. Optimize resolution for high-performance MCU media playback. - [How to do Code Execution in SRAM](https://hackerembedded.com/how-to-do-code-execution-in-sram/) - Learn how to execute code from SRAM in STM32 using GCC and STM32CubeIDE. Improve performance, reduce power, and enable concurrent Flash operations effectively. - [How to implement a STM32 Keyboard USBX](https://hackerembedded.com/how-to-implement-a-stm32-keyboard-usbx/) - Learn to use an STM32H5 as a USB HID keyboard with the USBX stack. This guide covers STM32CubeIDE setup, ThreadX configuration, and firmware code. STM32 Keyboard USBX - [How does the STM32 System Bootloader works](https://hackerembedded.com/how-does-the-stm32-system-bootloader-works/) - Learn STM32 System Bootloader via AN2606. Explore memory mapping, activation patterns, and the AN3155 serial protocol using STM32CubeProgrammer. - [STM32 FreeRTOS Mutex: Protecting Resources](https://hackerembedded.com/stm32-freertos-mutex-protecting-resources/) - Learn how to use STM32 FreeRTOS Mutex to prevent race conditions and manage shared resources between tasks safely - [STM32 NVIC: Master Interrupt Priorities](https://hackerembedded.com/stm32-nvic-master-interrupt-priorities/) - Lean STM32 NVIC interrupt management and how to configure preemption priorities, sub-priorities, and hardware features with practical HAL examples. - [Arduino: How to use KY-012 Active Buzzer Module](https://hackerembedded.com/arduino-how-to-use-ky-012-active-buzzer-module/) - Learn how to use the KY-012 Active Buzzer Module with Arduino. This module contains an internal oscillator, allowing it to generate a loud, fixed-frequency tone - [FreeRTOS Semaphore: Synchronization and Resource Management](https://hackerembedded.com/freertos-semaphore-synchronization-and-resource-management/) - Master FreeRTOS semaphores on STM32. Learn the difference between Binary and Counting semaphores, task synchronization, and monitor resources using CubeIDE. - [FreeRTOS Queues: Master Inter-Task Communication on STM32](https://hackerembedded.com/freertos-queues-master-inter-task-communication-on-stm32/) - Learn how to use FreeRTOS queues on STM32 to send and receive data between tasks safely. - [FreeRTOS Heap Methods and Tasks STM32 Tutorial](https://hackerembedded.com/freertos-heap-methods-and-tasks-stm32-tutorial/) - Learn how to create FreeRTOS tasks on STM32 and manage memory using different heap allocation methods. Understand task priorities, stacks, and scheduling. - [TinyML Lab: Simple MLP + PCA for STM32 TinyML Deployment with X-Cube-AI Cloud](https://hackerembedded.com/tinyml-lab-simple-mlp-pca-for-stm32-tinyml-deployment-with-x-cube-ai-cloud/) - Learn PCA dimensionality reduction for STM32 TinyML. Optimize models using Python/scikit-learn & Iris data. Deploy with TFlite & X-Cube-AI. - [TinyML Lab: Simple MLP for STM32 TinyML Deployment with X-Cube-AI](https://hackerembedded.com/tinyml-lab-simple-mlp-for-stm32-tinyml-deployment-with-x-cube-ai/) - Train and deploy a simple 4-feature MLP for STM32 TinyML with IRIS dataset. Use Python/scikit-learn & Iris data. Deploy with ONNX/TFlite & X-Cube-AI. - [How to Program External Memories via STM32CubeProgrammer CLI](https://hackerembedded.com/how-to-program-external-memories-via-stm32cubeprogrammer-cli/) - Automate STM32 external memory programming. Learn the STM32CubeProgrammer CLI commands External Loader for fast, reliable, and batch firmware deployment. - [STM32 RDP Regression via firmware](https://hackerembedded.com/stm32-rdp-regression-via-firmware/) - Learn how to configure STM32 Read Protection (RDP), verify its effect, and perform regression testing to ensure secure firmware operation. - [Raspberry Pi Pico: Dual-core Synchronization and Booting M33 and RISC-V cores](https://hackerembedded.com/raspberry-pi-pico-dual-core-synchronization-and-booting-m33-and-risc-v-cores/) - Deep dive into RP2350 bare-metal boot. Implement custom linker scripts to satisfy Secure Bootrom metadata and synchronize M33/RISC-V cores using atomic IPC. - [STM32: How to use the STM32 Comparator](https://hackerembedded.com/stm32-how-to-use-the-stm32-comparator/) - Learn how to configure and use the STM32 Comparator (COMP) peripheral with HAL. Quick guide for analog signal threshold detection, event triggering, and more. - [TinyML Lab 2: Deploying Human Activity Recognition with X-CUBE-AI](https://hackerembedded.com/tinyml-lab-2-deploying-human-activity-recognition-with-x-cube-ai/) - Master the STM32 X-CUBE-AI compiler. Deploy a CNN model for Human Activity Recognition (HAR) onto the STM32, leaning more about embedded AI. - [TinyML Lab 1: Deploying Sine Prediction with TensorFlow Lite Micro](https://hackerembedded.com/tinyml-lab-1-deploying-sine-prediction-with-tensorflow-lite-micro/) - Hands-on TinyML deployment guide. Learn model quantization in Python and deploy a sine wave predictor using TensorFlow Lite Micro with Arduino IDE. - [TinyML & AIoT Introduction: Ecosystems, Workflow, and Tools](https://hackerembedded.com/tinyml-aiot-introduction-ecosystems-workflow-and-tools/) - Understand the basics of TinyML and AIoT. Learn why moving AI to the edge is crucial for IoT and explore the top tools: Edge Impulse, X-CUBE-AI, and CMSIS-NN - [STM32: How to use RCC Clock Tree & MCO](https://hackerembedded.com/stm32-how-to-use-rcc-clock-tree-mco/) - Learn how to configure the STM32 system clock tree and output clocks via MCO (Microcontroller Clock Output) using HAL. Hands-on demonstration included. - [STM32: How to use RCC and Software Reset](https://hackerembedded.com/stm32-how-to-use-rcc-and-software-reset/) - Learn about STM32 reset sources, how the RCC handles resets, and how to trigger a software reset using HAL. Hands-on example included. - [STM32: How to use Timer Input Capture](https://hackerembedded.com/stm32-how-to-use-timer-input-capture/) - Learn how to configure STM32 timers for input capture using HAL. Measure signal frequency, period, and pulse width with hands-on example. - [STM32: How to use Timer Output Compare](https://hackerembedded.com/stm32-how-to-use-timer-output-compare/) - Learn how to configure STM32 timers in Output Compare mode using HAL. Generate precise pulses, delays, and PWM signals with hands-on examples. - [How to implement scanf() with STM32 Blocking and Non-Blocking Input](https://hackerembedded.com/how-to-implement-scanf-with-stm32-blocking-and-non-blocking-input/) - Learn how to implement scanf in STM32 projects using HAL. Handle UART input in blocking and non-blocking modes for real-time applications. - [STM32: Understanding ADC Oversampling, Averaging, and Noise Reduction](https://hackerembedded.com/stm32-understanding-adc-oversampling-averaging-and-noise-reduction/) - Learn how to implement ADC oversampling, averaging, and noise reduction on STM32 using HAL. Step-by-step guide for high-precision analog measurements. - [STM32: How to implement ADC Interrupts and Multi-Channel Sequencing](https://hackerembedded.com/stm32-how-to-implement-adc-interrupts-and-multi-channel-sequencing/) - Learn how to configure STM32 ADC with interrupts and multi-channel sequencing using HAL. Step-by-step guide for efficient analog data acquisition and processing. - [STM32: How to implement ADC Triggered by Timer](https://hackerembedded.com/stm32-how-to-implement-adc-triggered-by-timer/) - Learn how to trigger STM32 ADC conversions using timers for precise periodic sampling. Step-by-step HAL guide for real-time embedded systems. - [STM32: How to implement a Closed-Loop DAC and ADC](https://hackerembedded.com/stm32-how-to-implement-a-closed-loop-dac-and-adc/) - Learn how to implement closed-loop control on STM32 using DAC and ADC with HAL. Step-by-step guide for real-time analog feedback systems. - [STM32: How to use DAC](https://hackerembedded.com/stm32-how-to-use-dac/) - Learn how to configure and use the STM32 DAC with HAL and CubeMX. Step-by-step guide for analog signal generation, waveform output, and peripheral interfacing. - [STM32: How to use LPUART in STOP Mode Tutorial](https://hackerembedded.com/stm32-how-to-use-lpuart-in-stop-mode-tutorial/) - Learn how to use STM32 LPUART (Low-Power UART) in STOP mode with HAL and CubeMX. Step-by-step guide for ultra-low-power serial communication. - [STM32: How to use the Low Power Modes](https://hackerembedded.com/how-to-use-the-stm32-low-power-modes/) - Learn how to use STM32 low power modes with HAL and CubeMX to reduce energy consumption. Step-by-step guide for Sleep, Stop, and Standby modes in embedded systems. - [STM32: How to use RTC and Backup Registers Tutorial](https://hackerembedded.com/stm32-how-to-use-rtc-and-backup-registers-tutorial/) - Learn how to use the STM32 RTC (Real-Time Clock) and Backup Registers with HAL and CubeMX for timekeeping, alarms, and low-power applications. - [STM32: How to handle HardFault](https://hackerembedded.com/stm32-how-to-handle-hardfault/) - Learn how to handle STM32 faults including HardFault, BusFault, UsageFault, and Memory Management Fault using HAL. - [STM32: How to use Watchdogs IWDG and WWDG](https://hackerembedded.com/stm32-how-to-use-watchdogs-iwdg-and-wwdg/) - Learn how to use Independent Watchdog (IWDG) and Window Watchdog (WWDG) on STM32 using CubeMX and HAL. Step-by-step guide to prevent system hang-ups and crashes - [STM32: FLASH ECC and CRC for STM32 Flash Integrity](https://hackerembedded.com/stm32-flash-ecc-and-crc-for-stm32-flash-integrity/) - Learn how to use FLASH ECC and CRC on STM32 to verify the integrity of flash memory data. Used for safe storage of firmware, calibration data, and configuration. - [STM32: CRC (Cyclic Redundancy Check) on STM32](https://hackerembedded.com/stm32-crc-cyclic-redundancy-check-on-stm32/) - Learn how to use the CRC peripheral on STM32 using CubeMX and HAL drivers. Step-by-step guide to verify data integrity for communication, memory, or sensor data - [STM32: Internal Temperature Sensor with DMA](https://hackerembedded.com/stm32-internal-temperature-sensor-with-dma/) - Learn how to use STM32 DMA to read ADC values, including the internal temperature sensor. One ADC channel will be used to update PWM output. - [STM32: Interrupt-Driven ADC to PWM Control](https://hackerembedded.com/stm32-interrupt-driven-adc-to-pwm-control/) - Learn how to use STM32 timer interrupts to read ADC values and update PWM output. Step-by-step guide for responsive sensor-to-actuator control using HAL. - [STM32: PWM Control Using ADC](https://hackerembedded.com/stm32-pwm-control-using-adc/) - Learn how to use STM32 ADC input to control PWM output using CubeMX and HAL drivers. Step-by-step guide for controlling elements based on analog sensors. - [STM32: How to use I2C Communication](https://hackerembedded.com/stm32-how-to-use-i2c-communication/) - Learn how to configure I2C communication on STM32 using CubeMX and HAL drivers. - [STM32: How to use SPI Communication](https://hackerembedded.com/stm32-how-to-use-spi-communication/) - Learn how to configure SPI communication on STM32 using CubeMX and HAL drivers. Step-by-step guide to use SPI in polling, IT and DMA modes. - [STM32: How to use ADC on STM32](https://hackerembedded.com/stm32-how-to-use-adc-on-stm32/) - Learn how to configure ADC (Analog-to-Digital Converter) on STM32 using CubeMX and HAL drivers. Step-by-step guide to read analog sensors and channels to display values via UART or LEDs. - [ESP32: How to create a Keypad Interface and Web Server](https://hackerembedded.com/esp32-how-to-create-a-keypad-interface-and-web-server/) - This tutorial demonstrates how to interface a standard 4×3 Matrix Keypad with the ESP32 and display the pressed digits on a web page - [ESP32: How to create a Web Server to control RGB LED](https://hackerembedded.com/esp32-how-to-create-a-web-server-to-control-rgb-led/) - ESP32 RGB LED control using PWM and Web Server sliders. Set color/brightness remotely via an HTML dashboard. - [ESP32: How to create an Over-The-Air (OTA) Web Update](https://hackerembedded.com/esp32-how-to-create-an-over-the-air-ota-web-update/) - ESP32 Over-The-Air (OTA) firmware update guide. Use Update.h and WebServer.h to create a minimal HTML file upload form. Safely flash new firmware (.bin) over Wi-Fi. - [ESP32: How to use Bluetooth Low Energy (BLE) Server Communication](https://hackerembedded.com/esp32-how-to-use-bluetooth-low-energy-ble-server-communication/) - ESP32 BLE Server. Set up a Bluetooth Low Energy device using the GATT architecture (Services & Characteristics). Enable data exchange with smartphone apps. - [ESP32: How to create a Web Server to control the KY-019 Relay Module](https://hackerembedded.com/esp32-how-to-create-a-web-server-to-control-the-ky-019-relay-module/) - ESP32 Web Server controls a KY-019 Relay Module. Create a remote switch dashboard using HTTP GET requests. Master IoT remote control for high-power devices. - [ESP32: How to create a Web Server to control a 16x2 LCD Display](https://hackerembedded.com/esp32-how-to-create-a-web-server-to-control-a-16x2-lcd-display/) - ESP32 Web Server controls a 16x2 LCD (HD44780) using 4-bit parallel. Input text via a browser's HTML form to instantly display remote messages on the screen. - [ESP32: How to create a Web dashboard for the HTS221](https://hackerembedded.com/esp32-how-to-create-a-web-dashboard-for-the-hts221/) - ESP32 HTS221 Web Dashboard. Interface the HTS221 temp/humidity sensor using I2C. Display live, auto-refreshing sensor readings on a web server. - [ESP32: How to use Wi-Fi Scan, Select, and Connect Interactive Terminal](https://hackerembedded.com/esp32-how-to-use-wi-fi-scan-select-and-connect-interactive-terminal/) - This ESP32 tutorial guides you through creating a dynamic, interactive Wi-Fi setup using the Serial Monitor that allows your ESP32 to scan for nearby networks. - [ESP32: How to display PNG images from FLASH memory in a WebServer](https://hackerembedded.com/esp32-how-to-display-png-images-from-flash-memory-in-a-webserver/) - This tutorial explains how to serve a PNG image directly from the ESP32's Flash Memory (specifically, the program memory, not the filesystem) via a web server. - [ESP32: How to change and set the Wi-Fi MAC Address](https://hackerembedded.com/esp32-how-to-change-and-set-the-wi-fi-mac-address/) - This tutorial shows how to programmatically retrieve the default Wi-Fi MAC address and how to permanently set a custom, user-defined ESP32 MAC address - [Raspberry Pi Pico: How to Read a Push Button](https://hackerembedded.com/raspberry-pi-pico-how-to-read-a-push-button/) - Learn how to use GPIO with Raspberry Pi Pico to read a push button - [ESP32: How to create a Infrared Remote Control Webserver](https://hackerembedded.com/esp32-how-to-create-a-infrared-remote-control-webserver/) - Build an ESP32 Infrared Remote Webserver using the KY-005 module and the IRremote library. Turn your smartphone into a virtual remote control for any IR device - [ESP32: How to use the I2C Communication](https://hackerembedded.com/esp32-how-to-use-the-i2c-communication/) - Learn how to set up ESP32 I2C communication as a Master. Master SDA/SCL wiring, pull-up resistors, and use the Wire library to find device addresses. - [ESP32: How to use the Low Power Modes](https://hackerembedded.com/esp32-how-to-use-the-low-power-modes/) - ESP32 low power modes to maximize battery life. Learn the difference between Deep Sleep (μA), Light Sleep, and Hibernation, and how to use the RTC for wakeups. - [ESP32: How to use the EEPROM Library for Flash Storage](https://hackerembedded.com/esp32-how-to-use-eeprom-emulation-library-for-flash-storage/) - Learn how to use the Arduino EEPROM library on the ESP32 to emulate non-volatile storage. Master EEPROM.commit(), .put(), and .get() for persistent data (NVS). - [ESP32: How to use the Flash memory to store data permanently](https://hackerembedded.com/esp32-how-to-use-the-flash-memory-to-store-data-permanently/) - Learn how to use ESP32 Flash Memory for persistent data storage. Focus on the Preferences library and the NVS module in the Arduino environment. - [ESP32: How to change CPU clock speed](https://hackerembedded.com/esp32-how-to-change-cpu-clock-speed/) - The ESP32 clock speed can be dynamically changed to optimize for either data processing or low-power. This tutorial shows how to switch the CPU clock speed. - [ESP32: How to use DAC to generate true analog signals](https://hackerembedded.com/esp32-how-to-use-dac-to-generate-true-analog-signals/) - This tutorial details the ESP32 dual 8-bit DAC channels and demonstrates their use for generating simple voltage outputs and basic audio signals - [ESP32: How to use Hall Effect Sensor with the Internal Magnetic Field Sensing](https://hackerembedded.com/esp32-how-to-use-hall-effect-sensor-with-the-internal-magnetic-field-sensing/) - Learn how to use the ESP32 microcontroller features a unique built-in Hall Effect Sensor located internally on the silicon chip. - [Arduino: How to use KY-039 Heartbeat Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-039-heartbeat-sensor-module/) - Learn how to use the KY-039 Heartbeat Sensor with Arduino. It measures the change in blood volume under the skin using a technique called PPG. - [Arduino: How to use KY-040 Rotary Encoder Module](https://hackerembedded.com/arduino-how-to-use-ky-040-rotary-encoder-module/) - Learn how to use the KY-040 Rotary Encoder with Arduino. It converts angular position into digital pulses, allowing for control of menus, volume and more. - [Arduino: How to use KY-038 Sound Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-038-sound-sensor-module/) - Learn how to use the KY-038 Sound Sensor with Arduino. It uses a microphone to detect sound and provides two outputs: one for events and one for sound intensity - [Arduino: How to use KY-037 High Sensitivity Sound Detection Module](https://hackerembedded.com/arduino-how-to-use-ky-037-high-sensitivity-sound-detection-module/) - Learn how to use the KY-037 High Sensitivity Sound Detection Module with Arduino. This module, an enhanced version of the KY-038, is designed to detect fainter sounds. - [Arduino: How to use KY-036 Metal Touch Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-036-metal-touch-sensor-module/) - Learn how to use the KY-036 Metal Touch Sensor with Arduino. It detects touch by measuring the change in electrical conductivity when a material makes contact. - [Arduino: How to use KY-035 Analog Hall Magnetic Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-035-analog-hall-magnetic-sensor-module/) - Learn how to use the KY-035 Analog Hall Magnetic Sensor with Arduino. This sensor outputs a variable analog voltage proportional to the magnetic field strength. - [Arduino: How to use KY-034 Automatic Flashing Color LED](https://hackerembedded.com/arduino-how-to-use-ky-034-automatic-flashing-color-led/) - Learn how to use the KY-034 Automatic Flashing Color LED with Arduino. It contains an IC that makes the LED cycle through various colors and flash patterns - [Arduino: How to use KY-033 Line Tracking Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-033-line-tracking-sensor-module/) - Learn how to use the KY-033 Line Tracking Sensor with Arduino. This sensor is used for line-following robots, using an IR light source and a phototransistor. - [Arduino: How to use KY-032 Infrared Obstacle Avoidance Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-032-infrared-obstacle-avoidance-sensor-module/) - Learn how to use the KY-032 Infrared Obstacle Avoidance Sensor with Arduino. This module is a crucial component in robotics for non-contact object detection. - [Arduino: How to use KY-031 Knock Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-031-knock-sensor-module/) - Learn how to configure Arduino digital input pins to interface with the KY-031 Knock Sensor Module. - [Arduino: How to use KY-029 Dual Color LED Module](https://hackerembedded.com/arduino-how-to-use-ky-029-dual-color-led-module/) - Learn how to use the KY-029 Dual Color LED Module with Arduino. This module contains a single component and adjusting the PWM, a third color can be achieved. - [Arduino: How to use KY-028 Digital Temperature Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-028-digital-temperature-sensor-module/) - Learn how to use the KY-028 Digital Temperature Sensor Module with Arduino. It combines an NTC thermistor with a comparator circuit. - [Arduino: How to use KY-027 Magic Light Cup Module](https://hackerembedded.com/arduino-how-to-use-ky-027-magic-light-cup-module/) - Learn how to use the KY-027 Magic Light Cup Module with Arduino. This unusual module combines a mercury-free tilt switch with a high-brightness LED. - [Arduino: How to use KY-026 Flame Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-026-flame-sensor-module/) - Learn how to use the KY-026 Flame Sensor Module with Arduino. This module is an essential safety component that detects infrared (IR) light emitted by a flame. - [Arduino: How to use KY-025 Reed Switch Module](https://hackerembedded.com/arduino-how-to-use-ky-025-reed-switch-module/) - Learn how to use the KY-025 Reed Switch with Arduino. It is a dual-output sensor providing digital ON/OFF and a raw analog based on the proximity of a magnet. - [Arduino: How to use KY-024 Linear Magnetic Hall Module](https://hackerembedded.com/arduino-how-to-use-ky-024-linear-magnetic-hall-module/) - Learn how to use the KY-024 Linear Magnetic Hall Module with Arduino. This module provides both a raw analog voltage (A0) and a digital ON/OFF signal (D0). - [Arduino: How to use KY-023 Dual Axis Joystick Module](https://hackerembedded.com/arduino-how-to-use-ky-023-dual-axis-joystick-module/) - Learn how to use the KY-023 Dual Axis Joystick with Arduino. This control has: two analog outputs for the X and Y axes and one digital output for the Z-axis. - [Arduino: How to use KY-022 Infrared Receiver Module](https://hackerembedded.com/arduino-how-to-use-ky-022-infrared-receiver-module/) - Learn how to use the KY-022 Infrared Receiver Module with Arduino. This module detects the pulsed 38kHz IR light signals emitted by standard remote controls. - [Arduino: How to use KY-021 Mini Magnetic Reed Switch Module](https://hackerembedded.com/arduino-how-to-use-ky-021-mini-magnetic-reed-switch-module/) - Learn how to use the KY-021 Mini Magnetic Reed Switch Module with Arduino. This module contains a magnetically actuated digital switch that closes its internal contacts when a nearby magnetic field is detected. - [Arduino: How to use KY-020 Tilt Switch Module](https://hackerembedded.com/arduino-how-to-use-ky-020-tilt-switch-module/) - Learn how to use the KY-020 Tilt Switch Module, a module containing a mercury-free conductive ball switch. - [Arduino: How to use KY-019 5V Relay Module](https://hackerembedded.com/arduino-how-to-use-ky-019-5v-relay-module/) - Learn how to use the KY-019 5V Relay Module with Arduino. A relay is an electrically operated switch that allows an Arduino to control an AC or DC circuit. - [Arduino: How to use KY-018 Photoresistor](https://hackerembedded.com/arduino-how-to-use-ky-018-photoresistor/) - Learn how to read analog input from the KY-018 Photoresistor Module using an Arduino Uno and display the raw light intensity values on the Serial Monitor. - [Arduino: How to use KY-017 Mercury Tilt Switch Module](https://hackerembedded.com/arduino-how-to-use-ky-017-mercury-tilt-switch-module/) - Learn how to use the KY-017 Mercury Tilt Switch Module. This module contains a glass bulb with a small amount of mercury that changes when tilted. - [Arduino: How to use KY-016 RGB Full Color LED Module](https://hackerembedded.com/arduino-how-to-use-ky-016-rgb-full-color-led-module/) - Learn how to use Pulse Width Modulation (PWM) with Arduino digital output pins to interface with the KY-016 RGB Full Color LED Module. - [Arduino: How to use KY-015 Temperature and Humidity Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-015-temperature-and-humidity-sensor-module/) - Learn how to use the KY-015 Temperature and Humidity Sensor Module with Arduino. This module typically integrates a DHT11 or similar sensor. - [Arduino: How to use KY-013 Analog Temperature Sensor](https://hackerembedded.com/arduino-how-to-use-ky-013-analog-temperature-sensor/) - Learn how to use the KY-013 Analog Temperature Sensor Module (which uses a Thermistor) with Arduino. This is the first deep dive into Analog usage. - [Arduino: How to use KY-011 Two-Color LED Module](https://hackerembedded.com/arduino-how-to-use-ky-011-two-color-led-module/) - This tutorial focuses on controlling the KY-011 Two-Color LED Module using Arduino. Learn how to use PWM to achieve color mixing - [Raspberry Pi Pico: How to Blink an LED](https://hackerembedded.com/raspberry-pi-pico-how-to-blink-an-led/) - Learn how to use GPIO with Raspberry Pi Pico to blink an LED - [Arduino: How to use KY-009 RGB Full Color LED Module](https://hackerembedded.com/arduino-how-to-use-ky-009-rgb-full-color-led-module/) - Learn how to use Pulse Width Modulation (PWM) with Arduino digital output pins to interface with the KY-009 RGB Full Color LED SMD Module. - [Arduino: How to use KY-010 Photo Interrupter Module](https://hackerembedded.com/arduino-how-to-use-ky-010-photo-interrupter-module/) - Learn how to use the KY-010 Photo Interrupter. This module is a non-contact switch that detects when an opaque object passes between its emitter and detector. - [Arduino: How to use KY-008 Laser Transmitter Module](https://hackerembedded.com/arduino-how-to-use-ky-008-laser-transmitter-module/) - Learn how to use the KY-008 Laser Transmitter Module with Arduino. This module contains a small laser diode that emits a focused beam of visible red light. - [Arduino: How to use KY-006 Passive Buzzer Module](https://hackerembedded.com/arduino-how-to-use-ky-006-passive-buzzer-module/) - Learn how to generate sound tones using the KY-006 Passive Buzzer Module with an Arduino Uno. This tutorial introduces the concept of PWM for audio generation. - [Arduino: How to use KY-005 Infrared Transmitter Module](https://hackerembedded.com/arduino-how-to-use-ky-005-infrared-transmitter-module/) - Learn how to use the KY-005 Infrared Transmitter Module with Arduino to send digital signals via infrared light. - [Arduino: How to use KY-001 Temperature Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-001-temperature-sensor-module/) - Learn how to use the KY-001 Temperature Sensor Module with Arduino. - [Arduino: How to use KY-002 Vibration Switch Module](https://hackerembedded.com/arduino-how-to-use-ky-002-vibration-switch-module/) - Learn how to configure Arduino digital input pins to interface with the KY-002 Vibration Switch Module. - [Arduino: How to use KY-003 Hall Magnetic Sensor Module](https://hackerembedded.com/arduino-how-to-use-ky-003-hall-magnetic-sensor-module/) - Learn how to use the KY-003 Hall Magnetic Sensor Module with Arduino. This module utilizes the Hall Effect to detect the presence of a magnetic field. - [Arduino: How to use KY-004 Key Switch Module](https://hackerembedded.com/arduino-how-to-use-ky-004-key-switch-module/) - Learn how to use the KY-004 Key Switch Module, which is essentially a push button on a breakout board. - [ESP32: How to use Timers and Timer Interrupts](https://hackerembedded.com/esp32-how-to-use-timers-and-timer-interrupts/) - Learn how to use timers and timer interrupt with ESP32 - [ESP32: How to use External Interrupt Pin](https://hackerembedded.com/esp32-how-to-use-external-interrupt-pin/) - Learn how to use event and external interrupt pins with ESP32 - [ESP32: How to use PWM](https://hackerembedded.com/esp32-how-to-use-pwm/) - Learn how to use PWM with ESP32 to perform duty cycle control - [ESP32: How to use ADC for Basic Analog Reading](https://hackerembedded.com/esp32-how-to-use-adc-for-basic-analog-reading/) - Learn how to use ADC with ESP32 to perform basic analog readings - [ESP32: How to use GPIO (Inputs/Outputs) Basic Digital Control](https://hackerembedded.com/esp32-gpio-inputs-outputs-basic-digital-control/) - Learn how to use GPIO pins, the primary interface between the ESP32 microcontroller and the external world, as Input and Output - [ESP32: How to use Serial Print and Debugging](https://hackerembedded.com/esp32-how-to-use-serial-print-and-debugging-with-serial-communication/) - Learn how to use the ESP32 serial port with printf, which can be used for debugging and communication - [ESP32: Getting Started with Arduino IDE](https://hackerembedded.com/esp32-getting-started-with-arduino-ide/) - Learn how to use the ESP32 Core with the Arduino IDE. This guide provides an intro to ESP32, compares it to other platforms and development boards. - [STM32: How to use GPIO Input & Button-Controlled LED](https://hackerembedded.com/stm32-how-to-use-gpio-input-button-controlled-led/) - Learn how to configure STM32 GPIO input pins using CubeMX and HAL drivers. Step-by-step tutorial on controlling an LED with a push button and handling debouncing. - [STM32: How to use UART Communication](https://hackerembedded.com/stm32-how-to-use-uart-communication/) - Learn how to configure USART / UART communication on STM32 using CubeMX and HAL drivers. Step-by-step guide to send and receive data with interrupts and DMA. - [STM32: How to use Timers and PWM](https://hackerembedded.com/stm32-how-to-use-timers-and-pwm/) - Learn how to configure STM32 hardware timers using CubeMX and HAL drivers. Step-by-step tutorial for generating periodic interrupts and PWM signals to control LEDs or motors. - [STM32: How to use GPIO and blink LED](https://hackerembedded.com/stm32-how-to-use-gpio-and-blink-led/) - Learn how to create your first STM32 project using STM32CubeMX and HAL drivers. Step-by-step guide to configure GPIO pins and blink an LED using STM32CubeIDE. - [STM32: How to use External Interrupts (EXTI)](https://hackerembedded.com/stm32-how-to-use-external-interrupts/) - Learn how to use STM32 external interrupts (EXTI) with HAL drivers to handle buttons in real-time. Step-by-step guide for interrupt-driven LED control. ## Pages - [Home](https://hackerembedded.com/) - For students, engineers, and schools who feel paralyzed by the complexity of embedded systems technology - [Contact](https://hackerembedded.com/contact/) - Contact Customer Service contact@hackerembedded.com Hacker Embedded Headquarter 123 Demo St, Miami, FL 45678, United States. Send us a message Send News Tips Find more tips at our linkedin page> https://www.linkedin.com/company/hacker-embedded/ Advertising & Sponsorships Reach out for more details! Be a Guest Author Want to be an Author? Send us an email wiht the title guest-author - [Privacy Policy](https://hackerembedded.com/privacy-policy/) - Who we are Our website address is: http://hackerembedded.com. Comments When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection. An anonymized string created from your email address (also called a hash) may be provided - [For Mastery](https://hackerembedded.com/for-mastery/) - For Mastery Search Search Arduino ESP32 Raspberry Pi Pico STM32 Initializing the Mastery Repository You have reached our highest tier. We are actively building this library of elite-level engineering challenges and architectural deep dives. New complex studies are added to the repository every week.Commit to excellence. Subscribe to get the next update. Subscribe Now Arduino - [For Advanced](https://hackerembedded.com/for-advanced/) - For Advanced Search Search Arduino ESP32 Raspberry Pi Pico STM32 Compiling Advanced Modules... We are currently finalizing the code and schematics for our most challenging projects. High-level content takes precision, and we are preparing new in-depth tutorials to be released every week.Don’t miss a deploy. Subscribe to get notified. Subscribe Now Arduino Arduino Arduino: How - [For Intermediates](https://hackerembedded.com/for-intermediates/) - For Intermediates Search Search Arduino ESP32 Raspberry Pi Pico STM32 Arduino Arduino Arduino: How to use KY-001 Temperature Sensor Module Arduino Arduino: How to use KY-002 Vibration Switch Module Arduino Arduino: How to use KY-003 Hall Magnetic Sensor Module Arduino Arduino: How to use KY-004 Key Switch Module 1 2 3 … 5 Next » - [Newsletter](https://hackerembedded.com/newsletter/) - The Hacker Embedded Newsletter Your weekly source for Embedded Systems, IoT, and Edge AI mastery. Stop searching for scattered tutorials. Our mission is to bring the most practical, tested, and advanced knowledge directly to your inbox. Whether you work with Arduino, STM32, ESP32, or are diving into Embedded AI, we provide the code, the schematics, - [Subscribed Successfully!](https://hackerembedded.com/newsletter/subscribed-successfully/) - Newsletter Subscribed Successfully! 😁 Your weekly source for Embedded Systems, IoT, and Edge AI mastery. Stop searching for scattered tutorials. Our mission is to bring the most practical, tested, and advanced knowledge directly to your inbox. Whether you work with Arduino, STM32, ESP32, or are diving into Embedded AI, we provide the code, the schematics, - [Editors Pick](https://hackerembedded.com/editors-pick/) - Editor’s Pick Search Search Arduino Artificial Intelligence ESP32 Raspberry Pi Pico STM32 Arduino Arduino Arduino: How to use KY-001 Temperature Sensor Module Arduino Arduino: How to use KY-002 Vibration Switch Module Arduino Arduino: How to use KY-003 Hall Magnetic Sensor Module Arduino Arduino: How to use KY-004 Key Switch Module 1 2 3 … 5 - [For Beginners](https://hackerembedded.com/for-beginners/) - For Beginners Search Search Arduino ESP32 Raspberry Pi Pico STM32 Arduino Arduino Arduino: How to use KY-001 Temperature Sensor Module Arduino Arduino: How to use KY-002 Vibration Switch Module Arduino Arduino: How to use KY-003 Hall Magnetic Sensor Module Arduino Arduino: How to use KY-004 Key Switch Module 1 2 3 … 5 Next » - [About](https://hackerembedded.com/about/) - About Us At Hacker Embedded, we know you want to master embedded systems technology to bring your projects to life.The problem is that the lack of a clear, reliable learning path leaves you paralyzed by technical questions and stuck with outdated tutorials, which makes you feel frustrated, insecure, and always a step behind.We believe you ## Categories - [STM32](https://hackerembedded.com/category/stm32/) - Learn STM32 from zero to mastery. Step-by-step tutorials using CubeMX, HAL and LL covering GPIO, UART, timers, EXTI, DMA, I²C/SPI, ADC, low-power and RTOS—with code you can ship. - [ESP32](https://hackerembedded.com/category/esp32/) - Learn ESP32 the practical way. We cover networking (Wi-Fi, BLE), sensors and peripherals, asynchronous programming, OTA updates, FreeRTOS, power optimization, and production-ready code. - [Arduino](https://hackerembedded.com/category/arduino/) - Learn Arduino the practical way. From basics to real projects with sensors, motors, displays, serial, PWM, I²C/SPI, interrupts, and robust C/C++ code. - [Artificial Intelligence](https://hackerembedded.com/category/artificial-intelligence/) - Learn how to implement Artificial Intelligence in embedded systems. From neural networks and edge AI to image, audio, and sensor data processing with microcontrollers. - [Arduino_Beginner](https://hackerembedded.com/category/arduino/beginner/) - [ESP32_Beginner](https://hackerembedded.com/category/esp32/beginner-esp32/) - [ESP32_Intermediate](https://hackerembedded.com/category/esp32/intermediate-esp32/) - [ESP32_Mastery](https://hackerembedded.com/category/esp32/mastery-esp32/) - [STM32_Beginner](https://hackerembedded.com/category/stm32/beginner-stm32/) - [STM32_Intermediate](https://hackerembedded.com/category/stm32/intermediate-stm32/) - [STM32_Advanced](https://hackerembedded.com/category/stm32/advanced-stm32/) - [STM32_Mastery](https://hackerembedded.com/category/stm32/mastery-stm32/) - [Sensors](https://hackerembedded.com/category/artificial-intelligence/sensors/) - [Audio](https://hackerembedded.com/category/artificial-intelligence/audio/) - [Raspberry Pi Pico](https://hackerembedded.com/category/raspberry-pi-pico/) - Learn Raspberry Pi Pico and RP2040 from scratch. Step-by-step tutorials using C/C++ SDK and MicroPython—GPIO, UART, SPI, I²C, PWM, ADC, interrupts, and real embedded projects. - [Raspberry_Beginner](https://hackerembedded.com/category/raspberry-pi-pico/beginner-raspberry-pi-pico/) - [Raspberry_Intermediate](https://hackerembedded.com/category/raspberry-pi-pico/intermediate-raspberry-pi-pico/) - [Zephyr](https://hackerembedded.com/category/zephyr/) ## Tags - [GPIO](https://hackerembedded.com/tag/gpio/) - [external interrupts (EXTI)](https://hackerembedded.com/tag/external-interrupts-exti/) - [HAL drivers](https://hackerembedded.com/tag/hal-drivers/) - [interrupt-driven](https://hackerembedded.com/tag/interrupt-driven/) - [LED control](https://hackerembedded.com/tag/led-control/) - [hardware timers](https://hackerembedded.com/tag/hardware-timers/) - [CubeMX](https://hackerembedded.com/tag/cubemx/) - [periodic interrupts](https://hackerembedded.com/tag/periodic-interrupts/) - [PWM signals](https://hackerembedded.com/tag/pwm-signals/) - [control LEDs](https://hackerembedded.com/tag/control-leds/) - [control motors](https://hackerembedded.com/tag/control-motors/) - [UART Communication](https://hackerembedded.com/tag/uart-communication/) - [USART communication](https://hackerembedded.com/tag/usart-communication/) - [interrupts](https://hackerembedded.com/tag/interrupts/) - [DMA](https://hackerembedded.com/tag/dma/) - [I2C](https://hackerembedded.com/tag/i2c/) - [ESP32](https://hackerembedded.com/tag/esp32/) - [Arduino IDE](https://hackerembedded.com/tag/arduino-ide/) - [ADC](https://hackerembedded.com/tag/adc/) - [Raspberry](https://hackerembedded.com/tag/raspberry/) - [Arduino](https://hackerembedded.com/tag/arduino/) - [Single-Wire](https://hackerembedded.com/tag/single-wire/) - [DAC](https://hackerembedded.com/tag/dac/) - [Clock](https://hackerembedded.com/tag/clock/) - [FLASH](https://hackerembedded.com/tag/flash/) - [Low Power Mode](https://hackerembedded.com/tag/low-power-mode/) - [WebServer](https://hackerembedded.com/tag/webserver/) - [LCD](https://hackerembedded.com/tag/lcd/) - [BLE](https://hackerembedded.com/tag/ble/) - [OTA](https://hackerembedded.com/tag/ota/) - [SPI](https://hackerembedded.com/tag/spi/) - [CRC](https://hackerembedded.com/tag/crc/) - [IWDG](https://hackerembedded.com/tag/iwdg/) - [WWDG](https://hackerembedded.com/tag/wwdg/) - [HardFault](https://hackerembedded.com/tag/hardfault/) - [RTC](https://hackerembedded.com/tag/rtc/) - [LPUART](https://hackerembedded.com/tag/lpuart/) - [printf](https://hackerembedded.com/tag/printf/) - [scanf](https://hackerembedded.com/tag/scanf/) - [RCC](https://hackerembedded.com/tag/rcc/) - [Reset](https://hackerembedded.com/tag/reset/) - [MCO](https://hackerembedded.com/tag/mco/) - [AIoT](https://hackerembedded.com/tag/aiot/) - [TinyML](https://hackerembedded.com/tag/tinyml/) - [HAR](https://hackerembedded.com/tag/har/) - [X-CUBE-AI](https://hackerembedded.com/tag/x-cube-ai/) - [boot](https://hackerembedded.com/tag/boot/) - [dual-core](https://hackerembedded.com/tag/dual-core/) - [RDP](https://hackerembedded.com/tag/rdp/) - [Security](https://hackerembedded.com/tag/security/) - [CubeProg](https://hackerembedded.com/tag/cubeprog/) - [CLI](https://hackerembedded.com/tag/cli/) - [FreeRTOS](https://hackerembedded.com/tag/freertos/) - [USBX](https://hackerembedded.com/tag/usbx/) - [stm32](https://hackerembedded.com/tag/stm32/) - [memory](https://hackerembedded.com/tag/memory/) - [video](https://hackerembedded.com/tag/video/) - [audio](https://hackerembedded.com/tag/audio/) - [bootloader](https://hackerembedded.com/tag/bootloader/) - [VS Code](https://hackerembedded.com/tag/vs-code/) - [Zephyr](https://hackerembedded.com/tag/zephyr/)