Articles ยป NoFossil Control System

NoFossil Control System

Reprinted with permission from

NoFossil Control System

As work on the controller hardware and software has progressed over the past few years, there has been a lot of interest in the controller. At first, we merely made the hardware and software designs available to people who wanted to build their own versions. Several people have done so, but there are many others who would like to buy a pre-assembled package.

This demand led to the launch of the NoFossil Control System (NFCS) initiative. The original controller had all rules and logic hard coded in C programs which had to be cross-compiled to run on the TS7260's Arm processor. This is fine for people who have a software developent system lying around, but it's a bit much for most folks.

NoFossil Control System Objectives

Provide a controller that is flexible and scalable enough to address the needs of more complex residential heating systems that include multiple heat sources such as oil or gas boilers, wood boilers, solar panels, and heat storage.

The following are the design objectives for the controller:

  1. Improve the performance and reduce the cost for this class of heating systems.

  2. Be easily understood and configured by as wide a range as possible of homeowners, system designers, plumbers, and HVAC contractors. In particular, it should be easy to program for any reasonable control logic or algorithms.
  3. Support a variety of sensors such as thermistors, thermocouples, LM35, and 1 wire sensors.
  4. Lend itself to a 'fail safe' system design such that removal or failure of the controller does not result in total loss of heat or any other dangerous conditions.
  5. Provide the ability for sophisticated users to add to or extend the existing hardware and software.
  6. Easily support external relays to switch typical loads.
  7. Easily sense contact closures from devices such as thermostats, aquastats, and switches.
  8. Provide remote monitoring and control.
  9. Be easily scalable to large channel counts - in the order of 10 or 20 analog sensor inputs and 50 discrete inputs and outputs.
  10. Be as simple and foolproof as possible to install, with minimum installation time and effort - both physical installation as well as software configuration and testing.
  11. Lowest cost consistent with other objectives.

The NFCS follows the same hardware and software architecture as the original controller, but with industrial grade packaging and a new control program that can be managed through a web interface.

There's a site designed for promotional purposes here.

NoFossil Control System Description

The 'standard' NFCS is packaged in a NEMA-4 enclosure. The front panel contains control switches and status LEDs. There are panels on the sides containing RJ-12 and RJ-45 (standard telephone and Ethernet) connectors for connecting the NFCS to sensors, relays, and switch contacts. There are also connectors for power and Ethernet, as well as knockouts to accomodate standard electrical junction box hardware.

The normal configuration for the NFCS is as follows:

  • 16 Sensor inputs (LM35, LM61, thermistor, or thermocouple)
  • 32 Discrete inputs (detect switch or contact closure)
  • 32 Discrete outputs (drive 12vdc relays or LEDs)

Front Panel

The NFCS runs off of 12vdc, normally provided by a small wall transformer. From that, it produces a precision 5vdc reference used for thermistors. If desired, external 24vac can be brought into the NFCS.

The switch on the lower left is system power. It also shuts off 24vac if present. The three fuses protect system power (nominally 12vdc) as well as the internally generated 5vdc reference and external 24vac.

The switch on the lower right is a user-assignable switch. It's a three position center-off switch, and as delivered it's connected to discrete inputs 31 and 32.

The four LEDs along the right side are also user assignable. As delivered, they're connected to discrete outputs 29 through 32.

Left Side

The sides of the NFCS are used for connectors. Detailed pinout information is provided. The left side has a connector panel for the first 8 sensor channels and optionally for 4 analog outputs, used to provide variable speed drive for circulators and fans. A second connector panel brings out 24 discrete inputs grouped 4 each on six RJ-445 connectors.

Below the two connector panels are knockouts that accomodate standard electrical bx, romex, or watertight cable clamps. These can be used to bring low voltage signal and control wires into the enclosure.

Right Side

The right side has a panel for the second set of 8 sensor inputs and a panel for 24 of the discrete outputs. Below that is a panel with the system Ethernet connection and two spare connector positions.

Finally, there are two power connectors. They are wired in parallel and are interchangeable. The outer two pins are for 12Vdc power for the NFCS, and the two center pins are to bring 24Vac into the NFCS if desired. The NFCS is delivered with an external wall-mounted power supply that is plugged into one of the connectors. A pigtail with a second connector is delivered to allow connection to 24Vac.


The top portion of the internal space is taken up by the card stack. A standard NFCS card stack consists of a CPU card, two analog I/O cards and a discete I/O card. These cards are easily damaged - be vary careful not to touch them with any live electrical wire. If you have to handle or remove the cards, disconnect ALL external cables, then ground yourself and the enclosure to avoid static electricity damage to the cards.

