Ladegeräte mit BID-Unterstützung erfreuen sich einer recht guten Verbreitung.
Dabei werden alle relevanten Akkudaten in einem kleinen EEPROM am Akku gespeichert um bei Bedarf vom Ladegerät gelesen zu werden. Nach dem Laden werden dann noch Nutzdaten wie die Anzahl der Ladezyklen, die geladenen Kapazität usw. auf den BID-Chip geschrieben.
BID-Chips sind bedrahtet und kommunizieren mit dem Ladegerät über den sog. I2C-Bus. Mit BID2NFC wird diese Technik nun auf die zeitgemäße, drahtlose NFC-Komminikation übertragen. Dieser Bericht soll eine Art Baubeschreibung dazu sein.
Durch die Verwendung eines Arduino hält sich der Bau- und Verdrahtungsaufwand in Grenzen. Die Idee ist letzlich, die I2C Kommunikation, des BID-Chip auf den NFC-Leser umzusetzen und für das Ladegerät einen BID-Chip zu emulieren.
Folgende Komponenten sind für den Nachbau notwendig:
- Arduino ProMini 3,3V Version
- MFRC522 NFC Readermodul
- Mifare Classic 1k on Metal Tags (30mm Durchmesser haben bei mir am besten funktioniert)
- Servokabel mit Futaba-Stecker
- BID-Kabel
Stromversorgung:
Der BID-Stecker liefert zwar eine Betriebsspannung von 3,3V, die notwendig zum Betrieb des Arduino bzw. des Lesemoduls ist, jedoch steht hier nicht genug Strom zur Verfügung weil intern nur ein entsprechender Regler eingesetzt wird, der nicht ausreichend Strom liefern kann. Daher wird eine andere Betriebspannung benötigt. Diese liegt am Stecker für den Temperatursensor an und liefert 5V mit ausreichend Strom (links +5V, Mitte GND, von vorne gesehen). Dazu wird mittels des Futaba-Servosteckers diese Betriebsspannung abgegriffen und an den RAW-Port des Arduino geführt (sowie GND auch an einem entsprechenden Pin am Arduino). DAmit ist die Stromversorgung sichergestellt. Der Arduino selbst hat einen Spannungsregler on board, der 3,3 Volt aus den 5V bereitstellt am VCC Pin. Dieser Pin wird dann mit dem NFC-Reader verbunden (sowie GND) damit der Reader auch die richtige Betriebsspannung bekommt.
I2C Bus
Der I2C Bus ist eine der Standardfunktionen, die ein Arduino beherrscht. Am ProMini liegt dieser an Pin 27(SDA) und 28 (SCL).
NFC-Leser
Das MFRC-522 Board dient als Basis um die NFC-Tags zu lesen und zu beschreiben. Es verfügt über eine integrierte Antenne die mittels entsprechend geformter Leiterbahnen realisiert wird.
Die Kommunikation erfolgt über ISP welches die Pins MISO, MOSI, SS, SCK sowie Reset, GND und die 3,3V Betriebsspannung erfordert.
Die Verdrahtung sollte dann wie unten gezeigt erfolgen. Je nach Pro-Mini-Board (Nachbau) können die Pins leicht in der Position abweichen.
Programmierung
Die Programmierung erfolgt über die frei erhältliche Arduino IDE und einem USB-Seriell-Wandler, vorzugsweise mit FTDI-CHipsatz. Diese Adapterplatinen sind i.d.R. Pinkompatibel, sodass sie direkt an die dem Reset-Taster abgewandten, kurzen Seite angeschlossen werden kann. RxD und TxD der Adapterplatine sind gekreuzt sodass sie auf ihre Gegenseite TxD bzw. RxD zeigen.
Die beiden notwendigen INO-Dateien können hier heruntergeladen werden. Die Library für den NFC-Leser, der noch in die IDE aufgenommen werden muss, ist auch enthalten. Dazu einfach die Datei entpacken und das Verzeichnis "rfid-master" in das Verzeichnis "Libraries" der Arduino IDE kopieren. Beide INO-Datreien als Tab in ein neues Projekt kopieren und danach kompilieren und auf den Mini-Pro übertragen.
Der Code stammt nicht von mir sondern wird freundlicherweise von Ralf Ußen zur Verfügung gestellt und noch weiter entwickelt.
Nach dem Zusammenbau kann die Arduino-Platine mit Heißkleber auf die Platine des NFC-Lesers geklebt werden. Die Antenne sollte aber frei bleiben.
Bei der Inbetriebnahme wird nun ein leerer BID-Chip dem Gerät vorgegaukelt und das Gerät moniert diesen Zustand. Nun muss ein leerer Tag an den Leser gehalten werden. Am Ladegerät können nun alle benötigten Akkuparameter eingegeben und gespeichert werden. Diese werden dann an das BID2NFC-Modul übertragen und dort gepuffert, bis der gleiche Tag wieder an den Leser gehalten wird (ca. 3 Sekunden). Da jeder Tag eine individuelle Seriennummer besitzt, wird diese zuvor überprüft und bei Gleichheit werden die Akkuparameter auf den Tag übertragen. Der Tag kann nun am Akku befestigt werden. In der Art können nun alle Akkus entsprechend programmiert werden.
Beim Laden muss dann der Leser an den Tag gehalten werden und nach einem kurzen Moment erscheinen die Akkuparameter auf dem Display. Nun ist der Akku "eingescheckt" und kann geladen werden. Der Akku muss sich dabei nicht mehr am Leser befinden.
Nach dem Ladevorgang werden die Akkudaten aktualisiert. Zum Auschecken und übertragen der neuen Werte muss der Akku erneut an den Leser gehalten werden, damit die Daten, nach Verifizierung der Tag-Seriennummer, auf dem Tag aktualisiert werden können.
Meine Lösung stellt eine externe Variante dar, die keinerlei Eingriff in das Ladegerät erfordert. Man kann die Platine natürlichg auch fest in das Gerät einbauen.
Bleibt zu hoffen dass sich die Hersteller diese Idee zu Herzen nehmen und mittelfristig solche Lösungen anbieten denn ich bin von der bewährten BID-Technik überzeugt und sehe massive Vorteile gegenüber Ladegeräten, bei denen immer noch von Hand der Akkuspeicher ausgewählt werden muss, was enormes Fehlerpotential bietet und umständlich ist.
Weitere Infos und Diskussionen hierzu im entsprechenden Thread des RC-Network