ATTINY in der Arduino IDE: Vorsicht Falle!

  • Hallo zusammen,
    ich bin über ein verstecktes Fehlverhalten der IDE bzw. des Compilers gestolpert und habe nach einigen Stunden Tüftelei eine Lösung dazu gefunden.
    Aber der Reihe nach: ich hatte mir kürzlich die IDE Version 1.6.8 heruntergeladen und installiert.
    Nur durch Zufall habe ich dann ein ziemlich sonderbares Verhalten der IDE bzw. des Compilers entdeckt.
    Es betrifft die Code-Generierung für ATTINY85 Prozessoren. Ob und welche TINY µController sonst noch betroffen sind konnte ich wegen fehlender Hardware leider nicht überprüfen.

    Geplant war ein 1602er LCD (44780 kompat.) mit aufgelötetem I2C-Adapter mit einem ATTINY85 anzusteuern. Ich hatte diese Geschichte ja gerade mit einem ESP8266-01 realisert ( -> hier in den "Nebenprodukten" <- ) und deshalb bot sich das direkt an.
    Allerdings stellte ich ziemlich schnell fest, dass das alles doch nicht so einfach war, wie es ursprünglich schien.

    Ich habe mich dann durch Stapel von Webseiten gewühlt, weil ich desöfteren den Hinweis gelesen hatte, dass der ATTINY in Zusammenspiel mit einem LCD mit aufgebrachtem I2C-Adapter eine Sonderbehandlung erfordert.
    Aber ich konnte machen was ich wollte ... es kam keine Ausgabe auf dem LCD.
    Nun habe ich noch -> diese TINY85 Mini-Boards <- rumliegen und hab' die Software dann auf so einen DigiStump geflasht ... und siehe da ... es lief :s

    Nach einigen Stunden herumprobieren stellte sich heraus, dass der Compiler bei den Versionen 1.6.6 bis 1.6.8 für den ATTINY85 falschen ( oder besser: nicht ablauffähigen ) Code erzeugt.
    Im Vergleich zwischen der hex-Datei für den DigiStump ( ist ja auch ein ATTINY85 ) und dem File für den "generischen" ATTINY85 fiel mir dann auf, dass die erzeugte Datei um ca. 10 Byte zu klein war.
    Ich habe dann mal die DigiStump-Datei per Hand unter Umgehung des micronucleus direkt auf den TINY geflasht ... und es lief anstandslos. Dasselbe Vorgehen mit der für den ATTINY85 erzeugten Datei rief keine Reaktion hervor.

    Nun ... langer Rede kurzer Sinn: das Problem ist der ATTINY-Boardmanager. Ich hatte die URL

    Code
    https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


    in den Voreinstellungen eingetragen. Diesen Eintrag musste ich gegen

    Code
    http://drazzy.com/package_drazzy.com_index.json


    tauschen und schon lief auch der für den ATTINY85 erzeugte Code anstandslos.

    Da ist wohl der Boardmanager von David Mellis nicht kompatibel mit den aktuellsten Versionen der IDE.
    Wer also lauffähigen Code für einen TINY85 benötigt sollte sich den Eintrag entsprechend abändern.

    cheers,
    -ds-

  • Hi Dreamshader,

    wo ist hier der Button für die Verleihung des Tüftler-Awards?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.


  • Da ist wohl der Boardmanager von David Mellis nicht kompatibel mit den aktuellsten Versionen der IDE.
    Wer also lauffähigen Code für einen TINY85 benötigt sollte sich den Eintrag entsprechend abändern.

    Hallo,

    zunächst mal Respekt für diese Geduld und das Tüffteln! Aktuell versuche ich mit einem Attiny85 einen 433 MHz Sender umzusetzen. Der Code wird problemlos mit der IDE Version 1.6.9 kompiliert, die LED blinkt, aber gesendet wird nix (VirtualWire). Ist es möglich das deine Recherche dafür der Grund ist?

    Du hast praktisch die package_damellis_attiny_index.json mit der package_drazzy.com_index.json ersetzt?

    Gruß

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!