© THVisi0n

Docs & Capabilities

⚡ Getting Started

Flash the ESP32‑S3 with the provided firmware, connect it to Wi‑Fi, and access the dashboard at http://thvision.local or http://<ip_address>.(the IP address is shown in the serial log or in your router’s connected devices list)

The device supports both Access Point (AP) mode (standalone hotspot) and Client mode (joining an existing Wi‑Fi network). These modes can run simultaneously.

For security, basic HTTP authentication is enforced across all endpoints.

If needed, the board can be factory reset by pressing the RESET button once, then immediately pressing and holding the BOOT button for 5 seconds. This clears stored settings and restores defaults.

🔌 Hardware Setup

This firmware is optimized specifically for the ESP32‑S3 N16R8 module (16MB Flash, 8MB PSRAM). Using this exact variant ensures the best performance, stable frame rates, and proper memory allocation for the MLX90640 thermal sensor.

The ESP32‑S3 board and the MLX90640 sensor are provided as separate parts. Connect them using four simple I²C lines:

  • GPIO 5 → SDA
  • GPIO 4 → SCL
  • 3.3V → VCC
  • GND → GND

By default, the firmware initializes I²C with Wire.begin(5, 4, cfg.i2cSpeed), meaning SDA = GPIO 5 and SCL = GPIO 4.

Both SDA and SCL pins can also be reconfigured through the WebUI if you prefer different wiring.

For the MLX90640, signal integrity is extremely important. Keep the I²C wires as short as possible (ideally under 5–10 cm). Longer wires can introduce noise, reduce frame stability, or cause intermittent sensor communication issues.

You can solder these 4 points directly, or use female jumper wires / Dupont clips if you prefer a solder‑free setup.

If you are using a BARE MLX90640 sensor (BAA 55° or BAB 110°), note that these versions do not include I²C pull‑up resistors. You must add them externally for stable communication.

  • SDA → 4.7kΩ → 3.3V
  • SCL → 4.7kΩ → 3.3V

Recommended 4.7kΩ for most setups. 3.3kΩ can be used if wires are longer or noise is present. Without pull‑ups, the sensor may show unstable frames, random disconnects, or corrupted thermal data.

Once pull‑ups are added, bare MLX90640 sensors behave exactly like breakout boards and are fully compatible with THVisi0n.

🎛 Processing Modes

Processing modes control real‑time image behavior such as stability, responsiveness, and contrast. These do not overwrite profiles and can be changed instantly.

  • Normal: balanced smoothing, contrast, and responsiveness.
  • Stable: rock‑solid image, no pulsing, ideal for static scenes.
  • Fast: minimal smoothing, maximum responsiveness for motion.
  • Human: enhances 28–36°C range, boosts human visibility.
  • Edge Enhance: sharp outlines and high‑pass detail emphasis.

🛠 Example Profiles

Profiles are user‑defined configurations stored in FFat, persist across reboots, and survive updates.

  • PCB Debug: high refresh, edge emphasis.
  • HVAC: emissivity presets, hotspot alarms.
  • Robotics: ROI overlays, low latency.
  • General: balanced defaults.

❓ FAQ

  • Does processing change temperatures? No — all processing is applied after raw sensor capture, so readings remain accurate.
  • Can I use it outdoors? Yes, but shield the sensor from direct sunlight for best results.
  • Which acquisition modes? Both Chess and Interleaved are supported.