Bekannte Probleme mit RFID-Tags 18mm

Die Erfahrung hat mittlerweile gezeigt, das die 18mm Tags sehr empfindlich sind, was den lese Abstand angeht. Wenn diese zu nah auf dem Akku aufgebracht werden, kann der Tag nicht ausgelesen werden. Wahrscheinlich wird die Energie vom Akku Pack absorbiert und somit wird nicht genug Versorgungsspannung zum Tag / Chip transportiert. Wenn Platz ist, sollte man den >20mm Tag den Vorzug geben.

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Neue Software Version v1.08

Hallo,

mitterlerweile konnte sich der RFID Akku Scanner sich im Feld behaupten.  Viele Scans wurden seit Anfang des Jahres problemlos durchgeführt.

Es ist funktionell, schnell und einfach zu bedienen. Einige Verbesserungen sind in der Zwischenzeit eingeflossen. Ein Update lohnt sich auf jeden Fall. RFID_Scanner_1_08

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Neue Funktionen in Version 1.05

Es wurde die Software Version 1.05 released.

Neue Funktionen sind:

Das einlesen vorhandener beschriebener RFID Chips funktioniert nun. Falls man die SD Karte gelöscht hat oder diese defekt ist, einfach ein „e;“ seriell abschicken und den Chip zwei mal an den Scanner bringen, werden die Daten vom Chip auf sie SD Karte geschrieben.

Zusätzlich zum Datum wird nun auch die Uhrzeit im Chip und auf der SD Karte gespeichert.

Ein eingeben von Datum und Uhrzeit ist nun auch über die Serielle Konsole möglich.

Setzen von Uhrzeit und Datum Format: t;year;month;day;hour;minute;secunde;
t;2013;2;27;19;36;00;

Weiterhin ist nun ein direktes umschalten zwischen den Modi „Akku Info“ und „Akku laden“  möglich ohne das die Spannungsversorgung ausgeschaltet werden muss.

Hier könnt Ihr die aktuelle Version RFID_Scanner_1_05 laden

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Piezo Buzzer

Es ist nun auch der 5V Piezo Buzzer angekommen.   Zum  Größenvergleich liegt ein 18mm Coin daneben. Im Gehäuse wurde er neben der RTC oben links platziert.

P1000828P1000829

P1000826

 

 

 

 

Seit Software Version 1.03 ist der Buzzer aktiv und gibt einen kurzen piep von sich sobald alle RFID Daten gelesen bzw geschrieben wurden. Das verbessert die Handhabung erheblich.

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Neue 18mm RFID Coins sind angekommen

Nun sind auch die kleinern 18mm RFID Coins angekommen. Diese sind besonders für die kleinen Akkus zu gebrauchen. In Zukunft werde ich wohl nur noch die 18mm Durchmesser Coins kaufen. Diese funktionieren einwandfrei, somit mein neuer Standard.

P1000822

  Auch die Bauanleitung macht Fortschritte, ist aber noch lange nicht fertig.

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Beschleunigen der Bootzeit durch ändern der Fuse Bits

Da mein vorhaben das Programm direkt per SPI (ICSP) in den µC Mega2560 zu laden aufgrund meines warscheinlich nicht mit mega2560 kompatiblen USBasp Programmers fehlschlug  habe ich mich dazu entschlossen nur die Fuse Bits zu verändern.

Hintergrund: Der USBasp von www.fischl.de  den ich seit einigen Jahren besitze um damals die „kleinen“ AVRs zu programmieren scheint ein Problem mit > 128Kbyte zu haben. Ein update auf die aktuellste Version sollte das Problem beheben, bei mir allerdings bis jetzt ohne Erfolg. Es gibt noch eine alternative Software für den USBasp, allerdings habe ich diese nicht probiert, da Sie leider nicht unter Linux Mint 14 läuft.

Am besten benutzt man einen AVR Programmer konform zu  STK500 damit sollte es keine Probleme geben.

