Ich bin derzeit an meinem nächsten Arduino Hardware Projekt zugange. In diesem Zuge habe ich Arduinos aus verschieden Quellen bezogen. Um einen dieser Klone soll es hier gehen und darum, wie ich mit ihm nicht so richtig glücklich wurde.
Bekommen hab ich das gute Stück auf aliexpress. Für ganze 2,12€ (inkl. Versand). Mit Chinaklonen habe ich schon mal gearbeitet – damals waren es nanos – und hatte dementsprechend auch keine größeren Problem erwartet.
Für Windows-Nutzer soll wohl schon der CH304G Chip für die serielle Verbindung ein größeres Problem sein, da es schwierig sein soll, signierte 64bit Treiber für die Dinger zu bekommen. Dies interessiert Nutzer von unixoiden Betriebssystemen weniger, da er hier out-of-the box funktioniert wie er soll.
Flashen aus Sublime Text / Deviot
Zuerst habe ich – wie gewohnt – meine IDE gestartet und wollte ihn wie gewohnt darüber flashen. Ich verwende dort Deviot, was ich über Package Control installiert habe. Im Hintergrund werkelt hier platformio, eine Board Definition gab es aber nicht. Wacker testete ich „Arduino Uno“ und wählte das richtige usb-serial device. Das Flashen klappte auf Anhieb.
Allerdings fiel mir schnell auf, dass mein Testsketch viel zu langsam lief und auf dem Serial Monitor nur Zeichensalat ausgegeben wurde.
int ledPin = 13; // LED connected to digital pin 13
void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
Serial.begin(9600);
}
void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
Serial.println("LED an");
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
Serial.println("LED aus");
delay(1000); // waits for a second
}
Code-Sprache: C++ (cpp)
Flashen aus Arduino IDE
Um Fehler an der Hardware auszuschließen, probierte ich nun die original Arduino IDE und spielte das von den Chinesen über ein Google Drive Share (!!) verteilte Patchset ein.
In der Folge kann man den ‚WAVGAT Uno R3‘ aus der Boardliste auswählen, das Flashen vom Testsketch klappte ebenso auf anhieb. Und sogar auf der seriellen Ausgabe tauchten lesbare Zeichen im Sekundentakt auf
Allerdings tauchten die nächsten Probleme beim kompilieren des Sketches von meinem derzeitigen Projekt auf. Der Vorgang warf Fehler in diversen Dateien, die zum angepassten Patchset für das Board gehörten
Bootloader via SPI flashen
Jemand aus der warpzone vermutete, dass der interne Taktgeber aufgrund falscher Fuse bits genutzt würde. Es könnte helfen, den Bootloader mit den richtigen Fuse-Bits neu zu flashen.
Ich habe das Patchset der Chinesen nach der Boarddefinitionen durchsucht und wurde sogar fündig. Aus den gefunden Informationen bastelte ich mir eine platformio Board Definition in ~/.platformio/platforms/atmelavr/boards
{
"build": {
"core": "arduino",
"extra_flags": "-DARDUINO_AVR_UNO",
"f_cpu": "16000000L",
"mcu": "atmega328p",
"variant": "lgt8fx8p",
"hwids": [
[
"0x1a86",
"0x7523"
]
],
"mcu": "atmega328p",
"variant": "standard"
},
"frameworks": [
"arduino",
"simba"
],
"fuses": {
"efuse": "0x07",
"hfuse": "0xFF",
"lfuse": "0xFF",
"lock": "0x3F"
},
"name": "Wavgat Uno R3",
"upload": {
"maximum_ram_size": 2048,
"maximum_size": 29696,
"protocol": "arduino",
"require_upload_port": true,
"speed": 57600
},
"url": "nan",
"vendor": "Wavgat"
}
Code-Sprache: JSON / JSON mit Kommentaren (json)
Leider funktioniert das so noch nicht. Ich hatte keine Lust meinen USBasp aus dem Keller zu holen und vor meiner Nase lag ein Stapel Arduinos. Also habe ich auf den echten Arduino den „Arduino as ISP“ Sketch geflasht und die ISP-Pins miteinander verbunden. Ich wollte so einen frischen Bootloader auf den WAVGAT flashen.
Dummerweise liefen auch diese Versuche immer wieder auf Fehler. Die Fehlerausgabe deutete nur auf falsche Verkablung hin. Die Kommunikation zwischen den beiden war nicht zustande zu bekommen. 🤷
Und nun?
Licht ins Dunkle brachte dann schlussendlich das USB-Mikroskop im lokalen Hackerspace. Die Lümmel haben nicht nur das Board, sondern den Mikrocontroller gleich mitgeklont. Und dies scheinbar gar nicht mal so gut
Als letzte Möglichkeit, aus diesem Arduino noch etwas zu machen, wäre vermutlich den Klon ab und einen echten aufzulöten. Der Erfolg einer solchen Aktion hängt dann natürlich maßgeblich davon ab, ob und was die Chinesen sonst noch verändert haben. Und natürlich von den Lötfertigkeiten der durchführenden Person – und dazu zähle ich mich bestimmt nicht. 💩
Schlussendlich habe ich mir noch einen Elegoo Klon auf amazon geschossen. Dieser funktioniert wie gewünscht und meldet sich sogar im USB-Devicestring als „arduino.cc“.
Hallo zusammen,
ich bin totaler Neueinsteiger und habe eher zufällig diesen Clone geholt. Ich wollte einen Versuchsaufbau ( 2 LED’s ansteuern ) und habe ums verrecken keine Kommunikation mit dem Board hinbekommen. Ich werde es jetzt mal mit euren Informationen versuchen. Ansonsten gilt für mich: Nerven schonen, denn die sind unbezahlbar. Für alles andere gibt’s die Mastercard ( um ein Original zu kaufen, falls das hier jetzt nicht hinhaut … )
Die Dinger funzen wunderbar. Ist aber keine Atmega sondern ein AVGA328p
Neuen Core und Patch installieren.
Läuft.
https://crazy-electronic.de/index.php/arduino/75-avgat-arduino-ide
Dein Versuch mit dem Arduino als ISP hat nicht geklappt weil ein 10µF Kondensator am Reset Pin des Programmers fehlt und zweitens muss Pin 10 vom Programmer als Reset für den Slave genutzt werden.
Oh cool. Das werde ich mir noch mal mit diesen Informationen ansehen. Vielen Dank.