Bambulab Calibration Routine

Not even sure what it’s doing there exactly, but it surely looks advanced. Can we please have this in Klipper :slight_smile:

Klipper pioneered this technology for 3d printing. Bambu copied it. It’s called input shaping.

Bambulab is using an optical scanning method to create a height-map of the bed. According to their website it is a LIDAR technique but this seems to be some marketing mambo jambo.
From what I have heard a TOF sensor using a red and blue LED seems more realistic. Nevertheless looks quite cool. Cannot judge actual performance though but it is not related to input shaping.

From what I’ve read it scans the bed using whatever and also automates the pressure advance calibration, the printer prints test-pattern and then “looks” at them to determine PA values.

Also, the input shaping seems to be more advanced or it’s atleast doing more tests, not just the “brrr” with increasing frequency that Klipper does. The bed also seems to be taken into account somehow for that.

Or maybe it’s all bullshit and the marketing department told the engineers: “Hey, we need some sophisticated looking routine. Also, light is good, make it blue, blue is good!” :smiley:

Resonance compensation test seems too brief - this is probably just a confirmation of previous measurements.
Rest of the routine is bed leveling (uses nozzle and three piezzo sensors in bed) and extrusion calibration (LiDAR).

Pretty cool.

Another interesting bit is that Bambu Labs is not using stepper drivers, stepper signals are generated in software on MCU.

Another interesting bit is that Bambu Labs is not using stepper drivers, stepper signals are generated in software on MCU.

I hadn’t heard that before - is there somewhere that describes how they generate the microstepping values to the driver transistors?

I’m surprised that they can do that more cheaply (and just as well) than just using the commercially available driver chips.

I think biggest benefit from generating your own signals is access to real-time current sensing data. I only heard of it from one of the reviewers but it does look like it - if you take a look at photos of their controller board.

https://wiki.bambulab.com/en/x1/maintenance/replace-mc-board

I’m not sure what the benefit of “real-time current sensing data” is - you shouldn’t care except if there the machine is blocked or you’re using sensorless homing (but then there are the TMC options that provide both these capabilities).

I can’t find anything that’s concrete as to the reasons for doing this, just a couple of additional references:

Maybe this was done during Covid with various chips being unavailable, this was considered the safer choice. I really can’t think of any practical or financial reason why they would design their own drivers.

Time will tell. Not so sure if a “general purpose” MCU is a real benefit compared to a dedicated IC that has only one purpose

Thanks for the link. Spintrol MCU $1.5, full bridge $1.50, so about $7.5 for all drivers - much cheaper then Trinamic solution would be plus all components sourced locally.

Using custom software drivers they can use smaller faster steppers since they have realtime back EMF data (adds to cost savings and speed increase as they can drive close to stepper’s limits), lower microstepping positioning error and probably can detect issues with motion system. In the future they can upgrade it to closed loop for cheap.

Why is realtime back EMF important? I’ve done a number of stepper and brushless motor applications (not related to 3D printers) and in no case was monitoring back EMF required (or easy to do). As an engineer, I use my (Trinimac supplied and attached) spreadsheet to determine the worst case back EMF and go from there knowing what is the maximum turning speed I can get from the motor.

BEMF_Calc for NEMA 17.zip (60.3 KB)

As for getting better microstepping positioning, I have a hard time believing that they can do better than Trinamic, TI, Allegro, Samsung and other stepper motor driver suppliers.

I’m not sure what closed loop would buy them - it’s really not required for low-end 3D printing applications. I’d actually be surprised if high end applications required it. It’s really only required for applications where the mass being moved can change which leads to unexpected step movement losses that need to be accounted for.

As for cost, I’ve seen enough projects where a roll your own approach looks very appealing over existing products and then real-life sets in with unexpected extra effort, additional components, interfacing incompatibilities and new software requirements end up eating into any expected advantages.

Along with this, I see that customers are not delighted with the noise of the X1 which leads me to believe that their drivers are working on par with something like an A4988 which you can find for under a buck in quantities.

I’m sure there’s a fairly solid reason why they went with their own design but, based on my experience, I’m skeptical that they have something that is better and/or cheaper than what they could buy in existing silicon. If you ever hear the reason, please post as I’m interested in understanding why they would go that route.

The auto pressure advance would be cool if that could somehow be implemented. So much variation from filament to filament that we’re usually just accepting “good enough” unless crazy about tuning.