Skocz do zawartości

RPI Pico jako programator AVR


bakuswupek

Pomocna odpowiedź

Hej, mam do zaktualizowania firmware w drukarce Prusa MK3S (Einsy RAMBO board) i do tego celu kupiłem programator AVR (https://allegro.pl/oferta/programator-isp-usbasp-avr-3-3v-5v-tasma-arduino-12127442910 taka zabaweczka, z 10 pin zrobiłem przelotkę na 6 pin), ale przy próbie flashowania, avrdude krzyczy, że trzeba zaktualizować programator, bo nie może nawiązać połączenia z kontrolerem. No i chcę to zrobić, ale nie mam drugiego programatora ani Arduino, pod które jakieś poradniki da się znaleźć. W szafie leżą mi jedynie RPI Pico i WeMos D1 Mini. Jest jakaś szansa, że z RPI zrobię sobie programator, żeby zaktualizować chińczyka?

Link do komentarza
Share on other sites

Na pewno trzeba zaktualizować czy MOŻE TRZEBA?

U mnie najczęściej problemy są następujące:
1) brak sterownika windows - za pomocą aplikacji zadig instaluje któryś z dostępnych tam generycznych sterowników (libusb albo ktoryś z pozostałych).
2) kable są źle podpięte z programatora do avra
3) zbyt wysoka prędkość 

Nawiasem mówiąc, czy ten einsy nie ma opcji aktualizacji przez bootloader?
 

 

 

  • Lubię! 1
Link do komentarza
Share on other sites

59 minut temu, etet100 napisał:

Na pewno trzeba zaktualizować czy MOŻE TRZEBA?

U mnie najczęściej problemy są następujące:
1) brak sterownika windows - za pomocą aplikacji zadig instaluje któryś z dostępnych tam generycznych sterowników (libusb albo ktoryś z pozostałych).
2) kable są źle podpięte z programatora do avra
3) zbyt wysoka prędkość 

Nawiasem mówiąc, czy ten einsy nie ma opcji aktualizacji przez bootloader?

Komunikat z avrdude sugerował aktualizację firmware. Akurat nie mam pod ręką logów, ale w historii wyszukiwania znalazłem ich część:

Cytat

avrdude: warning: cannot set sck period. please check for usbasp firmware update.

Później były bodajże 3 próby połączenia i koniec działania.

Sterowniki raczej nie powinny być problemem - używam najnowszego avrdude na terminalu z DietPi, usbasp-clone jest dostępny na liście.

Też obstawiałem przewody, bo musiałem zrobić przejście z 10 pin na 6 pin, więc podejrzewałem, że coś gdzieś nie styka, ale zrobiłem test diody multimetrem dla każdego przewodu i było okej. Połączyłem je tak jak na poniższej grafice:

image.thumb.png.cecfd639aaef15c51d07a087234114a9.png

 

49 minut temu, _LM_ napisał:

Tam jest bootloader, podłączasz usb i gotowe 

Przez USB niestety się nie da, w tym celu muszę właśnie wgrać fix, żeby później móc kombinować przez USB 😄

 

Ref:

https://github.com/PrusaOwners/mk3-32u2-firmware

https://www.patreon.com/posts/stock-prusa-mk3s-48015680

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Teraz na szybko doczytałem i co do tego starego firmware programatora możesz mieć rację. Tylko to jest ostrzeżenie a nie błąd krytyczny. Teoretycznie i tak powinno działać.

Jak są opisane zworki na programatorze? Bo nie widać na zdjęciach.

Płyta rambo jest zasilana z usb kiedy to testujesz?

  • Lubię! 1
Link do komentarza
Share on other sites

Dzisiaj po południu w wolnej chwili podłączę programator to płytki i wrzucę cały komunikat jaki wypluwa, drukarka ciągle w ruchu 😄

Podrzucam zdjęcie programatora w załączniku.

Rambo jest odłączone, według poradników. Jedyna różnica jest taka, że do płytki mam podłączone wszystkie przewody, ale wydaje mi się, że nie powinno to wadzić skoro drukarka ma odłączone zasilanie.

IMG_0860.jpg

Link do komentarza
Share on other sites

