Post

Liberando el c贸digo del Baja Pro

This article is also available in English 馃嚞馃嚙

He decidido liberar el c贸digo y todos los esquemas del proyecto al que m谩s tiempo y trabajo he dedicado en mi vida. En este post te contar茅 cual es mi motivaci贸n para hacerlo.

https://github.com/mattogodoy/open-rally-computer

脥ndice


Un poco de historia

Soy un amante de las motos desde que tengo uso de raz贸n. Lo primero que hice cuando consegu铆 mi primer trabajo (a los 18 a帽os) fue comprarme una moto.

Desde entonces nunca he dejado de disfrutar de las sensaciones y la libertad que s贸lo una moto (y tal vez un avi贸n de caza) te pueden dar.

Fue en el a帽o 2015 cuando me compr茅 mi primera moto con capacidades para meterme por campo. Hasta entonces hab铆a tenido exclusivamente motos de carretera, y no sab铆a de lo que me estaba perdiendo.

Fue durante ese mismo a帽o que me dispuse a buscar compa帽eros de ruta y mentores de lo que para m铆 era algo completamente nuevo. En esa b煤squeda me encontr茅 con el Motoclub Trail Madrid, un foro en el que conoces gente del mundillo y donde he hecho grandes amigos con los que a d铆a de hoy sigo compartiendo salidas.

Fue por culpa de (o gracias a?) estos amigos que me enganch茅 con los rallies de navegaci贸n con roadbook. Una de las primeras cosas que not茅 fue que el coste de los equipos necesarios para participar de este tipo de eventos era demasiado elevado, sobre todo para un piloto principiante como yo.

Prototipo inicial

Uno de mis tantos hobbies es la electr贸nica y siempre me han gustado los desaf铆os con los que pueda aprender cosas nuevas, por lo que me dispuse a fabricar mis propios equipos. Incluso escrib铆 un post al respecto en este mismo blog.

Lo m谩s importante que sali贸 de ese proyecto fue el tripmaster, que desde un primer momento fue de c贸digo abierto para que cualquier persona interesada pudiera fabricarse uno.

Primer prototipo de tripmaster

Esta versi贸n inicial utilizaba un sensor magn茅tico que iba instalado en la pinza de freno de la rueda delantera. Combinado con un im谩n que iba instalado en la rueda, era capaz de detectar cada vez que la rueda hac铆a un giro completo. Multiplicando la cantidad de vueltas por la circunferencia de la rueda obten铆a la distancia recorrida. Si a eso le sumamos el tiempo, tambi茅n era capaz de calcular la velocidad.

Para marcar el rumbo dispon铆a de un magnet贸metro digital.

El primer prototipo funcion贸 muy bien, incluso lo us茅 para correr algunos rallies, pero quer铆a llevar el proyecto un poco m谩s all谩.

Versi贸n 1

Una nueva versi贸n implicaba un redise帽o total del tripmaster, dejando atr谩s todo lo que hab铆a hecho en la versi贸n anterior.

Este cambio, sumado a la gran demanda que recib铆a por parte de amigos y conocidos para fabricar tripmasters me llev贸 a pensar que podr铆a desarrollar un producto decente y comercializarlo, por lo que en ese momento decid铆 no liberar los esquemas ni el c贸digo fuente. A partir de entonces, era un proyecto privado.

La marca

Si quer铆a emprender un nuevo proyecto, ten铆a que pensar en una marca y en un nombre para el modelo del tripmaster.

Inspirado por el famoso rally Baja 1000, decid铆 que el nombre de mi marca ser铆a Baja Rally Computers. Mi gran amigo Jaime de Cabras Sobre Ruedas dise帽贸 un logo para el proyecto que a d铆a de hoy todav铆a me encanta:

Logotipo de Baja Rally Computers

En cuanto al modelo, este ser铆a el Pro , por lo que de ahora en adelante, me referir茅 al tripmaster como Baja Pro.

Pantalla

Las pantallas del prototipo inicial eran del tipo 鈥7 segmentos鈥, como las calculadoras antiguas. Esto tiene varias limitaciones, siendo la primera que s贸lo permiten mostrar n煤meros. Adem谩s el uso del espacio no es muy eficiente.

Una de las cosas que m谩s me cost贸 entender cuando descubr铆 los equipos de navegaci贸n con roadbook es que los tripmasters de las marcas m谩s conocidas (ICO, RNS, etc) s贸lo muestran 1 dato a la vez: 聽distancia velocidad o rumbo. Es decir, no s贸lo son tremendamente caros sino que adem谩s tienes que comprar 2 (generalmente quieres saber distancia y rumbo en todo momento).

Configuraci贸n est谩ndar: Dos tripmasters y un porta-roadbook

