ADC · NXP PCF8591

PCF8591 — i2c address & wiring

8-bit 4-channel ADC plus a DAC output — the chip on the classic YL-40 module.

Key facts

PCF8591 at a glance

i2c address
0x480x490x4A0x4B0x4C0x4D0x4E0x4F
address-selectable via pins/jumpers
Logic voltage2.5–6 V
Typeadc
PartNXP PCF8591
Ships withgeneric modules — plain 0.1″ headers, no connector system

The chip

What the NXP PCF8591 actually is

8-bit mixed-signal converter integrating four multiplexed analog inputs, one 8-bit digital-to-analog (DAC) output and an i2c interface. Intended for low-speed analog measurement and simple analog voltage generation where high precision is not required.

Wiring

How to connect the PCF8591

HOST · Arduino / ESP32 / Pi PCF8591 3V3/5V VCC VCC · 2.5–6 V GND GND GND SDA SDA SDA · data SCL SCL SCL · clock 0x48–0x4F pull-up resistors to VCC on SDA & SCL — usually already on the breakout

The PCF8591 talks i2c at address 0x48 (up to 8 selectable addresses, handy when you need more than one on the same bus). It runs at 2.5–6 V, so match your host's logic level — if your host is 5 V and a board on the bus is 3.3 V-only, add a level shifter. Use the compatibility checker to confirm the exact cable for your setup.

Because the address is selectable, you can run several PCF8591 boards on one bus by setting each to a different address — no extra wiring beyond the shared SDA/SCL.

Wiring is the usual four: power, ground, SDA and SCL, plus pull-up resistors — almost always already fitted on the breakout. Nothing showing up? Run an i2c scan first; if the bus is silent, the 7-step checklist finds it faster than guessing.

Go deeper

Guides covering the PCF8591

Alternatives

Other adc boards

Watch the bus

Boards that clash with the PCF8591

These want addresses the PCF8591 also answers (0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F), so they can't share a bus with it untouched. If one is address-selectable, strap it elsewhere; if not, the conflict guide covers the multiplexer and second-bus routes, and the collision roundup explains why a scan won't warn you.

Get one

Questions

PCF8591 i2c FAQ

What is the PCF8591's i2c address?

The PCF8591 uses 0x48 or 0x49 or 0x4A or 0x4B or 0x4C or 0x4D or 0x4E or 0x4F, selected with an address pin or solder jumper on the board. If a scan turns up something unexpected, our i2c address list names the usual suspect for every address.

What voltage does the PCF8591 run at?

2.5–6 V logic. That range covers both 3.3 V and 5 V hosts, so it drops onto a Pi, ESP32 or Arduino without a level shifter.

Can I use two PCF8591s on one i2c bus?

Yes — set each one to a different address (0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F) using its address pin or jumper, then wire both to the same SDA/SCL. That gives you up to 8 on a single bus before you need a multiplexer.

Does the PCF8591 come as a plug-together breakout?

Not in the mainstream connector ecosystems — PCF8591 modules are generic boards with 0.1″ headers, so you'll be soldering headers and running jumper wires to SDA, SCL, power and ground.