Skip to the content
PCBKitNew board
2 layers80 × 90 mmWiFi Septic Controller, the printed circuit board in 3D

WiFi enabled Septic Controller

Size
80 × 90 mm
Copper layers
2
Thickness
1.6 mm
Parts
104
Nets
83
Pads
403
Tracks, vias
933, 142
Pours
10
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
14 May 2018
Updated
8 Nov 2021

Overview

WiFi Septic Controller is an open-source printed circuit board by mikelawrence, from the mikelawrence/WiFi-Septic-Controller repository on GitHub, published under the MIT licence. It is a 2-layer board of 80 × 90 mm with 104 parts on 83 nets, routed with 933 tracks and 142 vias.

It is built around the LMZ21700SIL, ATWINC1500-MR210UB and 74LVC2G14GW, with the MID400, TPD2E2U06DRL and CPC1511Y among its other parts. Its parts include 28 resistors, 22 capacitors, 10 diodes, 9 transistors and 8 ICs. It belongs with the radio and wireless and home automation and IoT boards and the SAM D and SAM boards of this library.

Main components

10

README

README.md

Wireless Septic Controller

I had some problems with my newly installed aerobic septic system when hurricane Harvey blew through. There was no significant flooding but there was plenty of rain and that seemed to cause the system to override pump multiple times. This board is designed to give visibility as to how often the pump runs and will detail alarm conditions. The effluent pump is controlled with an external 50A Solid-State-Relay (SSR). This board also provides an alarm output required by most aerobic septic systems. Normally the alarm switches are wired in parallel so that any alarm condition will turn on the light and audible alert. This board has separate inputs for three alarm switches so that the alarm condition can be identified. This board supports the following alarm types: air pressure failure alarm, tank high level alarm, and bleach low level alarm. WiFi is provided by an ATWINC1500 module which is an excellent low power WiFi module that is directly supported by Arduino. This board is fully compatible with the Arduino MRK1000 which includes a SAMD21G18 ARM processor and a ATWINC1500 module. This board uses MQTT to communicate with Home Assistant home automation software. The MQTT client/server model is very effective in this situation.

This PCB design uses my custom libraries available here Mike's KiCad Libraries.

This PCB was designed with KiCad 5.1.2.

Note: There is dangerous voltage present on this PCB. Use care when handling this board. Housing this board in a box is required to protect users from electrocution.

Note: The LMZ21700 Simple Switcher, SAMD21G18 ARM Processor, and ATWINC1500 WiFi Module have exposed pads on the bottom which requires either a reflow oven or hot air to solder properly.

For Bill of Materials generation I use my version of KiBoM forked from SchrodingersGat.

Status

  • Rev 1.1 PCB has been updated to support KiCad 5.1 libraries. Some footprints changed when libraries were updated but changes were minimal. This board has NOT been tested.
  • Rev 1.0 PCB has been ordered, assembled, and tested. Hardware is fully operational.

Board Preview

Design

Input Power

A transformer converts the 115VAC to 10VAC through a standard bridge rectifier and capacitor filter to arrive at approximately 12VDC. This voltage is fed to both a 3.3VDC and 5VDC Simpler Switcher from Texas Instruments (LMZ21700). The switchers can also be fed by the 5VDC from the USB connector when the 115VAC is not connected. But make note, the 5VDC is no longer regulated.

Alarm Contact Inputs

There are three alarm contact inputs: air pressure failure alarm, tank high level alarm, and bleach low level alarm. Aerobic septic systems have an air compressor that pumps air into the septic tank, hence the name "aerobic". This air pump promotes bacterial growth and it runs all the time. If the air pump stops producing air pressure the air pressure failure alarm contact closes. Many aerobic septic systems use liquid bleach for the chlorine source and some regulatory boards require a low bleach level alarm. My aerobic septic system has three float switches but only one is the tank high level alarm. This float switch is at the highest point in the tank and this alarm means the pump cannot keep up with the water entering the tank. This is usually caused by the effluent pump failing.

In the previous wiring of the septic controller the alarm contacts were wired in parallel logically "or'ing" the alarms. The contacts switched 115VAC to the alarm light and audible alert. In order to determine the actual alarm state the wiring was changed to directly connect these contacts to the the board and they no longer switch 115VAC. The alarm contact inputs use a simple pullup to 5VDC and a Schmidt Trigger Inverter (SN74LVC2G14). Note: software debounce is still required. A high value pullup resistor and series resistor (both 100k) were selected to reduce current levels when accidental high voltages are applied to the input. ESD Protection devices are included to further protect the inputs. Due the inverted nature of the SN74LVC2G14 the software sees a logic high when the contact is closed.

Sense Inputs

There are two 115VAC sense inputs (S1 and S2). These inputs are connected to an On Semiconductor MID400 AC Line Monitor. This optically-isolated device provides a logic low when 115VAC is present on the input. There is no flickering due to 60Hz AC. S1 is used to sense when the effluent pump has power. These is needed because the effluent pump can be turned on when the override float is tripped. S2 is currently unused.

Relay Outputs

