MioComm – caricare tracce GPS sul ciclocomputer Mio 105 H/HC

MioComm è un piccolo tool sviluppato in C# per l’importazione di tracce GPS arbitrarie (in formato Google Earth .kml) sul ciclocomputer Mio 105 H/HC. Le tracce importate possono poi essere ripercorse grazie alla modalità navi del Mio.

1348067046-Cyclo105_zoom

Ho deciso di sviluppare questo software per colmare quello che secondo me (e anche per molti altri utenti) è il più grande difetto di questo dispositivo ossia l’impossibilità di importare tracce GPS esterne.

Il software originale a corredo permette infatti solo l’esportazione delle tracce dal Mio al computer, la loro pubblicazione sul network  mioshare.com e la condivisione con gli altri utenti. I progettisti hanno dimenticato (?) o non hanno voluto prendere in considerazione il classico caso d’uso del GPS da bici:  prendere una traccia GPS scaricata da internet, caricarla sul dispositivo e ripercorrerla.

Il tool è frutto di un lungo lavoro di reverse engineering del protocollo seriale di comunicazione, fortunatamente abbastanza semplice e lineare: il classico protocollo half-duplex (botta e risposta) con pacchetto della forma command+size+payload+crc

Screen shot 2014-09-14 at 12.44.47 AM

Il tool permette fondamentalmente 3 operazioni:

  • Importazione di una traccia GPS arbitraria in formato Google Earth .kml
  • Elenco delle tracce memorizzate nel dispositivo
  • Esportazione in formato .kml delle tracce memorizzate

Screen shot 2014-09-14 at 12.15.35 AM

L’utilizzo è abbastanza semplice: basta collegare il Mio al PC tramite cavetto USB e premere “connect”. Il software inizierà il discovery del device su tutte le porte COM presenti (virtuali USB e non) e poi scaricherà e mostrerà l’elenco delle tracce correntemente in memoria. Il tasto “export” permette di esportare un traccia (selezionata dall’elenco), il tasto “import” permette invece di importare una.

Download

Download link: MioComm_ver1.1

Per il corretto funzionamento del tool sono necessari i driver STMicroelectronics della porta seriale virtuale scaricabili qui.

Per il momento il tool supporta solo il formato .kml (e anche .kmz: basti sapere che un file .kmz non è altro che una versione zippata di un kml). In futuro è prevista l’introduzione del formato Garmin .gpx e l’esportazione dei parametri non GPS della traccia (velocità, potenza, cadenza, battiti etc..).

Per chiarimenti, bug dell’ultimo minuto o miglioramenti non esitate a contattarmi!

Protocollo seriale – pacchetto

Una breve descrizione del protocollo seriale di comunicazione, per le persone interessate. Il protocollo è stato parizialmente reversato sniffando il traffico da e verso il Mio 105 H/HC. La comunicazione avviene ovviamente in half-duplex, il master (l’applicativo desktop) interroga il dispositivo, il dispositvo risponde. Se il dispositivo non risponde entro un certo timeout lo si considera assente o spento e la richiesta viene annullata. Ho notato alcune incongruenze nella codifica dei valori numerici, ad esempio il campo LENGTH e le coordinate GPS sono codificate big-endian mentre tutti gli altri valori numerici in little-endian.

A livello link il pacchetto si presenta nella classica forma CMD+LENGTH+PAYLOAD+CRC, più nello specifico:

packet

  • CMD: 1 byte, indica il codice comando del pacchetto.
  • L0 e L1, 2 byte in tutto. Indicano la dimensione del payload, espressa in bytes. Campo big-endian.
  • P0,P1…,PN-1: payload
  • CHECK: 1 byte. Non propriamente un codice ciclico CRC ma un semplice XOR di tutti i byte precedenti, escluso il byte CMD

45
Leave a Reply

avatar
27 Comment threads
18 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
11 Comment authors
federicoroccoRiccardoMirkoAlessandro Di Stefano Recent comment authors
federico
federico

ciao Gianluca,quando provo a importare un file kml sul dispositivo mi dice : unable to import KML file. come mai? grazie in anticipo

rocco
rocco

Ciao Gianluca; posso caricare le tracce .kml anche sul Mio Cyclo 100?
Grazie. Buon lavoro.
Rocco

Riccardo
Riccardo

Gianluca grazie veramente per questo miracolo, non avrei mai pensato che un gps abbia un “neo” così importante… L’unica pecca è che ho molti sentieri sul mio share e riesco a salvarli solo nel formato .gpx, quindi sarebbe veramente bello riuscire ad importare anche quel formato… Cmq per ora il minimo che posso fare è ringraziarti per questo enorme regalo

Mirko
Mirko

Grazie Gianluca …..adesso il Mio 105 e’ quasi perfetto!Il tuo programmino funziona a meraviglia:-)L’unica cosa un po’ scomoda quando uso la modalita’ navigazione sul dispositivo e’ che sembra essere troppo sensibile…..basta un niente che sullo schermo appare “fuori dalla traccia” oppure “nella traccia” e per resettare bisogna spingere per forza il tasto enter…e in bicicletta non e’ il massimo staccare tutte le volte una mano dal manubrio per pigiare il tastino,specialmente in discesa in mtb!Ho gia provato ad attivare o disattivare la funzione waas nella taratura gps per modificarne la sensibilita’,ma niente da fare…..hai qualche suggerimento?Comunque grazie per l’ottimo lavoro;)

Alessandro Di Stefano
Alessandro Di Stefano

altra domanda:ma se lo ricarico sul mioshare convertendolo in gpx è normale che mi venga salvato come percorso con solo il percorso senza velocità cadenza e pulsazioni?A me serviva riportarlo in cronologia..