Skip to content

WIP--A refrigeration system written in C++ for RaspberryPi 2w Zero. Proto-type not field tested yet.09-2025

Notifications You must be signed in to change notification settings

flintman/RefrigerationSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Refrigeration C++

License

This project is licensed under the MIT License. See the 'docs/LICENSE' file for details.

Third-Party Licenses

This project includes third-party software:

All third-party licenses are included in the source distribution. See 'docs/THIRD_PARTY_LICENSES' for details. When redistributing or packaging this software, be sure to include all relevant license files.


This is my software to control a refrigeration system with a Raspberry Pi.


Compilation

Base System

sudo apt-get install libssl-dev build-essential gcc make g++-aarch64-linux-gnu
# Build the project (OpenSSL and FTXUI are built automatically if needed):
make            # Build everything except server (.deb, OpenSSL, FTXUI)
make clean      # Clean build folder (preserves vendor builds: OpenSSL, FTXUI)
make clean-all  # Clean everything including vendor builds

Note:

  • make automatically builds OpenSSL and FTXUI on first build or if they're missing.
  • make clean preserves vendor builds to avoid unnecessary rebuilds.
  • make clean-all completely cleans everything including vendor builds.

Installation

  1. sudo raspi-config
    • Enable 1-Wire, I2C, and SPI, then reboot.
  2. Install the .deb file.
  3. Run sudo tech-tool to set up the device.

Startup Behavior

On startup, the system will broadcast a hotspot for 2 minutes (or as long as you remain connected).

Force Start Hotspot

Set the setpoint to 65°F and press and hold the alarm button for 10+ seconds. The IP address will display on the inside screen. The hotspot remains active for 2 minutes unless you stay connected.


Alarm Codes

Shutdown Alarms
  • 1001 - Unit not cooling (≥5°F across coil in 30 min & Return Temp > 30°F)
  • 1002 - Unit not heating (≥5°F across coil in 30 min & Return Temp < 60°F)
  • 1004 - Unit defrost timed out (defrost > 45 min)
  • 2000 - Return sensor failure (out of range)
  • 2001 - Coil sensor failure (out of range)
  • 9001 - Pretrip cooling issue
  • 9002 - Pretrip heating issue
  • 9003 - Pretrip cooling issue #2
Warning Alarms
  • 2002 - Supply sensor failure (out of range)
  • 9000 - Pretrip passed

Setpoint Options

  • Buttons:
    • Press/hold either button for 2s: display flashes setpoint.
    • Use up/down to adjust. Hold >5s to skip by 5.
    • Press alarm button to save and exit.
    • Inactivity exits without saving.

Demo Mode

Set setpoint to 80°F and hold the defrost button for 10s. Toggles Demo Mode (simulates cooling, heating, defrost, etc.).


Pretrip Mode

Set setpoint to 65°F and hold the defrost button for 10s. Starts Pretrip Mode (simulates cooling, heating, and returns to cooling before pass/fail).


GPIO Pins Used

Function GPIO Pin
Compressor Output 17
Fan Output 27
3-way Valve Output 22
Electric Heat Output 23
Alarm Button 5
Defrost Button 6
Up Button 25
Down Button 16
LED Lights 18
SDA 2
SCL 3
One-Wire 4

Required Equipment (WIP until fully built and tested)


About

WIP--A refrigeration system written in C++ for RaspberryPi 2w Zero. Proto-type not field tested yet.09-2025

Resources

Stars

Watchers

Forks