Powernode 1.1

From MakerSpace Leiden
Jump to: navigation, search

Powernode1.1 is de opvolger van diverse generaties op rasberripi gebaseerde deur systemen.

Door middel van dezelfde kaart als waarmee toegang tot de makerspace kan worden gekregen, kunnen gebruikers van diverse machines waarvoor instructie nodig is, de energievoorziening van deze machines inschakelen zodat ze gebruikt kunnen worden.

Gebruik

Swipe je toegangskaart. Als je instructie gehad hebt voor deze machine en in de database staat blijft de endicatie LED nu aan en krijgt de machine voeding (de klik die je hoort is het relay wat bekrachtigd wordt).

Druk op de knop als je klaar bent met de machine, de voeding naar de machine wordt dan weer uitgeschakeld.

Als er iets anders aan de hand is, wordt dat gemeld door de indicatielampjes.

Indicatie lampjes

Het bovenste lampje staat aan indien de node actief is. Indien het lampje knippert is er iets fout.

Het onderste lampje is uit indien het relay uit is; en gaat 'vol' aan als het relais is ingeschakeld.

Beide lampjes knipperen even snel indien er geen toegang is. Dit kan (ook) zijn omdat het apparaat buiten werking gesteld is (zie mailing list).

Betekenis LEDs

Symbool LED Betekenis
LED_OFF uit Geen stroom (of de node is nog aan het opstarten).
LED_ERROR ... (cont) Iets fout met de CPU - check de syslog op de centrale . Node zal na een paar minuten proberen te herstarten.
LED_FAST -.-. Buiten gebruik. Check the mailing lijst of wiki.
LED_PENDING . (elke 5 sec) Geen (kracht)stroom. Je kan een toegangspas voor het kastje houden.
LED_ERROR ... (5 sec lang) De pas is niet herkend of niet (meer) geldig. Valt terug in wachten op pas na 5 seconden.
LED_ON aan De pas is herkend en de machine krijgt voeding

Zie ook https://github.com/makerspaceleiden/AccesSystem/blob/master/lib-arduino/ACNode/src/LED.h

Tests

TBD. (Hoe werking van node controleren)

Nodes

Nu er een powernode basisPCB is, zouden we elke machine een eigen node kunnen geven, als we dat willen. Elke node is een klein beetje anders, en dat kan hieronder beschreven worden.

Abene

To Be Written

Cirkelzaag

TBW

Lasersaur

TBW

Lintzaag

TBW

Vandiktebank

De Node Vandiktebank is een wifi node voor de Vandiktebank.

Vlakbank

TBW

...

Ontwerp

Het kastje bevat een RFID kaartlezer, enige indicatieLED's en een Powernode1.1 basisboard met daarop ofwel een POESP-board_1.0 of POESP-board_1.1, of een ESP32-Vroom en een netvoeding.

Externe aansluitingen

Ref Is ratings
J1 opto ingang 240VAC-400VAC
J2 opto ingang 240VAC-400VAC
J3 relais NC NO C 240VAC, 4A MAX
J4 AartTriac Zie datasheet triac / max 1A
J5 relais NC C NO 240VAC, 4A Max
J6 input power Hi-Link 240VAC, 0.1A

IO list

I/O Wat zit er op? Note
IO34 Opto-ingang J1
IO35 Opto-ingang J2
IO32 RST van RC522_RFID RFID-kaartlezer
IO33 IRQ van RC522_RFID RFID-kaartlezer
IO4 AartTriac / P3 open collector Op P3 kan extern een AartTriac worden aangesloten
IO16 AartLED Aartled is de bovenste LED op het kastje.
IO5 Relais / P2 open collector Op P2 kan een extern relais worden aangesloten
IO14 SCK van RC522_RFID RFID-kaartlezer
IO12 MISO van RC522_RFID RFID-kaartlezer
IO13 MOSI van RC522_RFID RFID-kaartlezer
IO2 SW1 / P4 P4 via R16=330Ohm en C2=100nF, R17 is pullup 33k, D8 LED, D5 zener 3v3
IO15 SDA (CS) van de kaartlezer (en ADC ingang voor de stroomtrafo) Oeps. Daar moet dus een suffertjesdraadje, zie "bestukkingsopties"
I_36 (SVP) LM35 of unprotected externe input. Of suffertjesdraadje stroomtrafo. input only. ADC1CH0
I_39 (SVN) P8 / SW2 input only. Dit is de schakelaar op het kastje.

