Skip to the content
2 layers44.8 × 64.8 mmBD35F FridgeController, the printed circuit board in 3D

An electronic thermostat for a Danfoss/Secop BD35F Compressor with ESP8266.

Size
44.8 × 64.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
10
Nets
20
Pads
37
Tracks, vias
68, 0
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
21 Aug 2025
Updated
12 Oct 2025

Overview

BD35F FridgeController is an open-source printed circuit board by AK-Homberger, from the AK-Homberger/BD35F-FridgeController repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 44.8 × 64.8 mm with 10 parts on 20 nets, routed with 68 tracks and 0 vias.

It is built around the WEMOS D1 MINI, DS18B20 and BC337. Its parts include 3 connectors, 2 resistors, 2 ICs, 1 capacitor and 1 diode. It belongs with the home automation and IoT boards and the ESP8266 boards of this library.

Main components

3

README

README.md

BD35F Fridge Controller

An electronic thermostat for a Danfoss/Secop BD35F Compressor with ESP8266 (D1 Mini).

Secomp

The Danfoss/Secop BD35F compressor is a widely used DC powered compressor. I'm using it on my boat to cool the fridge. Unfortunately, the original thermostat was defect. Therfore, I decided to create an electronic alternative that has more features than the standard mechanical one.

Features:

  • Uses ESP8266 (D1 Mini) as processor.
  • Dual language support (English/German).
  • Easy upload of firmware without Arduino IDE possible.
  • Temperature is measured with DS18B20 sensor.
  • Implements a Two-Point with I controller to increase the accuracy.
  • Supports variable compressor speeds (2000 - 3500 RPM) to adjust cooling capacity and power consumption.
  • Supports Boost function to cool down with more power.
  • Supports automatic or manual Defrost routine.
  • WLAN support (AP or client mode). Configurable via Wifi Manager.
  • Browser interface and MDNS support (http://fridgecontrol.local).
  • All parameters are configurable with a browser and stored in flash memory of ESP8266.
  • PCB layout is available in repository (KiCad) and can be orderd from Aisler.net.

Schematic

PCB

Hardware

The hardware is based on an ESP8266 (D1 Mini) and a few additional parts. The 5 Volt supply voltage for the D1 Mini is created with a step-down converter. The temperature is measuered with a DS18B20 sensor. The compressor is controlled with an open collector transistor between the connection T and C on the BD35F.

The BD35F is measuering the current between T and C. C is on GND level and T has a pull-up resistor to 5 Volt. Only a few milliampere are flowing. A small NPN transitor (BC337) is sufficient here. There are two options: T permanently on GND level means 2000 RPM speed. A PWM signal (5 KHz) with a defined duty-cycle is used to set speeds from 2000 to 3500 RPM.

The PCB has three connectors:

1. Power

Connect +/-to 12 Volt to the J1 connector. There is a protection against wrong cabling for +/-.

2. DS18B20 Temperature Sensor

Connect the three cables from the DS18B20 to the connector J2. The data line has already the pull-up resistor on the PCB. Red = VDD, Yello = D, Blue = GND. Place the Sensor in the Fridge in middle highth.

3. BD35F Compressor

Connect J3 to the compressor connector. Remove the old thermostat cables and connect the cables C and T to the compressor. You need appropriate cable shoes for the connection.

Software

There are two ways to install the software to the D1 Mini. Either you install the Arduino IDE or you direcly flash the BIN-file to the device.

Arduino IDE

Just download the IDE (version 2.x works well). Then add the Boad URL in preferences: "https://arduino.esp8266.com/stable/package_esp8266com_index.json" and install the Board software in the IDE. Then install the following libraries with the library manager:

  • WiFiManager
  • ArduinoJson
  • OneWire
  • DallasTemperature
  • Preferences

Then download the sketch from GitHud (Button "Code" and download as ZIP) and extract it. Then move to the FridgeControl.ino file and open the sketch. Connect the D1 mini with an USB-Cable to the PC and upload the sketch to the D1 Mini. Later uploads can be done with the OTA function via network.

NodeMCU-PyFlasher

This works without installation of the IDE. Simply download the NodeMCU-PyFlasher and start it.

Flasher

Select appropriate serial port and then move to the bin file in the deownloaded code. Use the seetings as shown for the upload.

Usage

After upload of the firmware you have to re-power the device to start the Wifi-Manager (within 2 minutes after restart). Just look for a new WLAN network with the name "Fridgeconfig_AP" and connect to it, without a password. The browser will start automatically. Then select the network (ssid) you want to connect to and enter the password.

If you don't configure or press "Exit" the device remain in AP mode with a changed name "Fridgecontrol_AP".

You can use this to test the device without a real network to connect to. But this is an open connection. Don't use this permanently.

To start the web interface enter "http://fridgecontrol.local" in the browser. The interface looks then like this:

Web1

The page shows the current fridge temperature, the average temperature, the desired set temperature. Duty cycle shows the percentage of the on time compared to the last on and off time cycle. The values are also shown in minutes (On/Off). The status filed shows the staus of the controller (Auto, On, Off, Boost or Defrost).

With the slidebar and +/- you can modify the the set temperature.

With the buttons you can set the mode:

  • Auto: Standard mode to control the temperature.
  • ON: Switch on the compressor permanently.
  • Off: Switch off the compressor permanently.
  • Boost: Cool down for a defined time with a different set point, hysteresis and speed.
  • Defrost: Manually start a defrost cycle.
  • Set: Opens a settings page.

Web2

With the settings page you can control the behaviour of the controller without a need to recompile the code. The following settings are available:

  • Language: 0=English 1=German language
  • Hysteresis: Sets the Hysteresis/deviation for the two point controller. 2 means +/- 2 K. For a set temperature of 6 that means the temperature will between 4 and 8 degrees.
  • RPM: The desired speed of the compressor. Set as low as possible to reduce power consumption (2000 = 3,5A, 3500 = 7A). "0" means T permanently to GND and 2000 RPM (original mechanical thermostat behaviour).
  • AVG Error: This is the allowed deviation from the average. 0 means the compressor will cool down in every cycle until the average temperature reaches the set temperature. The average temperature is calculated with a low pass filter with K of 1/3600. Means average over about one hour.
  • Max High: The maximum high temperture. The compressor will be switched off, if ths level is reached. Independent of average temperature.
  • Max Low: The maximum low temperture. The compressor will be switched on, if ths level is reached. Independent of average temperature.
  • Boost Temp.: Desired temperature for the boost function.
  • Boost Hyst.: Hysteresis/deviation for the boost function.
  • Boost Time Time in minutes for the boost function.
  • Boost RPM: Compressor speed for the boost function.
  • Max Runtime: Used to detect a needed defrost cycle. If the compressor runs for the defined time, a mandatory defrost cycle will start.
  • Defrost Time: Set the time for the defrost cycle. Time depends on local fridge details.

After changes press the "Set" butten. The entered value will be checked against the allowed ranges. If everyting is OK you can use "Back" to go back to the main page.

Parts

  • PCB Aisler
  • U1 D1 Mini Link
  • U2 Voltage regulator Link
  • R1 Resistor 1 KOhm Link
  • R2 Resistor 4,7 KOhm Link
  • Q1 Transistor BC337 Link
  • D1 Diode 1N4001 Link
  • C1 Condensator 10µF Link
  • J1/J3 Connector 2-pin (*2) Link
  • J2 Connector 3-pin Link
  • DS18B20 Link

Parts

10
QtyValueFootprintReferences
110 µFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC1
112 VoltTerminalBlock:TerminalBlock_bornier-2_P5.08mmJ1
11KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1
11N4001Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD1
14K7Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2
1BC337Package_TO_SOT_THT:TO-92_HandSolderQ1
1BD35FTerminalBlock:TerminalBlock_bornier-2_P5.08mmJ3
1DS18B20TerminalBlock:TerminalBlock_bornier-3_P5.08mmJ2
1R-78E50-10_TO220Package_TO_SOT_THT:TO-220-3_VerticalU2
1WeMos_D1_miniModule:WEMOS_D1_mini_lightU1

Similar boards

  • 2 layers74.9 × 50.2 mmD1MiniChainCounterWLAN, the printed circuit board in 3D

    D1MiniChainCounterWLAN

    AK-Homberger/ESP8266_AnchorChainControl_WLAN

    Remote control for anchor chain that shows current chain lenght via WLAN to phone/tablet (with ESP8266 D1 Mini).

    20 parts9GPL-3.0
  • 2 layers78.7 × 48.3 mm24vD1MiniWindlassControlAndChainCounter, the printed circuit board in 3D

    24vD1MiniWindlassControlAndChainCounter

    LukeSavage1306/Windlass-Remote-Chain-Counter-and-SignalK-Feed

    NOTE: As at mid November 2022 the code, pcb link, images etc are the latest version as described below, but I have yet to update the purchasing links Should be done in next week or so.

    22 parts4
  • 2 layers173 × 67.8 mmESP relay-6ch V1, the printed circuit board in 3D

    ESP relay-6ch V1

    koson/ESP-relay-6ch

    ESP8266/ESP32 based board with 6x 24 VDC inputs and 6x 10A relay outputs.

    91 parts
  • 2 layers199.4 × 50.8 mmNixie board, the printed circuit board in 3D

    Nixie board

    vascofazza/cloxie_nixie_clock

    Schematics and code for Cloxie: my Nixie Tube Clock.

    85 parts17GPL-3.0
  • 2 layers120.6 × 29 mmPillPCB, the printed circuit board in 3D

    PillPCB

    andreq/iSpindel-Gravitymon-Pill-PCB

    A PCB used to build an iSpindel or GravityMon hydrometer that fit into a *popular brand* Pill casing instead of a PETling container

    13 parts8GPL-3.0
  • 2 layers110.1 × 38.6 mmEnvironmentalSensors, the printed circuit board in 3D

    EnvironmentalSensors

    strayer/EnvironmentalSensor

    A WiFi environmental sensor based on Tasmota that reports temperature, air pressure, air quality, humidity and CO2 (ppm).

    8 parts4MIT
  • 2 layers42 × 60 mmAquariumSensor, the printed circuit board in 3D

    AquariumSensor

    mitchins/ESP-Aquarium-Water-Sensor

    A simple water flow and quality sensor for aquariums based on ESP controller

    13 parts1GPL-3.0

Questions

How big is the BD35F FridgeController PCB?

It measures 44.8 × 64.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the BD35F FridgeController use?

10 parts, built around the WEMOS D1 MINI, DS18B20 and BC337. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the BD35F FridgeController KiCad files?

From the AK-Homberger/BD35F-FridgeController repository on GitHub, at the commit this page was made from: the board is BD35F-FridgeController/BD35F-FridgeController.kicad_pcb and its schematic BD35F-FridgeController/BD35F-FridgeController.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the BD35F FridgeController design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).