Skip to content

MaxLayar/smart-rex-c100

Repository files navigation

Disclaimer:
This project is discontinued. The author will not continue development.
It is shared solely to help others who wish to attempt a similar hack.
The author is not an electronics engineering expert—please take all following information with a lot of grains of salt.

Smart-Rex-C100

Overview

This project demonstrates how to hack the REX-C100 PID controller by reading its display and simulating button inputs. The aim is to extend the REX-C100, which lacks native support for ramp soak profiles, by interfacing with its hardware using an ESP32 microcontroller.

Demo

Smart-Rex-C100 Demo

image

Wiring

  • Display Pins:
    Each pin from the REX-C100 display is directly connected to a GPIO pin on the ESP32. This allows the ESP32 to read the values shown on the PID controller's display.

  • Button Simulation:
    Button presses are simulated by connecting ESP32 GPIO pins to the REX-C100 button inputs through 2N2222 NPN transistors. A resistor (typically 1kΩ to 10kΩ) should be placed between each ESP32 GPIO and the base of its corresponding transistor to limit current and protect the microcontroller. This setup enables the ESP32 to electronically "press" the buttons by switching the transistors.

    ESP32 GPIO ---[Resistor]---|B 2N2222 E|--- Button Input (to REX-C100)
    
    • The emitter of each 2N2222 connects to the button input on the REX-C100, and the collector connects to ground.
  • Power Considerations:
    The wiring requires careful attention to the power-up sequence. The PID controller and ESP32 must be powered up in a specific order; otherwise, both devices may enter unstable states. You can't simply connect the ESP32's power pins to the PID's power supply—this will not work reliably and may cause erratic behavior.

    • The current setup and wiring need to be improved so that the ESP32 can be powered directly from the PID power supply, allowing both devices to start together without causing erratic behavior.

Dependencies

  • BenoitBlanchon/ArduinoJson:7.4.1
  • ESP32Async/AsyncTCP:3.4.1
  • ESP32Async/ESPAsyncWebServer:3.7.7

What's Missing / To Improve

  • Display reading stability can be improved.
  • Additional features and safety mechanisms could be added.
  • Pause/Stop features are not fully functionnal
  • The wiring design should be reconsidered for greater robustness and ease of use.
  • Save/Load of curves could be a nice addition
  • Add an alternative method to connect to the ESP32 web server (wifi) in case your PID controller is located far from any router.
  • Enhance/fix issues with curve inputs/modifications

Usage

  • Access the web interface by navigating to the local IP address assigned to the ESP32 by your router (you can find this address in your router's device list).

License

This project is licensed under the Unlicense, which dedicates the work to the public domain for maximum freedom.
You are free to use, modify, and distribute this code without restriction.
Attribution is not required, but a credit would be appreciated if you fork or enhance the project.

Disclaimer: The author assumes no responsibility for any hardware damage, legal issues, or other consequences resulting from the use of this code.

Contact

For questions or support, please open an issue or contact me via GitHub.

About

An esp32 web server for turning rex-c100 pid controler "smart"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published