Para esta nueva versi贸n quer铆a utilizar alguna pantalla que me permita mostrar m谩s informaci贸n, y de esa manera utilizar s贸lo 1 dispositivo para ver ambos datos.

Esto me llev贸 a una espiral de locura interminable en la que pas茅 much铆simas horas comparando diferentes tipos de pantallas y prob谩ndolas todas para ver cu谩l era la que m谩s se adecuaba a mis necesidades. Debo haber probado al menos 8 tipos de pantallas diferentes (LCD, OLED, tinta electr贸nica, etc.).

Mi requisito principal es que la informaci贸n sea altamente visible en condiciones de sol directo sobre la pantalla (que es lo normal durante un rally). Esto result贸 ser bastante complicado, porque las pantallas que m谩s prestaciones me daban y m谩s f谩ciles eran de implementar, pr谩cticamente no se ve铆an al sol directo.

Comparaci贸n de una pantalla OLED (a la izquierda) con una de tinta electr贸nica (a la derecha) bajo la luz directa del sol

Mi opci贸n preferida era la pantalla de tinta electr贸nica. Su mayor cualidad es que mientras m谩s sol haya, mejor se ve. Como si fuese tinta impresa en un papel.

Probando una pantalla de tinta electr贸nica

Pero estas pantallas tienen una gran desventaja: No tienen una velocidad de refresco muy alta. Cada vez que quieres cambiar algo de lo que est谩s mostrando, hay que hacer un proceso de 鈥渂orrado鈥 primero y luego mostrarlo. Cualquiera que tenga un lector de libros electr贸nico sabe de lo que estoy hablando. Si quisi茅ramos saltarnos el paso del borrado y simplemente mostramos la informaci贸n (por ejemplo, un n煤mero cambiando), sucede lo que se conoce como 鈥済hosting鈥 y es lo que se puede apreciar en la imagen anterior.
Otra desventaja es que las pantallas de tinta electr贸nica cuestan unas 10 veces m谩s caras que el resto de opciones.

Al final, luego de mucho investigar, probar y debatir conmigo mismo, termin茅 decidi茅ndome por una pantalla de LCD de 128 por 64 pixeles.
Esta pantalla combina las ventajas de las de 7 segmentos, que se ven perfectamente al sol, con las del resto que permiten dibujar cosas m谩s complejas. Adem谩s, tienen como ventaja a帽adida una luz de fondo que permite ver la pantalla en plena oscuridad.

Pantalla LCD 128x64

Como se ve en la foto, en este punto ya estaba mostrando varios datos a la vez en la misma pantalla.

Microcontrolador

El cerebro del prototipo del tripmaster era un Arduino Nano; un microcontrolador muy simple y muy econ贸mico que cumpl铆a con su funci贸n a la perfecci贸n.

Para esta nueva versi贸n, al tener unos requisitos m谩s exigentes como la nueva pantalla o el m贸dulo GPS, necesitaba algo m谩s potente.

Me decant茅 por el ESP32, un microcontrolador de la empresa Esperessif que no s贸lo es mucho m谩s potente que el Arduino Nano, sino que adem谩s dispone de capacidades para WiFi y Bluetooth.

GPS

Por otra parte, el uso de un sensor magn茅tico para calcular los datos, si bien es bastante preciso, tiene algunas desventajas. Sobre todo cuando va montado en una moto de campo que est谩 constantemente expuesta a los elementos y al maltrato.

Fue por ello que decid铆 implementar un m贸dulo GPS en su lugar. De esta forma podr铆a calcular los mismos datos (y algunos m谩s) de manera m谩s precisa y completamente integrada dentro de la misma caja, sin necesidad de un sensor externo.

Este cambio implic贸 bastantes horas invertidas en aprender c贸mo funciona el sistema de GPS (he hecho un episodio completo de mi podcast dedicado a este tema) y c贸mo comunicarme con el m贸dulo receptor.

Implementando el m贸dulo GPS

La gran desventaja del GPS es que al pasar por t煤neles o zonas muy cerradas, se pierde la se帽al y dejamos de obtener datos de distancia. Mi soluci贸n a este problema fue guardar el 煤ltimo punto donde perd铆 la se帽al (punto A), y al recuperar la se帽al luego de salir del t煤nel (punto B), calcular la distancia en l铆nea recta entre el punto A y el B. No es un valor muy exacto, pero rara vez los t煤neles tienen curvas dentro, por lo que sigue manteniendo una precisi贸n m谩s que aceptable en esa situaci贸n.

Prototipo

Llegado este punto, ya ten铆a en mis manos el primer prototipo funcional de Baja Pro v1. Todav铆a no hab铆a dise帽ado un circuito impreso para el proyecto (ni sab铆a tampoco c贸mo hacerlo), pero ten铆a todo soldado en una placa de prototipado, tambi茅n conocida como 鈥減erfboard鈥.