dietpi@t630:~$ sudo avrdude -p m32u2 -F -P usb -c usbasp-clone -U flash:r:firmware_backup.hex:i -U eeprom:r:eeprom.hex:i -U lfuse:r:lowfuse:h -U hfuse:r:highfuse:h -U efuse:r:exfuse:h -U lock:r:lockfuse:h
avrdude error: cannot set sck period; please check for usbasp firmware update
avrdude error: program enable: target does not answer (0x01)
avrdude error: initialization failed, rc=-1
        - double check the connections and try again
        - use -B to set lower the bit clock frequency, e.g. -B 125kHz
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x000000 (retrying)
avrdude: device signature = 0x000000 (retrying)
avrdude: device signature = 0x000000
avrdude error: Yikes!  Invalid device signature.
avrdude warning: expected signature for ATmega32U2 is 1E 95 8A

avrdude done.  Thank you.

Tak wygląda wywołanie komendy.

Link do komentarza
Share on other sites

Udało się. Aż mi wstyd, ale powodem było złe połączenie pinów, podłączyłem je na odwrót...

Co mnie trochę zdziwiło, przy każdej komendzie pojawił się error "avrdude error: cannot set sck period; please check for usbasp firmware update", ale dalej wszystko szło jak powinno.

dietpi@t630:~/m32u2_mk3s_backup$ sudo avrdude -p m32u2 -F -P usb -c usbasp-clone
avrdude error: cannot set sck period; please check for usbasp firmware update
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e958a (probably m32u2)

avrdude done.  Thank you.

dietpi@t630:~/m32u2_mk3s_backup$ sudo avrdude -p m32u2 -F -P usb -c usbasp-clone -U flash:r:firmware_backup.hex:i -U eeprom:r:eeprom.hex:i -U lfuse:r:lowfuse:h -U hfuse:r:highfuse:h -U efuse:r:exfuse:h -U lock:r:lockfuse:h
avrdude error: cannot set sck period; please check for usbasp firmware update
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e958a (probably m32u2)

avrdude: processing -U flash:r:firmware_backup.hex:i
avrdude: reading flash memory ...
Reading | ################################################## | 100% 17.67 s 
avrdude: writing output file firmware_backup.hex

avrdude: processing -U eeprom:r:eeprom.hex:i
avrdude: reading eeprom memory ...
Reading | ################################################## | 100% 1.80 s 
avrdude: writing output file eeprom.hex

avrdude: processing -U lfuse:r:lowfuse:h
avrdude: reading lfuse memory ...
avrdude: writing output file lowfuse

avrdude: processing -U hfuse:r:highfuse:h
avrdude: reading hfuse memory ...
avrdude: writing output file highfuse

avrdude: processing -U efuse:r:exfuse:h
avrdude: reading efuse memory ...
avrdude: writing output file exfuse

avrdude: processing -U lock:r:lockfuse:h
avrdude: reading lock memory ...
avrdude: writing output file lockfuse

avrdude done.  Thank you.

dietpi@t630:~/m32u2_mk3s_backup$ ls -la
total 104
drwxr-xr-x  2 dietpi dietpi  4096 Jun  9 14:57 .
drwxr-xr-x 23 dietpi dietpi  4096 Jun  9 14:56 ..
-rw-r--r--  1 root   root    2444 Jun  9 14:57 eeprom.hex
-rw-r--r--  1 root   root       5 Jun  9 14:57 exfuse
-rw-r--r--  1 root   root   76056 Jun  9 14:57 firmware_backup.hex
-rw-r--r--  1 root   root       5 Jun  9 14:57 highfuse
-rw-r--r--  1 root   root       5 Jun  9 14:57 lockfuse
-rw-r--r--  1 root   root       5 Jun  9 14:57 lowfuse
dietpi@t630:~/m32u2_mk3s_backup$ sudo avrdude -p m32u2 -F -P usb -c usbasp-clone -U hfuse:w:0xD1:m
avrdude error: cannot set sck period; please check for usbasp firmware update
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e958a (probably m32u2)

avrdude: processing -U hfuse:w:0xD1:m
avrdude: reading input file 0xD1 for hfuse
         with 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte hfuse ...
avrdude: 1 byte of hfuse written
avrdude: verifying hfuse memory against 0xD1
avrdude: 1 byte of hfuse verified

avrdude done.  Thank you.

