Skip to content

ESP32 OneWire ROM Scan Incomplete

DodaTech Updated 2026-06-26 1 min read

In this tutorial, you'll learn about ESP32 OneWire ROM Scan Incomplete. We cover key concepts, practical examples, and best practices.

The Problem

ESP32 OneWire ROM search does not find all connected devices on the bus.

Quick Fix

Wrong

OneWire oneWire(4);
DeviceAddress addr;
oneWire.search(addr);
Only 1 of 3 connected sensors found. Subsequent scans return false.
OneWire oneWire(4);
DeviceAddress addr;
oneWire.reset_search();
int count = 0;
while (oneWire.search(addr)) {
  Serial.printf("Device %d: ", ++count);
  for (int i = 0; i < 8; i++) {
    Serial.printf("%02X ", addr[i]);
  }
  Serial.println();
  if (OneWire::crc8(addr, 7) != addr[7]) {
    Serial.println("  CRC ERROR - skipping");
    continue;
  }
}
Serial.printf("Total: %d devices\n", count);
Device 1: 28 AA BB CC DD EE FF 01
Device 2: 28 11 22 33 44 55 66 02
Total: 2 devices

Prevention

Call reset_search() before each scan loop. Check address CRC after each search. Ensure adequate pull-up resistor. Handle long bus with 100nF cap on Vdd. Reduce bus length if scan is incomplete.

DodaTech engineers apply these same patterns across Doda Browser, DodaZIP, and Durga Antivirus Pro for production IoT reliability.

FAQ

### How many OneWire devices can I connect?

Standard bus supports up to 75 devices. Practical limit is about 20 due to timing constraints and stray capacitance.

Why does ROM scan find different devices each time?

Unstable pull-up power, electrical noise, or marginal timing. Add a stronger pull-up (2.2K) and a 100nF decoupling capacitor near each sensor.

What does a 0xFF FF FF FF FF FF FF FF address mean?

No device found. The bus may be shorted, unpowered, or pull-up resistor is missing.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro