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.
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
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
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:
- 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
ciao Gianluca,quando provo a importare un file kml sul dispositivo mi dice : unable to import KML file. come mai? grazie in anticipo
Ciao Federico, potresti mandarmi il file kml che non si carica? posso dirti di più se vedo il file
Ciao Gianluca; posso caricare le tracce .kml anche sul Mio Cyclo 100?
Grazie. Buon lavoro.
Rocco
Ciao Rocco,
credo di si. Puoi scaricare tracce e reimportarle come sul Mio Cyclo 105. Non l’ho mai testato su 100, se il programma ti dice “modello errato” o qualcosa del genere fammi sapere perchè in caso posso rilasciare un aggiornamento per accettare anche il 100. Poi eventualmente ti mando il link dove puoi scaricare la versione aggiornata
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
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;)
Ciao Mirko,
quello dipende dal Mio, prova disattivando l’EGNOS dovrebbe abbassare la sensibilità. In ogni caso c’è una impostazione sulla modalità follow che ti permette di settare a che discostamento dalla traccia il Mio deve notificarti, può essere se non ricordo male 1m, 10m o 100m 🙂
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..
si e’ normale, l’upload è stato pensato per seguire una traccia esterna quindi gli altri parametri non vengono caricati