Entwicklung: Temperatur Funk Sensor


  • Nochmal die Frage in die Runde: Gibt's hier niemanden, der seine Sender/Empfänger mit eingelötetem ATTiny via Arduino als ISP programmiert?

    Ich habe 12 Sender (jeweils 6 TinyTX3 / TinyTX4) und zwei Empfänger (jeweils einen TinyTX3 / TinyTX4) über einen Arduino Micro mit diversen Sketches geflashed, das ging ohne etwas zu zerstören :)


  • Nochmal die Frage in die Runde: Gibt's hier niemanden, der seine Sender/Empfänger mit eingelötetem ATTiny via Arduino als ISP programmiert? (Tja, falls nicht hat das vielleicht einen guten Grund...)

    Ich hatte vorerst auch Probleme mit invalide device signature, bekams dann aber hin.
    Da schon länger her kann ich mich leider nicht mehr genau erinnern aber ich glaube es war die Datei boards.txt
    (eine oder zwei Zeilen mit bootloader.tool und upload.tool ??)
    Hier ist der attiny84 Abschnitt in meiner boards.txt, vergleich das mal mit deiner, vielleicht hilft das weiter, ansonsten sorry...

    ###########################################################################

    attiny84at8.name=ATtiny84 @ 8 MHz (internal oscillator; BOD disabled)

    # The following do NOT work...
    # attiny84at8.upload.using=avrispv2
    # attiny84at8.upload.using=Pololu USB AVR Programmer

    # The following DO work (pick one)...
    attiny84at8.upload.using=arduino:arduinoisp
    # attiny84at8.upload.protocol=avrispv2
    # attiny84at8.upload.using=pololu

    attiny84at8.upload.maximum_size=8192

    # Default clock (slowly rising power; long delay to clock; 8 MHz internal)
    # Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value
    # Brown-out detection disabled; [BODLEVEL=111]
    # Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

    attiny84at8.bootloader.low_fuses=0xE2
    attiny84at8.bootloader.high_fuses=0xD7
    attiny84at8.bootloader.extended_fuses=0xFF
    attiny84at8.bootloader.path=empty
    attiny84at8.bootloader.file=empty84at8.hex
    attiny84at8.bootloader.tool=arduino:avrdude

    attiny84at8.build.mcu=attiny84
    attiny84at8.build.f_cpu=8000000L
    attiny84at8.build.core=tiny

    attiny84at8.upload.tool=arduino:avrdude

    ###########################################################################

  • Ich danke euch für die Antworten! Stimmt mich wieder etwas zuversichtlicher, wenn ihr das auch so macht ohne was zu zerstören! :)
    Leider weiterhin kein Erfolg, abwechselnd meldet der ATTiny mal eine Signatur von 0x000000, mal 0xffffff, mal was ganz wirres.
    Ein weiterer Tipp, den ich im Netz gefunden habe ist, die Geschwindigkeit des Programmers runterzusetzen auf 9600. Auch das ohne Erfolg.

    Das sah kurz vielversprechend aus - die Zeile, die oben noch steht ist bei mir anders. Aber, auch das ohne Erfolg. )-:
    Habe noch einen anderen Arduino hier, den ich mal zum Flashen missbrauchen könnte, das werde ich als nächstes testen.

    Weitere Ideen?

    An die, die erfolgreich mit Arduinos flashen: Was nutzt ihr als Vcc? 3,3V? 5V?


  • Habe noch einen anderen Arduino hier, den ich mal zum Flashen missbrauchen könnte, das werde ich als nächstes testen.

    Resultat:
    avrdude: ser_recv(): programmer is not responding
    avrdude: stk500_recv(): programmer is not responding



    Definitiv die 5V vom Arduino - und die kann der ATtiny 84A ja auch ab - siehe Datenblatt

    OK, alles klar. (Mein Gedanke: da hängt auch das RFM12b dran, das kann nur 3,3V. Aber wenn ihr das auch so macht... ;) )


  • Habe genau das gleiche Problem. Leider gibt es auf den ersten Post noch keine Antworten, allerdings kann ich mir nicht vorstellen, dass hier alle ihre Sensoren nur einmal geflashed haben und dann nie wieder?!
    Ich benutze einen Arduino zum flashen, kann allerdings weder Sender noch Empfänger (aus der ersten Sammelbestellung) dazu bringen, neuen Code anzunehmen - Invalid device signature.
    Habe ich was übersehen? Was? Wo ist der Trick?

    Danke & Gruß!

    Ich habe eine Weile alles Mögliche ausprobiert, aber schlußendlich habe ich mir ähnlich zu diesem Board (http://www.kaibader.de/attiny-isp-arduino-shield/) eine Leiterplatte auf einen Uno gebaut mit einem ISP-Anschluss, an den ich dann die Boards angeschlossen habe.
    Alles folgende ohne Gewähr, aber bei mir hat es reproduzierbar funktioniert. Wichtig sind folgende Parameter (auch in der platform.txt habe ich einige Anpassungen machen müssen): "-b19200 -B20" nur damit klappt das bei mir.

    In der Arduino-IDE folgende Einstellungen:

    Platine: ATtiny
    Prozessor: ATtiny84
    Clock: 8Mhz intern
    Port: Arduino Uno (USB)

    boards.txt:

    Und falls das nicht klappt, die Fuses neu setzen. Oder den Bootloader neu flashen.
    Dazu habe ich ein Shell-Skript geschrieben (Mac OS):
    (die nicht relevanten Zeilen auskommentieren bzw. umgekehrt)

  • Hallo,

    ich werde irre https://www.forum-raspberrypi.de/images/smilies…on_wallbash.gif.

    Ich habe 5 Sender und 2 Empfänger von der Sammelbestellung.

    Mein Problem ist, das ich nichts mit den Empfängern (Transceiver_PI_JeeLib Sketch) auf dem Raspberry empfangen kann.
    Dann habe ich angefangen einen Sketch so zu ändern, das er alle paar Sekunden über die serielle Schnittstelle an den Raspberry etwas schickt. Ich konnte jetzt mittels minicom sehen das etwas geschickt worden ist, es war aber immer nur '...' anstatt richtigen Buchstaben.
    Dann habe ich den 'Send_Tester' Sketch auf alle boards aufgespielt.
    Ein einziger Sender (DHT22 schon angelötet) sendet dann alle 3Sekunden ein Signal (Mein Multifrequenzempfänger gibt alle 3 Sekunden ein Signal von sich).
    Die Restlichen 4 Sender senden jeweils nur ein einziges mal am Anfang nach Anschluß and die Versorgungsspannung.
    Die 2 Empfänger senden überhaupt nicht, sollten aber doch etwas senden.

    Aufgespielt werden die Sketches mit einem Arduino clon 'DCCduinio uno'

    WAS MACHE ICH FALSCH?


  • Mein Problem ist, das ich nichts mit den Empfängern (Transceiver_PI_JeeLib Sketch) auf dem Raspberry empfangen kann.

    Dann habe ich den 'Send_Tester' Sketch auf alle boards aufgespielt.

    Du verwendest am einen Ende JeeLib und am anderen Ende die LowPowerLab-RFM12B-Bibliothek. Die beiden verstehen sich nicht.

  • Tach'chen,

    wie die Bastler unter Euch sicher schon mitbekommen haben, wurde eine neue Version der Arduino-IDE (Version 1.6.6)
    veröffentlicht. Weil ja hier der ein- oder andere noch seine Boards aus der Sammelbestellung flasht, wollte ich hier nur
    ein kurzes Feedback zur neuen Version abgeben:

    Das neue Feature "Serial Plotter" war für mich das Argument diese Version einmal zu testen. Mit dem neuen Board-Manager kann
    man inzwischen auch die ATTiny Cores recht bequem nachinstallieren. Eine Liste der inoffiziell unterstützten Boards,
    einschliesslich der Links zu den json Dateien findet man auf github Damit entfällt dann die manuelle Installation. Man muss
    lediglich die json links in den "Preferences" der IDE eintragen und anschließend die gewünschten Cores mit dem Board Manager
    installieren. So weit so gut!


    Leider gibt es aber beim compilieren von meigrafd Sketchen ein Problem:

    Code
    In file included from /home/luetzel/Programming/Arduino16/TinyTX4/Send_DHT22_Watchdog/Send_DHT22_Watchdog.ino:8:0:
    /opt/arduino-1.6.6/hardware/tools/avr/avr/include/avr/sleep.h:634:6: error: #error "No SLEEP mode defined for this device."
    #error "No SLEEP mode defined for this device."

    Der Fehler lässt sich umgehen, indem manl

    Code
    #define __AVR_ATtiny84__

    vor dem

    Code
    #include <avr/sleep.h>

    einfügt (sowohl im Sketch als auch in den Libraries, die sleep.h verwenden).

    Mit der IDE Version 1.6.5 geht das noch ohne diesen Workaround. Offenbar gab es wieder einmal Änderungen am arduino-builder
    (seufz!), so dass die CoreFiles mal wieder angepasst werden müssen. Die Entwickler der CoreFiles mit denen ich gesprochen habe waren
    jedenfalls "not amused".

    Fazit: Bis das geklärt bzw gefixt ist, bleibt lieber bei der alten Version <= 1.6.5!

    /luetzel

    Update
    Die CoreFiles von SpenceKonde, (siehe inoffizielle Liste) wurden inzwischen an die Version 1.6.6 angepasst, sind aber noch nicht über den Boardmanager
    installierbar. Ein Release der 1.0.6 Version der CoreFiles wird wohl in den nächsten Tagen erfolgen. Bis dahin schiebt man den "Master Branch" der CoreFiles
    wie üblich in das Arduino hardware Verzeichnis. Es gibt zwar noch einige Compiler Warnungen, aber die hängen wohl mit Änderungen an der platform.txt
    der Arduino-IDE zusammen.


  • wie die Bastler unter Euch sicher schon mitbekommen haben, wurde eine neue Version der Arduino-IDE (Version 1.6.6)
    veröffentlicht.

    Ja, das klingt alles gut, hätte auch schon gerne getestet - leider läuft mein Mac unter 10.6 und damit leider nicht mit der neuen IDE... :(

  • Hallo,

    ich bin jetzt wieder mal dazu gekommen um die kleinen Dinger mal auszuprobieren.

    Mein Problem ist immer noch das ich keine vernünftigen Daten in dem Raspberry bekomme.

    Ich habe dann versucht mittels eines USBtoRS232 Adapters die empfangenen Daten auf meinem Computer auszugeben.

    Mit Putty empfange ich folgendes über den seriellen Port:
    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

    Mit SerialSniffer folgendes:
    Hex: 00 00 00 80 00 00 80 80 00 00 80 00 80 80 80 00
    ASCII: €€€€€€€

    Ich habe jetzt die Sende/Empfangs Sketche jeweils mit Jeelib und RFM12B ausprobiert. Ich habe es auch mit 2 verschiedenen Empfänger ausprobiert.

    Ich empfange nie etwas richtiges.

    Ich habe auch schon versucht ein Sketch für den Empfänger zu bauen das alle paar Sekunden mir einen Text ausgibt, auch hier empfange ich über den seriellen Port nicht das was ich erwarte.

    Über Vorschläge/Ideen wäre ich sehr dankbar.


  • und läuft der Tiny mit der richtigen Frequenz?
    Wenn du dir nicht sicher bist, lass doch mal die LED auf dem Tiny Board im Sekunden Rhytmus blinken.

    Vielen Dank golmic für den Hinweis.
    Ich hatte vergessen den bootloader (8MHZ) zu installieren.

    Jetzt habe ich mittels der "RFM12B lib"den Sender und Empfänger zum laufen gebracht und empfange auch immer schön die Werte.

    Ich würde aber gerne einen DHT22 und einen DS18B20 gemeinsam an einen Tinytx anschließen, deshalb habe ich dann die Sketche für die "Jeelib" aufgespielt.
    Wenn ich den 'Send_DHT22_Watchdog_JeeLib' (TinyTX4) aber aufspiele bekomme ich nur ein Dauersenden von einem Wert und das mehrfach in der Sekunde.
    z.B.: 1 v=3274&t=2060&h=4440

    Das Problem habe ich mit jedem Jeelib Sketch.
    Ich habe die Sketche mittels Arduino 1.0.6 und 1.6.5 aufgespielt (Kompiliert mit Warnings).

    -------------------------------------------------------------------------------------------------------------------------------------
    -------------------------------------------------------------------------------------------------------------------------------------
    Nachtrag:

    Es scheint ja allgemein ein Problem mit Jeelib zu geben, wie im Thread nachzulesen ist.
    Ich habe es jetzt geschafft mit der "RFM12B lib" einen DHT22, einem DS18B20 und dem Watchdog zusammen zu betreiben.
    Die Temperatur wird nicht mittels der 'DallasTemperature' Bibliothek ausgelesen, sondern direkt mittels der OneWire Bibliothek. Dadurch ist die Binäre Sketchgröße: 6.348 Bytes (von einem Maximum von 8.192 Bytes) und somit noch Platz für etwas anderes ;)

    Ergebnis (t,h vom DHT22; t2 vom DS18B20):
    '1 v=3274&t=2150&h=4270&t2=2243'

    Edited once, last by xtraman (November 24, 2015 at 10:08 PM).

  • Hallo,

    ich habe leider ebenfalls Probleme beim Programmieren des Atiny und komme trotz Suche nicht weiter.

    aktuelle Situation:
    Arduino Uno als Programmer
    Arduino 1.6.5
    Atiny ist auf der Platine TX4 bereits verlötet

    Vorgehensweise:

    wie im Beitrag vom Meigrafd #8 beschrieben:
    ArduinoIDE starten
    [*]Datei -> Beispiele -> ArduinoISP
    [*]Es öffnet sich ein neues Fenster in dem ihr folgendes macht:
    [*]Tools -> Board -> Arduino Uno
    [*]Tools -> Programmer -> AVR ISP
    [*]Anschliesend auf den "Pfeil nach rechts" klicken (Upload)

    board.txt umbenannt und Atiny84 entsprechend Beitrag #1.467 abgeändert
    [*]

    [*]Den Bootlader kann ich brennen, alles ok soweit.
    [*]Wenn ich jetzt aber die Pfeiltaste rechts drücke, bekomme ich eine Fehlermeldung:
    [*]


    Ich habe bereits alle links kontrolliert, diese gibt es und die Dateien sind auch alle da. Ich habe auch schon die Verkabelung Arduino Uno zur TX4 Platine kontrolliert, es sollte alles ok sein.

    Was könnte der Fehler sein, es betrifft ja die Signale Mosi, Miso, etc?

    Ich würde mich über eine Hilfe oder Link zum Thema freuen.

    Vielen Dank
    Andreas


  • Arduino Uno als Programmer

    Code
    Arduino: 1.6.5 (Windows 7), Platine: "ATtiny84 @ 8 MHz"


    Du musst zuerst den Sketch ArduinoISP auf den Uno flashen. Dabei als Board nicht den ATtiny auswählen, sondern den Uno!


    Anschliessend dient der Uno als Programmer für den Tiny. Da musst Du dann den Tiny als Board auswählen, und den ArduinoISP als Programmer (und natürlich einen Sketch für den Tiny).

    Das ist nur am Anfang ein bisschen verwirrend.


  • ich habe es zwar nicht geschrieben, habe es aber so gemacht.

    Schau Dir den Compiler-Aufruf an: -mmcu=attiny84 ... ArduinoISP.cpp

    In der ersten Zeile steht die ausgewählte Platine ("ATtiny84 @ 8 MHz"), in den Fehlermeldungen des Compilers steht der Name des Sketches (ArduinoISP.ino).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!