Bestukkingsopties

Het powernode 1.1 basisboard is in de basis erg eenvoudig, maar heeft een flink aantal optionele bestukkingsmogelijkheden om het zo universeel mogelijk inzetbaar te maken, en zijn er een aantal subtiliteiten waarover nagedacht is, en zit er zelfs een foutje in (waar dus niet goed over nagedacht is, behalve achteraf, want zo werkt dat met fouten).

Zo kan er worden gekozen uit ofwel een PoESP bord, ofwel een losse ESP32 voor situaties waar geen power-over-ethernet nodig is, of waar dit wordt geregeld door een externe POE-adapter.

Indien een losse ESP32 wordt gebruikt, is de IO hiervan beschikbaar op P9 (gelabeld VroomIO)

De stroomtrafo tr1 heeft een aantal mogelijkheden. Zo kan een 4 pins stroomtrafo type ZMCT118F gebruikt worden of een 2-pins trafo met een steek van 15.24 mm. De 4 pins trafo kan zowel recht als onder 90 graden geplaatst worden, dus met het gat in dezelfde richting als de printkroonstenen, of haaks daar op. De 2 pins trafo kan zowel recht als onder 90 graden geplaatst worden, en met enige creativiteit ook onder 45 graden, waarbij wel moet worden opgelet dat de juiste aansluitingen gekozen worden. Enkele gaten zijn namelijk Not Connected (NC) of met elkaar verbonden.

Er wordt uitgegaan van 1:1000 stroomtrafo's. Uiteraard kan door een andere keuze van load weerstand de trafo worden aangepast op het bereik van de ADC, en kan ook de software worden aangepast.

Andere trafo's kunnen worden aangesloten met connector P10 op de rand van de print, of met de soldeervlakjes P11 in het midden van de trafo-footprint, waarbij de draden voor trekontlasting door de 2.0 mm gaten "gevlochten" kunnen worden. (Via de bovenkant van de print door het gat het dichtst bij de rand, dan vanaf de onderkant door het andere gat, en dan vanaf de bovenkant door het soldeervlakje en aan de onderkant vastsolderen, hierna draad straktrekken).

De aansluiting van de trafo op de ADC kan door selectief bestukken worden gekozen. Ofwel via een 10k weerstand R19 ofwel via een 10k weerstand R22, diode D3, en afvlakcondensator C3. Zie schema. Zo kan dus gekozen worden om snel te samplen en de stroom en golfvorm echt te meten, of om via de diode en afvlakcondensator op een lagere samplerate eenvoudiger slechts een indicatie te krijgen als er "veel stroom" loopt / of de machine gebruikt wordt. D2 is een dubbeldiode die wordt gebruikt als clampdiode om de adc ingang te beschermen als door piekstromen de stroomtrafo een te hoge uitgangsspanning zou geven.

Omdat door een fout in versie 1.1 de stroomtrafo op dezelfde ingang is aangesloten als de SDA van de kaartlezer, moet hiervoor een printspoortje worden doorgekrast en een suffertjesdraadje worden gelegd. De stroomtrafo komt op ADC1CH0, de kaartlezer's SDA blijft op I/O 15. Leg hiervoor aan de onderkant van de print een draadje tussen de via die vastzit aan de linkerkant/kathode van D3 en de middelste pin van U3, en kras de verbinding aan de onderkant van de print van deze via naar de volgende via ernaast weg. (Dit is zowel van toepassing als een ESP32 wordt gebruikt als wanneer een PoESP wordt gebruikt). Als je op een andere plek de verbinding doorkrast of een draadje legt, let dan op dat de kaartlezer met de MCU verbonden blijft. Bij toepassen van een ESP32Vroom kan ook voor een andere ADC ingang worden gekozen door 1 van de pinnen op de VroomIO header (P9) te gebruiken.

