ESP32 FAQ

ESP32 Add-on Modules: RC522, ADS1115, Max17048

// modules · rc522 · ads1115 · max17048 · faq

Filed under: ESP32 · Modules · Updated August 2026

The weird-but-useful modules: an RFID reader, a 16-bit ADC, a battery fuel gauge, and a magnetic switch. Each is a few wires and one library.

How to Make Smart EMV Card Reader with ESP32?

You can read a card’s UID with an RC522 — enough for door locks and RFID badges — but a real EMV payment reader is not buildable on an ESP32: no secure element, and attempting it is illegal without certification. Smart card projects on ESP32 mean access control and NFC tags.

How to Connect RC522 to ESP32?

SPI, five wires: SDA/SS→GPIO5, SCK→GPIO18, MOSI→GPIO23, MISO→GPIO19, RST→GPIO22, plus 3V3 and GND. The MFRC522 library matches those defaults out of the box. The module is 3.3V only; 5V is the fastest way to buy a new one. RC522 examples get you reading a UID in ten minutes.

Why is my RC522 not detecting cards?

Range and wiring, in that order. The antenna reads 3-5cm at best — cards must nearly touch the module, and metal under the PCB kills it instantly. Then check the SPI pins against your board’s defaults. If the library initializes but never sees a card, hold the card flat and still.

How to Read a SCT013 with an ADS1115 ESP32?

Pick your SCT013 variant first: the 0-1V output type connects straight to the ADS1115 (PGA at ±1.024V), while the 33mA type needs a burden resistor. Wire the ADS1115 on I2C (0x48 default), sample at ~100Hz, compute RMS in code. My first build read everything 2.7x high because I’d bought the wrong variant — check the model number first.

Why use ADS1115 instead of the ESP32’s built-in ADC?

Precision and stability. The built-in ADC is 12-bit with a famously non-linear response and a noisy reference; the ADS1115 is 16-bit with programmable gain and a clean reference. For a current transformer or any tiny analog signal it’s the difference between numbers and measurements — plus four channels and four addresses.

How to Use the MAX17048 with ESP32?

Two wires on I2C: VCC→3V3, GND, SDA→GPIO21, SCL→GPIO22, plus VCELL to your LiPo’s positive terminal. The chip reports state of charge as a register; the SparkFun MAX1704x library wraps it in a few calls. It’s a fuel gauge, not a voltmeter — it tracks current flow and stays honest under load where a voltage divider lies.

MAX17048 or a simple voltage divider for battery level?

Divider for good enough, gauge for actually usable. A divider plus analogRead maps voltage to percentage — fine for a hobby display, miserable under load, because LiPo sag fakes low battery. The gauge costs ~$2, uses the same two I2C wires, and returns a percentage that ignores sag. Choose by whether a wrong reading matters.

Which Reed Switch to Use with ESP32?

A small SPST normally-open reed switch, any brand — glass-encapsulated ones rated for a few watts work perfectly, because you’re switching 3.3V at microamps. Wire one leg to a GPIO, the other to GND, enable INPUT_PULLUP, and read HIGH→LOW as the magnet arrives. Debounce in code with 20-50ms. Door and window sensors are the classic use.

Can RC522, ADS1115, and MAX17048 share one ESP32?

Yes, cleanly: RC522 on SPI, ADS1115 at 0x48 and MAX17048 at 0x36 on the same I2C bus — no address conflict. All three are low-current, so one 3V3 rail handles them. Sketch the bus layout on paper before the breadboard; it saves a rewire.

Where do I find complete wiring examples for these modules?

Our knowledge base has pin-by-pin diagrams for RC522, ADS1115, and MAX17048, including the SCT013 burden resistor math. If a config behaves differently on your board, tell us — module clones differ more than the datasheets admit. Contact us with the model number.

Before Blaming the Module

RC522, ADS1115, MAX17048 — all I2C/SPI peripherals, all diagnosed the same way from our side: run the I2C scanner (does it answer at its address?), or the SPI loopback (does the bus echo?). Power and addressing get cleared in one minute, before module-specific drivers enter the conversation.

Leave a Reply

Your email address will not be published. Required fields are marked *