Vamos al lío.
Para cambiar el firmware de serie del controlador del motor con el nuevo necesitamos acceder a su chip, para ello usaremos la entrada del
sensor de velocidad al motor.
Aquí hay dos motores distintos, los que tienen
acelerador (Throttle) y los que no, los primeros llevan un cable con un conector
de 8 pines y los segundos de 6 pines.
De estos 8/6 pines nosotros necesitaremos solo 4.
El conector que sale del motor es una entrada hembra
pero no lleva un conector estándar, lleva un conector Higo mini tipo A que no se
vende en Europa, por lo que para poder conectarnos podemos optar por estas
opciones:
- Cortar
el conector Higo y cambiarlo por un conector estanco estándar de 8/6 pines
(habría que cambiar también el conector Higo del sensor de velocidad)
- Conseguir
un conector HIGO en el mundo (cosa que parece imposible)
- Comprar
un nuevo sensor de velocidad y cortar el conector
- Comprar
un alargador de cable o un adaptador de 8 a 6+2
- Usar
punteras de cable de 0,5mm y conectarlas 1 a 1.
De todas las opciones la más económica es el
adaptador que adapta el conector Higo de 8 pines a 6 pines y a 2 pines.
NOTA: El cable adaptador para poder ponerle luces no
sirve, solo trae 2 cables.
El color de los cables que necesitamos y su orden
para conectarlos a los pines del programador es el siguiente:
- cable
morado - pin RST
- cable
naranja - pin GND
- cable
negro - pin SWIM
- cable
marrón- pin S VCC / 5V
Una vez conseguido el cable y adaptado a nuestras
necesidades, necesitamos el interface que nos permita comunicarnos con el
controlador, el chipset es el STM8 y para programarlos existe en el mercado el
programador STLinkV2, este
programador permite a través de la conexión USB de un PC con Windows/Linux comunicarse
con el controlador y acceder al firmware para cambiarlo o editarlo. Hay en el mercado clones de este programador
a precios ridículos.
Es importante que a la hora de hacernos el conector
casero no pongamos cables de más de 10cm, si necesitamos mas longitud se
aconseja usar un alargador de USB.
Ahora tenemos que descárganos el firmware que
seleccionemos:
- Firmware
de marcoq
para pantallas de serie (VLCD5, VLCD6 y XH18)
- Firmware
de casainho
para pantalla KT-LCD 3 (en este caso hay que instalar también el firmware
en la pantalla y adaptar el cable al conector del motor) ver
tutorial aqui
Tanto el firmware de marcoq com el de casainho es propiedad de ellos y lo han cedido para su uso sin fines comerciales para todos los usuarios particulares del motor TSDZ2, desde aqui mi mas sincero agradeciemiento a ambos.
Yo solo explicare el firmware de marcoq puesto que es el que he probado.
Yo solo explicare el firmware de marcoq puesto que es el que he probado.
El firmware de marcoq viene con un configurador en
java, por lo que tendremos que tener instalado en nuestro sistema lo siguiente:
- Una version
de Java funcional
- Compilador
de C para pequeños dispositivos, SDCC
- Windows
64 bits, para 32 bits debemos reemplazar un archivo en el zip de marcoq,
concretamente el archivo sh.exe ubicado en la ruta .. \ tools \
cygwin \ bin \ por el archivo zsh.exe de estas utilidades,
se reemplaza con el mismo nombre sh.exe.
- Software
STVP de las herramientas ST Tool
Todos los instamos en la raíz de nuestra unidad
principal C:\, sin carpetas por el medio.
Empezamos con la programación.
Se quita la conexión de la batería al motor y nos aseguramos que se descargan los condensadores encendiendo la pantalla, toda la programación se hace sin alimentación de la batería, el STLinkV2 suministrara al chip la energía necesaria.
La primera vez es bueno que realizacemos una copia de seguridad del firmware del sistema, para ello abrimos el STVP y conectamos el PC al controlador del motor con el programador STLinkV2 y nuestro cable.
Se quita la conexión de la batería al motor y nos aseguramos que se descargan los condensadores encendiendo la pantalla, toda la programación se hace sin alimentación de la batería, el STLinkV2 suministrara al chip la energía necesaria.
La primera vez es bueno que realizacemos una copia de seguridad del firmware del sistema, para ello abrimos el STVP y conectamos el PC al controlador del motor con el programador STLinkV2 y nuestro cable.
Una vez abierto el STVP de las herramientas ST Tool
vamos a configurar el interface, elegimos en configuración la opción ST-LINK y ahí
la opción SWIN y dentro de todos los controladores el que pone STM8S105x6 (daría
igual el x4 pero este da menos fallos)
Una vez configurado vemos tres pestañas:
- Program memory: es el firmware en bruto, el core del
motor, en teoría el mismo para cada motor
- Data memory: son las distintas opciones
configurables para cada motor
- Option byte: es la parte del firmware que tiene los
protocolos de comunicación
En esta
pestaña vamos a seleccionar una a una y a pinchar el icono que aparece un
chipset en verde,se selecciona y se le da a file-save, asi en cada pestaña, al
final tenemos que tener tres archivos grabados el Program memory, el Data
memory y el Option byte.
Ya podemos
cerrar el programa ST Tool .
Este
configurador lo hace todo automáticamente, únicamente tenemos que seleccionar ciertas
opciones que podemos cambiar libremente.
Vamos a ver
que podemos modificar nosotros a mano en el configurador java de marcoq
Dentro de esta opción podemos configurar:
- el tipo de display que tenemos VLCD5/6 (esto solo es para mostrar bien el nivel de batería)
- si tenemos acelerador o sensores de freno
- si queremos usar el botón de luces por defecto del display
- si queremos introducir en el configurador el perímetro de la rueda o usar el de por defecto del display
- si queremos configurar el modo de asistencia a pie o usar la de por defecto del display
- si queremos configurar el modo de asistencia a pie con posibilidad de dejarla funcionando sin mantener pulsado el botón
(con el display XH18 no he conseguido que funcione, se supone que con el nivel 1 seleccionado al pulsar el mando hacia abajo se tendria que quedar activado, a mi se me apaga)
- si queremos mantener o no encendido siempre el display o que se desconecte tras no mostrar actividad en un periodo de 5 min.
- si queremos usar la ultima versión de firmware beta
- si queremos desconectar la resistencia del motor al pedalear hacia atrás
- si queremos activar la protección de temperatura del motor (es necesario tener el sensor instalado)
- si queremos configurar el modo calle o usar el de por defecto del display
- si queremos usar el modo boost y como lo queremos configurar si por cadencia o por velocidad.
Ahora tenemos otros campos que debemos configurarlos en sus pestañas respectivas del configurador
BATERIA:
BATERIA:
En este caso debemos introducir manualmente:
El resto de valores son valores estándar para celdas de 196.
MOTOR
En esta pestaña seleccionamos la batería que alimenta a nuestro motor, 36v o 48v.- watios y amperios que tiene nuestra batería (Max Battery Power y Max battery current source).
- La disposición de celdas nuestra bateria (Battery Cells number), en este caso 10.
- El valor de corte del motor (Battery Low Voltage cut-off) que esta en 29v por defecto para baterías de 36v.
El resto de valores son valores estándar para celdas de 196.
MOTOR
THOTTLE
Se deja por defecto esta pestaña, si tienes acelerador le puedes cambiar los valores máximos que entrega el motor al pulsar los botones del acelerador
TORQUE SENSOR
Por defecto se deja en 0,637, si se toca este valor se modifica el factor de torque y se consigue que el motor interprete mas o menos potencia al pisar el pedal
PAS
numero de imanes máximos que se pueden poner en la rueda trasera, este numero se configura mejor en el display por lo que no se toca
PEDAL ASSIST:
Y llegamos a la mejor parte, esta la opción que configura la potencia máxima que entrega el motor en cada uno de los niveles de asistencia. Va de 10 a 500%, de esta forma podemos configurar el motor a nuestro gusto. En esta pantalla se usa el last code beta, que es un firmware que entrega mucha potencia, de ahí los valores tan bajos.
Aqui otra pantalla que trae por defecto.
Lo normal que suelo poner para montaña son valores de 30/60/90/120 mas o menos, mas de 300 no tiene sentido porque el motor no entrega tanto.
Una vez configurado y conectado el cable con el STLINKV2 solo nos queda darle a conpile y luego a program, el propio programa detecta el software STVP, borra los valores del motor y carga los nuevos valores program data, data memory y option byte.
si marcamos la casilla save file.ini podemos dejar grabada nuestra configuracion en la casilla experimental settings.
Si queremos cambiar las opciones directamente en el STVP podemos hacerlo en la pestaña DATA MEMORY
La asignación de memoria va del 0x004000 al 0x00401F, Pero entendamos que esta opciones hay que ponerlos en valores hexadecimal y nosotros los calculamos en decimal.
Concretamente de los valores de cada una de las direcciones de memoria