[gelöst] promicroCUL lässt sich auf pro micro nicht flashen

Begonnen von yamfhem, 17 Dezember 2015, 18:14:06

Vorheriges Thema - Nächstes Thema

yamfhem

Hallo,
ich habe mir eine promicroCUL für eine 3,3V/8Mhz/433MHz Version compiliert und bekomme die nicht auf den promicro geflasht.
Mit make usbprogram_v3 geht's gleich gar nicht, weil der den pro micro nicht findet, der aber unter /dev/serial/by-id/usb-SparkFun_SparkFun_Pro_Micro-if00 zu sehen ist.

dfu-programmer atmega32u4 erase || true
dfu-programmer: no device present.
dfu-programmer atmega32u4 flash promicroCUL.hex
dfu-programmer: no device present.
makefile:129: recipe for target 'do_usbprogram' failed
make: *** [do_usbprogram] Error 1



Aber auch meine Versuche, das manuell mit avrdude - unter Windows und Linux - (weil ich da wenigstens den Port angeben kann) zu flashen, funktionieren nicht:

sudo avrdude -c avr109 -b 57600 -P /dev/serial/by-id/usb-SparkFun_SparkFun_Pro_Micro-if00 -p atmega32u4 -vv -U flash:w:promicroCUL.hex
......
Connecting to programmer: .avrdude: ser_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding


Mir scheint, das Teil geht nicht in den Bootloader Mode.
Unter Windows in der Arduino IDE lässt sich das Teil aber flashen, da sieht man auch kurz, dass er von COM11 auf COM12 umschaltet.

Kann mir jemand helfen?
Gruß yam

yamfhem

... ich glaub's ja nich! ::)

GND und RST brücken beim anstöpseln und dann gleich

sudo avrdude -c avr109 -b 57600 -P /dev/ttyACM0 -p atmega32u4 -vv -U flash:w:promicroCUL.hex


hat geholfen (... und auch nur 3 Tage gedauert ... :o).

Gruß yam

Omega-5

Zitat von: yamfhem am 18 Dezember 2015, 22:30:40
... ich glaub's ja nich! ::)

GND und RST brücken beim anstöpseln und dann gleich

sudo avrdude -c avr109 -b 57600 -P /dev/ttyACM0 -p atmega32u4 -vv -U flash:w:promicroCUL.hex


hat geholfen (... und auch nur 3 Tage gedauert ... :o).

Hallo yam,
schön das es jetzt klappt. Ich habe aber da noch ein paar Fragen bzw. eine Bitte. Welche culfw hast du eingesetzt? Wie sieht deine Devicedefinition aus? Verdrahtung?
Ich habe ja für die nanoCUL V3.1 die Ports umlegen müssen. http://forum.fhem.de/index.php/topic,38561.msg376006.html#msg376006
Es wäre natürlich besser wenn man die CUL_V3 benutzen könnte. Vieleicht kannst du ja dein Verzeichnis "promicroCUL" mal zippen und hier einstellen.

Gruß Friedrich
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

PeMue

Hallo yam,