U3 was bedoeld zodat een LM35 kon worden aangesloten, of, indien deze niet gebruikt wordt, hier 12V, I_36 / ADC1CH0 en gnd beschikbaar te stellen voor andere analoge sensoren, maar gezien bovenstaande "Oeps" kan deze niet worden gebruikt als ook de stroomtrafo wordt gebruikt. Mocht deze ingang toch gebruikt worden voor een andere sensor, houd er dan rekening mee dat deze rechtstreeks is aangesloten zonder enige vorm van protectie.

De Opto-ingangen, Relais, Triac en dergelijke kunnen als ze niet gebruikt worden worden weggelaten.

Er zijn enkele soldeerjumpers waarmee het relais en de triac permanent aan, of juist permanent uit geforceerd kunnen worden. Let op: dit zijn níet de headers op de print. De headers zijn open-collector uitgangen die in plaats van het relais of de triac gebruikt kunnen worden, al dan niet om een extern van de print geplaatst relais of traic te schakelen.

Sluit JP4 Om het relais AAN te forceren. JP1 voor de triac. Open JP2 om het relais UIT te forceren. JP3 voor de triac.

P2 is de header voor de open collector uitgang van het relais en P3 de header voor de open collector uitgang van de triac. Deze kunnen gebruikt worden om extern een indicatieLED aan te sluiten, of een extern relais of triac. JP4/JP1 zal de externe oc uitgang laag forceren. JP2 onderbreekt de voeding naar het relais of de externe oc uitgang. JP3 onderbreekt alleen de verbinding naar de triac en de externe uitgang blijft verbonden.

Op P6 kan als er geen gebruik wordt gemaakt van een PoESP-bord extern een voeding worden aangesloten van 5..12VDC. Uit deze spanning wordt de spoel van het relais gevoed en de 3.3v gemaakt voor de ESP32. Ook kan ervoor gekozen worden om een Hi-Link powerblokje te plaatsen op PS1 waarbij P6 gebruikt kan worden om deze 5V extern af te nemen. Als er wel gebruik wordt gemaakt van een PoESP-bord kan P6 eveneens gebruikt worden om extern voeding af te nemen binnen de grenzen wat het PoESP bord kan leveren. De spanning word hierbij ingesteld met R4 Als er een ESP-bord of een externe voeding wordt gebruikt, het Hi-Link blokje niet plaatsen. Als het Hi-Link blokje als voeding wordt gebruikt, slechts dan ook J6 plaatsen (hier kan dan netspanning worden aangesloten), en F1 plaatsen (0.1AT 5x20mm in houder), anders kunnen deze worden open gelaten.

De opto-ingangen kunnen door het aanpassen van de serieweerstand geschikt gemaakt worden voor andere ingangsspanningen. Mik op minimaal ongeveer 1mA door de led van de opto, en let op de dissipatie van de weerstanden bij de maximumspanning.

R4 (Ohm) P6 (Volt)
0 (short) 24
7k15 12
INF (open) 5V

Om vanuit de spanning op P6 naar 3.3V te gaan voor de ESP32, kan als er geen PoESP-bord gebruikt wordt (Dat maakt zijn eigen 3v3), een spanningsregelaar type R-78E3.3-0.5 geplaatst worden op U7 of een LM1117-3.3 op U6 De LM1117-3.3 kan niet gebruikt worden voor ingangsspanningen boven de 5V, omdat deze dan te warm wordt vanwege de door de ESP32 verlangde stroom. Het is dus aan te raden de schakelende regelaar ... te gebruiken, daarbij moet de LM1117 worden weggelaten. Wordt tóch de LM1117 gebruikt, dan moet de schakelende regelaar worden weggelaten.

Op P5 kan deze 3V3 extern worden afgenomen, of, indien deze niet op het bord zelf gemaakt wordt (omdat U6 / U7 niet geplaatst zijn) worden aangeboden.

