• 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

Now I see it sends first 4 bytes from file : 05112000 - 89 45 02 00
OK, so the first 16 Bytes of the bin file does not contain the first Bytes of the compiled firmware, but some information about the hardware, the bin file is made for, to avoid, that the bin file is uploaded to the wrong hardware....
I wonder if that's just an offset, or if the firmware is encrypted somehow.
I was able to dump the original firmware from my controller with a STLink, but I don't know, if there is a BAFANG firmware update file for my controller hardware available.
 
* It's first 2 bytes from bin file. 3,4 are not. 02 00 not match m500 bin file. maybe it's static.
if it can be useful to compare, i can provide screengrab and csv from firmw. update - hub controller -.

What i noticed, i looked at 10 different bin files again and all 10 had for byte 3 the same value; 82
Which during my firmware update got replaced with 02 by besst pro.
So at start in the upgrade besst shows the same 2 first bytes as in my bin file. 3th byte from my bin file, besst replaced it with 02 and the 4th byte was again the same as in my bin file.
 
if it can be useful to compare
Hm, if I compare two firmware files from github, the fourth byte is always 0x00. (HxD is quite useful to compare bin files)
1754587119547.png

i can provide screengrab and csv from firmw. update - hub controller -
Would be interesting. The flash dump via STLink shows a bootloader at the beginning, then a block of 0xFF, at offset 0x3000 some few different bytes and the code itself seems to start at offset 0x47E0
 
Last edited:
I'm finnaly getting some responsenses, but only on display on and without data.

Code:
Sending CAN frame: ID=05FF3005, Data=[00]
Sending CAN frame: ID=05112000, Data=[01,45,02,40]
RECIVE ID: 822A2000 DLC: 0 Data:

Not sure if this is valid or not. If can start send firmware now.

After this off button is locked.
I know K1 performs update on display off.
How is it with BESST ?
 
Indeed you can do controller update too without a display connected.
Actually, with besst are a few things to watch out for. If you do a firmware update and after it is done, push the orange button on the tool and after that i click "reset" on the screen too. Because if you do not do that...

If you connect another controller, or display if you did a display update, and the update is still in the tool, the controller or display you just connected if it's same model and hw v it starts automatically getting the update too !!
For a battery firmware update it is advised to have only the controller connected and no display...

Also with older controllers, the update flows first in the tool, then you have to disconnect controller and plug it back in and then the update go's from the tool to the controller...
With other controllers no need to unplug and plug back in... Everything in one go... Confusing sometimes lol.
 
Indeed you can do controller update too without a display connected.
Actually, with besst are a few things to watch out for. If you do a firmware update and after it is done, push the orange button on the tool and after that i click "reset" on the screen too. Because if you do not do that...

If you connect another controller, or display if you did a display update, and the update is still in the tool, the controller or display you just connected if it's same model and hw v it starts automatically getting the update too !!
For a battery firmware update it is advised to have only the controller connected and no display...

Also with older controllers, the update flows first in the tool, then you have to disconnect controller and plug it back in and then the update go's from the tool to the controller...
With other controllers no need to unplug and plug back in... Everything in one go... Confusing sometimes lol.
can you tell what causes this error ? tried m50048v m600 m50043v and not one of them succedeed with fw update ... New video · Monday, Aug 4 🎬
error shows only with m50043v , but update failed for all other motors as well
sorry for OT but since somebody raised that issue ...
 
Just made succesfull firmware update via canable on M820 🥳

But for now this will work only with new motors...

We find out that there are 2 methods for update probably for old and new motors.
From bin file header somehow we have to detect which method to use.
 
Just made succesfull firmware update via canable on M820 🥳

But for now this will work only with new motors...

We find out that there are 2 methods for update probably for old and new motors.
From bin file header somehow we have to detect which method to use.
I had m300, and now m420 old engines. As far as I remember, when I changed the firmware via a regular (old) Besst, I had to disconnect the CAN cable. But in the new Besst Pro software, when flashing, it was not necessary to disconnect the CAN cable. Therefore, perhaps you were misled about two methods of flashing for different engines.
 
No, u are talking about UART vs CAN now. This is not an option here.
 
Hello. Maybe our community will be interested and will improve the functionality of this excellent display with huge settings, which are not available in other displays. In particular, I would like to see advanced settings applied to older engines such as m420, m500, m600.
Recently a new firmware SW: EKD01_CAN_BF_N22 was released for the Varstrom EKD01 CAN HW: B02NC display, which has a huge number of settings, including:
1. Speed up Character
2. Max Output Power
3. Speed limit in Gear
4. Start up Angel
5. Setting a speed limit of up to 99 km/h with a quick reset to 25 km/h by simultaneously pressing the "+" and "-" keys.
6. The ability to install any wheel diameter.
7. Changing the voltage for correct display of the battery charge.
8. The ability to customize the display of voltage or % of battery charge.
Tested on bafang m510 works great, absolutely everything applies.
I also checked it on a bafang m420 and unfortunately not all functions work on it, namely the "advanced settings" are not applied:
1. Speed up Character
2. Max Output Power
3. Speed limit in Gear
4. Start up Angel

This topic contains all the information about it and the firmware software, as I can’t attach it here due to the large volume.
 

Attachments

  • EKD01_CAN_BF_N22_bin.zip
    7.2 MB · Views: 6
  • WhatsApp Image 2025-08-01 at 19.17.12.jpeg
    WhatsApp Image 2025-08-01 at 19.17.12.jpeg
    47.9 KB · Views: 11
  • WhatsApp Image 2025-08-01 at 19.18.48.jpeg
    WhatsApp Image 2025-08-01 at 19.18.48.jpeg
    60.3 KB · Views: 11
  • WhatsApp Image 2025-08-01 at 19.19.09.jpeg
    WhatsApp Image 2025-08-01 at 19.19.09.jpeg
    116.3 KB · Views: 11
