Skip to content

Archive

Embedded Systems

9 articles
Tech 19 Sep 2026 7 min read

Reliable ESP32 IR Air-Conditioner Control Needs Hysteresis and State Synchronization

An ESP32 can turn a conventional infrared air conditioner into a temperature-driven controller without modifying the AC itself. The basic signal path is simple: a room-temperature sensor feeds the ESP32, the firmware decides whether cooling is required, and an IR LED transmits the same kind of frame the handheld remote would send. The difficult part is not producing infrared light. It is keeping the control loop stable while working with an appliance whose IR protocol may encode the remote’s complete state in every transmission.

Tech 19 Sep 2026 7 min read

Raw IR Capture and Replay on ESP32 Depends on Timing, Frame Boundaries, and Carrier Frequency

An infrared receiver does not hand an ESP32 a universal “button code.” At the electrical boundary, it produces a sequence of detected carrier bursts and gaps. A raw capture represents those intervals as alternating mark and space durations, usually in microseconds. A capture such as: uint16_t rawData[] = { 3570, 1620, 554, 342, 498, 1244, 496, 378, // ... }; is therefore a waveform description. Replaying it successfully depends on preserving four things together: the timing sequence, the correct frame boundary, the modulation carrier used for marks, and enough optical output from the IR LED.

Tech 19 Sep 2026 6 min read

Infrared Sensors Measure Different Physical Effects

An infrared sensor is not a single measurement technology. “IR sensor” can describe a reflective proximity detector, a PIR motion detector, a non-contact temperature sensor, an optical encoder, or an infrared receiver. They all operate with radiation outside the visible spectrum, but the quantity being measured is different. That distinction determines what the sensor can detect, how far it can work, and which environmental conditions can produce false or weak readings.

Tech 19 Sep 2026 7 min read

Gesture-Controlled Air Conditioner with ESP32-S3 Without a Camera

A camera is unnecessary when an air-conditioner controller only needs a small vocabulary of hand motions. The useful signal is not an image of the hand; it is a directional event such as up, down, left, or right. A short-range optical gesture sensor can reduce that input to a few bytes before the ESP32-S3 sees it. That changes the embedded design substantially. There is no camera frame buffer, DVP bus, image preprocessing, or inference model competing with the LCD and infrared transmitter. The ESP32-S3 can spend its resources on the part that actually needs careful handling: keeping the intended AC state synchronized with each gesture and encoding that state into the appliance’s IR protocol.

Tech 19 Sep 2026 5 min read

ESP-IDF LCD APIs Depend on the Selected SoC Target

An ESP-IDF project can include esp_lcd_panel_io.h successfully and still fail on esp_lcd_i80_bus_config_t or esp_lcd_new_i80_bus(). That combination looks contradictory until the build target is taken into account. esp_lcd is a framework, not a promise that every ESP chip exposes every LCD transport. The selected SoC determines which low-level interfaces are compiled into the project. Panel-controller support, such as ILI9341, is another layer again. That distinction matters when moving code between ESP32 variants.

Tech 19 Sep 2026 6 min read

Driving an IR LED from an ESP-01: Current, Range, and Transistor Count

An ESP8266 ESP-01 can act as the controller for an infrared AC remote, but the GPIO should be treated as a logic source rather than as the power source for the IR LED. The useful design question is not whether the transmitter has one transistor or three. It is whether the driver can switch the required LED pulse current cleanly while preserving the carrier and protocol timing. That distinction also corrects a common assumption: a three-transistor circuit does not inherently transmit farther than a one-transistor circuit. A correctly sized single transistor or MOSFET can drive an IR LED effectively. Additional transistors only help when they perform a necessary circuit function.

Tech 19 Sep 2026 6 min read

Driving an ILI9341 SPI Display and Touch Controller from ESP32-S3

A 2.4-inch 240 × 320 TFT module built around the ILI9341 is a practical match for an ESP32-S3 because the display controller accepts a serial SPI interface. The module is not necessarily one device: a typical board can contain the ILI9341 for pixels, a separate resistive-touch controller, and sometimes a microSD socket. That distinction determines the wiring. The devices may share SPI clock and data lines, while each peripheral keeps its own chip-select signal.

Tech 19 Sep 2026 5 min read

Arduino-IRremote Raw Output: Converting Receive Timings into sendRaw() Data

Arduino-IRremote separates the representation used while receiving an infrared frame from the representation consumed by sendRaw(). The receiver records sampled durations, tracks the gap before the frame separately, and can compensate timing distortion introduced by a demodulating IR receiver. A transmitter, by contrast, expects an array that starts with the first mark and alternates mark and space durations. That boundary matters for AC remotes because their frames can be long and are frequently replayed as RAW data when no protocol-specific encoder is available.

Tech 19 Sep 2026 6 min read

An SPI microSD Slot Does Not Make an 8-Bit TFT Shield an SPI Display

A 2.8-inch Arduino-style TFT shield can place an LCD and a microSD socket on the same PCB while giving them completely different electrical interfaces. The pin labels are the quickest way to tell them apart. On the shield shown here, the LCD side exposes DB0 through DB7 together with LCD_WR, LCD_RD, LCD_RS, LCD_CS, and LCD_RST. Those are the signals of an 8-bit 8080-style parallel display interface. The labels SD_MOSI, SD_MISO, SD_SCK, and SD_SS belong to the microSD socket.