Da alles nicht geklappt hat, habe ich mit entschlossen mit dem USBasp per ICSP Schnittstelle die fuse Bits geringfügig zu verändern.

Die originalen Fuse Einstellungen des Arduino Boards sind in der Datei boards.txt unter ../arduino-1.0.3/hardware/arduino/boards.txt zu finden. Dort sind als Standard folgende Fuse einsgestellt;

low_fuses=0xFF      high_fuses=0xD8      extended_fuses=0xFD

Ein Blick auf http://www.engbedded.com/fusecalc/ verrät was dahinter steckt.

Die einzige Änderung die ich vorgenommen habe ist die high_fuses=0xD8 in high_fuses=0xD9 zu ändern. Damit wird folgende Funktion deaktiviert.

Boot Reset vector Enabled (default address=$0000); [BOOTRST=0]

Das hat zu Folge, das das Programm zwar direkt ohne Bootloader geladen wird, aber der mega 2560 nicht mehr sofort mit der Arduino IDE geflashed werden kann.

Ein ändern der Fuse wird mit avrdude vorgenommen, hier der Befehl als root dazu.

sudo avrdude -c usbasp -v -p m2560 -U hfuse:w:0xd9:m

oder mit

sudo avrdude -c usbasp -v -p m2560 -U hfuse:w:0xd8:m

zurück zum Original. Man kann auch alle Fuses auf einmal schreiben einfach am ende alle Fuses anhängen.

-U lfuse:w:0xff:m -U hfuse:w:0xd9:m -U efuse:w:0xfd:m

Normalerweise kann das Progamm mit folgendem Befehl über USBasp geflashed werden.

sudo avrdude -c usbasp -v -p m2560 -U flash:w:RFID_Scanner_1_00.cpp.hex

Ein erfolgreiches fusen sollte so ausschauen:

sudo avrdude -c usbasp -v -p m2560 -U hfuse:w:0xd9:m

avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:37:28
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

System wide configuration file is „/etc/avrdude.conf“
User configuration file is „/home/sven/.avrduderc“
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/parport0
Using Programmer : usbasp
AVR Part : ATMEGA2560
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
———– —- —– —– —- —— —— —- —— —– —– ———
eeprom 65 10 8 0 no 4096 8 0 9000 9000 0x00 0x00
flash 65 10 256 0 yes 262144 256 1024 4500 4500 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : usbasp
Description : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100{747c96a3cbd62f9b51dcf7e5abb51a05204fef2a15ee45e828c1404cca068861} 0.01s

avrdude: Device signature = 0x1e9801
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as FD
avrdude: reading input file „0xd9“
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100{747c96a3cbd62f9b51dcf7e5abb51a05204fef2a15ee45e828c1404cca068861} 0.01s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xd9:
avrdude: load data hfuse data from input file 0xd9:
avrdude: input file 0xd9 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100{747c96a3cbd62f9b51dcf7e5abb51a05204fef2a15ee45e828c1404cca068861} 0.00s

avrdude: verifying …
avrdude: 1 bytes of hfuse verified

avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as D9
avrdude: safemode: efuse reads as FD
avrdude: safemode: Fuses OK

avrdude done. Thank you.

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Bootzeit beschleunigen

Da ich am letzten Wochenende den RFID Akkuscanner in der freien Wildbahn  getestet habe, ist mir in der Praxis sofort noch eine Verbesserungsmöglichkeit aufgefallen. Das Gerät braucht vom einschalten bis zum Scan ca 3-4 Sekunden. Das nervt schon etwas.

Ich vermute das ist bedingt durch den Arduino Bootloader, deshalb werde ich jetzt versuchen das Programm direkt per ISP zu flashen um die Startzeit zu verringern.

Ansonsten hat das Gerät aber super Arbeit geleistet und bei jeder Ladung schnell man das Gerät über den Akku gebracht bzw. den Akku zum Gerät und schon wird fleißig hochgezählt. Der nächste Feldtest steht am kommenden Wochenende an. dann gehts in die Halle.

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Serielle Datenverarbeitung