Prototipo del primer Baja Pro

Prototipo del primer Baja Pro

Pruebas

Para comprobar que el Baja Pro se comportar铆a seg煤n lo esperado en una situaci贸n real, lo instal茅 de manera precaria en mi moto y lo llev茅 todos los d铆as al trabajo durante una semana.

En esos trayectos iba verificando que los valores de distancia, tiempo y velocidad se correspond铆an con los valores que indicaba mi Garmin GPSMAP64.

Primeras pruebas del prototipo

Para mi sorpresa, los resultados eran pr谩cticamente id茅nticos. No pod铆a estar m谩s contento.

Circuito impreso

Una vez afinado el prototipo, y sabiendo que funcionaba correctamente, era hora de dise帽ar una placa de circuito impreso (PCB) para instalar los componentes de una manera m谩s profesional.

Hasta entonces yo nunca hab铆a dise帽ado una PCB, ni ten铆a idea de c贸mo era el proceso. Aprender esto me llev贸 bastantes horas, pero luego de un tiempo logr茅 hacer los primeros diagramas y los mand茅 a fabricar a China.

El resultado fueron las primeras PCBs que hab铆a dise帽ado en mi vida:

Placas de circuito impreso de la versi贸n 1 del Baja Pro

Como era de esperar, tuve un par de errores en el dise帽o de esta versi贸n, siendo el m谩s grave que me equivoqu茅 al trazar los circuitos del conector de la pantalla y los puse todos al rev茅s, en espejo 馃う馃徎

Como extra, a帽ad铆 puertos para conectar un termistor, porque siempre me ha gustado saber la temperatura exterior.

Caja

Para esta primera versi贸n dise帽茅 una caja que imprim铆 en 3D con un filamento reforzado (ASA) y pint茅 con una especie de epoxy especial para piezas impresas en 3D para hacerlo impermeable. El acabado no era especialmente bonito, pero cumpl铆a con su funci贸n.

Parte trasera de la caja impresa en 3D

En esta foto se aprecian tambi茅n los primeros conectores que utilic茅. Si bien eran perfectamente v谩lidos e impermeables, no daban mucho aspecto de calidad.

Mando

En el prototipo inicial hab铆a dise帽ado una botonera impresa en 3D, pero luego de mucho buscar por internet di con un dise帽o muy compacto y simple que serv铆a perfectamente para lo que yo necesitaba: 3 botones (dos delante y uno detr谩s).

De todas maneras, los botones que tra铆a este mando (los que se ven en la foto) no eran los indicados. Los reemplac茅 todos por otros de mayor calidad porque ten铆an que ser impermeables al agua y el polvo.

Resultado final

Combinando todos estos cambios con la nueva PCB obtuve lo que ser铆a un Baja Pro v1 terminado.

Algunos amigos me pidieron que les fabrique una unidad, por lo que hice unas 4 o 5 y se las vend铆 a precio de coste.

A d铆a de hoy, un par de ellos las tienen funcionando luego de muchos a帽os y rallies a cuestas. Eso si, han tenido que repararlos m谩s de una vez :)

Versi贸n 2

El uso de la versi贸n 1 en un entorno real me ense帽贸 muchas cosas, siendo la principal que las condiciones a las que son sometidos los aparatos electr贸nicos que van en una moto de rally son mucho m谩s extremas de lo que yo habr铆a imaginado.

Vibraciones, golpes, agua, tierra, piedras, calor y fr铆o son algunas de las cosas que tiene que soportar el Baja Pro para estar a la altura.

Nueva caja

Por los motivos descritos anteriormente, me di cuenta de que lo primero que tendr铆a que hacer ser铆a reemplazar la caja por una mucho m谩s resistente.

No puedo describir con palabras la cantidad de tiempo, investigaci贸n, emails y dolores de cabeza que me supuso encontrar una caja que se adapte a mis necesidades. Este es un problema que describo en detalle en otro episodio de mi podcast, por si alguien est谩 interesado.

Finalmente no pude encontrar una caja que se adapte a mis necesidades (ni pod铆a permitirme mandar a fabricar una de pl谩stico inyectado a medida), por lo que termin茅 dise帽ando la m铆a propia, que constaba de varias capas de metacrilato cortado con l谩ser, que apiladas formaban el volumen del Baja Pro.

Adem谩s utilic茅 un metacrilato transparente rugoso como protector de la pantalla. Esta rugosidad permit铆a que se vean los n煤meros perfectamente, pero adem谩s eliminaba gran parte del reflejo producido por el sol.

Nueva PCB

Para esta segunda versi贸n dise帽茅 una nueva PCB con algunos cambios:

  • Nueva distribuci贸n de los componentes
  • Espacio dedicado para la antena del GPS
  • Espacio dedicado para el termistor
  • Protecci贸n contra polaridad invertida
  • Correcci贸n del error de la posici贸n de los pines de la pantalla

