Vai al contenuto

SDM 3D1 - Aggiornamento firmware con avrdude da Mac


Messaggi raccomandati

Ciao, questo è il mio primo post nel forum quindi ne approfitto per salutare tutti!


 


Ho da qualche tempo una stampante "italiana" SDM 3D1 della sdm3d.it i ragazzi che la commercializzano hanno sostanzialmente preso un prodotto cinese e, assemblandolo in Italia, lo vendono come made in Italy. In realtà questa è una fedele replica della stampante cinese Han-Bot. Con ciò non voglio sminuire il lavoro della sdm, per quel che costa questa stampante funziona molto bene.


 


IMG_9711.jpg


 


Di recente è uscito un aggiornamento firmware (in concomitanza con il lancio di un nuovo modello), ma il supporto dal loro sito prevede una versione di X Loader per aggiornare il firmware solo per Windows. Ho provato a scrivere un paio di messaggi al loro supporto ma purtroppo non mi hanno risposto.


 


La board della stampante sembra essere una Melzi, di sicuro dalle definizioni dei device di Xloader si vede che monta un ATMEGA1284, usa un programmer STK500 (v1) e un Baud Rate di 57600.


 


IMG_9710.jpg


 


Una volta scaricata la versione di XLoader (aggiornamento firmware) dal sito di sdm, per prima cosa è necessario copiare i file di configurazione di avrdude (avrdude.conf) e il nuovo firmware in formato esadecimale (SDM-3D1-071015) in un luogo comodo (nel mio caso in /Users/utente/).


 


Dalla IDE Arduino verificare che la stampante sia correttamente collegata e controllare quale sia la porta usb relativa (nel mio caso /dev/tty.usbserial-AH02Z72S). Forse sarà necessario impostare Arduino IDE per lavorare con l'ATMEGA1284 (non so se sia obbligatorio installare la board tra quelle disponibili nella IDE, nel caso questo è il repository: https://github.com/maniacbug/mighty-1284p).


 


A questo punto chiudete il jumper JP14 sulla scheda, collegate il cavo usb, accendete la stampante e aprite il serial monitor di arduino, dopo pochi secondi dovreste vedere una schermata come questa:



start
echo:Marlin1.0.2
echo: Last Updated: Mar 3 2015 16:55:09 | Author: (SDM srl - Marco Andreacchio)
Compiled: Mar 3 2015
echo: Free Memory: 12005 PlannerBufferBytes: 1232
echo:Hardcoded Default Settings Loaded
echo:Steps per unit:
echo: M92 X85.33 Y85.33 Z2574.00 E160.50
echo:Maximum feedrates (mm/s):
echo: M203 X600.00 Y600.00 Z5.00 E100.00
echo:Maximum Acceleration (mm/s2):
echo: M201 X600 Y600 Z3 E100
echo:Acceleration: S=acceleration, T=retract acceleration
echo: M204 S600.00 T600.00
echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
echo: M205 S0.00 T0.00 B20000 X20.00 Z0.40 E5.00
echo:Home offset (mm):
echo: M206 X0.00 Y0.00 Z0.00
echo:PID settings:
echo: M301 P14.87 I0.74 D74.73
echo:Filament settings: Disabled
echo:Z-Probe Offset (mm):
echo: M851 Z0.00
echo:SD init fail


Come vedete la versione di Marlin caricata sulla stampante risale al 3 marzo 2015 a cura di Marco Andreacchio.


 


Ora lanciamo avr dude in modalità -n per provare la configurazione.


 


Il comando è:



avrdude -v -v -p m1284p -b 57600 -c stk500v1 -C [CONF-PATH] -P /dev/[USB-PORT] -D -U flash:w:"[FILE-PATH]":a -n

dove:


[uSB-PORT] rappresenta la porta usb come listata nella ide Arduino nel mio caso: tty.usbserial-AH02Z72S


[CONF-PATH] rappresenta il percorso del file del nuovo firmware nel mio caso: /Users/utente/avrdude.conf


[FIRMWARE-PATH] rappresenta il percorso del file del nuovo firmware nel mio caso: /Users/utente/SDM-3D1-071015


 


L'opzione -n non farà scrivere nulla a avrdude, ma se la simulazione va a buon fine dovreste avere un output come questo:



avrdude: Version 5.3.1.osxintelhack, compiled on Feb 1 2007 at 22:30:12
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

