Doorduino EL520: verschil tussen versies

Uit Hackalot - Hackerspace Eindhoven
Naar navigatie springen Naar zoeken springen
k (begin)
 
(9 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 1: Regel 1:
 +
'''Let op:''' de informatie over het slot is grotendeels beredeneerd op basis van reverse engineering en niet gegarandeerd correct, pas het toe op eigen risico!
 
{{Project
 
{{Project
 
|name=Doorduino_EL520
 
|name=Doorduino_EL520
Regel 6: Regel 7:
 
|Picture=Doorduino_el520.jpg
 
|Picture=Doorduino_el520.jpg
 
|info=Aansturen Abloy EL520 motorslot vanuit de Doorduino
 
|info=Aansturen Abloy EL520 motorslot vanuit de Doorduino
 +
|URL=https://git.hackalot.nl/Kartoffel/doorduino_el520
 
|status=Voltooid
 
|status=Voltooid
 
}}
 
}}
'''Let op:''' de informatie over het slot is grotendeels beredeneerd op basis van reverse engineering en niet gegarandeerd correct, pas het toe op eigen risico!
 
 
 
== Abloy EL520 motorslot ==
 
== Abloy EL520 motorslot ==
  
Regel 23: Regel 23:
 
Dit aanzicht is een halve slag gedraaid ten opzichte van hoe het slot normaal in de deur gemonteerd wordt. Op de foto mist een metalen beugel, die als een soort OR-gate de verschillende ontgrendelmechanismes met elkaar verbindt.
 
Dit aanzicht is een halve slag gedraaid ten opzichte van hoe het slot normaal in de deur gemonteerd wordt. Op de foto mist een metalen beugel, die als een soort OR-gate de verschillende ontgrendelmechanismes met elkaar verbindt.
  
Linksbovenin zie je de blauwe 2x8 pin plug waar normaal een Abloy EA218/EA219 kabel in gaat. Deze kan ook prima vervangen worden door standaard 0.1" pin headers.
+
Linksbovenin zie je de blauwe 2x7 pin plug waar normaal een Abloy EA218/EA219 kabel in gaat. Deze kan ook prima vervangen worden door standaard 0.1" pin headers.
  
 
Onderaan zit de motor die via een wormwiel een tandwiel met metalen palletje aandrijft. Het metalen palletje bedient de OR-beugel om het slot te ontgrendelen.
 
Onderaan zit de motor die via een wormwiel een tandwiel met metalen palletje aandrijft. Het metalen palletje bedient de OR-beugel om het slot te ontgrendelen.
 +
 +
Verder zitten er een hoop schakelaars en een reed sensor verspreid door het slot om alle standen en staten te meten voor een luxe aansturingssysteem, wij gebruiken die niet.
  
 
Bij normaal gebruik draait de motor het tandwiel alleen met de klok mee. Op de foto is deze in neutrale stand te zien (de deur is vergrendeld). Om de deur te ontgrendelen moet het tandwiel circa een halve slag draaien en hiermee de nachtschoot naar binnen trekken. Zolang de motor in deze stand blijft staan blijft de deur ontgrendeld. Om de deur weer te ontgrendelen draait het tandwiel met de klok mee tot deze weer in de neutrale stand staat. Wanneer de deur dan in de slotplaat valt zal de nachtschoot er weer uit schieten om de deur te vergrendelen.
 
Bij normaal gebruik draait de motor het tandwiel alleen met de klok mee. Op de foto is deze in neutrale stand te zien (de deur is vergrendeld). Om de deur te ontgrendelen moet het tandwiel circa een halve slag draaien en hiermee de nachtschoot naar binnen trekken. Zolang de motor in deze stand blijft staan blijft de deur ontgrendeld. Om de deur weer te ontgrendelen draait het tandwiel met de klok mee tot deze weer in de neutrale stand staat. Wanneer de deur dan in de slotplaat valt zal de nachtschoot er weer uit schieten om de deur te vergrendelen.
 +
 +
Voor het gemak noem ik hierna de 'vergrendel' stand van het tandwiel DICHT, en de 'ontgrendel' stand van het tandwiel OPEN.
 +
 +
Om te detecteren wanneer het tandwiel in OPEN of DICHT stand staat zit er een magneet in met de vorm van een halve maan. Onder het tandwiel bevind zich een unipolaire hall effect sensor om de aanwezigheid van de magneet hierboven te detecteren. In de neutrale DICHT stand staat het begin van de magneet direct boven de hall effect sensor, en in de OPEN stand staat het eind van de magneet boven de hall effect sensor.
 +
 +
=== Typenummers en aansluitingen ===
 +
 +
[[Bestand:El520-pins.jpg|thumb|500px|left|EL520 Aansluitingen]]
 +
[[Bestand:El520_circuit.png|thumb|600px|none|EL520 Hall effect / motor schakeling]]
 +
<br clear=all>
 +
 +
De bovenstaande afbeeldingen geven de pinout van het slot samen met EA218/219 kabelkleuren, en een schematische weergave hoe de hall effect sensor en motor intern aangesloten zijn. Bij de relevante onderdelen hebben we de volgende typenummers gevonden:
 +
 +
{| class="wikitable"
 +
|-
 +
! Onderdeel
 +
! Functie
 +
|-
 +
| SS543AT
 +
| Hall effect sensor
 +
|-
 +
| 16G88-211E.1
 +
| 12V Brushed DC Motor
 +
|-
 +
|}
 +
 +
De relevante pins aan de kabelconnector zijn:
 +
 +
{| class="wikitable"
 +
|-
 +
! Pin
 +
! Kabelkleur
 +
! Functie
 +
|-
 +
| 2
 +
| geel
 +
| M+ (motor)
 +
|-
 +
| 3
 +
| groen
 +
| M- (motor)
 +
|-
 +
| 6
 +
| wit
 +
| 12V (hall)
 +
|-
 +
| 7
 +
| zwart
 +
| GND (hall)
 +
|-
 +
| 14
 +
| rood
 +
| OUT (hall)
 +
|-
 +
|}
 +
 +
=== Aansturingsprocedures ===
 +
 +
Wanneer de aanstuurelektronica net opgestart is kan aan de hand van enkel de hall effect sensor de stand van het tandwiel niet bepaald worden. Met wat mechanisch inzicht zijn we bij de volgende resetprocedure uitgekomen om het tandwiel, ongeacht van de andere bedienmogelijkheden van het slot, altijd in DICHT stand te krijgen zonder de deur te hoeven ontgrendelen:
 +
 +
* Staat de magneet al boven de sensor?
 +
** Draai het tandwiel '''tegen de klok in''' tot de magneet van de sensor valt.
 +
** Rem de motor om het tandwiel snel tot stilstand te krijgen.
 +
* Draai het tandwiel met de klok mee tot het begin van de magneet net boven de sensor valt.
 +
* Rem de motor om het tandwiel snel tot stilstand te krijgen.
 +
* Klaar.
 +
 +
Hierna kan het volgende uitgevoerd worden om het tandwiel in OPEN stand te krijgen (en de deur te ontgrendelen):
 +
* Draai het tandwiel met de klok mee tot de magneet voorbij de sensor valt.
 +
* Rem de motor om het tandwiel snel tot stilstand te krijgen.
 +
 +
Om het tandwiel van OPEN naar DICHT te krijgen (en de deur weer te kunnen laten vergrendelen):
 +
* Draai het tandwiel met de klok mee tot de magneet net boven de sensor valt.
 +
* Rem de motor om het tandwiel snel tot stilstand te krijgen.
 +
 +
== Doorduino-EL520 bordje ==
 +
 +
Nu duidelijk is hoe het slot in elkaar zit en aangestuurd moet worden is het tijd om een bordje te ontwerpen wat open/dicht signalen van de [[Doorduino|Doorduino]] krijgt en hiermee het motorslot aanstuurt.
 +
 +
[[Bestand:Doorduino el520 board.png|thumb|600px|left|Doorduino-EL520 PCB]] <br clear=all>
 +
 +
Het printje bestaat uit twee helften, de Doorduino-helft (links) en de EL520 helft (rechts). De twee helften zijn standaard elektrisch verbonden, maar kunnen los van elkaar gebroken worden om de helften apart te gebruiken.
 +
 +
'''Links'''
 +
 +
De linker Doorduino helft kan functioneren als een standalone Doorduino bordje. Er is ook een footprint voor een MOSFET aanwezig zodat een ouderwets solenoidslot gebruikt kan worden in plaats van het motorslot. Hiernaast biedt dit bordje met een DS9503 chip ESD beveiliging op de OneWire bus waarmee iButtons uitgelezen worden. Mocht je deze beveiliging onnodig achten, dan zijn er twee jumpers zodat het onderdeel weggelaten kan worden.
 +
 +
[[Bestand:Doorduino_el520_ESD.png|thumb|400px|right|ESD beveiliging op de Doorduino input]]
 +
'''Rechts'''
 +
 +
De rechterhelft kan rechtstreeks aan een ongemodificeerde Doorduino worden aangesloten. Via een pull-up weerstand kan de Arduino op deze helft de open-drain ''Strike'' output van de Doorduino uitlezen.
 +
Met een serieweerstand, condensator en zener diode zou deze input ook tegen ESD en andere transients beveiligd moeten zijn.
 +
 +
Een TB6612 motor driver IC wordt gebruikt om de motor in het slot aan te sturen.
 +
Omdat de hall effect sensor in het slot een open collector output heeft wordt een soortgelijke schakeling als in het figuur hiernaast gebruikt om deze uit te lezen en de Arduino input te beschermen.
 +
 +
 +
=== Hardware-configuraties ===
 +
 +
Zie https://git.hackalot.nl/Kartoffel/doorduino_el520/tree/master/PCB voor alle ontwerpbestanden rond de PCB, inclusief gerbers.
 +
 +
In vrijwel alle configuraties wil je R8, R9 en Q1 weglaten. Deze zijn enkel nodig als je de linkerhelft gebruikt om een solenoidslot aan te sturen.
 +
 +
 +
==== Rechterhelft aangesloten op een bestaande Doorduino ====
 +
 +
De standaard backwards-compatible configuratie.
 +
 +
* Breek de PCB in twee helften, soldeer enkel de onderdelen op de rechterhelft. Vergeet de schroefterminals op X5 niet.
 +
* Flash de [https://git.hackalot.nl/Kartoffel/doorduino_el520/blob/master/doorduino_EL520.ino code] op een Arduino Pro Mini (5V, 16MHz). Laat <code>#define INVERT_INPUT</code> weggecomment.
 +
* Zet een jumper op JP1 als je alleen 12V op het bordje aansluit. De on-board regulator van de Arduino zal dan gebruikt worden om deze van 5V te voorzien.
 +
 +
 +
==== Linker en rechterhelft als standalone Doorduino+EL520 ====
 +
 +
Met deze setup heb je enkel een Pi+toebehoren nodig om een volledige Doorduino setup met een motorslot te bouwen.
 +
 +
* Laat de PCB intact. Omdat in dit geval twee Arduino's op elkaar aangesloten zitten kan je C1, D1 en R2 weglaten. X5 is ook niet nodig.
 +
** Let op: de EL520-Arduino heeft een pull-down weerstand nodig zodat de deur niet van het slot kan gaan wanneer de doorduino reset. Soldeer hiervoor een 22k (of 10k) weerstand direct van A3 naar GND op de rechter Arduino.
 +
* Bouw het Raspberry Pi-deel van een Doorduino volgens [https://revspace.nl/Doorduino3]
 +
* Flash de [https://github.com/revspace/doorduino/tree/master/arduino/doorduino3 standaard Doorduino code] op de linker Arduino Pro Mini.
 +
* Flash de [https://git.hackalot.nl/Kartoffel/doorduino_el520/blob/master/doorduino_EL520.ino code] op de rechter Arduino. Haal de comments voor <code>#define INVERT_INPUT</code> weg.
 +
* Zet een jumper op JP1 als je alleen 12V op het bordje aansluit. De on-board regulator van de Arduino zal dan gebruikt worden om deze van 5V te voorzien.
 +
* Met JP2 kan je de linkerhelft zijn eigen 5V laten maken vanaf de gedeelde 12V, '''of''' gebruik JP3 om de 5V van de rechterhelft te delen.
 +
* Sluit de linkerhelft aan als een standaard Doorduino setup. Let op dat de iButton zijn eigen ESD-beveiligde GND gebruikt, houd deze dus gescheiden van de GND van de ledjes als je de DS9503 gebruikt.
 +
 +
==== Linkerhelft als ouderwetse Doorduino ====
 +
 +
Voor als je de linkerhelft met een solenoidslot wilt gebruiken.
 +
 +
* Breek de PCB in twee helften.
 +
* Snijd de soldeerjumper J4 door en check of de verbinding verbroken is.
 +
* Soldeer alle onderdelen op de linkerhelft, inclusief Q1, R8 en R9.
 +
* Gebruik de soldeerpunten op J1 om de voeding en het solenoidslot aan te sluiten.
 +
* Verbind JP2 als je de Arduino zijn eigen 5V vanaf de 12V lijn wilt laten maken.
 +
* Flash de [https://github.com/revspace/doorduino/tree/master/arduino/doorduino3 standaard Doorduino code] op de linker Arduino Pro Mini.

Huidige versie van 17 mrt 2023 om 20:53

Let op: de informatie over het slot is grotendeels beredeneerd op basis van reverse engineering en niet gegarandeerd correct, pas het toe op eigen risico!

Doorduino el520.jpg
Project Doorduino_EL520
Name Doorduino_EL520
Start 2019/09/12
End 2019/10/31
Contact Kartoffel, redlizard
Website https://git.hackalot.nl/Kartoffel/doorduino el520
Information Aansturen Abloy EL520 motorslot vanuit de Doorduino
Status Voltooid

Abloy EL520 motorslot

In de zoektocht naar elektrisch bedienbare sloten voor de spacedeuren van Hackalot kwamen we twee Abloy EL520 motorsloten tegen. Dit zijn normaal erg dure sloten die nutteloos zijn zonder de (tevens dure) EA420 control unit. De sloten hebben we voor een zacht prijsje over kunnen nemen maar we hebben geen control units, dus het was tijd om de sloten te reverse engineeren en zelf iets te bouwen om de sloten aan onze Doorduino's te koppelen.


Het motorslot heeft een antipaniekfunctie, de hendel aan de binnenkant kan dus altijd gebruikt worden om de deur te ontgrendelen. Hiernaast kan het slot kan van binnen of buiten geopend worden door de cilinder, of elektrische bediening. Het slot ziet er van binnen zo uit:

Binnenkant EL520 (zonder OR-beugel)


Dit aanzicht is een halve slag gedraaid ten opzichte van hoe het slot normaal in de deur gemonteerd wordt. Op de foto mist een metalen beugel, die als een soort OR-gate de verschillende ontgrendelmechanismes met elkaar verbindt.

Linksbovenin zie je de blauwe 2x7 pin plug waar normaal een Abloy EA218/EA219 kabel in gaat. Deze kan ook prima vervangen worden door standaard 0.1" pin headers.

Onderaan zit de motor die via een wormwiel een tandwiel met metalen palletje aandrijft. Het metalen palletje bedient de OR-beugel om het slot te ontgrendelen.

Verder zitten er een hoop schakelaars en een reed sensor verspreid door het slot om alle standen en staten te meten voor een luxe aansturingssysteem, wij gebruiken die niet.

Bij normaal gebruik draait de motor het tandwiel alleen met de klok mee. Op de foto is deze in neutrale stand te zien (de deur is vergrendeld). Om de deur te ontgrendelen moet het tandwiel circa een halve slag draaien en hiermee de nachtschoot naar binnen trekken. Zolang de motor in deze stand blijft staan blijft de deur ontgrendeld. Om de deur weer te ontgrendelen draait het tandwiel met de klok mee tot deze weer in de neutrale stand staat. Wanneer de deur dan in de slotplaat valt zal de nachtschoot er weer uit schieten om de deur te vergrendelen.

Voor het gemak noem ik hierna de 'vergrendel' stand van het tandwiel DICHT, en de 'ontgrendel' stand van het tandwiel OPEN.

Om te detecteren wanneer het tandwiel in OPEN of DICHT stand staat zit er een magneet in met de vorm van een halve maan. Onder het tandwiel bevind zich een unipolaire hall effect sensor om de aanwezigheid van de magneet hierboven te detecteren. In de neutrale DICHT stand staat het begin van de magneet direct boven de hall effect sensor, en in de OPEN stand staat het eind van de magneet boven de hall effect sensor.

Typenummers en aansluitingen

EL520 Aansluitingen
EL520 Hall effect / motor schakeling


De bovenstaande afbeeldingen geven de pinout van het slot samen met EA218/219 kabelkleuren, en een schematische weergave hoe de hall effect sensor en motor intern aangesloten zijn. Bij de relevante onderdelen hebben we de volgende typenummers gevonden:

Onderdeel Functie
SS543AT Hall effect sensor
16G88-211E.1 12V Brushed DC Motor

De relevante pins aan de kabelconnector zijn:

Pin Kabelkleur Functie
2 geel M+ (motor)
3 groen M- (motor)
6 wit 12V (hall)
7 zwart GND (hall)
14 rood OUT (hall)

Aansturingsprocedures

Wanneer de aanstuurelektronica net opgestart is kan aan de hand van enkel de hall effect sensor de stand van het tandwiel niet bepaald worden. Met wat mechanisch inzicht zijn we bij de volgende resetprocedure uitgekomen om het tandwiel, ongeacht van de andere bedienmogelijkheden van het slot, altijd in DICHT stand te krijgen zonder de deur te hoeven ontgrendelen:

  • Staat de magneet al boven de sensor?
    • Draai het tandwiel tegen de klok in tot de magneet van de sensor valt.
    • Rem de motor om het tandwiel snel tot stilstand te krijgen.
  • Draai het tandwiel met de klok mee tot het begin van de magneet net boven de sensor valt.
  • Rem de motor om het tandwiel snel tot stilstand te krijgen.
  • Klaar.

Hierna kan het volgende uitgevoerd worden om het tandwiel in OPEN stand te krijgen (en de deur te ontgrendelen):

  • Draai het tandwiel met de klok mee tot de magneet voorbij de sensor valt.
  • Rem de motor om het tandwiel snel tot stilstand te krijgen.

Om het tandwiel van OPEN naar DICHT te krijgen (en de deur weer te kunnen laten vergrendelen):

  • Draai het tandwiel met de klok mee tot de magneet net boven de sensor valt.
  • Rem de motor om het tandwiel snel tot stilstand te krijgen.

Doorduino-EL520 bordje

Nu duidelijk is hoe het slot in elkaar zit en aangestuurd moet worden is het tijd om een bordje te ontwerpen wat open/dicht signalen van de Doorduino krijgt en hiermee het motorslot aanstuurt.

Doorduino-EL520 PCB


Het printje bestaat uit twee helften, de Doorduino-helft (links) en de EL520 helft (rechts). De twee helften zijn standaard elektrisch verbonden, maar kunnen los van elkaar gebroken worden om de helften apart te gebruiken.

Links

De linker Doorduino helft kan functioneren als een standalone Doorduino bordje. Er is ook een footprint voor een MOSFET aanwezig zodat een ouderwets solenoidslot gebruikt kan worden in plaats van het motorslot. Hiernaast biedt dit bordje met een DS9503 chip ESD beveiliging op de OneWire bus waarmee iButtons uitgelezen worden. Mocht je deze beveiliging onnodig achten, dan zijn er twee jumpers zodat het onderdeel weggelaten kan worden.

ESD beveiliging op de Doorduino input

Rechts

De rechterhelft kan rechtstreeks aan een ongemodificeerde Doorduino worden aangesloten. Via een pull-up weerstand kan de Arduino op deze helft de open-drain Strike output van de Doorduino uitlezen. Met een serieweerstand, condensator en zener diode zou deze input ook tegen ESD en andere transients beveiligd moeten zijn.

Een TB6612 motor driver IC wordt gebruikt om de motor in het slot aan te sturen. Omdat de hall effect sensor in het slot een open collector output heeft wordt een soortgelijke schakeling als in het figuur hiernaast gebruikt om deze uit te lezen en de Arduino input te beschermen.


Hardware-configuraties

Zie https://git.hackalot.nl/Kartoffel/doorduino_el520/tree/master/PCB voor alle ontwerpbestanden rond de PCB, inclusief gerbers.

In vrijwel alle configuraties wil je R8, R9 en Q1 weglaten. Deze zijn enkel nodig als je de linkerhelft gebruikt om een solenoidslot aan te sturen.


Rechterhelft aangesloten op een bestaande Doorduino

De standaard backwards-compatible configuratie.

  • Breek de PCB in twee helften, soldeer enkel de onderdelen op de rechterhelft. Vergeet de schroefterminals op X5 niet.
  • Flash de code op een Arduino Pro Mini (5V, 16MHz). Laat #define INVERT_INPUT weggecomment.
  • Zet een jumper op JP1 als je alleen 12V op het bordje aansluit. De on-board regulator van de Arduino zal dan gebruikt worden om deze van 5V te voorzien.


Linker en rechterhelft als standalone Doorduino+EL520

Met deze setup heb je enkel een Pi+toebehoren nodig om een volledige Doorduino setup met een motorslot te bouwen.

  • Laat de PCB intact. Omdat in dit geval twee Arduino's op elkaar aangesloten zitten kan je C1, D1 en R2 weglaten. X5 is ook niet nodig.
    • Let op: de EL520-Arduino heeft een pull-down weerstand nodig zodat de deur niet van het slot kan gaan wanneer de doorduino reset. Soldeer hiervoor een 22k (of 10k) weerstand direct van A3 naar GND op de rechter Arduino.
  • Bouw het Raspberry Pi-deel van een Doorduino volgens [1]
  • Flash de standaard Doorduino code op de linker Arduino Pro Mini.
  • Flash de code op de rechter Arduino. Haal de comments voor #define INVERT_INPUT weg.
  • Zet een jumper op JP1 als je alleen 12V op het bordje aansluit. De on-board regulator van de Arduino zal dan gebruikt worden om deze van 5V te voorzien.
  • Met JP2 kan je de linkerhelft zijn eigen 5V laten maken vanaf de gedeelde 12V, of gebruik JP3 om de 5V van de rechterhelft te delen.
  • Sluit de linkerhelft aan als een standaard Doorduino setup. Let op dat de iButton zijn eigen ESD-beveiligde GND gebruikt, houd deze dus gescheiden van de GND van de ledjes als je de DS9503 gebruikt.

Linkerhelft als ouderwetse Doorduino

Voor als je de linkerhelft met een solenoidslot wilt gebruiken.

  • Breek de PCB in twee helften.
  • Snijd de soldeerjumper J4 door en check of de verbinding verbroken is.
  • Soldeer alle onderdelen op de linkerhelft, inclusief Q1, R8 en R9.
  • Gebruik de soldeerpunten op J1 om de voeding en het solenoidslot aan te sluiten.
  • Verbind JP2 als je de Arduino zijn eigen 5V vanaf de 12V lijn wilt laten maken.
  • Flash de standaard Doorduino code op de linker Arduino Pro Mini.