• 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!

Which Bafang CAN controller uses which processor?

stancecoke

Minor legend
Joined
Aug 2, 2017
Messages
3,492
Location
Bavaria, Germany
I wonder if there is an overview for modern Bafang CAN bus controllers already. I screened the firmware files in this library and have some controllers on my workbench, perhaps someone has more information?

MotorControllerProcessor
M200CRX210NXP FS32K142H
M300CRS10LC???
M400CRX10VC???
M400 ver 1.0CRX10BCNXP FS32K142H
M400 ver 2.0CRX10BCSTM32F10x (or clone?!)
M400 ver 2.1CRX10BCSTM32F10x (or clone?!)
M410 ver 2.0CRX10ZCHC32F460 KCTA
M420CRX10VNXP FS32K142H
M500CRX10NCNXP FS32K142H
M510MMG522CGD32F303RCT6
M560MMG5300CGD32F303RCT6
M600CRX10NCNXP FS32K142H
M620CRR10MCSTM32F10x (or clone?!)
M820CRX30PCGD32F303RCT6
Generic Hub motor controllerCRA101CGD32F303RCT6
Generic Hub motor controllerCRS10FNXP FS32K142H

For the M620 and M820 there are the links to STM32F10x standard peripheral library files in plain text in the firmware files, so I assume, this processor family will be used....
1767804557945.png
 
Last edited:
CRS10F HUB version 1.0 NXP S32K142H

M400 CRX10BC version 1.0 NXP S32K142H
M400 CRX10BC version 2.0 STM32F10x (according to bin)
M400 CRX10BC version 2.1 STM32F10x (according to bin)

The M400 Hw version 2.0 and 2.1 the STM 32F10x is mentioned in the bin file
in the same way as your code picture for the M620
 
The HC32F460 seems to be a quite similar to the GD32F303, same peripheral registers as the STM32F103, but faster and with FPU. I have no experience, if a GD32 firmware would run 1:1 on the HC32....

The open firmware should be portable to all this STM32F103 like derivates quite easily, if Bafang uses the same pin function on all processor variants...
 
Last edited:
I wonder if there is an overview for modern Bafang CAN bus controllers already. I screened the firmware files in this library and have some controllers on my workbench, perhaps someone has more information?

MotorControllerProcessor
M300CRS10LC???
M400CRX10VC???
M500CRX10NC???
M510MMG522CGD32F303RCT6
M560MMG5300CGD32F303RCT6
M600CRX10NCNXP FS32K142H
M620CRR10MCSTM32F10x (or clone?!)
M820CRX30PCSTM32F10x (or clone?!)
Generic Hub motor controllerCRA101CGD32F303RCT6

For the M620 and M820 there are the links to STM32F10x standard peripheral library files in plain text in the firmware files, so I assume, this processor family will be used....
View attachment 383051
What program do you use to open .bin the firmware files?
 
And how do I find exactly this desired parameter in the editor?
You should ask in this thread, this guys seem to have done the job...


But everything, that is settable by the BESST/Canable tool, will not be hardcoded in the firmware file, but stored in a virtual EEPROM at the end of the flash memory. If I change the max speed from 25 to 30 kph on my hub motor controller, I can see, that the memory changes in two bytes on page 120 (offset 0x03C000)

1768153814046.png

hex09C40BB8
dec25003000
 
Last edited:
I wonder if there is an overview for modern Bafang CAN bus controllers already. I screened the firmware files in this library and have some controllers on my workbench, perhaps someone has more information?

MotorControllerProcessor
M300CRS10LC???
M400CRX10VC???
M400 ver 1.0CRX10BCNXP FS32K142H
M400 ver 2.0CRX10BCSTM32F10x (or clone?!)
M400 ver 2.1CRX10BCSTM32F10x (or clone?!)
M410 ver 2.0CRX10ZCHC32F460 KCTA
M500CRX10NCNXP FS32K142H
M510MMG522CGD32F303RCT6
M560MMG5300CGD32F303RCT6
M600CRX10NCNXP FS32K142H
M620CRR10MCSTM32F10x (or clone?!)
M820CRX30PCGD32F303RCT6
Generic Hub motor controllerCRA101CGD32F303RCT6
Generic Hub motor controllerCRS10FNXP FS32K142H

For the M620 and M820 there are the links to STM32F10x standard peripheral library files in plain text in the firmware files, so I assume, this processor family will be used....
View attachment 383051
Bafang m420 processor FS32K142H ver. crx10v.350.FC 2.2
 

Attachments

  • IMG_20260131_164906.jpg
    IMG_20260131_164906.jpg
    2.9 MB · Views: 9
  • IMG_20260131_164831.jpg
    IMG_20260131_164831.jpg
    1.3 MB · Views: 9
Last edited:
For the M620 and M820 there are the links to STM32F10x standard peripheral library files in plain text in the firmware files, so I assume, this processor family will be used....
FW files for CRX- and MMG- motors appear to be scrambled or compressed. They do not have any string traces in plain text.
 
Back
Top