Placa de circuito impreso de la versi贸n 2 del Baja Pro

Nueva interfaz de usuario

Sin dudas el cambio m谩s significativo de esta versi贸n fue la interfaz de usuario.

Dediqu茅 much铆simo tiempo a dise帽ar una interfaz m谩s agradable y usable en la que los datos se ve铆an de manera mucho mas clara y el acceso a la informaci贸n era mucho m谩s r谩pido.

Resultado final

Nuevamente, algunos amigos me pidieron que fabrique unidades para ellos (por supuesto, a precio de coste) por lo que hice 7 unidades. Una de ellas ten铆a la pantalla azul porque era para una moto Yamaha.

Segunda versi贸n de la PCB ya montada

Versi贸n terminada del Baja Pro v2

De esta versi贸n s贸lo hubo una tirada de 7 unidades.

Una explicaci贸n de las funcionalidades

Versi贸n 3

Luego de muchas pruebas con la versi贸n 2 del Baja Pro llegamos a la conclusi贸n de que, si bien el tripmaster funcionaba como era esperado, la caja era demasiado grande y pesada para montarla en la moto. Ten铆a que encontrar una soluci贸n al bendito problema de las cajas, cuya b煤squeda nunca hab铆a cesado desde los comienzos del proyecto.

Luego de comprar muchas cajas para proyectos electr贸nicos y ver que no eran lo que yo buscaba, di con la soluci贸n: la Retex Serie 32.

Esta caja no s贸lo era lo suficientemente robusta como para aguantar golpes y vibraciones, sino que adem谩s trae una junta de goma que la hace resistente al agua.

En cuanto al tama帽o, es bastante peque帽a, pero el hecho de que lo sea me empuj贸 a llevar la electr贸nica de mi proyecto un paso m谩s all谩; tuve que buscar una pantalla m谩s peque帽a que entre dentro de la caja, cambiar la antena del m贸dulo GPS por una m谩s peque帽a y cambiar varios componentes convencionales por sus equivalentes de montaje superficial para ahorrar espacio. Todo esto, acompa帽ado de una nueva versi贸n del circuito impreso que se adapte al interior de la caja.

Nueva pantalla

Para lograr que toda la electr贸nica entre dentro de la nueva caja, tuve que buscar una alternativa a la pantalla que estaba utilizando, que era bastante grande.

Luego de mucho buscar, di con el modelo ERC12864, una pantalla que se adaptaba perfectamente a mis necesidades: muy plana, 128x64 pixeles y retroiluminaci贸n integrada.

Nueva pantalla ERC12864

Hacerla funcionar me llev贸 un tiempo, pero siguiendo las instrucciones indicadas en la hoja de datos del fabricante funcion贸 a la perfecci贸n.

Esta pantalla, al ser tan peque帽a, no incluye algunos componentes electr贸nicos que la otra ya tra铆a de serie, por lo que tuve que hacer espacio para varios condensadores y resistencias en la nueva placa.

Nueva PCB

Tantos cambios en los componentes requer铆a de una nueva placa de circuito impreso. Adem谩s ten铆a que adaptarla para que entre dentro de la nueva caja.

Para comprobar que meter tantos componentes en un espacio tan reducido era posible, hice primero un prototipo en perfboard de lo que ser铆a la nueva placa.

Muy feo, lo s茅 :)

Prototipo de PCB v3

Una vez confirmado que el tama帽o era el correcto, proced铆 a dise帽ar la placa y fabricarla.

Tercera versi贸n del circuito impreso del Baja Pro

Esta versi贸n estaba espec铆ficamente dise帽ada para entrar dentro de la nueva caja y ser atornillada en los soportes que ven铆an incluidos dentro de la propia caja.

La nueva placa dentro de su caja

El lateral de la caja con un baja montado. Aqu铆 se aprecia hasta qu茅 punto he tenido que miniaturizar los componentes

Nueva antena GPS

Dado que el espacio de la nueva caja era mucho m谩s reducido, la antena de GPS que estaba utilizando hasta entonces ya no era una opci贸n. Encontr茅 una alternativa mucho m谩s peque帽a y que funcionaba pr谩cticamente igual de bien. La ventaja es que con la nueva ubicaci贸n, esta antena apuntaba hacia el cielo como es recomendado.

La nueva antena GPS (arriba a la izquierda)

Resultado final

Con esto ya ten铆a una versi贸n muy robusta y del tama帽o que estaba buscando. Todo entraba correctamente en la caja y funcionaba como deb铆a.

El primer Baja Pro v3

Versi贸n 4

Una vez tuve la versi贸n 3 funcionando y bien probada, decid铆 hacer la que ser铆a la versi贸n definitiva. La que saldr铆a a la venta.