No, u are talking about UART vs CAN now. This is not an option here.
All motors m300 and m420 canbus......
 

Attachments

  • WhatsApp Image 2025-08-09 at 10.12.50 (2).jpeg
    WhatsApp Image 2025-08-09 at 10.12.50 (2).jpeg
    72 KB · Views: 11
  • WhatsApp Image 2025-08-09 at 10.12.50 (1).jpeg
    WhatsApp Image 2025-08-09 at 10.12.50 (1).jpeg
    166.6 KB · Views: 11
  • WhatsApp Image 2025-08-09 at 10.12.50.jpeg
    WhatsApp Image 2025-08-09 at 10.12.50.jpeg
    78.9 KB · Views: 12
improve the functionality of this excellent display
Hm, the CAN version of this display is almost unavailable and quite expensive. Or do you have a reliable and cheap source?
I prefer to set up a system on a big screen with mouse and keyboard, not fiddling around with 3 buttons, one thousand submenues on a small display ;)
 
Hm, the CAN version of this display is almost unavailable and quite expensive. Or do you have a reliable and cheap source?
I prefer to set up a system on a big screen with mouse and keyboard, not fiddling around with 3 buttons, one thousand submenues on a small display ;)

I flashed this EB02X-CAN (originally with bad firmware). You can change the firmware of any similar display only if the hardware was HW: B02NC_1.01

1754730714036.png
 
Last edited:
Then I don't understed how u upload firmware with disconected CAN cable.

This display for me is too big.
This is a misunderstanding because of the translator. I meant that when flashing in two programs besst and best pro there is a different approach, in besst pro you do not need to disconnect the cable, unlike the usual besst where when flashing the program asks to disconnect and then connect the cable so that the flashing procedure can begin.
Regarding the large display...you could use it as a portable convenient programmer for quick tests directly on the ground without having to go home to change the parameters on the PC. But in general it is not that much bigger than DCP245, I just fixed it in the middle of the steering wheel of the gravel ram.
 
Last edited:

Хм, 45 евро + таможня, и придётся самому обновлять прошивку?! Или этот уже идёт с обновлённой прошивкой? Просто для новичка это серьёзная проблема. Отзывы на AliExpress тоже не самые лучшие...

30 евро с подключением по технологии plug&play для ПК кажутся более перспективными;)
There is bad firmware from the start...it needs to be flashed, this is done very simply in 1 minute through the software in two clicks, look at my topic at the link there is everything including a video on YouTube and software.
It would just be great if someone could figure out this display firmware and make even more functions, as well as providing the ability for older engines to use advanced parameters.
Of course, this is not a replacement for the bafang-canable-pro-master on the PC, but an addition to it.
 
Last edited:
This is a misunderstanding because of the translator. I meant that when flashing in two programs besst and best pro there is a different approach, in besst pro you do not need to disconnect the cable, unlike the usual besst where when flashing the program asks to disconnect and then connect the cable so that the flashing procedure can begin.
Both have their use case. It all started with good old Besst, it can do UART too although it can take some tries. And for CAN in certain cases it can read params. 6011 and 6012 which Besst pro can't as far as i know. Also, and for some this is important, with old Besst you can test torque sensor voltage output which i still have to find in PRO.

I just did a controller update with "old" Besst and it certainly can do it in one go too, no need to disconnect and reconnect if you don't follow that instruction on the screen bottom. The complete update from "old" Besst to black box and from black box to controller took barely 14 seconds, yes i timed it :)
But granted, it depends maybe on the Besst version used and also probably on the controller HW / firmware version if it can happen in one go or not. The big plus for PRO are the riding parameter settings and the battery test page where if you are lucky it shows the production date from the battery too.(y)
 
A little OT but after more than a year on a shelf, this 12S 43V BMS is back alive. Connected (without real cells) to hub controller. I also tested if it would charge and did a 3A charge for 6 hours (in combo with electronic load). After 6 hours i stopped the charge and the "last uncharged time" was reverted back to zero days 6h. So after a full charge it resets the day and hours to zero at the charge start.
A little wire mess but now i can check this type of BMS outside a battery housing too without the need for real cells. Also maybe looking for to me unknown id's too lol.
17.5Ah connected without cells-1.jpg17.5Ah connected without cells-2.jpg17.5Ah-BMS- 12S-43V-test.png
 
I'm looking for testers of firmware update option, old and new motors.
M820 already successfully tested.
For now people who have BESST or K1 (In case of something went wrong to be able return).
For now it's available only as CLI command.

Here is instruction how to run update script:
- Install NodeJS(ver.22) & NPM
- Download and unzip soruce code: https://github.com/mdi-9/bafang_canable_pro/archive/refs/heads/master.zip
- Open cmd i main catalog and run npm install
- Make sure that standard cannable app is working properly if not check readme: GitHub - mdi-9/bafang_canable_pro: Bafang Besst software replacement for M500, M510, M560, M820 etc
- Display connected and ON
- Prepere bin file and put it in main catalog, for this example name it 'fw.bin' (it can by any other name)
- To start update procedure run: node fw_update.js fw.bin
-
Wait for process to finish, there will be procentage progress and announcements
- If something went wrong provide log file that was created in logs catalog (pm to me)
- If successfull post motor model here
 
Back
Top