dietpi@t630:~/m32u2_mk3s_backup$ wget https://raw.githubusercontent.com/PrusaOwners/mk3-32u2-firmware/master/hex_files/DFU-hoodserial-combined-PrusaMK3-32u2.hex
--2023-06-09 14:58:34--  https://raw.githubusercontent.com/PrusaOwners/mk3-32u2-firmware/master/hex_files/DFU-hoodserial-combined-PrusaMK3-32u2.hex
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.109.133, 185.199.111.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20472 (20K) [text/plain]
Saving to: DFU-hoodserial-combined-PrusaMK3-32u2.hex

DFU-hoodserial-combined 100%[=============================>]  19.99K  --.-KB/s    in 0.004s  

2023-06-09 14:58:34 (5.28 MB/s) - DFU-hoodserial-combined-PrusaMK3-32u2.hex saved [20472/20472]

dietpi@t630:~/m32u2_mk3s_backup$ sudo avrdude -p m32u2 -F -P usb -c usbasp-clone -U flash:w:DFU-hoodserial-combined-PrusaMK3-32u2.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m
avrdude error: cannot set sck period; please check for usbasp firmware update
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e958a (probably m32u2)
avrdude: Note: flash memory has been specified, an erase cycle will be performed.
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude error: cannot set sck period; please check for usbasp firmware update

avrdude: processing -U flash:w:DFU-hoodserial-combined-PrusaMK3-32u2.hex:i
avrdude: reading input file DFU-hoodserial-combined-PrusaMK3-32u2.hex for flash
         with 7418 bytes in 4 sections within [0, 0x7fff]
         using 60 pages and 262 pad bytes
avrdude: writing 7418 bytes flash ...
Writing | ################################################## | 100% 2.25 s 
avrdude: 7418 bytes of flash written
avrdude: verifying flash memory against DFU-hoodserial-combined-PrusaMK3-32u2.hex
Reading | ################################################## | 100% 1.93 s 
avrdude: 7418 bytes of flash verified

avrdude: processing -U lfuse:w:0xFF:m
avrdude: reading input file 0xFF for lfuse
         with 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte lfuse ...
avrdude: 1 byte of lfuse written
avrdude: verifying lfuse memory against 0xFF
avrdude: 1 byte of lfuse verified

avrdude: processing -U hfuse:w:0xD9:m
avrdude: reading input file 0xD9 for hfuse
         with 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte hfuse ...
avrdude: 1 byte of hfuse written
avrdude: verifying hfuse memory against 0xD9
avrdude: 1 byte of hfuse verified

avrdude: processing -U efuse:w:0xF4:m
avrdude: reading input file 0xF4 for efuse
         with 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte efuse ...
avrdude: 1 byte of efuse written
avrdude: verifying efuse memory against 0xF4
avrdude: 1 byte of efuse verified

avrdude done.  Thank you.

dietpi@t630:~/m32u2_mk3s_backup$ ls -la
total 124
drwxr-xr-x  2 dietpi dietpi  4096 Jun  9 14:58 .
drwxr-xr-x 23 dietpi dietpi  4096 Jun  9 14:56 ..
-rw-r--r--  1 dietpi dietpi 20472 Jun  9 14:58 DFU-hoodserial-combined-PrusaMK3-32u2.hex
-rw-r--r--  1 root   root    2444 Jun  9 14:57 eeprom.hex
-rw-r--r--  1 root   root       5 Jun  9 14:57 exfuse
-rw-r--r--  1 root   root   76056 Jun  9 14:57 firmware_backup.hex
-rw-r--r--  1 root   root       5 Jun  9 14:57 highfuse
-rw-r--r--  1 root   root       5 Jun  9 14:57 lockfuse
-rw-r--r--  1 root   root       5 Jun  9 14:57 lowfuse
dietpi@t630:~/m32u2_mk3s_backup$ 

No cóż, Arduino już zdążyłem zamówić, przyda się pewnie do jakiegoś projektu 😄 Dziękuję za pomoc!

Link do komentarza
Share on other sites

Też mi to nie pasowało, dlatego byłem przekonany, że to będzie problem z firmware programatora, skoro nie widzi kompletnie połączenia. Trochę głupi problem, przy zakupie programatora nie zwróciłem uwagi, że ma wtyczkę 10 pin, a Einsy potrzebuje tylko 6 z nich. Człowiek w gorącej wodzie kąpany ze mnie 😄

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.