System wide configuration file is "/Users/utente/avrdude.conf"
User configuration file is "/Users/utente/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/tty.usbserial-AH02Z72S
Using Programmer : stk500v1
Overriding Baud Rate : 57600
AVR Part : ATMEGA1284P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 10 128 0 no 4096 8 0 9000 9000 0xff 0xff
flash 65 10 256 0 yes 131072 256 512 4500 4500 0xff 0xff
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00

Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 2
Firmware Version: 1.16
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9705
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: reading input file "/Users/utente/SDM-3D1-071015"
avrdude: input file /Users/utente/SDM-3D1-071015 auto detected as Intel Hex
avrdude: writing flash (104096 bytes):
:200000000C94070F0C94320F0C94320F0C94320F0C94320F0C94320F0C94320F0C94320F03
:200020000C94320F0C94320F0C94320F0C94320F0C94320F0C944B740C94320F0C94320F3A
:200040000C94320F0C9475800C947FC10C94320F0C94A54C0C94320F0C94320F0C94320F35
:200060000C94320F0C94320F0C946EBE0C94320F0C94320F0C94320F0C94320F0C94320F8D
:200080000C94320F0C94320F0C94320F084AD73B3BCE016E84BCBFFDC12F3D6C74319ABD50

... molte altre righe come queste...

:2095E00015000E001200FFFF160017000E001300FFFF030002001A001400FFFFFFFFFFFFBF
:209600000C000400010000000E000D00FFFF1E0000000000646EEDC3001010101010100020
:2096200000141414141414000015151515151500000E1315110E00001C1018170506050074
:20964000001C1F11111F00000006191803130C00040E1F041C000000040A0A0A0A11110E88
:209660000C12120C00000000001F1511151F000000803B4500803B450000704300004843F7
:2096800000000000ACBD7BBD34BD3DBD52BD63BD0000000092C0EDC3000040001400540065
:00000001FF
avrdude: 104096 bytes of flash written
avrdude: verifying flash memory against /Users/utente/SDM-3D1-071015:
avrdude: load data flash data from input file /Users/utente/SDM-3D1-071015:
avrdude: input file /Users/utente/SDM-3D1-071015 auto detected as Intel Hex
avrdude: input file /Users/utente/SDM-3D1-071015 contains 104096 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 30.71s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0002
0x07 != 0x5b
avrdude: verification error; content mismatch

avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK

avrdude done. Thank you.

Sembra tutto ok. Il "verification error; content mismatch" è dato dalla modalità -n che simula solamente la scrittura del firmware.


 


Prima di flashare la scheda è bene fare una copia di backup del firmware attualmente caricato, con il seguente comando:



avrdude -v -v -p m1284p -b 57600 -c stk500v1 -C [CONF-PATH] -P [USB-PORT] -U flash:r:"[FILE-PATH]":i -D

In questo caso [FILE-PATH] deve rappresentare il percorso e nome del file di Backup, ad es. : /Users/utente/BACKUP_3D1-04112015


 


L'output che segue il comando di backup è questo:



avrdude: Version 5.3.1.osxintelhack, compiled on Feb 1 2007 at 22:30:12
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

System wide configuration file is "/Users/utente/avrdude.conf"
User configuration file is "/Users/utente/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/tty.usbserial-AH02Z72S
Using Programmer : stk500v1
Overriding Baud Rate : 57600
AVR Part : ATMEGA1284P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 10 128 0 no 4096 8 0 9000 9000 0xff 0xff
flash 65 10 256 0 yes 131072 256 512 4500 4500 0xff 0xff
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00

Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 2
Firmware Version: 1.16
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9705
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: reading flash memory:

Reading | ################################################## | 100% 38.65s

avrdude: writing output file "/Users/utente/BACKUP_3D1-04112015"

avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK

avrdude done. Thank you.


Ora possiamo finalmente rilanciare il comando di upgrade del firmware, quindi senza il parametro -n (segue output):



avrdude -v -v -p m1284p -b 57600 -c stk500v1 -C [CONF-PATH] -P /dev/[USB-PORT] -D -U flash:w:"[FILE-PATH]":a


avrdude: Version 5.3.1.osxintelhack, compiled on Feb 1 2007 at 22:30:12
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

System wide configuration file is "/Users/utente/avrdude.conf"
User configuration file is "/Users/utente/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/tty.usbserial-AH02Z72S
Using Programmer : stk500v1
Overriding Baud Rate : 57600
AVR Part : ATMEGA1284P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 10 128 0 no 4096 8 0 9000 9000 0xff 0xff
flash 65 10 256 0 yes 131072 256 512 4500 4500 0xff 0xff
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00

Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 2
Firmware Version: 1.16
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9705
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: reading input file "/Users/lupo/SDM-3D1-071015"
avrdude: input file /Users/utente/SDM-3D1-071015 auto detected as Intel Hex
avrdude: writing flash (104096 bytes):

Writing | ################################################## | 100% 32.53s

avrdude: 104096 bytes of flash written
avrdude: verifying flash memory against /Users/lupo/SDM-3D1-071015:
avrdude: load data flash data from input file /Users/lupo/SDM-3D1-071015:
avrdude: input file /Users/utente/SDM-3D1-071015 auto detected as Intel Hex
avrdude: input file /Users/utente/SDM-3D1-071015 contains 104096 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 30.71s