hast Du den Arduino pro micro das erste Mal geflasht? Dann sollte das mit dem normalen Bootlader gehen. Wenn eine culfw drauf ist, könnte man per serieller Verbindung das Kommando
B01 siehe commandref setzen, dann sollte das auch gehen (habe es aber noch nicht probiert.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

yamfhem

Hallo,
@Omega-5:
- Basis ist: culfw-code-536-trunk
- Ausgangspunkt war eigentlich Deine Datei board.h - die habe ich mir auf 433MHz angepasst, siehe *.zip File
- Verdrahtung ist "Eure Standardverdrahtung" (mit D2 an GDO0 und D3 an GDO2) aus dem hier: http://forum.fhem.de/index.php/topic,38561.0.html

Devicedef:
- define microCUL CUL /dev/serial/by-id/usb-busware.de_CUL433-if00@38400 2222


... so sieht das im Log aus:
Dec 18 22:20:16 pi2 kernel: [ 4371.860471] usb 1-1.3: USB disconnect, device number 56
Dec 18 22:20:23 pi2 kernel: [ 4378.237085] usb 1-1.3: new full-speed USB device number 57 using dwc_otg
Dec 18 22:20:23 pi2 kernel: [ 4378.358219] usb 1-1.3: New USB device found, idVendor=1b4f, idProduct=9204
Dec 18 22:20:23 pi2 kernel: [ 4378.358256] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 18 22:20:23 pi2 kernel: [ 4378.358272] usb 1-1.3: Product: SparkFun Pro Micro
Dec 18 22:20:23 pi2 kernel: [ 4378.358286] usb 1-1.3: Manufacturer: SparkFun
Dec 18 22:20:23 pi2 kernel: [ 4378.367906] cdc_acm 1-1.3:1.0: This device cannot do calls on its own. It is not a modem.
Dec 18 22:20:23 pi2 kernel: [ 4378.368021] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device
Dec 18 22:20:39 pi2 kernel: [ 4394.647566] usb 1-1.3: USB disconnect, device number 57
Dec 18 22:21:03 pi2 kernel: [ 4418.947696] usb 1-1.3: new full-speed USB device number 58 using dwc_otg
Dec 18 22:21:03 pi2 kernel: [ 4419.061253] usb 1-1.3: New USB device found, idVendor=1b4f, idProduct=9203
Dec 18 22:21:03 pi2 kernel: [ 4419.061290] usb 1-1.3: New USB device strings: Mfr=2, Product=1, SerialNumber=0
Dec 18 22:21:03 pi2 kernel: [ 4419.061306] usb 1-1.3: Product: Pro Micro 3.3V
Dec 18 22:21:03 pi2 kernel: [ 4419.061320] usb 1-1.3: Manufacturer: SparkFun Electronics
Dec 18 22:21:03 pi2 kernel: [ 4419.066932] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device
Dec 18 22:21:15 pi2 kernel: [ 4430.492434] usb 1-1.3: USB disconnect, device number 58
Dec 18 22:21:15 pi2 kernel: [ 4430.987878] usb 1-1.3: new full-speed USB device number 59 using dwc_otg
Dec 18 22:21:15 pi2 kernel: [ 4431.102768] usb 1-1.3: New USB device found, idVendor=03eb, idProduct=204b
Dec 18 22:21:15 pi2 kernel: [ 4431.102806] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Dec 18 22:21:15 pi2 kernel: [ 4431.102822] usb 1-1.3: Product: CUL433
Dec 18 22:21:15 pi2 kernel: [ 4431.102835] usb 1-1.3: Manufacturer: busware.de
Dec 18 22:21:15 pi2 kernel: [ 4431.106679] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device


- Dateien im Anhang

@PeMue
- der Micro war nur mal testweise mit einem Standard Programm aus der Arduino IDE geflasht, keine culfw
- seriell oder mit einem ISP wollte ich genau nicht machen, weil das "eigentlich" zu viel Aufwand ist - weil der Micro das ja per USB können soll (sicher wäre das schneller gegangen, aber ich wollte das mit Boardmitteln hinkriegen)
- "B0" ist aus FHEM heraus? - ich war auf Linux-Ebene unterwegs


Gruß yam

PeMue

Hallo yam,
Zitat von: yamfhem am 19 Dezember 2015, 17:50:03
@PeMue
- seriell oder mit einem ISP wollte ich genau nicht machen, weil das "eigentlich" zu viel Aufwand ist - weil der Micro das ja per USB können soll (sicher wäre das schneller gegangen, aber ich wollte das mit Boardmitteln hinkriegen)
nein einfach an einen USB Port hängen und per avrdude flashen. Wenn es unter Windows geht, sollte es auch unter Unix funktionieren.

Zitat von: yamfhem am 19 Dezember 2015, 17:50:03
- "B0" ist aus FHEM heraus? - ich war auf Linux-Ebene unterwegs
Nein, über USB mit 38400/8/1/N und mit CR oder CR+LF am Ende ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Omega-5

Zitat von: PeMue am 19 Dezember 2015, 18:52:23
Hallo yam,nein einfach an einen USB Port hängen und per avrdude flashen. Wenn es unter Windows geht, sollte es auch unter Unix funktionieren.
Nein, über USB mit 38400/8/1/N und mit CR oder CR+LF am Ende ...

Hallo geht leider nicht weil Sparkfun Pro Micro:  :(
Zitat"We ship the Pro Micro with a modified version of the Arduino Leonardo bootloader...."
...it'll only briefly (<750ms) start the bootloader before continuing on to the sketch.
Nachzulesen hier:
https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide#troubleshooting-and-faq
Also brauchen wir vieleicht doch einen Taster an RST oder in der Firmware etwas wie einen Doppelklick simulieren?  ;)

Gruß Friedrich
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

yamfhem

#7
Zitat von: Omega-5 am 20 Dezember 2015, 11:30:45
Also brauchen wir vieleicht doch einen Taster an RST oder in der Firmware etwas wie einen Doppelklick simulieren?  ;)

Gruß Friedrich

.... ja, das dachte ich mir auch schon. Nach einem Reset Taster hatte ich in Eurem Schaltplan auch schon gesucht (und nicht gefunden). Ich habe mir so geholfen, dass ich den Micro nur auf die Pfostenleiste auf das Steckbrett gesteckt habe und einen Jumper zwischen RST und GND (siehe Anhang).

Dann mal noch einige Bilder von meinem Micro-Sandwich-CUL (direkt mit Drähten verbunden).

Gruß yam

