TOUCHATAG HF RFID-Reader/Writer unter Linux einrichten

Posted in Debian, Hardware, Linux, Mifare, pcsc, RFID, Touchatag, Ubuntu on 28. Februar 2010 by crackburg

Wie ich im vorherigen Artikel schon angedeutet habe, füllte die mitgelieferte Software des Touchatags  nicht unbedingt meine Bedürfnisse aus. Nicht das sie jetzt schlecht wäre oder mir bedrohliches aufgefallen ist. Ich denke ich bin einfach nicht die Zielgruppe. Man wird halt alt.

Um den Reader unter Linux zu benutzen (ich habe es mit dem Ubuntu 9.10 NR und Debian Lenny versucht) benötigt man PCSC auf dem Rechner. Folgende Pakete sollten installiert werden:

  1. libpcsclite
  2. libpcsclite-dev (das Entwicklungspaket wird nicht unbedingt benötigt. Will man aber nachher noch irgendwas in der Richtung „nachbauen“ schreit eh alles danach)
  3. pcsc-tools
  4. pcscd
  5. libpcsc-perl (pcsc-tools hängt davon ab)
  6. libccid

Nach der Installation der Pakete sollte der Reader zur Verfügung stehen. Wenn die Ausgabe des Befehls pcsc_scan in etwa so aussieht, kann es weiter gehen:

PC/SC device scanner
V 1.4.15 (c) 2001-2009, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.4.102
Scanning present readers…
0: ACS ACR 38U-CCID 00 00

Sun Feb 28 20:59:36 2010
Reader 0: ACS ACR 38U-CCID 00 00
Card state: Card inserted,
ATR: 3B BE 96 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00

ATR: 3B BE 96 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00
+ TS = 3B –> Direct Convention
+ T0 = BE, Y(1): 1011, K: 14 (historical bytes)
TA(1) = 96 –> Fi=512, Di=32, 16 cycles/ETU
250000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 312500 bits/s
TB(1) = 00 –> VPP is not electrically connected
TD(1) = 00 –> Y(i+1) = 0000, Protocol T = 0
—–
+ Historical bytes: 41 03 00 00 00 00 00 00 00 00 00 02 90 00
Category indicator byte: 41 (proprietary format)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B BE 96 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00
SAM inside the Tikitag reader from Alcatel-Lucent
http://hackerati.com/post/57314994/rfid-on-the-cheap-hacking-tikit

Durch die PCSC-Middleware hat man nun vollständigen Zugriff auf die Lese- und Schreibkapazitäten des Gerätes. Als erstes habe ich tagEventor ausprobiert. Das aber im nächten Artikel.

Der Attraktor hat endlich eigene Räume

Posted in Attraktor, CCC, SSDEV on 4. Februar 2010 by crackburg

Endlich ist es soweit…,

nach um und bei zwei Jahren der Raumsuche hat der Attraktor e.V. endlich Räumlichkeiten finden und anmieten können. Lustig daran ist, es sind die selben Räume die als allererstes gefunden worden sind und auch in der engeren Auswahl standen. Leider kam es damals nicht zu einem Mietvertrag. Das ist aber nicht unbedingt so schlimm. Jetzt hat der Attraktor die „Bude“ ja.

Die Räume befinden sich in Hamburg-Winterhude in der City Nord. Stolze 384 m2 stehen für Veranstaltungen und Gruppen zur Verfügung.

Als erste „Mieter“ sind der Attraktor e.V., der Chaos Computer Club Hamburg e.V. und die Sportsfreunde der Sperrtechnik – Deutschland e.V. gerade beim renovieren und einziehen. Es ist also bald damit zu rechnen, dass in die neuen Räume auch leben einzieht.

Touchatag USB HF RFID Reader

Posted in Hardware, Mifare, pcsc, RFID, Touchatag with tags , , on 4. Februar 2010 by crackburg
Das Touchatag Starter Paket (Bild ist Eigentum von Touchatag.com)

Das Touchatag Starter Paket (Bild ist Eigentum von Touchatag.com)

