Ich bin gerade dabei, eine Art Drucker bzw. Plotter zu frickeln, der mit zwei Lasereinheiten aus DVD-Laufwerken und einem Servo funktioniert. Das Ganze lässt einen Filzstift und einen kleinen Zettel so umherfahren, dass Bilder gezeichnet werden. Die Kiste wird mit einem Arduino gesteuert; der Einfachheit wegen.
So sieht die Kiste aus: http://www.youtube.com/watch?v=MO4cYjVboyQ
Da hat er allerdings noch alte Firmware, und fährt direkt im Programm geschriebene Wege.
Nun läuft der Plotter seit einigen Tagen, und ich schreibe immer mal wieder kleine Verbesserungen in der Firmware. Noch holt er sich die Bilddaten aus dem internen Flash-Speicher, was irgendwann mal durch Zugriff über die serielle Schnittstelle gelöst werden soll. Momentan sind diese Bilddaten ein umgewandeltes BMP; G-Code ist bis jetzt nicht angedacht.
Seit gestern bekomme ich immer wieder den Fehler
Code: Alles auswählen
avrdude: verification error, first mismatch at byte 0x0080
0xff != 0x00
avrdude: verification error; content mismatch
Tatsächlich, lauter nullen im Flash, obwohl die da gar nicht hingehören. Das schlägt sich auch im Druckbild nieder (siehe weiter unten). "Na klar, dann ist einfach inzwischen der Flash-speicher tot vom AVR." Neuen eingesetzt, gleiches Fehlerbild. Bootloader neu geflasht, immmer noch das Selbe.
Dann habe ich das Programm mal "direkt", also über ISP geflasht und siehe da:
Alles in Butter. Nur der Bootloader ist natürlich nicht mehr drauf.
Hier mal ein Bild von den Ausdrucken
Links mit Arduino-Bootloader geflasht, rechts mit ISP.
Sieht so aus, als ob der Bootloader da irgendwas falsch versteht. Kann das eine bestimmte Ursache haben? Die Bilddaten beginnen mit jeder Menge 0xFF und hören auch wieder damit auf. Das Bild wird mit einem schnell zusammengehackten C-Programm in Hexzahlen umgewandelt, das ist aber nicht das Problem. Bei Bedarf lade ich mal den ganzen Projektordner hoch. Bis jetzt hatte ich mit den Arduinos keine nennenswerten Probleme. Das Projekt dient für mich als Einstieg in den Umgang mit der Software und den Arduino-Befehlen.
Und bitte nicht hauen, wenn dieses Thema zu Off-topic ist!
Nils