AttnodeV3 UPDI Problem

Hallo,

erst mal Danke an die Initiatoren des attno.de Projektes ! Ich bin Imker und nutze seit gut 2 Jahren über LoRaWAN angebundene Sensorik, um meine Völker im Umkreis von 30km zu überwachen.

Vor einem Monat entdeckte ich attno.de. Aktuell habe ich zwei v2 Nodes im Einsatz. Aufbau und Inbetriebnahme ging problemlos von der Hand.

Nun habe ich meine v3 Platinen bekommen und stehe vor einem Problem… Ich kann einfach keinen Sketch über UPDI hochladen. Aufgebaut habe ich mir einen Programmer mit einem Arduino Nano.
Leider habe ich wenig Erfahrung mit UPDI, sodass ich nicht wirklich weiterkomme. Das Protokoll habe ich in der platformio.ini Datei umgestellt: upload_protocol = jtag2updi

Bin über jede Hilfestellung dankbar! (Auch ala: Lies dir bitte dieses hier durch… :wink:

Als Fehlermeldung erhalte ich:

Advanced Memory Usage is available via „PlatformIO Home > Project Inspect“
RAM: [====== ] 58.2% (used 1192 bytes from 2048 bytes)
Flash: [======= ] 68.2% (used 22333 bytes from 32768 bytes)
Configuring upload protocol…
AVAILABLE: jtag2updi
CURRENT: upload_protocol = jtag2updi
Looking for upload port…
Use manually specified: /dev/cu.wchusbserial1410
Forcing reset using 1200bps open/close on port /dev/cu.wchusbserial1410
Uploading .pio/build/ATtiny3216/firmware.hex

avrdude: jtagmkII_recv(): checksum error
avrdude: jtagmkII_set_devdescr(): timeout/error communicating with programmer (status -4)
avrdude: jtagmkII_initialize(): Cannot locate „flash“ and „boot“ memories in description
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_NO_TARGET_POWER
avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_NO_TARGET_POWER
avrdude: jtagmkII_read_byte(): bad response to read memory command: RSP_NO_TARGET_POWER
avr_read(): error reading address 0x0000
read operation not supported for memory „signature“
avrdude: error reading signature data for part „ATtiny3216“, rc=-2
avrdude: error reading signature data, rc=-2
avrdude: jtagmkII_program_disable(): bad response to leave progmode command: RSP_NO_TARGET_POWER

avrdude done. Thank you.

*** [upload] Error 1
========================================================= [FAILED] Took 7.42 seconds =========================================================
The terminal process „platformio ‚run‘, ‚–target‘, ‚upload‘“ terminated with exit code: 1.

Terminal will be reused by tasks, press any key to close it.

2 Like

Hallo Marc und willkommen hier im Forum!

freut mich das dir das Projekt gefällt :wink:

nach welcher Anleitung/Variante genau hast du denn den Programmer aufgebaut, da gibt es ja verschiedene.

Die Fehlermeldung sieht so aus als ob der Programmer nicht mit dem ATTiny sprechen kann. Daher erstmal die Standardfragen (hast du vermutlich schon geprüft, aber schadet ja nicht): Sind Stromversorgung und UPDI korrekt verbinden? Kommt die Stromversorgung beim ATTiny an?

Hier sind üblicherweise (von denen wo ich es weiß) 2 Varianten fürs Programmieren im Einsatz:

Die eine ist der MicroUPDI von MCUDude: GitHub - MCUdude/microUPDI: DIY UPDI programmer with open source hardware! - Der bietet neben UPDI auch gleich noch Zugriff auf die Serielle Schnitstelle fürs Debugging etc. und ist somit die Komfortvariante. Für den sind auch die Voreinstellungen in der v3-Firmware (attnode/v3_firmware: Firmware for the ATTNode v3 - v3_firmware - Seiichiros Git Repos) gedacht. Das ist auch die Variante die ich für die FW-Entwicklung nutze.

Des weiteren habe ich auch schon von verschiedenen Seiten Erfolgsmeldungen mit pyUPDI (GitHub - mraardvark/pyupdi: Python UPDI driver for programming "new" tinyAVR and megaAVR devices) gehört. Die Einbindung in PlatformIO ist hier beschrieben: Atmel megaAVR — PlatformIO latest documentation

1 Like

Hallo Marc,

Erst mal herzlich willkommen hier. Was monitorst du konkret mit dem Attnode?

Ich bastle gerade an einem Addon um DS18b20 und einen hx711 anzubinden, damit also das Beutengewicht sowie die Temperatur an den Wägezellen und in der Beute zu messen.

Habe diese Woche die ersten 5 Platinen bekommen und habe noch einige ToDos bevor ich das online stellen kann

Steffen

1 Like

Hallo Seiichiro,

ich habe die Version von Spence Konde gebaut: https://github.com/SpenceKonde/jtag2updi
Arduino Nano mit 4.7KOhm von D6 auf Pin16 des Attiny3216. Soeben habe ich nochmals alles nachgemessen. Spannung liegt am Attiny an. UPDI Pin ist auch verbunden.
Ich schaue mir die von dir vorgeschlagenen Programmer mal an.

Eine Frage noch: Du schreibst im Howto, dass über platformIO die Fuses gesetzt werden müssen, bevor man den Sketch hochladen kann… Ich bin da absoluter Neuling und habe leider nichts dazu recherchieren können. Wie setzt man die " Set Fuses Option" ?

Hm, die Variante von SpenceKonde hab ich ganz am Anfang auch benutzt, das war allerdings noch mit der ArduinoIDE (da konnte PIO den ATTiny3216 noch nicht).

Die Fuses finden sich im Menü an der Linken Seite unter dem PlatformIO-Symbol:
grafik

Das Hochladen geht auch ohne, allerdings werden dadurch die Taktfrequenzen etc… gesetzt, wenn man das nicht macht funktionieren da diverse Timings in der LoRa-LMIC nicht, was dazu führt das der Node nicht joinen kann.

Das muss man auch nur einmalig machen, solange man nicht zwischendrin die Taktfrequenz ändert.

Hi Steffen,

für meine Völker nutze ich den beelogger-solar (www.beelogger.de)). Damit überwache ich:

  • Gewicht der Beute
  • Temperatur an der Wägezelle
  • Temperatur & Luftfeuchtigkeit in der Beute
  • Temperatur & Luftfeuchtigkeit außen
  • Sonneneinstrahlung aufs Flugloch
  • Batterie- & Solarspannung
  • Luftfeuchtigkeit im Gehäuse (Wassereinbruch? :wink:

Bei einem Volk habe ich Kanäle mit kleinen Lichtschranken, um die ein- und ausfliegenden Bienen zu zählen.

Die attnodes v2 setze ich aktuell indirekt ein. Ein Node liegt schwimmend auf dem Honig in einem 25kg Eimer, um Temperatur und Luftfeuchtigkeit zu messen. Ein anderer überwacht eine Lebendfalle neben meinen Bienen. Dort habe ich einen Erschütterungssensor am Interrupt-Pin. Gezählt werden die Auslösungen bei Erschütterung. Übertragen wird dann nicht sofort, sondern erst, wenn das nächste 8sec Sleep-Interval vorüber ist. Dafür habe ich einen neuen Payload-Parameter eingeführt: impact. Auf meinem Server wird dann abhängig von einem Schwellwert eine pushover MSG aufs Handy geschickt.

Ein Attnode mit hx711 hört sich mal richtig spannend an !

Danke ! Gefunden und ausgeführt. Kommt eine vergleichbare Fehlermeldung:

Setting fuses…

avrdude: jtagmkII_recv(): checksum error
avrdude: jtagmkII_set_devdescr(): timeout/error communicating with programmer (status -4)
avrdude: jtagmkII_initialize(): Cannot locate „flash“ and „boot“ memories in description
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_NO_TARGET_POWER
avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_NO_TARGET_POWER
avrdude: jtagmkII_read_byte(): bad response to read memory command: RSP_NO_TARGET_POWER
avr_read(): error reading address 0x0000
read operation not supported for memory „signature“
avrdude: error reading signature data for part „ATtiny3216“, rc=-2
avrdude: error reading signature data, rc=-2
avrdude: jtagmkII_program_disable(): bad response to leave progmode command: RSP_NO_TARGET_POWER

avrdude done. Thank you.

*** [fuses] Error 1
========================================================= [FAILED] Took 2.11 seconds =========================================================
The terminal process „platformio ‚run‘, ‚–target‘, ‚fuses‘, ‚–environment‘, ‚ATtiny3216‘“ terminated with exit code: 1.

Terminal will be reused by tasks, press any key to close it.

Joa, auch da kann der Programmer wohl nicht mit dem Tiny sprechen. Auch interessant das die im Readme vom jtag2updi inzwischen oben drin stehen haben das sie die USB-Serial zu UPDI Variante (also pyupdi) empfehlen…

Ja, dass hatte ich auch gelesen. :wink:

Hallo Steffen,

daran hätte ich sehr großes Interesse ! Melde Dich, falls ich beim testen/Erfahrungsaustausch unterstützen kann. Der HX711 zickt beim Betrieb mit 3.3V etwas rum. Da muss man ein bisschen tricksen.

Marc

1 Like

So… nun bin ich ein ganzes Stück weiter. Mein microUPDI funktioniert jetzt und ich kann den attnode v3 bespielen. Danke für die Tipps. Kleiner Schönheitsfehler ist noch, das kein Debugging ausgegeben wird…

Wenn das Programmieren funktioniert ist das ja schonmal was.

Wenn du „meine“ Firmware verwendest, musst du in der aktuellen Version Debugging in der platformio.ini aktivieren. Da gibt es bei den build_flags ein -D DEBUG - das ist per default auskommentiert. Wenn das auskommentiert ist, deaktiviert die Firmware aus Stromspargründen die Serielle Schnittstelle, so das auch ein Serial.print(…) dann nichts ausgibt.

Das hatte ich schon so gemacht. Leider kommen dennoch keine Debug-Ausgaben. RX/TX ist auch gekreuzt.

Ich vermute mal du hast den MicroUPDI am Programmer-Anschluss? Dort musst du alles 1:1 verbinden, also nicht RX und TX über Kreuz. RX/TX kreuzen musst du nur, wenn du die Seriellen Pins auf der Pinleiste benutzt.

Da ist tatsächlich die Beschriftung etwas verwirrend wie mir grade auffällt :see_no_evil: Am Programmer-Port ist das quasi aus Programmer-Sicht beschriftet, und nicht aus Node-Sicht.

Ok. Das war etwas missverständlich. :wink: Jetzt läuft´s.

1 Like