Op P4 en P8 kan een externe schakelaar of I/O worden aangesloten. Deze ingangen zijn voorzien van een low-pass filter en een zener als beperkte protectie tegen ESD en EMI, zie schema. P4 (I/O2) kan ook gebruikt worden voor een LED of als externe I/O. P8 (I_39) als externe ingang.

Montage

  • Een eventuele metalen achterplaat kan worden geaard. Let hierbij op de minimale afstand tussen achterplaat en netspanningsvoerende soldeerpunten. Let er hierbij ook op dat de GND van PoE niet aan aarde verbonden wordt.
  • Bij montage met metalen schroeven, isolerende ringetjes gebruiken.
    • Het gat links onder (bij de spanningsregelaar) gaat door een groundplane aan de onderkant en een 3v3 vlak aan de bovenkant. Als de schroef door de soldermask heen slijt wordt anders de 3v3 kortgesloten. (De bovenkant heeft een 3v3 vlak om zo de 1117 te koelen, de tab hangt aan de uitgangsspanning.)
    • Bij gebruik van niet galvanisch gescheiden PoE (Zoals de PoESP heeft) icm een geaarde achterplaat zou een door de soldermask gesleten schroef het groundplane van de print aan de aarde kunnen verbinden, en daarmee de ground van PoE. (dit is te vermijden met isolatie ringetjes boven en onder elk schroefgat, of smal genoeg montagemateriaal dat de groundplane niet raakt).

Schema

Schema.pdf

Materialenlijst

Designator Hoeveelheid per node Wat is het Bestelnummer leverancier opm
TR1 1 ZMCT118F 1000:1 ZMCT118F Aliexpress
U4 1 ESP32-WROOM Adafruit / arrow DNP
U1,U2 2 VOS627 2547284 Farnell
U7 1 R-78E3.3-0.5 2218602 Farnell. RS:777-3291 OPT, alleen bij Wroom
P10,P11,P2,P3,P5,P6,P8 7 CONN_01X02 Pinheader generiek
C2 1 100n_OPT 2522443 Farnell
C5,C10,C8 3 100n 2522443 Farnell
C1 1 100uF 8126240 Farnell
C3 1 C_2u2_OPT 2429358 Farnell
C4,C9 2 2u2 2429358 Farnell
C6,C7 2 10n_MAINS MKS4-1000 10N2 Reichelt: MKS4-1000 10N2
D1 1 AARTLED LED 105 A RT Reichelt buitenkant kastje krijgt 2 led’s, Dus koop er 2 per kastje"
D2 1 bav99+ 2675152 Farnell
D4,D6,D8 3 LED LED generiek Hi-Eff / Low I types, behalve D8, of serieR aanpassen.
D5,D11 2 Zener_3v3 1861479 Farnell 1861479 / Reichelt BZX 55C3V3 VIS
P1 1 CONN_01X25_POESP1.0 Pinheader Female generiek
Q1,Q2 2 BC847 BC 847B SMD Reichelt (of SMDshop, of Farnell)
R1,R2,R10,R17,R20,R21,R24,R30,R31 9 33k 0805 Reichelt: SMD-0805 33,0K Reichelt
R3,R5,R15,R16 4 2k2 0805 Reichelt: SMD-0805 2,20K Reichelt
R4 1 7k15 0805 2695089 Farnell
R6,R7,R8,R9,R11,R12,R13,R14 8 68k 1206 2447536 Farnell / Reichelt: SMD 1/4W 68K Reichelt
R18,R25,R26 3 330R 0805 Reichelt: SMD-0805 330 Reichelt
R19,R22 2 10k 0805 Reichelt: SMD-0805 10,0K Reichelt
R23 1 50R 1% 0805 2447669 Farnell
RL1 1 FINDER-40.52 MSLSTOCK Generiek
SW1,SW2 2 SW_Push MSLSTOCK Generiek
U3 1 LM35-LP DNP DNP DNP
U5 1 MOC3023M DIP-6 1021367 Farnell
U6 1 NCP1117ST33T3G_MountingTab DNP DNP DNP
P4 1 CONN_01X03 Pinheader Generiek
P7 1 CONN_01X08 Pinheader Female Generiek
P9 1 CONN_01X16 Pinheader Generiek
J1,J2,J4,J6 4 Screw_Terminal_1x02 Reichelt: RND 205-00232 Goedkoper dan farnell, Zeker bij 10 powernodes"
J3,J5 2 Screw_Terminal_1x03 Reichelt: RND 205-00288 Goedkoper dan farnell
R27,R28 2 470R 1206 2861948 Reichelt
R29 1 39R 1206 SMD 1/4W 39 Reichelt
D3 1 OPTIONAL1n4148 2675147 Farnell OPT
D7 1 1n4148 2675147 Farnell
D12 1 Q_TRIAC_AAG_BTA24-600BRWG 1057284 Farnell
PS1 1 HiLink_HLK-PM01 HLK-PM01 Aliexpress OPT, alleen bij Wroom
F1 1 0,1AT F0.1AT Generiek OPT, alleen bij Wroom