Zu Weihnachten habe ich ein Touchatag Starter Paket geschenkt bekommen. Nun bin ich auch dazu gekommen, ein bischen zu spielen.

Das Paket enthält einen USB HF RFID Reader und 10 touchatag-Tags. Das Lesegerät ist ein ACR122U von der Firma ACS und funkt auf 13,56MHz.  Der Preis für den Reader ist sehr guenstig. Unter seinem echten Namen kostet er locker das dreifache. Die Tags sind Mifare Ultralight Tags zum einmaligen aufkleben (beim abpuhlen gehen sie in der Regel kaputt man kann sie danach aber noch wieder einlaminieren 😉 ).

Die von touchatag.com zur Verfügung gestellte Software gibt es für Windows (XP und Vista) und MAC OS X (10.4 oder höher). Für eine Nutzung der Originalsoftware benötigt man eine Verbindung zum Internet und ein gültiges Benutzerkonto bei touchatag.com. Da ich hauptsächlich unter Linux arbeite und es nicht ganz einsehe den Rechner mit dem Leser immer am Internetz zu haben, habe ich die Software nur kurz angesehen.

Angesprochen wird das Lesegerät über PC/SC.

Unter Linux hat man mit dem Gerät viel Spass. Hier die ersten Schritte um es einzurichten.

La Fonera 2.0n Dashboard

Posted in FON, Fonera, Hardware, Wireless, WLAN with tags , , , on 24. August 2009 by crackburg

Hier nun ein paar Impressionen des Dashboards von La Fonera 2.0n.

Fonera 2.0n

Posted in FON, Hardware, Wireless, WLAN with tags , , , , on 23. August 2009 by crackburg

Ich habe meinen Fonera 2.0n bekommen. Ein wunderschönes Gerät und ie Firmware ist echt ein Traum. Ich kann durch die Kiste einen kompletten Rechner abschalten. Ich schreibe die Tage ausführlich darüber. Hier noch ein Screenshot vom Dashboard.

Dashboard vom FONERA 2.0N

Dashboard vom FONERA 2.0N

Temperatur mit dem Arduino erfassen und auf dem Computer ausgeben Vol. 2

Posted in Arduino, Elektronik, Maxim/Dallas, Processing with tags , , , , , , , on 3. August 2009 by crackburg

Der Chip…:

Diesmal kommt anders als im vorherigen Beispiel ein Maxim/Dallas DS18b20 (Datenblatt) zum Einsatz. Vorteil gegenüber dem vorher verwendeten DS1620 ist zum einen, dass dieser Chip nur einen anstatt drei Portpins belegt. Zum anderen kann man mit der OneWire-Technologie von Dallas viel grössere Kabellängen realisieren, was ja für einen externen Sensor an sich wünschenswert ist. Das TO92-Gehäuse macht die Freude fast rund. Lässt es sich doch wunderbar mit Schrumpfschlauch abdichten und verwenden.

Und nun zu den Nachteilen. Da hätten wir als erstes die Auslesegeschwindigkeit. Jedes mal wenn man den Chip ausliest, dauert es ca. eine Sekunde bis er einen Wert zurückliefert. Nachdem ich vorher in meinem Hauptprojekt alle delays entfernt habe, ist so eine Zwangspause natürlich erstmal ärgerlich. Aber da ich ja nicht mit permanent wild schwankenden Temperaturen zu kämpfen habe, werde ich einfach die Temperatur nicht so häufig auslesen.

Mein zweiter Kritikpunkt ist die Codegrösse die entsteht wenn man den DS18b20 mit der Library von Miles Burton verwendet. War vorher mein kompletter Code samt Libs in etwa 6KB gross, so nimmt die Temperaturanfrage und DallasTemperature lib schon diese grösse ein. Was heisst das sich durch verwendung des Ds18b20 mein kompilierter Code auf die doppelte Grösse aufgebläht hat. Das habe ich aber auch pragmatisch gelöst und den Atmega88 durch einen Atmega168 ersetzt.

