How alvarowolfx/esp32qrcodereader works
ESP32 QR Code Reader is an Arduino library that captures camera frames, detects and decodes QR codes, and exposes payloads through a task-backed reader API. Applications configure a supported camera, call setup/start, then receive valid or invalid QR results. The bundled Quirc implementation supplies recognition and decoding; OpenMV-derived collections and math support recognition internals. Internal Quirc call relationships are not established by the sampled excerpts, so those links are omitted. The README documents PSRAM and supported camera requirements.
Main entry points: ESP32QRCodeReader.cpp Reader task and API · quirc_internal.h Recognizer structures · identify.c QR identification · collections.c LIFO collections
Components 14
Reader API
- Reader task and API
src/ESP32QRCodeReader.cpp
Camera Capture
- Camera pin models
include/ESP32CameraPins.h - ESP32 camera
QR Processing
- Quirc API
src/quirc/quirc.h - Recognizer core
src/quirc/quirc.c - QR identification
src/quirc/identify.c - QR decoding
src/quirc/decode.c - Version and ECC data
src/quirc/version_db.c - Recognizer structures
src/quirc/quirc_internal.h
Processing Support
- LIFO collections
src/openmv/collections.c - Collection declarations
src/openmv/collections.h - Fast math helpers
src/openmv/fmath.h
Other components
- Arduino application
- QR payload
Connections 12
- Arduino application → Reader task and API: configures and starts
README.md - Reader task and API → Camera pin models: uses pin mapping
- Reader task and API → ESP32 camera: initializes and captures
src/ESP32QRCodeReader.cpp - Reader task and API → Quirc API: processes frames
src/ESP32QRCodeReader.cpp - Reader task and API → QR payload: returns QR data
README.md - QR identification → Recognizer structures: uses structures
src/quirc/identify.c - QR decoding → Recognizer structures: uses structures
src/quirc/decode.c - Recognizer core → Recognizer structures: uses structures
src/quirc/quirc.c - Version and ECC data → Recognizer structures: defines version data
src/quirc/version_db.c - QR identification → LIFO collections: uses LIFO
src/quirc/identify.c - LIFO collections → Collection declarations: implements declarations
src/openmv/collections.c - QR identification → Fast math helpers: uses math helpers
src/quirc/identify.c