The DoorSim is a Open Source PACS (Physical Access Control System) built for research, training, and CTFs on RFID and Physical Security.
- Custom PCB with ESP32 Base
- Wiegand interface with Industry Standard Connectors
- 2004a Display for Ease of Reading
- Web Interface for Card/Event Reading and Settings
- Inbuilt CTF Mode with event logs
- USB-C PD Power Supply
- Expandable GPIO
- Multiple 3d Printed Desktop Reader Cases
Quantity | Name | Link |
---|---|---|
1 | PCB | |
1 | ESP32-WROOM-32D Development Board | https://www.aliexpress.com/item/1005006476877078.html |
1 | 2004A Display (Bare without i2c converter) | https://www.aliexpress.com/item/1005005973980073.html?spm=a2g0o.order_list.order_list_main.22.3d051802PKVqRJ |
1 | USB-C PD Trigger Board | https://www.aliexpress.com/item/1005004381460387.html |
3 | 5.0-2P Screw Terminal Blocks | https://www.lcsc.com/product-detail/Screw-terminal_Cixi-Kefa-Elec-KF332K-5-0-2P_C474889.html |
1 | 2.54mm 1x16 male-male header pins | https://www.aliexpress.com/item/1005001514058091.html |
Quantity | Name | Link |
---|---|---|
1 | Case Body | |
1 | Case Bottom | |
2 | M3 Standard CNC Kitchen Threaded Insert | https://cnckitchen.store/products/gewindeeinsatz-threaded-insert-m3-standard-100-stk-pcs |
4 | M4 Standard CNC Kitchen Threaded Insert | https://cnckitchen.store/products/gewindeeinsatz-threaded-insert-m4-standard-50-stk-pcs |
4 | M3x10 Round Head Screw | |
2 | M4x10 Flat Head Screw |
Quantity | Name | Link |
---|---|---|
1 | Case Body | |
1 | Case Bottom | |
2 | M3 Standard CNC Kitchen Threaded Insert | https://cnckitchen.store/products/gewindeeinsatz-threaded-insert-m3-standard-100-stk-pcs |
4 | M4 Standard CNC Kitchen Threaded Insert | https://cnckitchen.store/products/gewindeeinsatz-threaded-insert-m4-standard-50-stk-pcs |
2 | M3 Nut | |
2 | M3x12 Flat Head Screw | |
4 | M3x10 Round Head Screw | |
4 | M4x10 Flat Head Screw |
Soldering guide assumes minimal soldering experience and only through hole construction
- Collect all required items in Main Board Bill of Materials
- Insert legs of the ESP32-WROOM-32D Development Board into PCB
- Apply flux and solder legs in place, apply light pressure from the back on the development board and start at each corner, try to keep the board flat
- Trim down the pins legs to roughly 2mm (078740157 Inches) and clean any leftover residue lightly with isopropyl alcohol and a old toothbrush
- Fit the male-to-male header pins between the 2004a display and the PCB, with the longer side facing up
- Applying pressure to the left and top sides of the PCB and 2004a display, apply flux and solder the 2 pins of the opposing sides on the PCB.
- Flip over the board, applying pressure on the same sides, and do the same on the 2004a display side.
- Solder in the rest of the pins on both the display and PCB
- Trim the PCB Side of the pin legs to roughly 2mm (078740157 Inches) and clean any leftover residue lightly with isopropyl alcohol and a old toothbrush
- Optional: In some cases, you may need to trim or elongate the wires for the USB-PD Connector, recommendation is to measure and cut, remove old wire connectors from board, and tin the ends before inserting and screwing into terminal connectors
- Using the M3 Standard Threaded Insert, insert 4 into the 2004a Display hole, applying with a soldering iron, try to keep it straight up as you insert, applying light pressure
- Hint: Using a set of tweesers will help here
- Using the M4 Standard Threaded Insert, insert them into the case posts, applying with a soldering iron, try to keep it straight up as you insert, applying light pressure
- Install Arduino IDE
- Install Requirements
- ESP32 Board Manager
- AsyncJson
- ESPAsyncWebServer
- LiquidCrystal_I2C
- Git Clone and Open File
- Choose Board, Choose Port
- Click Upload
- If required, when reached connecting, Hold Boot button
- Once Complete, unplug device
- Using either hot glue or double sided tape, apply the tape to the back of the PCB for the USB-PD Adaptor, and apply it to the hole for the USB-PD Adaptor (It may require a small amount of extra force to do this)
- In the handheld design, this can be hard due to the space, inserting from the front instead is also an option
- Mount the PCB to the case of your choice, using 4 x M3x10 Round Head Screws (Preferabily Hex keyed)
- Attach the USB-PD Leads to your screw terminal, with the Red being screwed into VIN, and the Black and Red stripe to GND
- Insert the cables for your RFID reader into the Screw Terminal Blocks, using the supplied wiring diagram for your RFID Reader, then insert it into your PCB
- Attach your RFID Readers mounting bracket using M3x12 M3x12 Flat Head Screws (Preferabily Hex keyed) and M3 Nuts (Washers can be used, but should be fine without)
- Attach the Case Bottom to the Case using M4x10 Flat Head Screws (Preferabily Hex keyed) which can be screwed into the heat-set threaded inserts
- Unscrew the case bottom, exposing the PCB
- Plug in a USB-PD Capible connector, such as a laptop charger
- Flick the Backlight Switch from OFF to ON (may be marked as 1 instead of OFF), you should see the displays backlight turn on
- Using a small flathead screwdriver, rotate the Contrast Potentiomiter to the right until the display reads well for you
- If it feels too dark, or is hard to read, ajusting this sensor will fix that
- Using a device with Wifi access, check for the Wireless Access Point "Doorsim", by default, this should have no password
- Connect to the Wifi Network, and verify that the network can be accessed, and browse to
http://192.168.4.1
- Note: This may have issues on phones, this is how Android/iOS works with these networks, as they do not have internet.
- Accessable via Wifi Network Broadcasting on ESP32
- Can be configured via the Settings menu on the Web Interface
- Browse to
https://192.168.4.1
- Last Swiped Card Interface, displaying card information
- Hint: Click on the Hex Code for the Card to copy it to clipboard
- CTF Board will show the CTF interface, alongside the additional cards to be added, and the last swiped cards
- Hint: CTF Configurations can be imported and exported using the buttons avalible
- Settings menu allows you to change basic settings of the device
- Displays generic messaging or CTF messaging based upon enabled mode
- Can be configured via the Settings menu on the Web Interface
- Displays either the card information of the last swiped card or the invalid/valid response of a card
- Presents Generic Message for DoorSim on Display
- Can be customised
- Displays Incorrect for cards not found in device
- Web Interface shows all data in Last Swiped Cards
- Web Interface CTF Board will show CN/FC of last invalid card swiped, shows users authorised with only their name
- Presents Generic Message for DoorSim on Display
- Display the Card Number and Facility Code for each card scanned on the 2004a display
- Web Interface shows all data in Last Swiped Cards
- Web Interface CTF Board will show HEX of cards swiped
- Core Weigand and card decoding based upon Tusk
- Design inspiration by RTA Door Simulator