Zum Inhalt springen

Laser/Lazzzorauth: Unterschied zwischen den Versionen

Overflo (Diskussion | Beiträge)
K Pk verschob die Seite Lazzzor/Lazzzorauth nach Laser/Lazzzorauth
 
(22 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== SYSTEM IS LIVE! Here is how it works ==
[[Datei:Lazzzorauth snippet.jpg|300px|right]]
'''Important notes:'''
'''You need a key, or a key owner to log in for you before you can lazzzor!'''
If you have lazzzor privileges but not yet a key, get in touch with [[Benutzer:mzeltner|mzeltner]], [[Benutzer:overflo|overflo]] or [[Datei:core.png]]!
<font color='Red'>If you try to print '''without anyone being logged in, CorelDraw will freeze'''<br />and print jobs will have to be cancelled!</font> After deletion CorelDraw will unfreeze.
Currently public list of people with lazzzor privileges:
{{Lasermenschen}}
=== Workflow / Howto ===
* '''Logging in''': put in your key
* Print as per usual!
* '''Be externally responsible''': hold logout button for 3 seconds (display doesn't changes after 3s but after releasing the button)
* External (i.e. not you!) print as per usual
* '''Log out''': tap logout once (if you're done lazzzoring or overseeing lazzzoring!)
__TOC__
== Hardware  ==
== Hardware  ==


Consists of:
Consists of:
- Raspberry Pi
* Seagate Dockstar (because the Raspberry Pi SD cards died several times)
- Arduino
* Arduino
- 16x2 LCD
* RGB 16x2 LCD
- OneWire (iButton suport)
* OneWire socket (iButton support)
- 3 Leds for status indication
* A red Button
- 1 Button
* a 6-Port network switch
- a 6-Port Network Switch


== Software ==
== Software ==


2012-07-15-wheezy
* Dockstar linux distro from USB stick
* Node.js Server / Database
* Arduino code (because there was a spare Arduino laying around..)


Node.js
== How ==


Arduino code
Hardware documentation
{|width="100%"
|width="33%"| [[Datei:Lazzzorauth_bb_small.png|340px|thumb|center|Breadboard Aufbau (made with fritzing)]]
|width="33%"| [[Datei:Lazzzorauth.jpg|300px|thumb|center|wall mount box]]
|width="33%"| [[Datei:Lazzorauth sensor.jpg|300px|thumb|center|The hall effect sensor + Preamp]]
|}


== How ==


Hardware documentation
There is a hall effect sensor placed right over the valve of the air-assist. This valve is opened to enable a static airflow as soon as a laserjob starts and is disabled when the job ends.
[[Datei:Lazzzorauth_bb_small.png|200px|thumb|left|Breadboard aufbau (made with fritzing)]]
 
[[Datei:Lazzzorauth_sensor.jpg|200px|thumb|left|The hall effect sensor + Preamp]]
 
== Protocols ==
 


All states are now handled by the embedded system.


There is a hall effect sensor placed right over the valve of the airassist.
The Arduino only displays what the embedded system sends it.


This valve is opened to enable a static airflow as soon as a laserjob starts and is disabled when the job ends.
The arduino sends ibutton scans and pushbutton events.


<pre>
//this code is followed by the button id
#define BUTTON_ID_SCANNED  'I'


<p style="clear:both">
// error is followed by error description (like CRC error)
#define ERROR_CODE  'E'


Software documentation
// when button is triggered
* tbd (pitfalls, config, buildprocess)
#define LOGOUT_USER  'B'
// when button is long pressed
#define EXTERNAL_USER_RESPONSIBLE  'X'


== Protocols ==
//button was removed, this event is ignored by embedded system
#define BUTTON_REMOVED  'L'


// sensor from valve magnetic field
#define LASERJOB_STARTED  'J'
#define LASERJOB_FINISHED  'S'
</pre>


''' this is partially wrong and needs correction'''


Arduino SENDS:
The embedded system sends:
<pre>
'A' followed by text for the FIRST line
'B' folloowed by text for the second line
'C' Turn color on LCD to


GREEN =1
RED =2
BLUE =4
</pre>


{|
== Where ==
!align ="left" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"|<small>Code</small>
! align ="center" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"| <small>Parameter<small>
! align ="center" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"| <small>Expected reply<small>
! align ="center" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"| <small>What does it mean<small>
! align ="center" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"| <small>Example<small>
|-
|style="border:1px dotted lightgray;"| I
|style="border:1px dotted lightgray; text-align:center;"|<iButton ID>
|style="border:1px dotted lightgray; text-align:center;"| A, N
|style="border:1px dotted lightgray; text-align:center;"| IButton scanned
|style="border:1px dotted lightgray; text-align:center;"| I:33-000000000000
|-
|style="border:1px dotted lightgray;"| X
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| O
|style="border:1px dotted lightgray; text-align:center;"| Lazzzor shutdown button hit (eXit)
|style="border:1px dotted lightgray; text-align:center;"| X
|-
|style="border:1px dotted lightgray;"| P
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| P
|style="border:1px dotted lightgray; text-align:center;"| Ping! /Heartbeat
|style="border:1px dotted lightgray; text-align:center;"| P
|}


LazzzorAuth runs @ 10.20.30.27


Its located right behind the Lazzzor station on the wall.


Raspberry sends:
== Links ==
[https://github.com/Metalab/LazzzorAuth/ Arduino + Embedded system code on github]


== Gotchas ==
The Arduino used is a Arduino UNO but it's bootloader is from an Arduino DUEMILANOVE.


{|
Pick this as target when compiling a new firmware for it..
!align ="left" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"|<small>Code</small>
! align ="center" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"| <small>Parameter<small>
! align ="center" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"| <small>Expected reply<small>
! align ="center" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"| <small>What does it mean<small>
! align ="center" style="border:1px dotted lightgray; border-bottom:1px solid lightgray;"| <small>Example<small>
|-
|style="border:1px dotted lightgray;"| A
|style="border:1px dotted lightgray; text-align:center;"|<username>
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| Authenticated
|style="border:1px dotted lightgray; text-align:center;"| A:OVERFLO
|-
|style="border:1px dotted lightgray;"| N
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| Not authenticated (invalid Button)
|style="border:1px dotted lightgray; text-align:center;"| N
|-
|style="border:1px dotted lightgray;"| O
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| Off (in response to X)
|style="border:1px dotted lightgray; text-align:center;"| O
|-
|style="border:1px dotted lightgray;"| P
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| Heartbeat / PING
|style="border:1px dotted lightgray; text-align:center;"| P


|-
When the Arduino is plugged in it displays "Linux booting.. hang in there"
|style="border:1px dotted lightgray;"| E
|style="border:1px dotted lightgray; text-align:center;"| <Error>
|style="border:1px dotted lightgray; text-align:center;"| NONE
|style="border:1px dotted lightgray; text-align:center;"| Some Error occured
|style="border:1px dotted lightgray; text-align:center;"| E:Network down!


Once the embedded system is up it sends a welcoming message over serial and this flushes the display.


|}
[[Kategorie:Infrastruktur]]
[[Kategorie:Lazzzor]]
[[Kategorie:Metalab_OS]]
[[Kategorie:Projekte]]