Doorduino3

From RevSpace
Jump to navigation Jump to search
Project Doorduino3
Doorduino3 Project.jpg
Een gestandariseerde deuropener waar we ook reserves van hebben
Status Completed
Contact Sebastius
Last Update 2023-02-24

Features

Algemeen:

  • Meerdere autonome controllers mogelijk
  • Centraal beheer van alle deuren
  • Bijzonder modulair
  • Werkt met (vrijwel?) alle deuropeners
  • Behalve custom PCB volledig gebouwd op goedkope off-the-shelf componenten

Controller:

  • Sleutelbeheer via SSH
  • Deur openen via SSH
  • Meerdere deuren per controller
  • Logs via syslog, eventueel remote
  • Autonoom systeem, blijft werken zonder netwerkverbinding
  • Praat via USB-serial met de doorduino('s)

Overzicht Doorduino's bij Revspace

Doorduino3-Deuren

Doorduino:

  • 1 doorduino per deur
  • Authenticatie via Secure iButton
  • 24 + 64 bit challenge
  • ID-only iButtons worden ondersteund voor als beveiliging je echt niks kan schelen (of als overgangsfase)
  • Deuropening via knop (optioneel, moet worden ingeschakeld op controller)
  • Arduino is vervangbaar
  • Secrets staan niet op de doorduino
  • Ca. 10 meter kabel naar de deur is getest
  • Aansluitingen via schroefcontacten
  • Aansluiting voor iButton-reader met groene en rode LED

Idee

Door heel Revspace (en de Verlichting) heen gebruikten we DoorDuino 2's. Een aantal waren minder stabiel (met name door de gebruike hostcomputertjes) en geen enkele opstelling was gelijk. Met de komst van de nieuwe Sparkshack ontstond het plan om alle DoorDuino's te standaardiseren: een goede behuizing, nette boards en een eenduidige constructie.

De software is inmiddels een flinke verbetering tov Doorduino 2 (zowel op het linux-ding als op de Arduino's), de hardware is qua componenten gelijk gebleven, behalve dat die componenten nu op een nette PCB worden gesoldeerd in plaats van gaatjesbord.

DoorDuino boards

Boards

In Eagle is een compact board getekend voor de DoorDuino's van 5x10cm. Hier zijn er een stuk of 20 van besteld, meer dan genoeg voor de hele space en een paar reserve. Het board is ontworpen door Sebastius. Op de print is tevens ruimte voor hacks, patches en fixes.

Bij het 'experimenteer' gedeelte zijn 2 pads VCC en 2 pads GND aanwezig. Pas op dat je de LDO van de Arduino niet overbelast! Je kunt dit probleem eenvoudig omzeilen door zelf een LDO aan de 12v lijn te hangen en te verbinden met VCC. Dan wel even de LDO van de Arduino verwijderen om magische rook te voorkomen.

BOM

  • Board Files, bv via DirtyPCBs.com
  • Arduino Pro Mini (ATmega 328, 5v, 16mhz)
  • IRL540N Mosfet
  • 0805 resistors: 150, 2x 220, 1k, 1k8, 10k
  • pinheaders en de vrouwelijke variant ervan
  • 1 of 2 jumpers
  • screwterminals (printkroonsteen), 16polig

Bouw

Relatief eenvoudig, volg de silkscreen. De SMD weerstanden gaan als volgt (van boven naar beneden, onder de A0 pin)

  • 220
  • 220
  • 150
  • 1k8
  • 1k0
  • en onder de mosfet zit nog een 10k

Daarna even de jumper op 12v RAW ENABLE zetten. De 5v Serial Enable gebruiken we voorlopig niet (ter voorkoming Magische Rook).

Behuizing

BOM

  • Fibox TA241911T (wandbehuizing 24cm x 19cm met transparant deksel)
  • Wandbevestiging
  • Wartels
  • 12v voeding (1 actuator/deur: 2.5A. Voor een enkele Doorduino kun je de voeding inbouwen)
  • Montageplaat (lasercut)
  • Raspberry Pi B+ of 2 (met 4 USB poorten)
  • USB- Serial, bv CP2104
  • KIS33r3 dcdc converter 5v (via AliExpress)
  • kabelbandvoetjes
  • 4x standaard PC standoffs (die bv voor serieel/parallele poorten gebruikt werden) (M3?)
  • 4x M2 standoffs (en schroefjes)

Montageplaat

Dit is prototype 4. Het past nu in de kast.

Met de lasercutter snijden we zelf uit 4mm populier-triplex een drager om alle elektronica makkelijk te plaatsen in de kast. Hier rechts is het prototype te zien.

Doorduino3 grondplaat proto7.svg

Lasersettings/Volgorde:

  • Zwart: Cut, 60%power, Speed 3
  • Blauw: Mark, 20% power, Speed 100
  • Rood: Cut, idem boven

Boren

Hier hier en daar moeten wat gaatjes komen.

Aansluitingen

Gebruik voor de kabels Cat5(E), liefst 24 AWG (26 AWG is dunner).

Standaardkabel

Rechtstreeks aangesloten Via M14-6 Plugje
GND N/C
GRN wit/groen
RED groen
 
Str wit/bruin + wit/oranje
12V (of 5V) bruin + oranje
 
GND wit/blauw
1w blauw

pin 1 = eerste na de notch met de klok mee, kijkend naar gaatjes van plug of soldeerkant van chassisdeel.

1 Str wit/bruin + wit/oranje
2 RED groen
3 GRN wit/groen
4 12V (of 5V) bruin + oranje
5 1w blauw
6 GND wit/blauw

pin 6 = center

Uitbreidingskabel

Dit is een optionele tweede kabel, bedoeld voor een knopje X, een apart bedrade deuropener (bijv. de lineaire actuatoren die we bij de buitendeuren gebruiken), of allebei. De UTP-kabel zoals hier beschreven heeft geen aansluiting voor een knopje.

M14-5 Plugje

pin 1 = eerste na de notch met de klok mee, kijkend naar gaatjes van plug of soldeerkant van chassisdeel.

1 GND wit/bruin + wit/blauw
2 GND (BTN) NC
3 BTN NC
4 12V bruin + oranje + blauw + groen
5 Str wit/bruin + wit/blauw

pin 5 = center

Onderdelen deurkant

pinout:

  • Groen - groene led
  • Bruin - rode led
  • Wit - 1Wire
  • Grijs/Geel - GND

Dagschootopener

De meeste deuren gebruiken een dagschootopener. Elektrisch gezien is dit gewoon een spoel, die bedraad wordt tussen een permanente 12V of 5V (verschilt per deuropener). Over de spoel moet antiparallel een blusdiode: de indicatie (cathode van de diode) komt dus aan de PLUSkant, in plaats van zoals gebruikelijk aan de MINkant.

Als de opener werkt met 5V in plaats van 12V, heb je een externe 5V-voeding nodig omdat de voltage regulator van de arduino het anders niet trekt:

  1. Voed 5V op het contact gelabeld 12V, of op het contact gelabeld 5V.
  2. Verbind 12V met 5V met een draad.
  3. Gebruik niet de jumper op "12V RAW enable", zodat de regulator niet wordt gebruikt.

Inbouw Dagschootopener

Strike plate mod01.jpg Strike plate mod02.jpg Strike plate mod03.jpg Strike plate mod04.jpg Strike plate mod05.jpg Strike plate mod06.jpg Strike plate mod07.jpg Strike plate mod08.jpg Strike plate mod09.jpg Strike plate mod10.jpg Strike plate mod11.jpg Strike plate mod12.jpg

Fail-Safe Dagschootopener, met paniek knop

  • +12V naar paniek knop contact 3/4 (intern verbonden met 5/6) or/br
  • +12V naar 'open' relay A1
  • paniek knop contact 1/2 naar strike+ (wor/wbr) en naar monitoring relay A1 (wgr)
  • evt paniek knop contact 7/8 naar monitoring (gr)
  • strike- naar open relay contact NC
  • GND naar open relay common
  • GND naar monitor relay A2
  • doorduino strike- naar open relay A2
  • monitor ingang +/- naar monitor relay contact Common en NC of NO (todo)

Strike-fail-safe.png

Motor (bijv. lineaire actuator)

De deuren met paniekslot worden geopend door met een lineaire actuator de deurklink te bedienen. De actuator krijgt continu +12V of -12V, en beschikt over ingebouwde eindstops. Een DPDT-relais poolt om:

EN 50005-nummering Omschrijving Aansluiting
A1 Spoelcontact +12V
diode (– !)
A2 Spoelcontact Str
diode (+ !)
11 Common van eerste pool Motor +/–
12 NC van eerste pool Verbonden aan NO van tweede pool
14 NO van eerste pool Verbonden aan NC van tweede pool
21 Common van tweede pool Motor –/+
22 NC van tweede pool +12V (bijv. doorgelust aan A1)
verbonden aan NO van eerste pool
24 NO van tweede pool GND
verbonden aan NC van eerste pool

Als de motor de verkeerde kant opgaat, gewoon 11 en 21 omwisselen (of GND op 22+14 en +12V op 12+24).

EL461

|_______| cable side view
13     1| nrs zoals hieronder
14     2|
|_______| cable side view 
|1     7| abloy nrs
|8     14
hackalot:
- zw    2               sol-
+ gy    3               sol+
rd      5               trigger bolt in && bolt out
bl      7               bolt out
ge      8               handle down
gr      10              bolt in
wi      12              key cyl used
zw      13              sabotage
shield  4+6+11+14       sw com
n.c.    1,9             n.c. ?

EL520

De Abloy EL520 is een motorslot dat wat complexere aansturing vereist. Op de Hackalot wiki staat beschreven hoe dit slot ge-reverse-engineered is om hier een Arduino-gebaseerde controller voor te bouwen die met het Doorduino systeem samenwerkt.

ESD Beveiliging

  • DS9503 is er voor gemaakt en kost minder dan 1 euro :)

Schema moet er wel op aangepast, of de boards moeten gemod. We kijken nog wel even. ESD kost met enige regelmaat een Arduino.

Op de EL520 pagina is een simpele Doorduino uitgewerkt die een DS9503 gebruikt om tegen ESD te beveiligen.

Software

  • Arduino's: upload de sketch
  • Raspberry Pi: git clone https://github.com/revspace/doorduino
    • echo "dev => '/dev/arduino_123456'," > deurnaam.conf.pl
    • $EDITOR ibuttons.acl.d/toegangslijst.acl
      • Elke niet-lege regel die niet met een hekje begint moet het volgende formaat hebben: id:secret naam. ID en secret in hexadecimaal (hoofdletterongevoelig), hoeveelheid whitespace tussen eerste en tweede deel maakt niet uit. De naam is de naam van de sleutelhouder.
    • Lang leve het serienummer in CP2104 serial-usb-dingen: echo 'SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK="doorduino_$attr{serial}"' > /etc/udev/rules.d/99-doorduino.rules
    • systemd unit installeren

Ter vergelijking

Space Soort sleutel Authenticatiesysteem Documentatie Source Opmerkingen
RevSpace iButton ID + SHA Raspberry Pi + Arduino Doorduino3 git
Hackerspace Nijmegen iButton ID + SHA ? + Arduino Doorduino3 git
Pixelbar iButton ID + SHA ? + Arduino Doorduino3 git
Hackalot iButton ID + SHA Raspberry Pi + Arduino Doorduino3 git
AwesomeSpace iButton ID + SHA Raspberry Pi + Arduino Doorduino2 git
Frack iButton ID + SHA Laptop + Arduino Doorduino2 git Sinds verhuizing naar BHP geen elektronisch deursysteem meer
Hack42 iButton ID + SHA ?? + Arduino Geen, natuurlijk... Doorduino3 fork
Bitlair iButton ID + SHA Arduino - git lock/unlock toggle ipv momentary open
ACKspace iButton ID-only Arduino ACKsess ← wiki Authenticatie van ID-only is gecensureerd in source
Sk1llz iButton ID-only Proprietair - closed source Hackerspace opgeheven :(
TkkrLab DESfire EV1/2/3 NFC Raspberry Pi To be updated soon(tm) GitHub Ook voor betalingen bij bar
Bhack RFID TI MSP430G2553 UnlockBhack -
TechInc RFID + PIN Cubieboard + 2x Arduino Doorbot git

Geluidjes

Als je je eigen geluidjes wil dan kun je je geluidje kopieren via scp naar root@10.42.66.3 en daarna plaatsen in `/root/mqtt-sounds/sounds/revspace-local/doorduino/doei/unlocked/$nickname/geluidje.wav`. Vul je eigen nickname in en je kan de deur kiezen door `doei` te vervangen met bijvoorbeeld `sparkshack`.