edit: noch vergessen: unter der Windows-Arduino IDE konnte ich ja flashen - da sieht man:
1. dass der Micro kurz mit 1200 baud geöffnet wird
2. dann gibt's 'ne neue Schnittstelle (COMx+1) und
3. Avrdude flasht auf diese COMx+1.
Dieses kurzzeitge Verbinden mit 1200 baud öffnet wohl den Bootloader (da könnte man bestimmt auch was scripten ..)

PeMue

Zitat von: yamfhem am 20 Dezember 2015, 14:22:31
edit: noch vergessen: unter der Windows-Arduino IDE konnte ich ja flashen - da sieht man:
1. dass der Micro kurz mit 1200 baud geöffnet wird
2. dann gibt's 'ne neue Schnittstelle (COMx+1) und
3. Avrdude flasht auf diese COMx+1.
Dieses kurzzeitge Verbinden mit 1200 baud öffnet wohl den Bootloader (da könnte man bestimmt auch was scripten ..)
Ok, da ich (unter Windows) mit avrdude geflasht habe, ist mir das mit den 750 ms nicht aufgefallen.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

yamfhem

...unter Windows hatte ich vorher auch versucht!? Da lies der ProMicro sich aber nur mit einem kompilierten Sketch in der Arduino IDE flashen.
Wie genau und womit hast Du denn unter Windows geflasht?
Nachdem die CUL erstmal drauf geht unter Windows ja nix mehr, weil (wegen dem Bootloader wahrscheinlich) der ProMicro nicht mehr erkannt wird.

yam

PeMue

Hallo yam,

ich habe (den nackten) Arduino pro micro mit folgendem Befehl geflasht:
avrdude -D -v -p atmega32u4 -P COM9 -b 57600 -c avr109 -U flash:w:CUL_1.65_8_868_promicro.hex
Wenn die culfw draufgespielt ist, musst Du ihn mit B01 (siehe auch http://culfw.de/commandref#cmd_B) in den Bootmodus versetzen und dann flashen.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

yamfhem

Hallo PeMue,
wahrscheinlich stelle ich mich bloss blöd an, aber  wie komme ich denn unter Windows in den B01 Modus um dann anschliessend zu flashen? Mit einem einem Terminal einfach B01 und dann ganz normal avrdude? Hast Du das schon mal hinbekommen?
Gruss yam

PeMue

#12
Zitat von: yamfhem am 24 Dezember 2015, 19:37:58
Mit einem einem Terminal einfach B01 und dann ganz normal avrdude? Hast Du das schon mal hinbekommen?
Gruss yam
Hallo yam,

Antwort auf Deine erste frage: ja
Antwort auf die zweite: nein, habe ich noch nicht. Werde ich aber mal versuchen und berichten.

Schöne Weihnachten.

Gruß PeMue

Edit: Funktioniert unter Windows leider nicht. Warum? Der Bootloader hat einen anderen Treiber als der CUL. Wenn mit B01 in den Bootmodus geschaltet wird, ist der serielle Port weg, aber Windows initialisiert nicht mehr neu. Wenn das Teil aber aus- und wieder eingesteckt wird, ist wieder der CUL Treiber aktiv und das Ding nicht mehr im Bootmodus  >:( >:( >:(
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

PeMue

Hallo,

ich habe mittlerweile den nanoCUL mit dem Arduino pro micro (am Raspberry Pi) geflasht:
ZitatWhen a Pro Micro is externally reset (by pulling the RST pin low), it'll only
briefly (<750ms) start the bootloader before continuing on to the sketch. If
you need the bootloader to run longer, resetting twice quickly will get the
Pro Micro to enter bootloader mode for eight seconds.
Wenn man das beherzigt, sollte die Flasherei ggf. auch unter Windows gehen.
sudo avrdude -c avr109 -b 57600 -P /dev/ttyACM0 -p atmega32u4 -vv -U flash:w:culfw_v1.66_8_868_promicro.hex

Die compilierten Dateien hänge ich an den Thread mit der nanoCUL Platine bzw. die Beschreibung auch. Scheinbar funktioniert das Rücksetzen in den Bootloader Modus über die culfw nicht, Zitat aus dem Wiki:
ZitatDer bereits bei fabrikneuen Arduinos vorhandene Bootloader ist nicht kompatibel zu dem Bootloader der culfw. Daher funktioniert das Kommando B zum rebooten des Selbstbau CULs nicht. Der Selbstbau CUL gerät dann in eine Endlosschleife, die sich nur durch aus- und einstecken beenden lässt. Das Problem tritt aber im normalen Betrieb nicht auf.
Es gilt doch die alte Weisheit: Lesen bildet. Ggf. sollten wir schauen, dass wir auf die Arduino pro micro einen culfw kompatiblen Bootloader draufbringen, dann funktioniert ggf. die Flasherei aus fhem heraus wieder  ;)

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

f1nd

hey kannst du mal n kurze anfänger anleitung schreiben mit der firmware für 433 ?
was is das für ein wiederstand dahinten , muss der sein ?

VG