any plan to do with M510 or M560?Hi all,
FAKE TAXI 2022.05.22
Link: Proton Drive
File: FT_2026_05_22_public.zip
SHA256: 9e1977fa385cff3a6e500b52f16b241c9f97d54a249d5bf32128534f9fa2f046
This is the result of the entire team's work. Many thanks to maglo18, mdi and Radolf.
The archive contains a PDF with all the details. I'll add some comments later.
rekrezeb
I have a 48V battery but I flashed "FT_2026_05_22_i1" and the result is AWESOME...FAKE TAXI 2022.05.22
I'd prefer it to be shorter, can someone point me to the right parameter in Canable?
for the first two/three times I waited for very long, listening at every sound and movement of the motor... nothing happened.
When I stop pedaling, the motor power is cut off instantly. A slight overrun would feel much more natural and pleasant.
endless-sphere.com
Sorry, EBiCS for Bafang is in a mature stage already, there are very positive feedbacks meanwhile. I don't know, what should be improved at the moment. We just started to add the EBiCS specific descriptions to the Canable tool, to make the usage more user friendly. Adding a third line per field for the Fake Taxi Project meaning of the fields would be possible also, of course.Until EBiCS reaches a mature production-ready stage
Bafang M560
I have tested your Ebics v.0.0079, and the overall feel, smoothness, and assistance are now indeed as good as in systems from Bosch, Yamaha, etc.
Yes, I already did this before trying the latest FT update, but with unsatisfactory results.Have you ever tried the M820 EBiCS firmware with the latest bin file?!
Sorry, EBiCS for Bafang is in a mature stage already, there are very positive feedbacks meanwhile. I don't know, what should be improved at the moment. We just started to add the EBiCS specific descriptions to the Canable tool, to make the usage more user friendly. Adding a third line per field for the Fake Taxi Project meaning of the fields would be possible also, of course.
The EBiCS firmware let you set everything yourself, with additional features like a hidden code to switch between road mode and offroad mode, torque override, extended boost and many more features, that the original firmware doesn't provide. For details see the Wiki!
Even the Tongsheng OSF has copied the extended boost function in the latest update![]()
Can you write in the thread regarding the correct firmware please.Yes, I already did this before trying the latest FT update, but with unsatisfactory results.
The calibration went on for a long time and the chainring was rotating very fast.
(I had to try few times to get the calibration starting)
After the calibration you suggested "Start a new Canable session first and read in the default values of EBiCS!"
I think I did that because I had to input the value of battery voltage, amps, wheel etc.
In the end the motor was very weak and behaved strangely, even making noise.
It could be my fault. I don't know what setting I need to set in Canable to get EBiCS run smootly.
I'll try again next WE, this time I was in a hurry.
I get 0 KB .apk after extracting .zip. Are you sure you uploaded the right file? (or am I missing something?)`FT Bafang APP M820` is an Android app
Algunos comentarios sobre la versión 2026.05.22, ya que prometà algunas explicaciones adicionales.
Aclaración sobre la nomenclatura de las versiones.
La nomenclatura de las versiones permanece sin cambios. Esto significa que la nueva versión i/j (baterÃa 13S 13A) sigue teniendo una designación "superior" a la g/h (baterÃa 14S). Cambiar el nombre de todo en esta etapa crearÃa confusión innecesaria. Lo mismo se aplica a la nomenclatura histórica v/w para las configuraciones 11S. Para simplificar las cosas:
Configuraciones estándar de Bafang (para usuarios que utilizan baterÃas originales o que desean niveles de potencia de fábrica):
- a/b: 10S, 36V, 15A
- c/d: 12S, 43V, 13A
- e/f: 13S, 48V, 12A
Configuraciones 'Overclocker' para usuarios que anteriormente usaban el firmware de fábrica pero querÃan más potencia de una celda adicional:
- v/w: 11S y firmware de 36V/15A
- i/j: 13S y firmware de 43V/13A
- g/h: 14S con firmware de 48V/12A
Función de asistencia de par
En esta versión, el parámetro anterior de lÃmite de velocidad se ha rediseñado por completo. Ya no controla los lÃmites de velocidad para cada nivel de asistencia. La limitación de velocidad global sigue funcionando como antes, pero el parámetro por nivel ahora actúa como un multiplicador de asistencia de par, ajustable del 0 % al 200 %, con el 100 % como valor predeterminado. Por motivos de compatibilidad, CANable, BESTST y BafangGo siguen mostrando valores del 0 al 100 %. Internamente, cada paso equivale ahora al 2 %.
Ejemplos:
20 = 40%
50 = 100%
80 = 160%
Tras la actualización, el valor predeterminado es 50 (100%), por lo que cualquier software de configuración con control deslizante mostrará este en la posición central de su rango por defecto. Mover el control deslizante hacia la izquierda/abajo reduce la asistencia, mientras que muevelo hacia la derecha/arriba la aumenta.
Cambios en el lÃmite de potencia
Anteriormente, el parámetro LÃmite de potencia se comportaba más como un factor de potencia aplicado después de completar todos los cálculos. Como resultado, los valores inferiores al 100 % no limitaban la potencia. En cambio, reducÃan toda la curva de potencia. Ahora, el LÃmite de potencia es un verdadero tope de potencia. No afecta la rapidez con la que aumenta la potencia; solo define el nivel máximo de potencia. Los valores predeterminados permanecen sin cambios. Si observa el gráfico en el archivo README, notará que el aumento de potencia ahora es idéntico en todos los niveles de asistencia. Una nota importante: esto supone que la Asistencia de par se mantiene en su valor predeterminado del 100 %. Si la Asistencia de par se reduce por debajo del 100 % y se ajusta al valor del LÃmite de potencia, el comportamiento del motor se vuelve muy similar al de versiones anteriores. Después de discutir esto internamente, decidimos mantener la Asistencia de par en el 100 % por defecto para que el LÃmite de potencia solo afecte la potencia máxima de salida y no el comportamiento de aumento de potencia. Los usuarios aún pueden ajustarlo como prefieran. Con la configuración predeterminada, los niveles de asistencia más bajos se sentirán notablemente más sensibles que antes. La potencia aumenta de forma similar al antiguo modo Boost, pero sigue respetando los mismos lÃmites máximos de potencia:
- ECO: 25%
- TOUR: 35%
- DEPORTE: 50%
- DEPORTE+: 70%
- BOOST: 100%
En resumen:
- El sistema Torque Assist controla el comportamiento de aceleración de la potencia.
- El lÃmite de potencia controla la potencia máxima.
Por ejemplo, un valor alto de asistencia de par combinado con un lÃmite de potencia bajo permite que el motor alcance rápidamente el nivel de potencia deseado, respetando al mismo tiempo una potencia máxima inferior. Anteriormente, para lograr una sensación similar, era necesario alcanzar condiciones de potencia casi máximas antes de que el factor de escala produjera el resultado deseado.
Mejoras en la compensación de par
En el firmware original de Bafang, la compensación de par basada en la cadencia solo funcionaba entre 26 y 66 RPM, con un factor de compensación máximo del 300 %. La nueva implementación extiende la compensación hasta las 116 RPM, con un factor máximo del 450 %. Este valor proviene de cálculos teóricos sobre la disminución del par medido a 116 RPM en comparación con la misma potencia generada por el ciclista a 26 RPM. Esto deberÃa mejorar significativamente la experiencia de los ciclistas que prefieren una cadencia alta y reducir la sensación de que el motor pierde potencia a altas revoluciones.
Mapas de descarga de la baterÃa y tablas de velocidad.
Los nuevos mapas de descarga de la baterÃa fueron desarrollados por nuestros evaluadores para aprovechar mejor la capacidad disponible. Asimismo, los últimos ajustes de la tabla de velocidad también se basan en los comentarios de nuestros evaluadores.
Cambios de la versión 2.5
El último cambio que cabe mencionar es la eliminación del factor de potencia adicional que se aplicaba tras los cálculos de potencia del sensor de par en el firmware basado en la versión 2.5. Este factor adicional limitaba la fuerza de entrada del ciclista, lo que hacÃa que esas versiones se sintieran más suaves y menos agresivas. Al eliminarse este mecanismo, las versiones basadas en la versión 2.5 se comportan ahora mucho más como la rama 3.3. Es posible que en futuras versiones se eliminen por completo las versiones 3.3 independientes. En este momento, las versiones de firmware b/d/f/h/j/w se pueden configurar de forma independiente para cada nivel de asistencia, de modo que se comportan como las versiones 2.5 anteriores o de forma muy similar a las versiones a/c/e/g/i/v (basadas en la versión 3.3). Por defecto, las versiones 2.5 actualizadas se sentirán más similares a la versión 3.3. Sin embargo, al reducir los valores de asistencia de par (el valor predeterminado es 100%) en cada nivel de asistencia, se recuperará el comportamiento más suave al que muchos usuarios están acostumbrados. Esto también permite combinar las ventajas de ambas ramas de firmware. Por ejemplo, puedes configurar ciertos niveles de asistencia con una entrega de potencia más agresiva para subidas pronunciadas, mientras que otros se mantienen más suaves y predecibles para el uso diario. En lugar de elegir entre dos comportamientos de firmware diferentes, ahora puedes personalizar cada nivel de asistencia de forma independiente para adaptarlo a diferentes condiciones de conducción. El objetivo a largo plazo es convertir el firmware basado en la versión 2.5 en la rama principal, ya que es más completo y ya incluye mejoras como el inicio suave de la función de asistencia al caminar. Solo queda una función de la rama 3.3 que aún necesita ser adaptada antes de que la versión 2.5 pueda configurarse para comportarse de forma idéntica. Como aún no se ha implementado, ambas variantes de firmware se siguen publicando para cada configuración de baterÃa en esta versión.
Respecto a otros motores (responder a @sponsje, @DaStivi y @temon10)
El proyecto fue diseñado originalmente solo para el M820, pero:
- M420 - Encontré una bicicleta con este motor que me gustó, asà que si termino comprándola, quién sabe. Tengo una bicicleta de trekking "analógica" de más de 20 años que todavÃa disfruto, asà que en teorÃa no necesito una bicicleta eléctrica. La mayorÃa de mis recorridos son rutas de larga distancia por terreno bastante plano, pero he estado pensando que una bicicleta eléctrica podrÃa ayudarme a aumentar mi autonomÃa o mejorar mi velocidad media. Ahora mismo, mi lÃmite práctico es de unos 100+ km a una media de 22-23 km/h. Si me pasara a la electricidad, probablemente también optarÃa por una bicicleta eléctrica de trekking, donde las configuraciones basadas en Bafang pueden tener más probabilidades de usar motores como el M420 en lugar del M820. Hasta donde sé, el M420 usa un MCU diferente, pero eso no es un gran problema en sà mismo. Lo que desconozco es si el motor se puede reprogramar mediante CANable y si existen volcados de firmware públicos que puedan servir como punto de partida. Hasta ahora solo encontró dos archivos de firmware, ambos marcados como «TEST». ¿Es posible modificar la tabla de velocidad de la M420 actualmente?
- Nueva revisión del M820: tras analizar el firmware, puedo afirmar con total seguridad que la versión actual de Fake Taxi no se puede portar directamente. En primer lugar, el firmware utiliza una dirección de inicio diferente. Adaptar los binarios parcheados a esto no es tan sencillo como recompilar el código fuente. En segundo lugar, según información de Chili, el motor utiliza una revisión de PCB diferente. Incluso flashear la imagen completa del firmware, incluyendo el antiguo gestor de arranque, con un ST-Link probablemente no ayudarÃa, ya que supongo que existen diferencias de hardware significativas. La estructura del nuevo firmware es muy similar a la del M510, por lo que habrÃa que analizarlo todo desde cero. No digo que sea imposible, pero esto lleva tiempo, asà que, por ahora, Fake Taxi simplemente no funcionará con la nueva revisión de hardware del M820.
- M510/M560: si finalmente se analiza el nuevo firmware M820, entonces, debido a las similitudes mencionadas anteriormente, teóricamente también se podrÃa desarrollar una versión para estos motores. Originalmente, supusimos que no tenÃa sentido porque EBiCS ya estaba en desarrollo. Pero pensándolo bien, ambos proyectos pueden coexistir. Fake Taxi se centra en la optimización y extensión del firmware de fábrica estable, mientras que EBiCS aún está en desarrollo y sigue siendo un proyecto en desarrollo. Hasta que EBiCS alcance una etapa madura y lista para la producción, flashear Fake Taxi se puede comparar con la optimización de la ECU en un automóvil: mejorar el rendimiento y modificar ciertos comportamientos de fábrica manteniendo intacta la plataforma original.
Hola, quienes usábamos la versión (a/b: 10S, 36V, 15A) ahora podemos usar la versión Overclocker (v/w: firmware de 11S y 36V/15A) si queremos más potencia. ¿Cuáles son las diferencias? ¿Es posible usar ambos firmwares? Gracias.A few comments regarding release 2026.05.22, since I promised some additional explanations.
Version naming clarification
Version naming remains unchanged. That means new version i/j (13S battery 13A) still has a 'higher' designation than g/h (14S battery). Renaming everything at this stage would create unnecessary confusion. The same applies to the historical v/w naming for 11S configurations. To simplify things:
Stock Bafang setups (for users running original batteries or wanting factory power levels):
- a/b: 10S, 36V, 15A
- c/d: 12S, 43V, 13A
- e/f: 13S, 48V, 12A
'Overclocker' setups for users who previously ran stock firmware but wanted more power from an additional cell:
- v/w: 11S on 36V/15A firmware
- i/j: 13S on 43V/13A firmware
- g/h: 14S on 48V/12A firmware
Torque Assist feature
In this release, the former Speed Limit parameter has been completely repurposed. It no longer controls speed limits for individual assist levels. Global speed limiting still works as before, but the per-level parameter now acts as a Torque Assist multiplier, adjustable from 0% to 200%, with 100% as the default. For compatibility reasons, CANable, BESST and BafangGo still expose values from 0 to 100. Internally, each step now equals 2%.
Examples:
20 = 40%
50 = 100%
80 = 160%
After flashing, the default value is 50 (100%), so any slider-based configuration software will show the slider positioned in the middle of its range by default. Moving the slider left/down reduces assistance, while moving it right/up increases assistance.
Power Limit changes
Previously, the Power Limit parameter behaved more like a power factor applied after all calculations were completed. As a result, values below 100% didn't actually limit power. Instead, they scaled the entire power curve downward. Now, Power Limit is a true power cap. It doesn't affect how quickly power ramps up; it only defines the maximum power level. Default values remain unchanged. If you look at the graph in the README, you'll notice that power ramp-up is now identical across all assist levels. One important note: this assumes Torque Assist remains at its default 100% value. If Torque Assist is reduced below 100% and matched to the Power Limit value, motor behavior becomes very similar to previous releases. After discussing this internally, we decided to keep Torque Assist at 100% by default so that Power Limit only affects the maximum power output and not the power ramp-up behavior. Users can still tune it however they prefer. With default settings, lower assist levels will feel noticeably more responsive than before. Power ramps up similarly to the old Boost mode, but still respects the same maximum power limits:
- ECO: 25%
- TOUR: 35%
- SPORT: 50%
- SPORT+: 70%
- BOOST: 100%
In summary:
- Torque Assist controls power ramp-up behavior.
- Power Limit controls maximum power.
For example, a high Torque Assist value combined with a low Power Limit allows the motor to reach the target power level quickly while still respecting a lower maximum output. Previously, achieving a similar feel required reaching near-full power conditions before the scaling factor produced the desired result.
Torque compensation improvements
In the original Bafang firmware, cadence-based torque compensation only operated between 26 and 66 RPM, with a maximum compensation factor of 300%. The new implementation extends compensation all the way to 116 RPM, with a maximum factor of 450%. This value comes from theoretical calculations of how much measured torque decreases at 116 RPM compared to the same rider power output at 26 RPM. This should significantly improve the experience for riders who prefer high cadence and reduce the feeling that the motor is 'running out of steam' at higher RPMs.
Battery discharge maps and Speed Tables
The new battery discharge maps were developed by our testers to make better use of available battery capacity. Likewise, the latest Speed Table adjustments are also based on extensive tester feedback.
v2.5 changes
The final change worth mentioning is the removal of the additional power factor that was applied after torque-sensor power calculations in v2.5-based firmware. That extra factor effectively limited rider input force, which made those versions feel smoother and less aggressive. With that mechanism removed, v2.5-based releases are now much closer in behavior to the v3.3 branch. It's possible that future releases will eventually drop the separate v3.3 versions entirely. At this point, firmware versions b/d/f/h/j/w can be configured independently for each assist level to behave either like the legacy v2.5 releases or very similarly to the a/c/e/g/i/v (v3.3-based) versions. By default, the updated v2.5 releases will feel more similar to v3.3. However, lowering Torque Assist values (default is 100%) on each assist level will restore the softer behavior many users are familiar with. This also makes it possible to combine the strengths of both firmware branches. For example, you can configure certain assist levels with a more aggressive power delivery for steep climbs, while keeping others smoother and more predictable for everyday riding. Instead of choosing between two different firmware behaviors, you can now tailor each assist level independently to suit different riding conditions. The long-term goal is to make the v2.5-based firmware the main branch, since it is more feature-rich and already includes improvements such as smooth Walk Assist startup. There is only one remaining feature from the v3.3 branch that still needs to be ported before v2.5 can be configured to behave identically. Since that hasn't been implemented yet, both firmware variants are still being released for every battery configuration in this version.
Respecto a otros motores (responder a @sponsje, @DaStivi y @temon10)
El proyecto fue diseñado originalmente solo para el M820, pero:
- M420 - Encontré una bicicleta con este motor que me gustó, asà que si termino comprándola, quién sabe. Tengo una bicicleta de trekking "analógica" de más de 20 años que todavÃa disfruto, asà que en teorÃa no necesito una bicicleta eléctrica. La mayorÃa de mis recorridos son rutas de larga distancia por terreno bastante plano, pero he estado pensando que una bicicleta eléctrica podrÃa ayudarme a aumentar mi autonomÃa o mejorar mi velocidad media. Ahora mismo, mi lÃmite práctico es de unos 100+ km a una media de 22-23 km/h. Si me pasara a la electricidad, probablemente también optarÃa por una bicicleta eléctrica de trekking, donde las configuraciones basadas en Bafang pueden tener más probabilidades de usar motores como el M420 en lugar del M820. Hasta donde sé, el M420 usa un MCU diferente, pero eso no es un gran problema en sà mismo. Lo que desconozco es si el motor se puede reprogramar mediante CANable y si existen volcados de firmware públicos que puedan servir como punto de partida. Hasta ahora solo he encontrado dos archivos de firmware, ambos marcados como «TEST». ¿Es posible modificar la tabla de velocidad del M420 actualmente?
- Nueva revisión del M820: tras analizar el firmware, puedo afirmar con total seguridad que la versión actual de Fake Taxi no se puede portar directamente. En primer lugar, el firmware utiliza una dirección de inicio diferente. Adaptar los binarios parcheados a esto no es tan sencillo como recompilar el código fuente. En segundo lugar, según información de Chili, el motor utiliza una revisión de PCB diferente. Incluso flashear la imagen completa del firmware, incluyendo el antiguo gestor de arranque, con un ST-Link probablemente no ayudarÃa, ya que supongo que existen diferencias de hardware significativas. La estructura del nuevo firmware es muy similar a la del M510, por lo que habrÃa que analizarlo todo desde cero. No digo que sea imposible, pero esto lleva tiempo, asà que, por ahora, Fake Taxi simplemente no funcionará con la nueva revisión de hardware del M820.
- M510/M560: si finalmente se analiza el nuevo firmware M820, entonces, debido a las similitudes mencionadas anteriormente, teóricamente también se podrÃa desarrollar una versión para estos motores. Originalmente, supuse que no tenÃa sentido porque EBiCS ya estaba en desarrollo. Pero pensándolo bien, ambos proyectos pueden coexistir. Fake Taxi se centra en la optimización y extensión del firmware de fábrica estable, mientras que EBiCS aún está en desarrollo y sigue siendo un proyecto en desarrollo. Hasta que EBiCS alcance una etapa madura y lista para la producción, flashear Fake Taxi se puede comparar con la optimización de la ECU en un automóvil: mejorar el rendimiento y modificar ciertos comportamientos de fábrica manteniendo intacta la plataforma original.
- M510/M560 - if the new M820 firmware eventually gets analyzed, then due to the similarities mentioned above, a version for these motors could theoretically be developed as well. Originally, I assumed there was no point because EBiCS was already being developed. But thinking about it now, both projects can coexist. Fake Taxi focuses on tuning and extending stable factory firmware, while EBiCS is still actively evolving and remains a development project. Until EBiCS reaches a mature production-ready stage, flashing Fake Taxi can be compared to ECU tuning on a car: improving performance and modifying certain factory behaviors while keeping the original platform intact.
I've also just loaded the "FT_2026_05_22_i1" and agree its awesome. I used Besst Pro to install and now need to look into the parameter adjustments to see how I can get more aggressive power input, the M820 already feels stronger than my old Rise EP8 but I'd like to get it the same or more aggressive feeling than the EP801, will play round over the next few days and see.I have a 48V battery but I flashed "FT_2026_05_22_i1" and the result is AWESOME...
650W delivered with very little effort.
Thank you @rekrezeb and also to @maglo18, @mdi and @Radolf. You created something that changed completely the behaviour of my weak 820.
I uploaded the FW using Canable, a Windmeile cable and I raised the Amps to 14.
The only thing I would like to change is the overrun, I'd prefer it to be shorter, can someone point me to the right parameter in Canable?
Thank you again for all the hard work you did.
P.S. - compared with my friend's Specialized... no difference in power but the 820 is better, more... aggressive.