Esta tendr铆a que ser la versi贸n m谩s 鈥減rofesional鈥 de todas y tener unos acabados de mayor calidad, tanto por dentro como por fuera.

Nuevo m贸dulo GPS

Para esta versi贸n decid铆 cambiar el m贸dulo GPS por uno que no solo soportaba la red convencional de sat茅lites de GPS, sino que adem谩s soportaba Glonass (sistema ruso), Galileo (sistema europeo) y Beidou (sistema chino), con lo que la velocidad para obtener un fix de GPS era mucho mejor, y el margen de error bastante menor.

Todo esto en un componente que no adem谩s de traer la antena integrada, ten铆a un tama帽o mucho menor.

A la izquierda el nuevo m贸dulo. A la derecha el anterior.

A la izquierda el nuevo m贸dulo. A la derecha el anterior.

Nueva PCB

Como el nuevo m贸dulo tra铆a la antena integrada, tuve que redise帽ar el circuito impreso para hacerle lugar. Lo que se me ocurri贸 fue hacer un hueco en la placa donde ubicar el m贸dulo. Era la 煤nica manera de poder instalarlo dentro del espacio tan reducido de la caja.

Nueva PCB para la versi贸n 4, con su hueco para el m贸dulo GPS.

Cambio de tipo de microcontrolador

Hasta ahora ven铆a usando lo que se conoce como un 鈥渒it de desarrollo鈥 (o devkit) del ESP32 (el microcontrolador). Este kit esta pensado para simplificar la vida a la gente que hace proyectos como el m铆o. B谩sicamente es un ESP32 con varios componentes extra que permiten programarlo por USB, acceder a algunos de sus pines, resetearlo, etc.

Como el cambio de m贸dulo GPS me oblig贸 a redise帽ar la placa, aprovech茅 para hacer lo que quer铆a desde hace mucho tiempo: Implementar el ESP32 directamente, sin devkit. La ventaja de hacerlo as铆 es que el espacio que ocupa es mucho menor.

A la izquierda el devkit que ven铆a usando hasta ahora. A la derecha el m贸dulo que empec茅 a utilizar en la versi贸n 4.

Si bien esto a帽ade un poco de complejidad, da un acabado m谩s limpio y compacto y ahorra mucho espacio.

Memoria

El tema de la memoria fue otro de esos grandes desaf铆os que me llev贸 a aprender much铆simo sobre un tema del que no ten铆a intenciones de instruirme.

El Baja Pro ten铆a que almacenar informaci贸n de alguna manera. Los datos de distancia total, distancia parcial, velocidad promedio, velocidad m谩xima, configuraci贸n etc. no se pod铆an perder cada vez que el piloto apaga la moto.

Hasta entonces, estos valores se almacenaban en una memoria interna del ESP32 que se llama EEPROM. El problema es que esta memoria 鈥渟e gasta鈥. Tiene una cantidad limitada de ciclos de escritura (100.000 ciclos aproximadamente), luego de las cuales empieza a dar fallos.

Inicialmente para solucionar este problema, en vez de guardar los datos de manera peri贸dica, lo que hac铆a era guardarlos cuando detectaba que la moto se hab铆a detenido (en base a los datos de velocidad del GPS). Esto ahorraba much铆simos ciclos de escritura en memoria, pero ten铆a un problema muy grande: Muchos pilotos est谩n acostumbrados a apagar sus motos cuando todav铆a est谩n en marcha y llegar al destino con el envi贸n. Al apagar la moto se apagaba tambi茅n el Baja Pro, y 茅ste no hab铆a detectado que la moto se hab铆a detenido porque la velocidad no hab铆a llegado a 0 km/h. Lo que suced铆a entonces era que se perd铆an todos los datos que se hab铆an acumulado hasta entonces. Esto en un rally de navegaci贸n en el que dependes de esos datos, es inaceptable.

Pas茅 mucho tiempo pensando en una soluci贸n e investigando alternativas para ver c贸mo almacenar datos de manera fiable.

Finalmente llegu茅 a una alternativa que es la utilizada por la industria automotriz para solucionar problemas de este tipo. Es una memoria bastante moderna fabricada por Texas Instruments que se llama FRAM (un acr贸nimo para Ferroelectric Random Access Memory).

Un m贸dulo de FRAM

La memoria FRAM garantiza 100 trillones de ciclos de escritura, y mantener los datos almacenados por un periodo de 100 a帽os. Incre铆ble.

Evidentemente esta memoria es mucho m谩s cara que una EEPROM convencional, pero es justo lo que necesitaba. A partir de ese momento ya podia almacenar los datos de manera peri贸dica sin miedo a desgastar la memoria. Problema solucionado.

Actualizaciones OTA