Auch die Serielle Datenverarbeitung ist soweit fertig. Es kann ein Datensatz zum Gerät gesendet werden um z.B. einen neuen Akku anzulegen. Nach dem Senden wird der RFID Chip zum Reader/Writer gebracht und die Daten werden auf Ihm und der SD Karte gespeichert. Ein Teststring setzt sich wie folgt zusammen:

befehl(string_1byte);akkutyp(string_5byte);Akkuname(string_16byte);Zellenzahl(int_2byte);

ah(int_2byte);mah(int_2byte);maxladestrom_A(int_2byte);maxladestrom_mA(int_2byte);

maxentladestrom_A(int_2byte);maxentladestrom_mA(int_2byte);yy_int_2byte;mm_int_2byte;

tt_int_2byte;Anzalhl Ladungen (2 Byte);Preis_Euro(2Byte);Preis_Eurocent(2Byte);

So wird er gesendet:

n;Lipo ;SLS APL 30C+  ;2;0;850;3;20;25;70;27;01;13;0;8;99;

Nach der ersten Ladung sieht die Info zum Akku wie folgt aus:

P1000820

Die erste Zeile unter dem Akku Info ist die Info zum internen Versorgungsakku des RFID Scanner. Ich sollte den mal aufladen 😉

Wenn alle Akkus angelegt sind, kann mit einem einfachen „r;“ der µC veranlasst werden die Daten von der SD Karte zu senden.

P1000818P1000819

 

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Einbau in ein Gehäuse

Da nun die Funktion des RFIDAkkuscan genau meinen derzeitigen Anforderungen entspricht, habe ich angefangen die gesamte Technik in ein Gehäuse einzubauen. Damit bin ich jetzt mobil und in der Lage die Akkus auch am Platz oder in der Halle zu scannen.

Hier einige Bilder vom Einbau:

RFID-Reader1.8TFT_Anschluss

P1000817P1000816P1000815P1000814P1000813P1000811

Veröffentlicht unter Allgemein | Schreib einen Kommentar

Die letzten fehlenden Teile sind diese Woche angekommen

Da nun endlich die letzte fehlenden Teile angekommen sind, kann das Programm in vollem Umfang getestet werden.  Die MF522-AN RFID Platine und die RTC DS1307 sind schon Labor mäßig angeschlossen und funktionieren soweit.   P1000796 P1000801

Eine Funktion die ich überdenken musste ist, das ich mich von dem Interrupt Taster um den Schreibmodus zu aktivieren verabschieden musste. Eine Interrupt Unterbrechung in einer While Schleife (um den RFID CHIP zu lesen)  ist keine gute Idee. Der µC bleibt dann einfach stehen. Die Lösung besteht darin, einen Schalter anstatt eines Tasters zu verwenden und damit entweder Schreib oder Lese Modus zu aktivieren bevor der Adruino eingeschaltet wird.

Eine weitere unvorhersehbare Schwierigkeit ist aufgetreten. Wird der RFID Chip direkt auf den Akku geklebt, funktioniert er leider nicht. Vermutlich absorbiert die Metall Folie des LIPO Akkus den Induktions Impuls  um den Kondensator im RFID CHIP aufzuladen. Damit mussten die Chips mit „gepolstertem“ doppelseitigem Klebeband aufgebracht werden. Dieser  ca. 2mm Abstand sorgt dafür, dass die Energie den Chip erreichen kann.

Derzeitiger Stand ist, das alle meine 10 Akkus mit Chip versehen sind. Die Daten wurden auf den Chip geschrieben. Jetzt erfolgt das Finetuning der Software und einbauen der Hardware in ein Gehäuse.

P1000798P1000803P1000802

Veröffentlicht unter Allgemein | Schreib einen Kommentar