wemos motor shield firmware update

Prima di usare la motor shield per WeMos è necessario eseguire un  wemos motor shield firmware update.

Fonte: wiki wemos

In pratica dopo aver acquistato la versione 1.0 della motor shield ho provato uno degli sketch di esempio che viene fornito con la libreria di controllo e mi sono accorto che i motori non rispondevano ad alcun comando, non ricevevano alcun segnale per muoversi.

Ho riletto più volte la wiki del produttore in cerca di qualche info sull’inizializzazione della scheda ed ho trovato molte info utili come:

oltre alla libreria usata per controllare la scheda e testare la sheld.

Purtroppo la wemos motor che ti mostro è la versione 1.0 ed è già stata rilasciata la versione 2.0 che presenta alcune migliorie come, ad esempio:

  • la possibilità di montare dei connettori dotati di viti per l’alimentazione esterna e per i motori;
  • l’adesione allo standard LOLIN della WeMos;
  • il controllo dello StanBy solo in I2C, nella versione 1.0 puoi decidere se usare un pin o l’IIC;
  • la mancanza della gestione dell’indirizzamento i2C, che nella vesione 2.0 è fisso;
  • la presenza del connettore JTAG;

ma nulla in merito al mancato funzionamento della versione 1.0.

Verifica dell’indirizzo I2C

Usa lo sketch per la scansione degli indirizzi I2C, pubblicato e descritto in questo articolo, per comprendere se fosse un problema di indirizzo.

Scoprirai, probabilmente, che la shield non viene riconosciuta con nessuno degli indirizzi previsti ( 0x30, 0x2D, 0x2E, 0x2F ) ed apparentemente non funziona.

A questo punto il dubbio, iniziale, in merito alla presenza del link al firmware da caricare sull’STM32F030F4 possa servire ad eseguire un wemos motor shield firmware update è dipanato ed è certo che in qualche modo sarà necessario caricare il nuovo firmware sulla shield.

Wemos motor shield firmware update

L’update del firmware puoi eseguirlo servendoti di una interfaccia USB to Serial come questa:

wemos motor shield firmware update usb serial

dotato di almeno 4 contatti: Tx,Rx,Vcc e Gnd.

In particolare è necessario che l’adattatore sia funzionante a 3,3v in quanto l’STM32 lavora con tale tensione di alimentazione:

wemos motor shield firmware update 3v3

quello a mia disposizione dispone di un selettore a ponticello che permette di utilizzarlo sia a 5v sia 3,3v.

Ho cercato poi in internet se qualcun’altro avesse eseguito questa operazione ed ho trovato un articolo molto interessante: 18439-motor-shield-reprogramming in cui è descritto passo passo sia la procedura per compilare il firmware, ottenendo un .bin, sia quella di wemos motor shield firmware update.

In modo particolare, e molto utile, scoprirai che esiste un firmware migliorato scritto da pbugalski e di cui è disponibile una versione già compilata wemos_motor.bin

Ho provato ed utilizzato tale firmware e la procedura descritta.

Eseguire l’update del firmware

Per eseguire il wemos motor shield firmware update è in primo luogo necessario collegare il pin RTS ai 3,3v come in figura:

wemos motor shield firmware update connect

io ho utilizzato un filo in rame attorcigliato tra i due fori/contatti.

Poi collegare l’adattatore come descritto:

Wemos Motor Shield Adattatore USB-Serial
3v3 Vcc o Vselelected ( 3,3v )
Gnd Gnd
D2 Tx
D1 Rx

Ti occorre ora il comando per l’upload:

stm32flash

che ho installato sulla mia debian 9 con un semplice 

apt-get install stm32flash

adesso che hai tutti gli strumenti ti basta connettere la board all’adattatore USB-Seriale e quest’ultimo al computer.

Quindi esegui il comando:

stm32flash /dev/ttyUSB0

avendo cura di verificare che la scheda sia correttamente visualizzata come /dev/ttyUSB0, in caso fosse una ttyUSBx ( in cui x è un numero successivo a 0 ) dovrai sostituire nel comando il valore corretto del device.

Se la scheda è stata correttamente visualizzata vedrai una schermata come la seguente

wemos motor shield firmware update show device

in cui il wemos motor shield firmware update ti mostra le informazioni relative all’STM32F03xx4/6.

Puoi procedere prima a sbloccare la motor shield con il comando:

stm32flash /dev/ttyUSB0 -k

il cui risultato è simile al seguente:

wemos motor shield firmware update unlock I

e successivamente a mettere la flash in modalità di scrittura abilitandola con il comando:

stm32flash /dev/ttyUSB0 -u

che ti mostra un messaggio simile al seguente:

wemos motor shield firmware update write umprocted

in cui noti la frase: Write-unprotecting flash.

Procedi quindi ad eseguire l’upload del firmare aggiornato usando il comando:

stm32flash /dev/ttyUSB0 -v -w motor_shield.bin

a cui passi come ultimo parametro il file .bin che ha scaricato o compilato, il risultato è il seguente:

wemos motor shield firmware update command

la wemos motor shield firmware update è conclusa e puoi procedere a togliere tutti i ponticelli ed il collegamento con l’adattatore USB-Seriale.

Test I2C della Wemos Motor Shield

il test lo puoi eseguire collegando la wemos motor shield ad una scheda wemos su cui hai caricato lo sketch di riconoscimento I2C ed otterrai un messaggio simile al seguente:

wemos motor shield firmware update device i2c scanned

sul monitor seriale dell’IDE Arduino.

Finalmente la shield è pronta per essere utilizzata nei tuoi progetti e riconosciuta sull’indirizzo I2C 0x30 come default.

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/wemos-motor-shield-firmware-update.html

2 comments

    • zoomx on 26 Aprile 2019 at 20:18
    • Reply

    Ho preso da poco questo shield anche io, tempo permettendo vedrò se c’è già un firmware o se andra installato come hai fatto tu.
    Dallo schema elettrico vedo che il pin che sulla shield è segnato come RTS in realtà è il boot0, come si legge nello schema elettrico, messo a 3.3V abilita il bootloader seriale che su molti STM32 sta su ROM.

    1. Ottimo Zoomx,
      fammi sapere se la tua versione presenta già un firmware.

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.