Skip to the content
PCBKitNew board
2 layers66 × 51.5 mmWiFi Gate Controller, the printed circuit board in 3D

WiFi enabled Gate Controller Addon to US Automatic Gate Opener

Size
66 × 51.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
91
Nets
69
Pads
349
Tracks, vias
749, 121
Pours
8
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
15 May 2018
Updated
8 Nov 2021

Overview

WiFi Gate Controller is an open-source printed circuit board by mikelawrence, from the mikelawrence/WiFi-Gate-Controller repository on GitHub, published under the MIT licence. It is a 2-layer board of 66 × 51.5 mm with 91 parts on 69 nets, routed with 749 tracks and 121 vias.

It is built around the ATWINC1500-MR210UB, LMZ21700SIL and DS18B20U, with the 74LVC2G14GW, BTS3800SL and TPD2E2U06DRL among its other parts. Its parts include 26 resistors, 20 capacitors, 17 diodes, 12 ICs and 5 inductors. 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 Gate Controller

After years of using weak garage door openers and trying to position them just right so my solar powered gate 400' away would open when needed I decided it was time to make a wireless controller of my own. 802.11 is a ubiquitous choice and with the right antenna range is not a problem. Two wireless modules consistently popped up when searching for low power embedded WiFi, ESP8266 and ATWINC1500. In the end I chose the ATWINC1500 module for it's compatibility with Arduino and it's low power modes. This board is fully compatible with the Arduino MRK1000 which includes a SAMD21G18 Arm processor and the ATWINC1500 module. I also chose to use MQTT. Recent projects showed how effective the MQTT client/server model is in this situation. I use Home Assistant for home automation and it directly supports MQTT.

This board is designed for and tested with a US Automation Gate Opener.

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

This PCB was designed with KiCad 5.1.2.

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 been ordered, assembled, and tested. Hardware is fully operational.

Board Preview

Design

Input Power

All components are powered by a 3.3VDC Simple Switcher from Texas Instruments (LMZ21700). Input power is 12VDC nominal with a range of 5V-17V. The with the switching power supply efficiency at about 80% the board current draws at the lowest 5mA and an average around 12mA. Peak current during transmit is about 100mA.

Contact Inputs

Contact inputs use a simple pull-up to 5VDC and a Schmidt Trigger Inverter (SN74LVC2G14). Note: software debounce is still required. A high value pull-up resistor and series resistor (both 100k) were selected to reduce current levels when accidental high voltages are applied to the input. The resistor pull-ups should be installed where needed. If connecting to a gate controller that already has an input pulled up leave the pull-up resistors off. The inputs are 5V tolerant. ESD Protection devices are included to further protect the inputs. Due to the Schmidt Trigger Inverter the software sees a logic high when a contact is closed (shorted to -V).

Contact Outputs

There are four contact outputs on the board which short to ground (-V) when activated. The switch is an overload protected Infineon Low-Side Automotive Switch (BTS3800SL). Each contact output has input circuitry identical to the contact inputs on the board. This allows detection of external contact closures for parallel wired contacts.

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.

Setup

Arduino Setup

This board is designed to mimic a MKR1000 board from Arduino. Make sure the the MKR1000 board is supported by installing . 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 "WiFi_Gate_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

91
QtyValueFootprintReferences
16100kResistor_SMD:R_1206_3216MetricR4, R5, R6, R10, R11, R13, R15, R18, R20, R21, R22, R23, R24, R25, R26, R27
70.1uFCapacitor_SMD:C_0603_1608MetricC9, C10, C11, C12, C13, C15, C18
5TPD2E2U06Package_TO_SOT_SMD:SOT-23D8, D9, D14, D16, D17
4holes-ml:M3_NPTH_Mounting_Hole, , ,
41000pFCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C4
41kResistor_SMD:R_0603_1608MetricR7, R8, R9, R12
41k@100MHzInductor_SMD:L_1206_3216MetricL1, L2, L3, L5
474LVC2G14Package_TO_SOT_SMD:SOT-23-6U7, U9, U11, U12
4BTS3800SLPackage_TO_SOT_SMD-ML:Infineon_PG-SCT595-5-1U1, U3, U4, U6
4NUP2105LPackage_TO_SOT_SMD:SOT-23D1, D4, D5, D6
322uFCapacitor_SMD:C_0805_2012MetricC6, C8, C19
215pFCapacitor_SMD:C_0603_1608MetricC16, C17
21uFCapacitor_SMD:C_0603_1608MetricC14, C20
2DFLS130Diode_SMD:D_PowerDI-123D2, D3
11.21MResistor_SMD:R_0603_1608MetricR1
1100uFCapacitor_SMD:CP_Elec_8x10C5
110kResistor_SMD:R_0603_1608MetricR16
132.768kHzCrystal-ML:Crystal_SMD_Abracon_ABS07-2Pin_3.2x1.5mmY1
13300pFCapacitor_SMD:C_0603_1608MetricC7
1330RResistor_SMD:R_0603_1608MetricR17
1383kResistor_SMD:R_0603_1608MetricR2
139RResistor_SMD:R_0603_1608MetricR14
14.7kResistor_SMD:R_0603_1608MetricR3
1470@100MHzInductor_SMD:L_0603_1608MetricL4
1ATWINC1500-MR210UBRF_Module-ML:Microchip_ATWINC1500-MR210UBU8
1Cortex DebugConnector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMDJ3
1DS18B20UPackage_SO:MSOP-8_3x3mm_P0.65mmU5
1GreenLED_SMD:LED_0603_1608MetricD13
1LED DisableConnector_PinHeader_2.54mm:PinHeader_2x01_P2.54mm_VerticalJP1
1LMZ21700Converter_DCDC-ML:Converter_DCDC_Texas-SIL0008EU2
1OrangeLED_SMD:LED_0603_1608MetricD15
1PRTR5V0U2XPackage_TO_SOT_SMD:SOT-143D10
1RedLED_SMD:LED_0603_1608MetricD11
1ResetButton_Switch_SMD:SW_SPST_B3U-1000PSW1
1SAMD21G18-MPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.15x5.15mmU10
1SM15T33CADiode_SMD:D_SMCD7
1Screw_Terminal_01x10TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-3.5mm_10polJ1
1USB_B_MicroConnector_USB:USB_Micro-B_Wuerth_614105150721_Vertical_CircularHolesJ2
1YellowLED_SMD:LED_0603_1608MetricD12

The 90 most common of 91 parts.

Questions

How big is the WiFi Gate Controller PCB?

It measures 66 × 51.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the WiFi Gate Controller use?

91 parts, built around the ATWINC1500-MR210UB, LMZ21700SIL, DS18B20U and 74LVC2G14GW. 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 Gate Controller KiCad files?

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

Can I use the WiFi Gate 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 layers80 × 90 mmWiFi Septic Controller, the printed circuit board in 3D

    WiFi Septic Controller

    mikelawrence/WiFi-Septic-Controller

    WiFi enabled Septic Controller

    104 parts8MIT
  • 2 layers101.6 × 101.6 mmRelay board hardware, the printed circuit board in 3D

    Relay board hardware

    SeniorDesign-2024/Relay-Board

    Repo for relay board that controls the charging port connection state

    24 parts
  • 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 × 30 mmRPi pHat Thermocouple, the printed circuit board in 3D

    RPi pHat Thermocouple

    mikelawrence/RPi-pHat-Thermocouple

    Raspberry Pi Thermocouple pHat

    59 parts7MIT
  • 4 layers135 × 82.5 mmProteus, the printed circuit board in 3D

    Proteus

    mck1117/proteus

    protean: able to do many different things; versatile.

    1,052 parts50