02 1WIRE - geo-tp/ESP32-Bus-Pirate GitHub Wiki

1WIRE Mode

This mode allows communication with devices using the 1-Wire protocol, such as iButtons or temperature sensors (e.g. DS18B20).
It supports basic scanning, reading, writing, and sniffing features.


🧩 Commands

Command Description
scan Detects and lists all devices found on the 1-Wire bus with their ROM IDs
ping Sends a reset pulse and checks for presence response from a device
sniff Passively monitors the data line, detecting timing patterns (reset, presence, bits)
read Reads both the ROM ID and scratchpad of a connected device
write id <8 bytes> Programs a new ROM ID to a supported device (RW1990 compatible)
write sp <8 bytes> Writes 8 bytes to the scratchpad memory (via 0x0F command)
temp Reads and decodes the temperature from a connected DS18B20 sensor
config Lets you change the data pin used for 1-Wire communication
[0xAA r:8] ... Allows sending manual 1-Wire instructions with precise control over command flow

📝 Notes

  • You can use scan to discover devices like DS18B20 or iButtons.
  • The read command shows the device's ID and scratchpad if supported.
  • The write id and write sp commands expect 8 bytes in hex format (e.g. write id 01 02 03 04 05 06 07 08).
  • The write id implementation follows the official Dallas 1-Wire protocol for ID programming, including the proper timing sequence and command structure.

    ⚠️ It may not work reliably on inexpensive clones or non-Dallas chips

  • sniff is useful when passively monitoring a 1-Wire bus connected to another master device. It attempts to automatically detect known 1-Wire timing patterns, including reset pulses, presence responses, and bit-slots, to reconstruct readable transactions.
  • The instruction syntax ([0x... r:N]) allows precise control of low-level communication, including bit-level reads, delays, and raw hex sequences.

📌 Example Usage

mode 1wire
scan
read
sniff
write id 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8
write sp 0xDE 0xCD 0xAA 0x4 0x5 0x6 0x7 0x8
temp
[0x33 r:8] # Send read cmd and read 8 bytes

▶️ Demo

demo5

🔧 Hardware

ds9092-ibutton-okuyucu-prob-ds1990-ds19xx-maxim-metal-panel-kcm51885337-1-21a27824a758419b9da326c4de49d9f7

DS18B20 ibutton-key-tag-ds1990a-f5

fezfzeezf

⚠️ **GitHub.com Fallback** ⚠️