
Confirm your Arduino or ESP programming experience, IDE preference, and GPIO pinout knowledge, then gather Arduinos, USBs, and optionally a logic analyzer, while reviewing the components list and ebook.
Explore core hardware protocols in the Arduino environment—UART, SPI, one-wire, and I2C—while differentiating them from wireless protocols. Use a logic analyzer to grasp bit basics and write libraries.
Transfer source code from Visual Studio Code with PlatformIO to the Arduino IDE to run sensor data on an ESP32.
Review the disclaimer to acknowledge possible errors and wiring mistakes that could damage parts, components, or create heat, and reflect on schematic accuracy to ensure course success.
Differentiate oscilloscope and logic analyzer use, explore features and use cases, then master bit operations in C++ on Arduino, including bit shifts, masks, and logical and/or for UART and I-squared-C.
Compare oscilloscope and logic analyzer: oscilloscope captures analog voltages over time with high detail, while the logic analyzer converts signals to 0/1 TTL levels across eight channels.
Master the bitwise or operation using the vertical bar in the Arduino environment. Combine two 8-bit values into one number through bit shifting, as shown by 10011011 equals 155.
Master bitwise shift concepts for Arduino sketches, including left and right shifts, shifting eight-bit values, combining shifted bits using OR, and using long data types.
Follow along in the practical part as you learn bit operations on an Arduino Uno, printing binary, hex, and decimal values, and combining registers with shifts and or operations.
Explore practical exercises verifying bitwise masking with x and y bytes, comparing binary, decimal and hex representations, and debugging in the Arduino environment before moving to pulse view.
Master open source software and external decoders with Python to study hardware protocols with pulse view, configure sampling rates and megahertz settings, and capture pwm data for infrared-triggered measurements.
Explore PulseView, a free and open source logic analyzer with a user friendly GUI that supports commercial use, plus access to Python decoders and GitHub plugins.
Download the required tools across Linux, Windows, and Mac OS X using installers or containers. Switch to a dark theme and access the same features across platforms for the course.
Introduce the base sketch as the universal starting point for all projects, built step by step in Visual Studio Code, using pin eight as a digital output for 300 ms.
Explore the relation between frequency and milliseconds and how to convert between milliseconds and hertz. Learn to recalculate baud rate and timing for data capture.
Master baud rate as symbols per second in serial communication; align sender and receiver speeds, recognize presets like 9600 and 115200 on ESP32 and Arduino Uno, recalculate from captured data.
Learn to produce pwm signals with arduino and inspect pwm on pins five, six, and seven using a logic analyzer, including duty cycles and esp32 analog write considerations.
Learn how to use external triggers for circuit inspection with an infrared sensor, using a logic analyzer to trigger on a low level and rising/falling edges to capture relevant data.
Explore uart theory with practical Arduino Uno and ESP32 examples, using a logic analyzer to capture data, compare software and hardware serial, and reverse engineer sensor communication for IoT.
Learn ttl logic and transistor transistor logic basics, interpret uart data frames with start bits, data bits, and stop bits, and relate timing to 9600 baud around 104 microseconds.
Learn how to send hex data from the Arduino Uno to a monitor using hardware serial, convert hex to ASCII, and replace delays with millis-based timing for non-blocking operation.
Configure the hardware serial on an ESP32 using UART2 and GPIO17 for TX, include the hardware serial library, and print hello messages to the serial monitor and Pulse View.
Demonstrates UART communication between two Arduino Uno boards by sending a debounced button press as a 'button' string, toggling an led on the receiver at 9600 baud.
Demonstrate safe interfacing between a 5V arduino uno and a 3.3V ESP32 using a logic level shifter to convert uart signals and toggle an led via serial communication.
Explore a reverse engineering approach to the Ikea Vindriktning air quality sensor, analyzing its datasheet and UART interface to capture data with ESP32 or Arduino, and build an IoT library.
Build an ESP 8266-based IoT device to read pm2,5 data from an IKEA sensor via UART, with optional BME 280 for humidity and temperature.
Explore the advantages and disadvantages of UART, including point-to-point use, limited distance and bandwidth, no built-in error detection (parity, checksums require manual handling), and its simple, widely supported nature.
Explore the one wire protocol using the DS18B20 temperature sensor and learn to write an Arduino sketch that reads temperature without external libraries.
Master the one wire protocol using 1820 sensors on a single data line with a pull-up resistor, unique addresses, and CRC checks for cheap temperature data access in Arduino.
Learn to wire a ds18b20 sensor with esp32 or arduino using the one-wire protocol, including vcc, ground, a 4.7k pull-up, and the dallas temperature library to read temperatures.
Analyze the last data frame from an ESP32 temperature sensor using a logic analyzer and one-wire decoder; derive 30.69 °C through bit-level calculation and binary-to-decimal conversion.
Wire a simple one-wire circuit for esp32 or arduino with dht11 or dht22 and resistors, then use Adafruit sensor and the dbt library to read humidity, temperature, and heat index.
Study the DHT protocol by reading the datasheet, set the data line D0, and compare DHT11 and DHT22 to spot circuit errors.
Master the spi protocol and its duplex data transfer in the Arduino environment, building a master-slave setup that sends data from one Arduino Uno to another, with a Dht22 example.
Explore SPI, the five-wire serial parallel interface with clock, MOSI, MISO, ground, and slave select, for multiple slaves; compare its full duplex to iSCSI’s two-line, half duplex approach.
Analyze BH1750 I2C communication, including start/address/ack; read high and low bytes, compute lux, and validate against the datasheet using a logic analyzer.
Read BH1750 via I2C using the Wire library without external libraries, fetch two bytes from address 0x23, combine into lux by dividing by 1.2.
Analyze the DHT20 datasheet and I2C communication at address 0x38, triggering measurements to read humidity and temperature data, then parse raw bytes into values using the shown calculations.
Create an I2C master–slave setup with two Arduino Uno boards, exchanging random data via wire, handling requests and addressing multiple slaves up to 128, with serial visualization.
Discover how an i2c multiplexer lets you run multiple devices from a single microcontroller, such as oled displays, by providing internal addresses and cascading up to seven devices.
Master practical hardware protocols for ESP32 and Arduinos by reviewing logic analyzers, bitwise operations, and serial interfaces such as UART, I2C, SPI, and one-wire.
Welcome to the video course "Analysis and use of UART, I2C, OneWire, SPI and non-standard protocols in the Arduino/ESP environment"!
In this course we dive deep into the world of communication protocols and show you how to use them effectively with Arduino and ESP microcontrollers.
This course is ideal for Arduino and ESP enthusiasts who want to expand their understanding of communication protocols to create complex projects. Whether you are an experienced developer or a beginner, this course will provide you with valuable knowledge and practical applications.
This is not a theory course. We will jump straight into practical implementation and analyse and evaluate the protocols with a logic analyser.
In the course of the course, we will mainly deal with the most important communication protocols in the Arduino environment:
UART
I2C
OneWire
SPI
We will also look at non-standard protocols that are often used in special applications. You will learn how to identify, analyse and integrate these protocols into your Arduino and ESP projects.
After the introductory chapter, we can are able to handle bit operators so that we can do our own evaluations and libraries at bit level.
We will evaluate a light sensor (BH1750), DHT20 and DHT11 as well as an Ikea air quality sensor ourselves, without any external libraries.
In this video course we will use practical examples and demonstrations to teach you how to use these protocols. You will learn how to set up serial communication between different microcontrollers, transfer data, read sensors. We will also cover common challenges and troubleshooting that can occur when using these protocols.
By the end of the course you will have a solid understanding of UART, I2C, OneWire, SPI and non-standard protocols. You will be able to use these protocols safely and effectively in your Arduino and ESP projects and significantly expand your skills as a developer.
Sign up for my video course now and dive into the fascinating world of hardware protocols with microcontrollers!