Die Schaltung…:

Pin 1 am DS18b20 geht auf Masse (GND). Pin 2 geht auf einen Digitaleingang am Arduino (bei mir D5). Ausserdem geht von Pin 2 ein 4,7 Kiloohm Pullup-Widerstand auf +5V (VCC). Pin 3 geht auf +5V(VCC). Beim Betrieb im parasitären Modus, zieht sich der DS18b20 seine Versorgungsspannung über die Datenleitung. Aber in Zeiten von Ebola und Schweinegrippe, muss man ja nicht auch noch die Bauteile zu parasitärem Verhalten ermutern.

Arduino Code:

/*
DallasTemperature.CPP –  Dallas Temperature Control Library 1.0.0 Author: Miles Burton, miles@mnetcs.com
Code basiert auf dem Beispiel von Miles Burton, miles@mnetcs.com
*/

#include <DallasTemperature.h>

DallasTemperature tempSensor;

void setup(void) {
// inputs/outputs initialsieren
// seriellen port starten
Serial.begin(9600);
tempSensor.begin(5); // Die Datenleitung geht in den digitalen Pin 5 am Arduino
}

void loop(void) {

// Bei der Library anfragen ob das Geraet gueltig ist
switch(tempSensor.isValid())
{
case 1:
Serial.println(„Invalid CRC“);
tempSensor.reset(); // Versuch den Chip erneut zu erkennen
return;
case 2:
Serial.println(„Not a valid device“);
tempSensor.reset(); // Versuch den Chip erneut zu erkennen
return;
}

// getTemperature liefert einen float-Wert zurueck. Dies ist immer eine positive Zahl.

Serial.print(„Temp: „);
//Temperatur abfragen und auf der seriellen ausgebendas abfragen der Temperatur braucht ca. 1sek. deswegen der „delay“ an dieser Stelle
Serial.print(tempSensor.getTemperature());
Serial.print(„C“);
Serial.println();
}

Processing Code:

import processing.serial.*;

Serial myPort;  // Die serielle Schnittstelle
PFont fontA;
String tempBuffer = null;
int lf = 10;    // Linefeed in ASCII

String Temperatur = „keine Daten“;

void setup() {

size(200, 200);
background(210);
// Alle verfügbaren seriellen Ports auflisten:
println(Serial.list());

/*Auswahl der seriellen Schnittstelle. die erste ist 0, die zweite ist 1 usw.*/
myPort = new Serial(this, Serial.list()[1], 9600);
/* Die Schrift laden. Schriften muessen im Datenverzeichnis des Sketches vorliegen.
um eine Schrift zu erstellen, verwende den Menuepunkt /Tools/create Font.
fontA = loadFont(„ArialRoundedMTBold-48.vlw“);*/

// Schrift und deren groesse definieren (in Pixeln)
textFont(fontA, 20);
}

void draw() {

while (myPort.available() > 0) { //Warten bis Daten auf der seriellen vorhanden sind
redraw();
String inBuffer = myPort.readStringUntil(lf); //So lange den inhalt der seriellen Schittstelle in den inBuffer lesen bis ein Linefeed kommt

if (inBuffer != null && inBuffer.startsWith(„Temp:“)) //wenn der inBuffer nicht leer ist und mit Temp: beginnt
{
Temperatur = inBuffer; // schreibe den Inhalt von inBuffer nach Temperatur
}

if (inBuffer != null && tempBuffer != inBuffer) {
background(210);
fill(51);
text (Temperatur, 1 , 20);
String tempBuffer = inBuffer;

}
}
}

Relaistreiber 0.2

Posted in Arduino, Elektronik with tags , , , , , , on 1. August 2009 by crackburg

Wie bei der vorherigen Version versprochen, habe ich den Relaistreiber überarbeitet. Der schaltende Portpin wird jetzt durch einen Optokoppler vor allem bösen was aus der Relaisspule sickern könnte geschützt. Als Optokoppler soll ein  CNY17 zum Einsatz kommen.