Simple NetworkAble Rfid Controller
The SNARC is a board developed by me, Lawrence “Lemming” Dixon, originally for HSBNE but now I am offering it to other people or groups who are interested in a cheap and easy to implement RFID based access control system.
A SNARC can be used for driving door strikes or mag plates directly for doing access control to a building or room, or it can be used with relays/contactors/magnetic e-stops to control access to machines.
It does not have an RFID reader built in, but can be used with any TTL serial, I²C, Wiegand (shudder) or SPI reader. Of course it could also be used with magstripe, iButton or any number of other auth methods, your imagination is pretty much the limit.
The SNARC is designed to be as simple as possible to implement, but also as flexible as possible. It uses an ATMega 328p microcontroller hooked to a Wiznet wiz820io Ethernet module. All the pins of the ATMega are either used on-board for various functions or broken out to various headers around the board. Functionally the board is very similar to an Arduino, it can be used for a basic locally authenticated RFID system, or it can be a fully networked access control system with other sensors attached to the board for data logging or environmental monitoring. The board is also quite small at 40mm x 65mm (some components overhang the edges slightly) Approximate height of the board is about 25mm to the top of the tallest component.
In terms of hardware you need to make a door work?
- A SNARC.
- An authentication device such as this 125KHz RFID reader or this one for NFC/MiFare.
- Something to lock/unlock the door. Anything on this page would work fine.
- A 9-24v power supply. 12V is generally best, the SNARC provides 3.3V and 5V for Authentication devices.
- An Ethernet cable hooked up to your network.
Connect it all up to the relevant headers/connectors and you have an access control system ready to go.
What I'm offering.
On offer here is one kit for a V1.3 SNARC PTH. This will be a full kit including all needed components, header pins, ethernet module and a small heatsink for the voltage regulators. This will arrive in a ziploc static bag (yes a reusable one!) with instructions on how to assemble it.
The PCB will look like this:
Target Shipping Date
October 1 - 14 2013
All orders will be shipped registered post.
The on-board functions are:
ATMega 328p Micro-controller with 32KB Flash, 2KB SRAM and 512B EEPROM. Comes pre-flashed with some demo code and the Arduino Duemilanove bootloader.
Wiz820io SPI Ethernet Module. This module uses the newer W5200 chip from Wiznet, it is implemented in the same fashion as the Arduino Ethernet shield. Please be aware there is a newer library for it available here. Pin 5(D3) is used as an interrupt to allow the Ethernet module to signal that there is traffic waiting. Pin 15(D9) is used to optionally power down the Ethernet module if you want to. Pins 16, 17, 18 & 19 (D10 - D13) are the SPI pins used for serial communication with the module.
N Channel MOSFET output on pin 6 of the ATMega, if you are using the Arduino IDE it is Digital Pin 4. This is connected directly across the main power rails on the board, so will switch the input voltage (Vcc) across the 2 pins on the screw terminals. There is a 1n4004 Diode behind this to catch any inductive spikes at switch off.
RFID header. For an RFID reader or other TTL serial device. This is attached to the UART on the ATMega as well as the 5V rail and GND. If you need to use these pins for another purpose, RX maps to pin 2/D0. TX maps to pin 3/D1.
Status LED’s. There are two Status LED’s on the board. 1 Red and 1 Green. These are attached to pins 11/D5 and 12/D6. You turn on the respective LED’s by writing the pin high. Pin 11/D5 is the red LED, pin 12/D6 is the green LED.
E-Stop header. This is attached to pin 4/D2. Pin 1 is connected to one of the two interrupt pins on the ATMega to allow it to be used to interrupt other operation and switch things off as fast as possible. The 2nd pin is connected to ground. You will need to write the pin high after setting it as an input so the internal pull up resistor is enabled in the ATMega. Pin 1 is marked with a small “1” on the board.
On-board Vreg’s. There are two voltage regulators on the board, one 5v running off the main power rail, and one 3.3v running from the output of the 5v regulator. The 5 volt regulator is designed for a wide input voltage and can handle upto 24v input, but will need to be heatsinked at anything above 9v. It is capable of upto 1A, but this varies with the input voltage. The 3.3v regulator is rated to 500mA, but please keep in mind this is being drawn from the 5V line. Power needs for the board about 400mA on the 5v line, 200mA of this is to run the Ethernet module. These voltages can be accessed at the marked Vio header, there is also 5v on the ICSP, D7 D8 & RFID headers.
ICSP header. This can be used to program the board and is used to load the Arduino bootloader on to the board at manufacturing time. This can also be used to access the SPI bus, Pin1 is marked with a small “1” on the board.
FTDI header. Again this is used as a programming interface. Standard FTDI pinout, pin 1 is marked with a small 1 on the board.
GPIO. The “AREF - A5” header located between the MoSFET outputs and the ATMega. These map exactly as the names would suggest. AREF - A5 is connected to the 6 ADC pins on the ATMega, the first pin of this header is also the AREF pin. Pin 1 is again marked with a small “1” on the board. The analogue pins are here only as a convenience, I would not recommend relying on them for supreme accuracy. They can also be used as digital IO pins.
Soft Serial Header. This header breaks out pins 13 and 14 of the ATMega, (D7 and D8 in Arduino IDE), the other two pins on the header are 5v and GND. This allows for you to plug in another serial device and use it as a soft serial interface. If not used as soft serial it can be used as standard GPIO. Pins are labeled.
EN_Rst Header This header was added to the board in V1.3 (the version offered here) to overcome an issue discovered with the ethernet. Sometimes the ethernet takes a little while to start up so you end up with a race condition. This allows you to use a pin on the ATMega(D7) to reset the module separately in software.
Reset button. This should be pretty self explanatory, this will reset the ATMega and the Wiz820io module (if it's connected via EN_Rst) at the same time.
There is already existing code available here which provides a basis to work from as well as providing server software which can be managed from a google doc!
Licensing (the stuff we all love to hate)
Copyright 2013 Lawrence "Lemming" Dixon. Copyright and related rights are licensed under the Solderpad Hardware License, Version 0.51 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://solderpad.org/licenses/SHL-0.51. Unless required by applicable law or agreed to in writing, software, hardware and materials distributed under this License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
In practice, please feel free to make your own boards or derive from my work, I'm working on getting a github setup with all my files that will be public access.
Aug. 26, 2013, 6:41 p.m.
Is there a reason you didn't include a series resistor for the two status LEDs (e.g. they have built-in current limiting resistors)? The ATmega328p can source up to 40 mA which may be fatal to some LEDs. If it isn't fatal then causing the uC to source that much or more current may eventually damage the pad drivers.
Aug. 26, 2013, 10:58 p.m.
The LED's are "5V" in that they have a built in current limiting system to allow them to run safely at 5V directly.
Rates to United States
|Shipping Rate||First item||Additional items|
|Australia Post: Sea Mail||$15.00||$15.00|
|Australia Post: Air Mail||$25.00||$25.00|