Otra cosa que ten铆a en mente desde hace tiempo era la posibilidad de actualizar la versi贸n del firmware del Baja Pro de manera inal谩mbrica.

Como ya coment茅 anteriormente, el ESP32 tiene la capacidad de conectarse por WiFi. Esto es una gran ventaja, porque nos permitir铆a comunicarnos con un servidor para ver si hay actualizaciones, y en caso de haberlas, descargarlas.

Como el Baja Pro s贸lo se controla con 3 botones, poner la contrase帽a de una red WiFi no ser铆a tarea f谩cil. En primer lugar tendr铆a que programar una interfaz gr谩fica de un teclado s贸lo para esta funcionalidad. Luego tendr铆a que implementar una especie de 鈥渨izard鈥 que te gu铆e a trav茅s de los pasos de la conexi贸n a internet. Muy complicado e inc贸modo para el usuario.

Despu茅s de mucho pensarlo se me ocurri贸 que pod铆a hacerlo al rev茅s. El Baja Pro intentar铆a conectarse siempre a una red WiFi con un nombre y una contrase帽a predefinidos. Entonces para actualizarlo, lo 煤nico que habr铆a que hacer es crear dicha red con dicha contrase帽a con tu tel茅fono m贸vil, y el Baja Pro se conectar铆a a ella y bajar铆a la actualizaci贸n autom谩ticamente. Simple.

Nuevos conectores

Continuando con la b煤squeda de un acabado m谩s profesional, lo siguiente que decid铆 mejorar fueron los conectores de la electricidad y el mando.

Tras mucho investigar, me decid铆 por que se conocen como 鈥渃onectores M8鈥.

Conectores de tipo M8 de 4 y 3 pines respectivamente

Estos conectores no solo eran de mucha mayor calidad respecto a los anteriores, sino que adem谩s son un est谩ndar en el mundo de los tripmasters. Esto me permiti贸 hacer que el Baja Pro sea compatible con alguna instalaci贸n ya existente en una moto. La idea era que cualquier piloto pudiese reemplazar un ICO por un Baja Pro y viceversa sin tener que cambiar todo el cableado de la moto.

Nuevo mando

Ya puestos a cambiar cosas, decid铆 tambi茅n mejorar la calidad del mando del Baja Pro.

Anteriormente utilizaba una versi贸n de pl谩stico. A partir de ahora pasar铆a a ser de metal y tendr铆a el nuevo conector.

Nueva versi贸n del mando hecho de metal y con el nuevo conector

Mejoras en la caja

Como he mencionado anteriormente, la caja necesitaba una 鈥渧entana鈥 para que la pantalla del Baja Pro quede visible. Hasta ahora hab铆a estado cortando esta ventana a mano con unos resultados desastrosos. Tenia que hacer algo.

Un template del tama帽o de la ventana de la caja

Se podr铆a decir que utilic茅 el tema de las cajas como una excusa para algo que quer铆a hacer desde hac铆a ya mucho tiempo: comprar una fresadora CNC.

Mi nueva fresadora CNC

Si bien es una m谩quina muy peque帽a, esto me permitir铆a cortar las ventanas en las cajas con una precisi贸n muy superior a la que ven铆a teniendo hasta ahora.

Para ello, fabriqu茅 con la propia fresadora un soporte que mantendr铆a a la caja bien sujeta siempre en el mismo lugar, lo que me permitir铆a automatizar el proceso de corte.

Cortando la ventana en una caja

Adem谩s de las cajas, la fresadora me permitir铆a cortar el protector de pantalla de metacrilato a un tama帽o que encajar铆a perfectamente.

Caja y protector de pantalla cortados con la fresadora CNC

Cuando gan茅 un poco m谩s de experiencia con la m谩quina, me anim茅 a grabar el logo de Baja en el propio protector de la pantalla:

Logo grabado con la fresadora CNC

Montando la caja completa

Resultado final

Un Baja Pro v4 terminado

Esto ya estaba empezando a parecer un producto que se pod铆a vender.

La web

Hoy en d铆a es dif铆cil promocionar cualquier producto sin tener una web.

En este caso cre茅 una web bastante simple, pero que mostraba las funcionalidades principales del Baja Pro.

La web sigue funcional a d铆a de hoy:

https://baja.matto.io

En la misma web se pod铆a descargar el manual de instrucciones, apuntarse en la lista de correos para recibir novedades, hab铆a algunas reviews y una zona de preguntas frecuentes.

Las primeras (y 煤nicas) unidades

Con todas estas mejoras ya estaba listo para fabricar la primera tanda de Baja Pros y ponerlos a la venta.