avrdude: verifying ...
avrdude: 104096 bytes of flash verified

avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK

avrdude done. Thank you.


Sembra tutto corretto. Per verificare che il firmware sia effettivamente stato aggiornato basta ripetere la procedura del serial monitor dalla IDE di Arduino, i valore come potete vedere sono cambiati e la data di questa versione è più recente (7 ottobre 2015):



start
echo:Marlin 07/10/15
echo: Last Updated: Oct 7 2015 21:08:39 | Author: (SDM srl - Marco Andreacchio)
Compiled: Oct 7 2015
echo: Free Memory: 11844 PlannerBufferBytes: 1232
echo:Hardcoded Default Settings Loaded
echo:Steps per unit:
echo: M92 X85.33 Y85.33 Z2560.00 E156.00
echo:Maximum feedrates (mm/s):
echo: M203 X200.00 Y200.00 Z4.00 E25.00
echo:Maximum Acceleration (mm/s2):
echo: M201 X1500 Y1500 Z7 E1000
echo:Accelerations: P=printing, R=retract and T=travel
echo: M204 P2000.00 R2000.00 T2000.00
echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
echo: M205 S0.00 T0.00 B20000 X15.00 Z0.40 E5.00
echo:Home offset (mm):
echo: M206 X0.00 Y0.00 Z0.00
echo:Material heatup parameters:
echo: M145 M0 H185 B65 F0
echo: M145 M1 H230 B110 F0
echo:PID settings:
echo: M301 P13.08 I0.49 D88.08 C1.00
echo:Filament settings: Disabled
echo:SD init fail

Fatto! Ora riaprite il jumper JP14 e fate una prova di stampa... se qualcosa non andasse bene potete sempre fare il downgrade con la procedura d'aggiornamento usando il file di backup creato.


:)


  • Like 1
Link al commento
Condividi su altri siti

  • 2 settimane dopo...

Ciao!


Ho la tua stessa identica stampante!


 


2 cose!


 


- come mai hai la ventola diversa? l'hai cambiata tu? come mai?


- io ho Windows e sto in questi giorni cercando di aggiornare il firmware, ma quando lancio xloader, seleziono la porta, inserisco il file SDM-3D1-071015, e mi dice UPLOAD FAILURE... e parte per qualche secondo la ventola....

Link al commento
Condividi su altri siti

  • 2 settimane dopo...
35 minuti fa, Alessandro3d dice:

Ciao lupo3d!

Volevo farti una domanda..

La ventola che hai montato tu, l'hai messa sostituendo quella di serie, o ne hai 2??

Io stampo PLA e un ventola sull'hotend mi serve.. quella spara aria solo sulla punta dell'estrusore giusto??

Anche io quasi solo PLA, con il convogliatore originale e con quello disponibile come stl il flusso d'aria arrivava debole e piuttosto in ritardo (soprattutto sui top infill di ridotta superficie). 

Questo lo sto usando da un po' e mi trovo bene, dovrei disegnare un attacco ventola che preveda anche un estrattore da 40mm sulla destra dell'hotend, ma devo studiare come ricavare i 5V fissi dalla scheda per attaccarlo.

 

Riguardo ai driver mi pare siano scaricabili dal sito sdm.. 

Link al commento
Condividi su altri siti

47 minuti fa, Alessandro3d dice:

Quindi hai tolto quello originale e hai montato quello nuovo, giusto?

Ma senza ventola sull'hotend , non ti si ingrossa il filo dentro il ptfe ?

Si, nel file da stampare ci sono anche i braccetti più lunghi. Il convogliatore originale non manda aria sull'hot-end, per ridurre la temperatura li bisognerebbe mettere un estrattore.

se ti si gonfia il filamento cambialo, io ne avevo di qualità cattiva e si gonfiavano. Da quando uso Easyfill mai avuto problemi.

Link al commento
Condividi su altri siti

Io l'ho stampata in PLA, con i bracetti più lunghi la distanza dalla camera di fusione è sufficiente a far si che non si deformi.

Tieni presente che io uso un pla (formfutura easyfill) che ha temperature consigliate alte, 210° - 220° C più vicine a quelle dell'abs

Ciao!

Link al commento
Condividi su altri siti

Partecipa alla conversazione

Puoi pubblicare ora e registrarti più tardi. Se hai un account, accedi ora per pubblicarlo con il tuo account.

Ospite
Rispondi a questa discussione...

×   Hai incollato il contenuto con la formattazione.   Rimuovere la formattazione

  Sono consentiti solo 75 emoticon max.

×   Il tuo collegamento è stato incorporato automaticamente.   Mostra come un collegamento

×   Il tuo contenuto precedente è stato ripristinato.   Pulisci editor

×   Non puoi incollare le immagini direttamente. Carica o inserisci immagini dall'URL.

×
×
  • Crea Nuovo...