• Hello ES! We could use some help to get us past the finish line on building the new knowledgebase for the forum.
    Can you donate? Please see our fundraising page. Thank you!

Bafang Canable Pro Master - discussion

Please help me to restore the controller or bootloader firmware. I messed up and accidentally interrupted the firmware process. The display and Canable no longer show the SW and HW controller information. The firmware I am trying to install is specifically for my engine.
Now, using the old motor firmware method, it reaches 98% with a 20-second wait and a 99% error as shown in the photo.
At the same time, the DPC245 v3.0 display does not respond to pressing the power button when it is held, and it does not turn off at all. The error appears and disappears. I do not have a Besst tool. What advice can you give me and what should I do now?
Motor - Bafang M420.
Controller - CRX10V.350.FC 2.2
 

Attachments

  • IMG_20251030_202819.jpg
    IMG_20251030_202819.jpg
    1 MB · Views: 16
  • IMG_20251030_202800.jpg
    IMG_20251030_202800.jpg
    1 MB · Views: 16
  • IMG_20251030_202157.jpg
    IMG_20251030_202157.jpg
    340.5 KB · Views: 17
  • IMG_20251030_202143.jpg
    IMG_20251030_202143.jpg
    384.6 KB · Views: 14
  • IMG_20251030_202120.jpg
    IMG_20251030_202120.jpg
    1.1 MB · Views: 14
  • IMG_20251030_202233.jpg
    IMG_20251030_202233.jpg
    1.2 MB · Views: 16
Last edited:

Is it possible you mixed the extracted one from your controller and the one i had send you? According to HxD the .bin you used (fw.bin) is a match with mine. So that is probably the wrong one for your controller.
A warning, if you do not have Besst tool or K1 flash i would not attempt to try to flash your extracted bin.
If you get error 30 like me IN the process of flashing, even Besst can not reach the controller anymore via the normal way..
And what should I do if I get error 30 because I interrupted the update process?
 
@Deko
1) What is the voltage of your motor?

2) Did you had a try with selector at "Motor controller" BEFORE you decided to use "old motor controller" or was "Old motor controller" your first pick ?

It should still work, just needs the correct update, that is if your motor can use one of the available procedures.. If an update fails and have error 30 then best is to switch off bike. Disconnect the battery for a few minutes and also close running program and remove canable and then try again.

I do not know if someone already tested M420 but there are at least 2 versions and i think in your case the "old motor controller" method is not for your motor version but i can be wrong of course because i still not have such M420 controller (i'm checking M410 at the moment). But from what i can see it looks like you need to select "Motor controller" to do your update.
 
@Deko
1) Какое напряжение у вашего двигателя?

2) Вы пробовали работать с селектором «Контроллер двигателя» ДО того, как решили использовать «Старый контроллер двигателя», или «Старый контроллер двигателя» был вашим первым выбором?

Он должен работать, просто нужно правильно обновить его, если ваш двигатель поддерживает одну из доступных процедур. Если обновление не удалось и возникла ошибка 30, лучше всего выключить мотоцикл. Отсоедините аккумулятор на несколько минут, закройте запущенную программу и удалите canable, а затем повторите попытку.

Не знаю, тестировал ли кто-нибудь M420, но есть как минимум две версии, и, думаю, в вашем случае метод «старый контроллер двигателя» не подходит для вашей версии двигателя. Конечно, я могу ошибаться, поскольку у меня до сих пор нет такого контроллера M420 (сейчас проверяю M410). Судя по тому, что я вижу, для обновления нужно выбрать «контроллер двигателя».
Battery 48v. The firmware was previously set to 43v. It seems that the old motor controller was the first one, and then I tried all the methods. Did you also have no control information after an unsuccessful update attempt? Does your display also not respond to the power off button? Can you provide the exact procedure for flashing the "motor controller"?
 
Yes happens many times to me in testing that i have also error 30 and then it is normal, because of failed update, that you can not read information anymore because error 30 means no communication between controller and display. If your display does not respond to power off button, remove the battery for a minute.

Then put battery back in and for the display you now should be able to turn it on, of course error 30 will come again.
Now try if you can switch display "OFF" again. If you can now switch it off, leave it off.
Connect canable and go to firmw update tab. Select mode "Motor controller" and then select your correct bin file.