There are two relay outputs on the PR and ALM. Both are switched 115VAC by small board mount solid state relays (). These SSRs provide overload protection for both temperature and current. The Pump Relay (PR) output is connected to the effluent pump 50A solid state relay (Crydom CWA2450-10). A 50A relay is needed to drive the 3/4hp effluent pump. Note this relay is controlled by 115VAC. The other relay output (AL) is the alarm output. The alarm light and audible alert require 10W at 115VAC. The alarm output is switched on when any alarm contact is closed. There is no software intervention required to produce an alarm.

SAMD ARM Processor and WiFi Module

The ARM processor and ATWINC1500 WiFi module are wired identical to the MKR1000 Arduino board, thus the Arduino development environment is used for software development and the ATWINC1500 module is directly supported. Digital power is 3.3V and while the LCD is 5V there are no 5V outputs driving 3.3V inputs on the ARM processor so there is no problem wiring the LCD directly to the ARM processor. The LCD recognizes anything above 2.2VDC as a high so 3.3VDC logic outputs from ARM processor will be correctly interpreted by the LCD.

Setup

Arduino Setup

This board is designed to mimic a MKR1000 board from Arduino. Make sure the the MKR1000 board is supported by installing Arduino SAMD Boards package. Do this by opening the Board Manager as shown below.

Type in "samd" in the filter edit and you will see several options. Select "Arduino SAMD Boards (32-bits ARM Cortex-M0+)" and install the latest version as shown below.

It will take a few minutes to download and install the board package. Once complete it's time to install the necessary libraries. Start by opening the Library Manager as shown below.

Type in "mqtt" in the filter edit and scroll down until you see "MQTT by Joel Gaehwiler" as shown below.

Once "MQTT" is installed repeat the install for the following libraries.

  • WiFi101 by Arduino
  • WiFiOTA by Arduino
  • OneWire by Paul Stoffregen and many others
  • DallasTemperature by Miles Burton and others

Board Setup

The Arduino development environment expects a bootloader in the SAMD ARM processor which will allow programming via USB. The bootloader must be programmed first using a supported programming pod. I used an "Atmel-ICE" pod but there are other options. First make sure you have selected the "Arduino/Genuino MKR1000" board as shown below.

Next select your programmer.

Make sure the board is powered via USB and the programmer is connected to the debug connector then select "Burn Bootloader".

Now the bootloader is programmed it's time to load the "WiFi101 FirmwareUpdater" example. This will update the firmware in the ATWINC1500 module.

Now "Upload" the "WiFi101 FirmwareUpdater" example.

Update the ATWINC1500 module by selecting "WiFi101 Firmware Updater".

Click the "Update Firmware" button.

Finally open the "Septic_WiFi_Controller.ino" sketch downloaded from GitHub. Update the necessary defines for your Wireless network and MQTT server settings see the Code README for more information. Now upload it just like the "WiFi101 FirmwareUpdater" example. All done!

Acknowledgments

Arduino kindly develops open source hardware and software which makes writing software for the board incredibly easy.

Parts