Por una cuesti贸n de tiempo y presupuesto, decid铆 fabricar 25 unidades. Para ello tuve que comprar todos los componentes, flashear el firmware en los microcontroladores, soldar todos los componentes electr贸nicos, cortar las ventanas en las cajas, cortar y grabar los protectores de pantalla, cortar los cables a medida, montar los mandos con sus botones, y un largo etc茅tera.

El pedido con las cajas

El pedido de los m贸dulos GPS

Soldando componentes electr贸nicos de montaje superficial

Cajas con sus ventanas ya cortadas

Cajas con la cinta de doble cara para pegar el protector de pantalla

Mandos con sus botones resistentes al agua instalados

Placas con casi todos los componentes electr贸nicos soldados

Pantallas soldadas

Probando una pantalla reci茅n soldada

Control de calidad: Probando unidad por unidad para confirmar que funcionan correctamente

El momento de la venta

Hab铆a llegado el momento. Ya ten铆a 25 unidades completamente probadas y funcionales.

Envi茅 un correo electr贸nico a las personas que se hab铆an apuntado a la lista de distribuci贸n de la p谩gina del Baja Pro para avisar que ten铆a 22 unidades a la venta (me guarde 3 como backup por si alguno fallaba y tenia que reemplazarlo).

Nunca imagin茅 el resultado: Se vendieron todas las unidades en menos de 9 horas de haber enviado el correo.

Para el env铆o mande a imprimir unas cajas personalizadas con el logo de Baja Rally Computers:

Caja del Baja Pro

Los pedidos listos para ser enviados por correo

Afortunadamente, a d铆a de hoy (2 a帽os despu茅s de la venta) ninguna de las unidades ha fallado, por lo que no he tenido que reemplazar ni una.

La experiencia

Cualquiera dir铆a que luego de un 茅xito de ventas como ese me pondr铆a inmediatamente a fabricar m谩s unidades para poder seguir vendi茅ndolas y transformar esto en un gran negocio. Mejor dicho, cualquiera que no haya tenido que pasar por el proceso de fabricaci贸n por el que he pasado yo dir铆a esto.

La verdad es que la experiencia de fabricarlos fue mucho m谩s compleja y agotadora de lo que esperaba. Esto me desanimo bastante. Tanto que decid铆 no fabricar m谩s unidades.

Los motivos son varios.

Componentes

Conseguir una fuente fiable y estable de componentes electr贸nicos es muy complicado. Los proveedores un d铆a tienen stock, y al d铆a siguiente ya no lo tienen. Para colmo los precios son muy vol谩tiles y cambian constantemente.

La mayor铆a de componentes no se fabrican en Europa, por lo que ten铆a que importarlos, con el consiguiente gasto de aduanas que eso implica, lo que hac铆a que los precios se disparen.

No existe un proveedor que venda todos los componentes que necesitas para hacer un Baja Pro, por lo que hay que buscar m煤ltiples proveedores, hacer m煤ltiples pedidos, seguir m煤ltiples paquetes alrededor del mundo que llegar谩n todos a diferentes tiempos, y que hasta que no tengas todos no puedes continuar.

Otros componentes como las cajas, torniller铆a, etc. s铆 que se pueden conseguir en Europa, pero curiosamente el proveedor de las cajas (Retex) fue el que mas problemas me dio. Por lo visto, al ser la m铆a una orden tan peque帽a no ten铆a prioridad y tuve que estar persigui茅ndoles para que me las env铆en incluso luego de haberlas pagado.

Tiempo y complejidad

Fabricar una unidad de principio a fin implica much铆simos pasos:

  • Cortar las ventanas en las cajas
  • Cortar y grabar los protectores de pantalla
  • Cortar el pegamento del protector de pantalla a medida
  • Flashear el firmware en el microcontrolador
  • Soldar todos los componentes electr贸nicos
  • Cortar y soldar los cables
  • Instalar los tornillos de soporte en la caja
  • Instalar y soldar los botones en el mando
  • Cortar y soldar los cables del mando
  • Probar que todo funcione correctamente

por mencionar los principales.

Todo este proceso lleva MUCHO tiempo. Tiempo que s贸lo pod铆a dedicar por las tardes al salir de mi trabajo de lunes a viernes.

En un momento dado empec茅 a estar bastante cansado. Empec茅 con este proyecto porque es algo que me gusta mucho, y no quer铆a empezar a odiarlo. Era justamente lo que me estaba empezando a pasar.

Por otra parte, si yo dedicase la misma cantidad de tiempo a otras cosas (desarrollar software, por poner un ejemplo) ganar铆a mucho m谩s dinero que fabricando Baja Pros. Es decir que como negocio tampoco me cuadraba.

Fiscalidad

Lamentablemente Espa帽a es un lugar horrible para emprender.

Para poder facturar hay que hacerse aut贸nomo, lo cual implica pagar m谩s de 200鈧 mensuales (como m铆nimo), incluso si durante ese mes no has facturado nada.

