|
|
(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]] |