Gemaakt met een csv-> wikitable converter, maar de .csv die KiCad exporteerd is niet rechtstreeks bruikbaar, dus tussendoor bewerkt in een spreadsheetprogramma.

Verder zijn nog een kaartlezer en een PoESP-board nodig.

PCB ontwerp / gerbers / kicadfiles

Deze powernode1.1 basisprint is ontworpen in KiCad 5.0.0.

Alle kicad files, maar ook de gerbers, zijn te vinden op Github

Let op de "known issues" die hier onder genoemd worden mocht je dit project willen nabouwen.

Maten: 93x88 mm

Holes: ?

Software

... (TODO: Github link. Of op eigen pagina per node? Draaibank, abene, cirkelzaag, lintzaag, vlakbank, vandiktebank)

Extra aandachtspunt; de buttons moeten stevig ge-debounced worden; en hebben de pull-UP setting nodig.


   ButtonDebounce button1(SW1_BUTTON, 50 /* mSeconds */);
   ButtonDebounce button2(SW2_BUTTON, 50 /* mSeconds */);
   
   ... in setup() {
   
   pinMode(SW1_BUTTON, INPUT_PULLUP);
   pinMode(SW2_BUTTON, INPUT_PULLUP);
   
   button1.setCallback([](int state) {
      Debug.printf("SW Button 1 changed to %d\n", state);
   });
   button2.setCallback([](int state) {
      Debug.printf("SW Button 2 changed to %d\n", state);
   });
   
   // if indien handiger
   .... in loop() {
   if (buttonX.state() == LOW) ....

Known issues / verbeterpunten voor v1.2

Powernode 1.2

  • IO 15 wordt zowel gebruikt voor de kaartlezer (Als SDA) en voor de ADC ingang van de stroomtrafo. Dat is waarschijnlijk praktisch onmogelijk en zal dan opgelost moeten worden met het doorkrassen van een printspoor en het kiezen van een andere I/O.
  • De collector/emittor van beide transistoren zit op de print verkeerd om, daardoor schakelt het relais niet goed. Mogelijke oplossingen zijn een transistor met een matchende footprint vinden, of de bestaande transistor anders plaatsen.
PCB         BC847

   e          c
 b   c      b   e

 top view sot-23
  • De anode/kathode aanduiding van de diodes is weggevallen op de silkscreen. De "dichte" kant is de kathode, maar omdat hier de pad overheen zit is het lastig te zien.
  • De aansluiting voor externe voeding is niet gelabeld. Het is de onderste printkroonsteen, het dichtst bij de zekering.
  • De aansluitingen NO/NC/C van het relais zijn alleen op de bovenkant van de print gelabeld, maar hier vallen sommige typen connector overheen. Het is handig ze ook op de soldeerzijde/onderzijde te labelen. Dit kan eventueel ook met een permanent marker met fijne punt.
  • In V1.2 ook een zenerdiode als alternatief voor D2 opnemen.
  • Het relais klappert nu mee met een firmware-update / "uploaden van een schets over USB", en zorgt ervoor dat deze mislukt tenzij de PoESP uit de print wordt gehaald. In volgende revisie dus deze I/O pin niet gebruiken voor het relais / uitzoeken welke I/O pinnen de bootloader waar voor nodig heeft en deze correct afsluiten (PU/PD), en alleen gebruiken voor I/O die hiermee niet conflicteert (inputs, bijvoorbeeld).\
  • zou handiger zijn als alle knoppen en IO pinnen/LEDs aan de rand komen.
  • Als de header voor de POE wat verder naar de rand gaat - dan kan de POE mooi 'plat' - dus haaks over de print. Misschien met een extra gat voor een afstandsbusje. Dan wordt het een mooi plat geheel (onder of boven de PCB; afhankelijk hoe je soldeert).
  • Het is misschien handig om 2 solder/dikke jumpers te hebben om de N/L van de travo aan de midden pinnen van het relay te kunnen zetten (en misschien idem voor triac). Zodat je bij een simpele install geen jumps hoeft te maken aan de connector kant; maar power op twee pinnen erin; power elders naar de machine er direct uit.
  • Nog mooier als er nog een jumper 'door' de current transformer kan.
  • En helemaal mooi als gelijk de print en montagegaten zijn afgestemd op een geschikte behuizing, zodat montage makkelijker wordt.
  • 10k pullups voor de schakelaar ipv 33k, noisy environment.
  • Uitzoeken waarom USB verbinding wegvalt als de boormachine in toeren daalt / uitzoeken of dan de MCU restart of dat het alleen de USB chip is / uitzoeken of er spikes binnenkomen via de stroomtrafo of via de lucht en of er iets aan te doen valt.
  • RC netwerkje of iets, waardoor er DC 1/0 uit de opto komt ipv 100Hz als het ding op wisselspanning is aangesloten.
  • Footprint voor de 3v3 regelaar, waarbij de pinout duidelijk is (Het is nu een generieke TO220, en dan moet je dus de pinout uitzoeken voor je een regelaar kunt plaatsen)
  • lijstje van dw 9-12-'18:
    • Wat solder-cut/jumpertjes zodat je de opto los kan koppelen - en ais I/O kan gebruiken.
    • En alle losse I/O naar een headertje. Dus dat je het relay/triac ook als input kan bebruiken; en de SW's als output. Overigens - de headertjes van de SW1/SW2 zijn vrij onbereikbaar - want onder de PoE print.
    • Ook handig is betere indicatie op AartLed van welke de + is. Idem voor de RFID. Zou ook fijn zijn.
    • En ook handig zou een solder-jumper lijntje zijn van de N van de AC input naar de travo naar één van de opto-pins. Of eventueel van beide naar de NO of C van de twee relay polen.
    • Ook handig is een terminal 'voor' de current coil met dikke banen naar twee pads links en rechts - zodat je een brug er door kunt solderen. En je dus de zaak wat makkelijker kan loshalen.
    • Ook is de tekst van de terminals wat lastig te lezen als de zaak bedraad is.
  • Footprint 5V HiLink blokje en 12V HiLink blokje is niet gelijk, dus op zoek naar 5V relais en/of footprint aanpassen (Want op 12V dissipeert de 1117-3v3 te veel)
  • Voor de ESP32-Vroom-optie: 10K pull-up op de EN, en nette programmeerheader (Of 3v3/EN/GGPIO0/GPIO 2 in de buurt van de EN/TX/RX/GND van de PoESP header zetten dusdanig dat er een 2x4 header op past) -- maar als er een OlimexPoE op komt wordt dat natuurlijk wéér anders...
  • Beter documentatie van de diverse headertjes (Open Collector en Interlock headers).
  • betere "cuttable jumper" header ontwerpen, deze is zowel lastig te cutten áls lastig te solderen, en de gaten zijn slechts nét aan groot genoeg voor een header. Het werkt wel, maar kan beter)

spareparts

Poest-bordjes, LED's, led-houders, printplaten en andere onderdelen van dit project zijn terug te vinden in de rode doos op de plank boven de raaco-kastjes:

In de rode doos zitten de onderdelen van het (power)nodes project