Ni hablar de registrar una empresa, que tambi茅n tiene un costo absurdamente elevado.

Es como si no quisieran dar lugar a los peque帽os emprendedores.

Siendo este un proyecto con el que no tuve mucha ganancia, no me daban las cuentas para pagar todos los impuestos que Hacienda me demandaba.

Precio

Mi idea inicial era lograr un tripmaster que sea asequible para pilotos n贸veles que quisieran iniciarse en el mundo de la navegaci贸n con roadbook.

Lamentablemente subestim茅 los costes de los materiales, los impuestos y el tiempo que dedicar铆a al proyecto.

Si bien el precio al que vend铆 esas unidades era bastante m谩s bajo de lo que cuesta un ICO (sobre todo teniendo en cuenta la cantidad de funcionalidad extra que a帽ade el Baja Pro), segu铆a siendo m谩s alto de lo que me hubiese gustado.

No hab铆a logrado mi objetivo principal.

Aprendizaje

La verdad es que durante todo este proceso he aprendido innumerables cosas nuevas y es lo que me llevo del proyecto.

Esto fue para m铆 una excusa para estudiar e implementar cosas que quer铆a aprender desde hac铆a mucho tiempo, y qu茅 mejor manera que concentrarlo todo en un s贸lo proyecto que adem谩s se fusiona con otro de mis hobbies: las motos.

Siempre me ha gustado resolver problemas, aprender cosas nuevas y enfrentarme a nuevos desaf铆os. El Baja Pro me ha dado todo eso y mucho m谩s.

Ir a un rally y ver a pilotos que llevan un Baja Pro instalado en sus motos y que est谩n contentos con el producto es una sensaci贸n bastante genial y dif铆cil de explicar.

Liberando el c贸digo

Luego de darle muchas vueltas he decidido transformar este proyecto en uno de c贸digo abierto.

Siempre he sido un gran defensor del open source, y me sent铆a un poco hip贸crita manteniendo el c贸digo del Baja Pro cerrado. El BajaPro lleva ya un par de a帽os estancado y no me gustar铆a que caiga en el olvido.

Por otra parte me da much铆sima curiosidad saber qu茅 aportes y mejoras har谩 la comunidad a este proyecto, que espero que siga creciendo durante muchos a帽os m谩s.

Creo honestamente que esto es algo que podr铆a beneficiar a esos pilotos que se est谩n iniciando, o incluso a pilotos profesionales que echen de menos algunas funcionalidades en los actuales y retr贸grados tripmasters que tan caros cuestan.

Presentando a Open Rally Computer

Mi empresa 鈥淏aja Rally Computers鈥 seguir谩 existiendo por si se me ocurre alguna otra locura.

Es por esto que he decidido cambiar el nombre al proyecto. A partir de ahora se llamar谩 _ Open Rally Computer _. Es un nombre m谩s acorde con lo que ser谩 en adelante un tripmaster de c贸digo abierto que cualquier persona podr谩 fabricar.

No s贸lo he liberado el c贸digo fuente. Tambi茅n he liberado el listado de materiales, diagramas de conexi贸n, el dise帽o del circuito impreso y el manual de instrucciones.

Todo esto se puede encontrar en el repositorio de GitHub que ser谩 a partir de ahora el hogar de Open Rally Computer:

https://github.com/mattogodoy/open-rally-computer

Con un poco de suerte esta iniciativa ganar谩 algo de tracci贸n y podremos formar una comunidad de desarrolladores que aporten nuevas ideas y funcionalidades.

Licencia

Algo muy importante a la hora de crear un proyecto open source es elegir la licencia correcta.

En este caso yo he elegido GPL v3.

鈿狅笍 Esto significa que el c贸digo de Open Rally Computer se puede copiar, modificar, distribuir, e incluso comercializar, pero con una condici贸n muy importante: cualquier proyecto que utilice este c贸digo (total o parcialmente) deber谩 liberar tambi茅n la totalidad de su c贸digo. De lo contrario quedar铆an expuestos a acciones legales.

Eso es lo que m谩s me gusta de esta licencia. Es como un virus. Un virus bueno que contagia a otros proyectos haciendo que pasen a ser de c贸digo abierto.

Conclusi贸n

El desarrollo del Baja Pro ha sido un largo y tortuoso camino, pero me ha dejado innumerables ense帽anzas y una experiencia que espero aplicar a futuras aventuras.

Estoy impaciente por ver el futuro de este proyecto y espero que la comunidad open source me ayude a lograr lo que yo s贸lo no pude; un tripmaster de c贸digo abierto que sea asequible, pero a la vez tan bueno y fiable que pase a ser la elecci贸n por defecto de pilotos profesionales del Dakar. So帽ar es gratis.

This post is licensed under CC BY 4.0 by the author.