Für das Projekt eines Tachowagens in H0, der als Technologieträger für Arduino on Rail dienen soll, besorgte ich mir direkt von Microduino einige Module. Unter anderem ein WLAN-Modul mit CC3000-Chip.
Für den CC3000-Chip gibt es eine Library von Adafruit (verfügbar bei Github) — inkl. vieler Beispiel-Sketches. Beim aller ersten Sketch „buildtest“ gab es erwartungsgemäß den Fehler: Bad firmware version (1.10).
Also gilt es, den CC3000 zu patchen. Dazu empfiehlt sich die Lektüre im Wiki von Mikroduino und die Patchanleitung des Autors des Patch-Sketches, Chris Magagna, auf Github.
Hier die 1-2-3-Anleitung in deutsch:
- Arduino-IDE beenden
- Standard-Library von Adafruit aus dem Library-Ordner löschen/verschieben (Adafruit_CC3000_Library)
- Patch-Library von Github herunter laden: https://github.com/cmagagna/CC3000Patch/archive/master.zip
- Entpacken und den Ordner umbenennen in CC3000Patch
- Den Ordner CC3000Patch in die Arduino-IDE importieren: „Sketch“ -> „Library importieren…“
- Sketch öffnen via „Datei“ -> „Beispiele“ -> „CC3000Patch“
- Den Werte für CC3000_IRQ, CC3000_VBAT und CC3000_CS für den Microduino anpassen bzw. kontrollieren:
CC3000_IRQ = 2 CC3000_VBAT = 9 CC3000_CS = 10
- Kompilieren und auf Microduino hochladen (Strg+u)
(hier gab es bei mir Probleme, da beim Speichern der Änderungen (CC3000_IRQ = 2
) die ganze Library in den Sketch-Ordner kopiert wurde. Die IDE meldete, dass einige Werte/Funktionen schon definiert seinen…) - Serial Monitor öffnen (Strg+Umschalt+m), auf 115.200 baud einstellen und „Sowohl NL als auch CR“ auswählen.
- Es müsste folgendes zu sehen sein:
The Arduino CC3000 Firmware 1.24 Patcher -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-Command options: 0 - Test the CC3000 1 - Show MAC address and radio file on CC3000 2 - Show MAC address and radio file in Arduino EEPROM 3 - Show current CC3000 file table 4Y - Copy MAC address and radio file from CC3000 to Arduino EEPROM 5D - Copy default MAC and radio file to Arduino EEPROM 6Y - Write a new file table to the CC3000 7Y - Copy MAC address and radio file from Arduino EEPROM to CC3000 8Y - Write new driver to CC3000 9Y - Write new firmware to CC3000
- Mit
0
und Enter testen, Ausgabe in etwa so:Testing the CC3000... Initializing hardware... CC3000 initalized. Getting info... MAC Address: 0:19:94:36:68:EE Firmware version: 1.10 RX buffer size: 131 bytes TX buffer size: 131 bytes Stopping CC3000.... Stopped
- Die Daten aus dem CC3000 auslesen und im Microduino speichern:
4Y
Ausgabe:Copy CC3000 MAC and radio file to EEPROM Starting CC3000 with no patches Started Reading MAC address MAC address read successful. MAC is: 0:19:94:36:68:EE Writing MAC address to Arduino EEPROM... Verifying... Verify OK Reading radio record Read OK. Radio data: 3 0 1 1 10 10 0 27 27 27 27 27 27 27 27 27 27 27 27 27 27 23 25 25 25 25 25 25 25 25 25 23 23 23 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 1 77 80 50 1F 22 25 25 27 50 1F 22 25 25 27 50 1F 22 25 25 27 1E 2D 1 2 2 2 2 0 11 11 15 11 15 F E FF Writing radio record to Arduino EEPROM... Verifying... Verify OK Stopping CC3000.... Stopped
- Datei in CC3000 schreiben:
6Y
Ausgabe:Writing File Table to CC3000 Starting CC3000 with no patches Started Writing FAT Successful! Stopping CC3000.... Stopped
- Daten zurück in CC3000 schreiben:
7Y
Ausgabe:Writing Mac and RM record to CC3000 Starting CC3000 with no patches Started Reading MAC address data from EEPROM Writing MAC to CC3000... Successful. Reading RM record data from EEPROM Writing RM record to CC3000... Successful. Stopping CC3000.... Stopped
- Den neuen Treiber (Firmware) in CC3000 schreiben:
8Y
Ausgabe:Write new driver to CC3000 Starting CC3000 with no patches Started Writing data... Successful! Stopping CC3000.... Stopped
- Den neuen Treiber in CC3000 schreiben:
8Y
Ausgabe:Write new driver to CC3000 Starting CC3000 with no patches Started Writing data... Successful! Stopping CC3000.... Stopped
- Die neue Firmware in CC3000 schreiben:
9Y
Ausgabe:Write new firmware to CC3000 Starting CC3000 with no patches Started Writing data... Successful! Stopping CC3000.... Stopped
- Und jetzt nochmals die
0
zum Test:Testing the CC3000... Initializing hardware... CC3000 initalized. Getting info... MAC Address: 0:19:94:36:68:EE Firmware version: 1.24 RX buffer size: 131 bytes TX buffer size: 131 bytes Stopping CC3000.... Stopped
- geschafft!
Im nächsten Schritt dann wieder die Adafruit-CC3000-Library in die Arduino-IDE legen, den buildtest-Sketch laden, Pins-Anpassen (siehe 7.) und — es funktioniert. Auch der Pingtest-Sketch lief ohne Probleme.
Achtung! Der CC3000 braucht im Betrieb bis zu 200 mA. Da der FT232R-Chip nur für 50 mA ausgelegt ist, läuft diese Kombination nur „gerade so“. Für einen Dauereinsatz ist eine andere Stromversorgung geboten!