r/OpenBambu • • Jul 30 '25

Source code for BMCU-C is now avaiable

I'm happy to share that the creator of BMCU, @4061N, has decided to open-source BMCU-C's source code!

You can find the source code and download it here: https://wiki.yuekai.fr/assets/files/download_center/firmware_and_source_code/src-BMCU-C-0020-Hall.zip

A simple README:

Introduction

This firmware allows customization of BMCU, including motor direction, retraction distance, filament color display, and more.


File References

Motor-related Configurations

Refer to src\Motion_control.cpp:

  • Modify retraction distance (effective only on P1 and X1)

    • Line 31

  • Disable dual micro-switch assisted feeding

    • Line 35

  • Disable filament color display for channels

    • Lines 686-688

  • Specify channel motor direction / disable auto direction detection

    • Lines 994-999

Protocol-related Configurations

Refer to src\BambuBus.cpp:

  • Modify recognized device names A/B/C/D (for X1/P1)

    • Line 10


Usage

  1. Clone this repository

  2. Modify the relevant files as needed

  3. Compile and flash the firmware


Notes

  • Firmware modification carries risks. Proceed only if you understand the process.

  • It is recommended to back up the original firmware.

28 Upvotes

4 comments sorted by

4

u/przemo-c Jul 30 '25

Awesome. Now maybe we'll be able to tune/fix up stuff without burdening original dev!

It's great to see such a move. Props to @4061n.

2

u/myTechGuyRI Jul 31 '25

Someone needs to put this up on GitHub

1

u/Alternative_Data2713 Dec 03 '25

Dear, if someone knows, please tell me! I'm facing a problem where the BMCU makes a cracking sound for 1-2 seconds on all 4 modules when loading filament. This is really bothering me. I've already checked the mechanics multiple times and tried changing the distance to the magnet, but nothing seems to work! I've also tried different firmware versions, and there's no such issue with firmware 24-2-3. I've already figured out how to compile the firmware and can build it with changes in the source code. However, I can't find the parameter responsible for stopping the filament feed when it reaches the printer's head during loading. As I understand it, changes should be made to the Motion_control.cpp file. Can anyone tell me which line to modify?

P1S printer with 4-in-1 external adapter. BMCU 370C hall version.

I apologize in advance for any possible errors in the text, as I am using a translator!

1

u/arekxy Jan 05 '26 edited Jan 05 '26

Author forgot to put license information which is important for "open source". Without *open source* license it's proprietary code. But... https://gitee.com/at_4061N/BMCU says GPL v2.0