There are three barrier strips that provide access to all of the different electrical power options within the NFCS.

The NFCS provides internal space for a DIN rail that can be used to mount internal relays. While both the enclosure and the power supply are UL rated, the NFCS as a system is not intended to handle internal high voltages. The preferred approach for controlling high voltage loads such as circulators is to use a relay near the load and control that relay with the NFCS. Relays internal to the NFCS itself should be low voltage relays controlling low voltage signals.

There are three common uses for internal relays:

  1. Sensing an external 24Vac signal. An example might be sensing contact closure on a thermostat that's controlling some other component of the system. In that case, the NFCS can't connect directly to the thermostat contacts. Instead, the 24Vac signal from the thermostat can be brought into the enclosure and connected to a 24Vac relay. The relay contacts can then be connected to an NFCS discrete input. In that way, the NFCS can detect that the thermostat is calling for heat.

  2. Manipulating an external 24Vac signal. It may be desirable to create or interrupt an external 24Vac signal. For instance, the NFCS could act as a thermostat (or aquastat) by providing a switch closure that completes a 24Vac circuit. ALternatively, the NFCS might be used to selectively interrupt a 24Vac circuit. For instance, the NFCS might interrupt the control signal that turns on a fossil fuel boiler. In either case, an internal relay with a 12Vdc coil is conneted to a discrete output. The 24Vac signal(s) are connected to the relay contacts.

  3. Direct control of low voltage devices. The NFCS can also directly control devices such as zone valves, alarms, circulators, fans, and so on. For low voltage devices, the control relay can be inside the NFCS. Again, a relay with a 12Vdc coil is used, and the load is connected to the relay contacts.

Sensor Inputs

The NFCS uses the Technologics AD9700 board for analog inputs. This board has 8 analog inputs and can also optionally provide 4 analog outputs. As delivered, the inputs sense 0 to 2.5 Volts. Other ranges are possible.

There's not enough connector space to bring out every channel on a separate connector. It's also often the case that there will be several temperature sensors in a remote location such that it would be desirable to run a single cable from the NFCS to the remote location and then fan out individual sensors from that cable.

The approach taken is that each AD9700 board has a single 6 port connector panel. The fist four ports are used for standard RJ-12 connectors with one channel per connector. Standard NFCS temperature sensors plug directly into these ports. The fifth port is an 8 conductor RJ-45 connector, and it carries channels 5 through 8. Sensors cannot be plugged directly into this port. Instead, a standard Ethernet cable is used to connect this port to a 'breakout box'. The breakout box has four RJ-12 connectors where sensors can be plugged in. The breakout box can be located anywhere, but it's particularly useful if there are a group of sensors in a remote location such as an outbuilding or on the roof.

Any supported sensor can be plugged into any sensor connector, although it's necessary to configure the system (in software) so that it knows how to interpret the sensor signal. This is easily accomplished via the web interface.

Discrete Inputs and Outputs

NFCS discrete inputs and outputs are provided via a Technologics DIO64 board.

The inputs sense contact closure to ground. They are electrically 'high' (3 Volts) when not connected to ground. Discrete inputs should only be connected to their own ground signal (available on the same connector).

The outputs provide a path to ground for the 12Vdc signal that's available in the enclosure and in the discrete output connectors. A load (such as an LED or relay coil) is connected to 12Vdc and to a discrete output channel. When the output is active, power will be flow through the load. The each discrete output can sink 200ma, but the NFCS power supply and fusing limit the total current to about 750ma. Most 12Vdc relay coils draw about 20ma, so there's typically plenty of power available.

As with the sensor inputs, there's not enough connector space. For discrete inputs and outputs, a panel with six RJ-45 connectrs is used. Each connector carries four channels. The remaining eight channels are available for use inside the enclosure. Typically, these are used to power or sense contact closure on internal relays. As delivered, two discrete inputs are connected to the user-assignable switch on the front panel and four discrete outputs are connected to the four user-assignable LEDs on the front panel.

Because there are four channels on each external connector, a breakout box or cable is required. Pinout information can be used to connect a standard Ethernet cable to the contacts or loads.

NFCS Software License

The NFCS software is developed as free software licensed under the terms of the GNU General Public License. You are free to copy, modify, and distribute the software. Source code is available here:

© Wood Not Oil 2023 | Powered by Dinkly
Looking for DIY Solar Kits?