Click "start update" and then right after immediately press display button "ON" without releasing it HOLD it pressed down! No release in between! You now should see the % counting up, still hold on/off button pressed down till the log shows 100%.

The thing is, M420 is untested as far as i know but chances are it can work with the mode "Motor controller".
 
@DPC18RI @mdi
Thank you for your help, support, improvement and further development Canable. Following your recommendations, I installed the "Motor Controller" mode and a 400 delay, and it worked on the first try. After that, I tried updating the firmware several more times, and it works perfectly.

WhatsApp Image 2025-11-01 at 07.56.06.jpeg
 
This is a "clean" firmware. I wanted to ask why the parameters of the torc sensor have values of 0, except for one? They can be changed and recorded, they are saved, but are they applied? I tried to change the support levels, although they are recorded in the controller, they do not work and the output power shows this. The global acceleration parameter, as it normally works, is written to the controller and actually works.

WhatsApp Image 2025-11-01 at 07.56.05.jpeg
 
With some controllers or display's? firmw update, sorry can't remember exactly which ones but it happened few times to me that after a firmware update that on the other "tabs" the data did not refresh. Then you need to "reset" controller. (The besst tool does something similar, after firmw upd with original tool if i'm not able to read controller i have to click reset on the tool or the reset button on the Besst screen ).

How to check with canable after firmw update if it is needed to "reset" controller?

If you want to do a firmw upd. start program fresh and Before you start the firmw upd. click "info tab" should be empty (do NOT click sync data).
Then do your firmw upd as usual. After success go back to "info tab" which should still has no data. Now click "sync" and data should be visible. If no data shows up then you know that in this case you need to "reset" after the firmw upd.

A full "reset" from everything is the following,
close program, remove canable, remove battery for a minute and then connect everything again.
But before you do the above, most of the time you can reset by just switching display off wait a little and switch it back on. Click sync on info tab, if data comes then no need to do full reset.

i don't know when you checked your torque settings right after the firmw upd or not or after a power cycle.
Did it had torque data with the 43V controller firmware before you did the update to 48V firmware?
Before updating firmw. you can make a video with your phone with all original settings then you can compare after a firmw update.

It is also advised to install the latest version from bafang canable pro.
Maybe mdi-9 can add version number somewhere in the top part of the program.
 
Last edited:
With some controllers or display's? firmw update, sorry can't remember exactly which ones but it happened few times to me that after a firmware update that on the other "tabs" the data did not refresh. Then you need to "reset" controller. (The besst tool does something similar, after firmw upd with original tool if i'm not able to read controller i have to click reset on the tool or the reset button on the Besst screen ).

How to check with canable after firmw update if it is needed to "reset" controller?

If you want to do a firmw upd. start program fresh and Before you start the firmw upd. click "info tab" should be empty (do NOT click sync data).
Then do your firmw upd as usual. After success go back to "info tab" which should still has no data. Now click "sync" and data should be visible. If no data shows up then you know that in this case you need to "reset" after the firmw upd.

A full "reset" from everything is the following,
close program, remove canable, remove battery for a minute and then connect everything again.
But before you do the above, most of the time you can reset by just switching display off wait a little and switch it back on. Click sync on info tab, if data comes then no need to do full reset.

i don't know when you checked your torque settings right after the firmw upd or not or after a power cycle.
Did it had torque data with the 43V controller firmware before you did the update to 48V firmware?
Before updating firmw. you can make a video with your phone with all original settings then you can compare after a firmw update.

It is also advised to install the latest version from bafang canable pro.
Maybe mdi-9 can add version number somewhere in the top part of the program.
This was the case before, with this 43v firmware, with the torque sensor parameters set to 0. I'd like to know if these parameters can be changed and if they will work in practice. They are written to the controller, and the next time you connect, you can see that the changes have been applied.
With 48v firmware, absolutely all the tabs and parameters aren't even read.
 
This was the case before with this firmware, with the torque sensor parameters set to 0. I'd like to know if these parameters can be changed and if they will work in practice. They are written to the controller, and the next time I connect, the changes are visible.
With the 48v firmware, absolutely all tabs and parameters are not even read.
With the 36v firmware, all tabs and parameters are read and written, even in the Bafang Go app, the settings are applied. The only thing is that when changing the overvoltage parameter from 47v to 56v, although it is applied (at least the change is displayed), it doesn't actually work, since error 07 persists. This would be the ideal firmware for me if I could somehow change the overvoltage parameter to 56v for my 48v battery. Is there a way, or is it hardcoded into the firmware?

WhatsApp Image 2025-11-01 at 07.56.05 (1).jpeg
 
So you now flashed 36V firmware and all tabs can be read? That means the update procedure is ok.
Firmware files even for same controller, some are locked and some are not. But it is strange that with your 48v firmware nothing can be read?
The only thing is that when changing the overvoltage parameter from 47v to 56v, although it is applied (at least the change is displayed), it doesn't actually work, since error 07 persists.
After you changed overvoltage from 47v to 56v did you afterwards clicked "sync" to see if the value really changed to 56v ?
If you start playing with "controller" tab value's then you really should install latest version. if some value's from "controller" tab get written to controller and in case controller silently refuses it, it can lead to a wrong checksum. With latest version you get a warning an can correct it.

If your controller does accept your change from 47V to 56v then i guess it is normal you still have error 7 because your controller is still running with his "startup 36 volt value's". I guess it needs a power cycle to put the new value in place.

If the firmware perhaps has a routine to check for correct / plausible value's between system voltage, cutoff under load, recovery voltage and overvoltage i don't know.
So if after you changed voltage value's and you do a power cycle by switching display off or removing battery and after this power cycle controller will not come "ON" anymore don't blame me lol. You are swimming in difficult water trying to change all these voltages.

Your safest bet is to search for and try other 48V firmware...
 
So you now flashed 36V firmware and all tabs can be read? That means the update procedure is ok.
Firmware files even for same controller, some are locked and some are not. But it is strange that with your 48v firmware nothing can be read?

After you changed overvoltage from 47v to 56v did you afterwards clicked "sync" to see if the value really changed to 56v ?
If you start playing with "controller" tab value's then you really should install latest version. if some value's from "controller" tab get written to controller and in case controller silently refuses it, it can lead to a wrong checksum. With latest version you get a warning an can correct it.

If your controller does accept your change from 47V to 56v then i guess it is normal you still have error 7 because your controller is still running with his "startup 36 volt value's". I guess it needs a power cycle to put the new value in place.

If the firmware perhaps has a routine to check for correct / plausible value's between system voltage, cutoff under load, recovery voltage and overvoltage i don't know.
So if after you changed voltage value's and you do a power cycle by switching display off or removing battery and after this power cycle controller will not come "ON" anymore don't blame me lol. You are swimming in difficult water trying to change all these voltages.

Your safest bet is to search for and try other 48V firmware...
As far as I can tell from my two-month tests with Bafang Go and Canable firmware, the conclusion is as follows:
48V closed firmware (doesn't read any parameters at all and isn't used in Bafang Go).
43V semi-closed firmware (global acceleration, torque sensor parameters, walking assist, etc. can be changed).
Although the following parameters are read and written to the controller, they don't actually work: power levels (assistance), speed cadence levels, voltage, current, overvoltage, etc.
36V open firmware (absolutely all data is filled in and displayed correctly, all riding characteristics can be changed. Even current, overvoltage, etc. can only be written to the controller, but they won't actually work. It also stores Bafang Go parameters).
 
Hi everyone,

I messed up and accidentally connected orange and brown while hooking up and starting the canable pro with this software.

Of course the software did not give me any readings. After I disconnected my power button does not power off my ebike so I had to disconnect the battery (I disconnected the entire night just to be sure) Then sadly, I could not seem to power ON my ebike anymore.. I tried all sorts of things and luckilly I found a way: holding power AND the - buttons at the same time gave me a fully working ebike again..

The only problem is, I cannot seem to power off at all anymore and I have to remove my battery and use power & - buttons to power on EVERY time..
No error codes or warning codes are visible in the display.

After properly wiring my canbus setup I still cannot get any info in the software, at the end of my message is part of the latest LOG.

How much trouble am I in?? :eek:

Some more info:
Ebike: Huyser Ultremo
Motor: Bafang M420

1000045424.jpg1000045427.jpg1000045430.jpg1000045433.jpg1000045436.jpg
Latest log (after proper wiring):
[21:32:48]RX (unknown_source_0x0): { "original_frame": { "canCommandCode": 0, "canCommandSubCode": 12, "canOperationCode": 0, "sourceDeviceCode": 0, "targetDeviceCode": 0, "data": [ 0, 48, 4, 0, 0, 0, 0, 0 ], "originalSourceByte": 32 } } [21:32:48]RX (unknown_source_0x0): { "original_frame": { "canCommandCode": 0, "canCommandSubCode": 12, "canOperationCode": 0, "sourceDeviceCode": 0, "targetDeviceCode": 0, "data": [ 0, 48, 2, 0, 0, 0, 0, 0 ], "originalSourceByte": 32 } }
 
After you messed up, according to your display it still can read the canbus data. So does bafang canable pro program recognizes your canable? Does it show the canable name? if it does and you click connect it should work... So check your wiring again. How did you actually made the wires connection?

Keep in mind that if you used an extension cable to tap in the canbus lines it needs to be one having the bafang colors and then you only tap in the green wire for can High and white wire for can Low.
Just curious, when you messed up, how exactly had you connected the brown and orange wires??
 
After you messed up, according to your display it still can read the canbus data. So does bafang canable pro program recognizes your canable? Does it show the canable name? if it does and you click connect it should work... So check your wiring again. How did you actually made the wires connection?

Keep in mind that if you used an extension cable to tap in the canbus lines it needs to be one having the bafang colors and then you only tap in the green wire for can High and white wire for can Low.
Just curious, when you messed up, how exactly had you connected the brown and orange wires??
Today I went to my dealer and got a replacement screen under warranty (i just told them about my button problem and they never asked if I did anything, so I was not lying about the reason why it didn't work). They had a BESST tool and software and checked all sort of things. Updated the HMI (display) but to no avail. Eventually they tried a new display they had lying around and that solved my problems. I am so happy that the issue is solved that I am afraid of trying anything again 🥲

But to at least answer your questions:
The software does recognize my canable, (although it does say "(by bytewerk)" at the end of the adapter name). But I can click "connect" and "disconnect".
I just get no info through to the software.

This is my wiring, top to bottom: black, white, green:
1000045420.jpg
Or when upside down: green, white, black:
1000045421.jpg
 
This is my wiring, top to bottom: black, white, green:
So totally wrong :eek:

1762591746399.png

You have connected
Green to Ground
White to CAN-H
Black to CAN-L

It has to be:
Green to CAN-H
White to CAN-L
Black to GND (is not necessary)

See the picture in the github repo. Different manufacturers use diffentet pinouts, so you have to read the imprint on the PCB carefully ;)

UCAN_wiring.JPG
 
Last edited:
@ daft
yep your wiring is / was totally wrong.
It has to be like stancecoke mentioned:

Green wires to H
White wires to L
Black to G (is not necessary)
Then it should work.
 
So totally wrong :eek:

View attachment 380250

You have connected
Green to Ground
White to CAN-H
Black to CAN-L

It has to be:
Green to CAN-H
White to CAN-L
Black to GND (is not necessary)

See the picture in the github repo. Different manufacturers use diffentet pinouts, so you have to read the imprint on the PCB carefully ;)

UCAN_wiring.JPG
Oh my god.. I feel like such a noob..
I followed this guide because I believed I had the same Canable pro device as him, apparently I should have just paid attention to my the pinouts on my own canable drvice, I never suspected they could be so completely different 🙈
 
I have an lzr pro Dirt jumper that has a M-600 motor. It comes with a throttle, but the throttle sometimes triggers the torque sensor, so it continues giving power even when I let go of the throttle. When doing jumps, drops or tricks this can mess up my timing.

Would it be possible to have the highest power mode to be throttle only w/o pedal assist but still have all other power modes with pedal assist.

Another thing I have considered is hooking up the CANable via bluetooth reciever and transmitter to just send the one code for turning pedal assist on and off. Though the first option is obviously preferable.

Any help is appreciated and shout out to the developers of the Bafang Canable Tool. I always hate to see an uncracked closed source product.

-Darren
 
Back
Top