104
QtyValueFootprintReferences
822kResistor_SMD:R_1206_3216MetricR6, R12, R13, R14, R15, R16, R17, R18
70.1uFCapacitor_SMD:C_0603_1608MetricC11, C12, C13, C14, C15, C21, C22
72N7002Package_TO_SOT_SMD:SOT-23Q1, Q2, Q5, Q6, Q7, Q8, Q9
610kResistor_SMD:R_0603_1608MetricR3, R5, R9, R11, R24, R26
522uFCapacitor_SMD:C_0805_2012MetricC3, C5, C8, C10, C17
3holes-ml:6-32_NPTH_Mounting_HoleMK2, MK3, MK4
3130RResistor_SMD:R_0603_1608MetricR19, R20, R21
3TPD2E2U06Package_TO_SOT_SMD:SOT-23D3, D4, D5
21000pFCapacitor_SMD:C_0603_1608MetricC6, C7
215pFCapacitor_SMD:C_0603_1608MetricC19, C20
21k@100MHzInductor_SMD:L_1206_3216MetricL1, L2
21uFCapacitor_SMD:C_0603_1608MetricC16, C18
23300pFCapacitor_SMD:C_0603_1608MetricC4, C9
2330uFCapacitor_SMD:CP_Elec_10x10.5C1, C2
2698RResistor_SMD:R_0603_1608MetricR28, R29
274LVC2G14Package_TO_SOT_SMD:SOT-23-6U5, U7
2CPC1511YRelay_THT-ML:Relay_IXYS_PowerSIPRL1, RL2
2LMZ21700Converter_DCDC-ML:Converter_DCDC_Texas-SIL0008EU1, U2
2MID400Package_DIP:SMDIP-8_W9.53mmU3, U4
2Screw_Terminal_01x02TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_HorizontalJ1, J2
2Screw_Terminal_01x03TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-3-3.5-H_1x03_P3.50mm_HorizontalJ3, J8
11.21MResistor_SMD:R_0603_1608MetricR1
110kPotentiometer_THT:Potentiometer_Bourns_3339P_VerticalRV1
1169RResistor_SMD:R_0603_1608MetricR4
1232kResistor_SMD:R_0603_1608MetricR7
13.3VTestPoint:TestPoint_THTPad_2.0x2.0mm_Drill1.0mmTP1
132.768kHzCrystal-ML:Crystal_SMD_Abracon_ABS07-2Pin_3.2x1.5mmY1
1330RResistor_SMD:R_0603_1608MetricR25
1383kResistor_SMD:R_0603_1608MetricR2
139RResistor_SMD:R_0603_1608MetricR23
14.7kResistor_SMD:R_0603_1608MetricR22
144.2kResistor_SMD:R_0603_1608MetricR8
1470@100MHzInductor_SMD:L_0603_1608MetricL3
147kResistor_SMD:R_0603_1608MetricR10
15VTestPoint:TestPoint_THTPad_2.0x2.0mm_Drill1.0mmTP2
1ATWINC1500-MR210UBRF_Module-ML:Microchip_ATWINC1500-MR210UBU6
1BCM857BSPackage_TO_SOT_SMD:SOT-363_SC-70-6Q4
1BlueLED_SMD:LED_0603_1608MetricD10
1Cortex DebugConnector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMDJ7
1DFLS130Diode_SMD:D_PowerDI-123D1
1DMG2305UXPackage_TO_SOT_SMD:SOT-23Q3
1D_Bridge_+-AADiode_SMD:Diode_Bridge_Vishay_DFSD2
1GNDTestPoint:TestPoint_Keystone_5010-5014_MultipurposeTP3
1GWT-C1627A-RGBAdafruit-ML:GWT-C1627A-RGBJ6
1GreenLED_SMD:LED_0603_1608MetricD8
1Mounting_Hole_PADMountingHole-ML:6-32_PTH_Mounting_HoleMK1
1PRTR5V0U2XPackage_TO_SOT_SMD:SOT-143D6
1PumpButton_Switch_SMD:SW_SPST_PTS645SW2
1RedLED_SMD:LED_0603_1608MetricD9
1ResetButton_Switch_SMD:SW_SPST_B3U-1000PSW1
1SAMD21G18-MPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.15x5.15mmU8
1Screw_Terminal_01x06TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-6-3.5-H_1x06_P3.50mm_HorizontalJ4
1USB_B_MicroConnector_USB:USB_Micro-B_Wuerth_614105150721_Vertical_CircularHolesJ5
1VPP-XFMRTransformer_THT-ML:Triad_VPP_5.0VAT1
1YellowLED_SMD:LED_0603_1608MetricD7

The 102 most common of 104 parts.

Questions

How big is the WiFi Septic Controller PCB?

It measures 80 × 90 mm and has 2 copper layers, 1.6 mm thick.

What parts does the WiFi Septic Controller use?

104 parts, built around the LMZ21700SIL, ATWINC1500-MR210UB, 74LVC2G14GW and MID400. 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 WiFi Septic Controller KiCad files?

From the mikelawrence/WiFi-Septic-Controller repository on GitHub, at the commit this page was made from: the board is WiFi-Septic-Controller.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the WiFi Septic Controller design in my own project?

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

Similar boards

  • 2 layers66 × 51.5 mmWiFi Gate Controller, the printed circuit board in 3D

    WiFi Gate Controller

    mikelawrence/WiFi-Gate-Controller

    WiFi enabled Gate Controller Addon to US Automatic Gate Opener

    91 parts8MIT
  • 2 layers65 × 30 mmRPi pHat Thermocouple, the printed circuit board in 3D

    RPi pHat Thermocouple

    mikelawrence/RPi-pHat-Thermocouple

    Raspberry Pi Thermocouple pHat

    59 parts7MIT
  • 2 layers85 × 59 mmESP32-Garage Door Controller, the printed circuit board in 3D

    ESP32-Garage Door Controller

    mikelawrence/ESP32-Garage-Door-Controller

    ESP32 based garage door controller. There are a lot of ESPHome based garage door controller projects on the web. What makes this one unique is usined a rotary encoder to determine garage door position.

    30 parts1MIT
  • 4 layers60 × 60 mmBLDC, the printed circuit board in 3D

    BLDC

    BetzDrive/bldc-controller-hardware

    Hardware design files for BLDC servo controller

    124 parts14
  • 2 layers65 × 56 mmRPi HAT RGBW LED Controller, the printed circuit board in 3D

    RPi HAT RGBW LED Controller

    mikelawrence/RPi-HAT-RGBW-LED-Controller

    This is a Raspberry Pi B+ HAT that supports four high power LEDs. Main application is an RGB Floodlight.

    60 parts9MIT
  • 4 layers153 × 148 mmKeep breathing ctrl, the printed circuit board in 3D

    Keep breathing ctrl

    CV19CO/open_controller_for_ventilator

    Open source controller for ventilators

    260 parts5
  • 6 layers94 × 78 mmController, the printed circuit board in 3D

    Controller

    Iari-Lab/OpenAcousticCamera

    130 parts26