A1 vs P2S flow dynamics calibration — detailed comparison
Following up on your Reddit comment about comparing the flow calibration gcode between A1 and P2S. Here's what the diff looks like.
1. Different calibration commands: M983 (A1) vs M983.3 (P2S)
A1:
M983 F{outer_wall_volumetric_speed/2.4} A0.3 H[nozzle_diameter]
P2S:
M983.3 F{filament_max_volumetric_speed/2.4} A0.4
These are different commands. The A1 uses M983 with an explicit nozzle diameter parameter (H[nozzle_diameter]). The P2S uses M983.3 without it. They also use different volumetric speed references (outer_wall_volumetric_speed vs filament_max_volumetric_speed). These are likely different firmware implementations of pressure advance calibration tailored to each hardware platform.
2. A1 verifies calibration success and retries — P2S does not
A1:
M983 F{...} A0.3 H[nozzle_diameter]
; ... wipe sequence ...
M1002 judge_last_extrude_cali_success ; ← check if it worked
M622 J0
M983 F{...} A0.3 H[nozzle_diameter] ; ← retry if failed
; ... wipe sequence ...
M623
P2S:
M983.3 F{...} A0.4
M400
M106 P1 S255
M400 S5
M106 P1 S0
; done — no verification, no retry
The A1 uses M1002 judge_last_extrude_cali_success to check whether calibration succeeded and automatically retries if it didn't. The P2S has no such check — it runs the calibration once and moves on regardless of result.
3. A1 has an additional M984 pass — absent on P2S
After the main calibration + optional retry, the A1 runs:
M984 A0.1 E1 S1 F{outer_wall_volumetric_speed/2.4} H[nozzle_diameter]
followed by another wipe sequence. This command is completely absent from the P2S gcode. Context suggests it's a fine-tuning or validation pass after the main M983 calibration.
4. A1 pre-extrudes before calibrating — P2S does not
A1:
G1 E10 F{outer_wall_volumetric_speed/2.4*60} ; ← prime extruder first
M983 F{...}
P2S:
M983.3 F{...} ; ← straight into calibration
The A1 extrudes 10mm of filament before running the calibration command, ensuring the filament path is primed and under consistent pressure. The P2S skips this step.
5. A1 has a visual calibration test line — P2S does not
Near the end of the A1 gcode there's an extrude_cali_test section that prints alternating fast/slow segments on the bed for visual inspection. The P2S has no equivalent — calibration results are invisible to the user.
Summary
| Feature |
A1 |
P2S |
| Calibration command |
M983 + H param |
M983.3 no H |
| Speed reference |
outer_wall_volumetric_speed |
filament_max_volumetric_speed |
| Pre-extrusion before cali |
✅ |
❌ |
| Verify result |
✅ judge_last_extrude_cali_success |
❌ |
| Auto-retry on failure |
✅ |
❌ |
Fine-tuning pass M984 |
✅ |
❌ |
| Visual test line on bed |
✅ |
❌ |
The P2S gets a simplified, single-pass calibration with no verification or retry. Given that the P2S is positioned above the A1 in the lineup and costs more, this looks like an oversight rather than an intentional tradeoff — especially since the hardware platform (load cells, toolhead sensors) should support the more robust A1-style flow. Worth raising with Bambu.
A1 vs P2S flow dynamics calibration — detailed comparison
Following up on your Reddit comment about comparing the flow calibration gcode between A1 and P2S. Here's what the diff looks like.
1. Different calibration commands:
M983(A1) vsM983.3(P2S)A1:
P2S:
These are different commands. The A1 uses
M983with an explicit nozzle diameter parameter (H[nozzle_diameter]). The P2S usesM983.3without it. They also use different volumetric speed references (outer_wall_volumetric_speedvsfilament_max_volumetric_speed). These are likely different firmware implementations of pressure advance calibration tailored to each hardware platform.2. A1 verifies calibration success and retries — P2S does not
A1:
P2S:
The A1 uses
M1002 judge_last_extrude_cali_successto check whether calibration succeeded and automatically retries if it didn't. The P2S has no such check — it runs the calibration once and moves on regardless of result.3. A1 has an additional
M984pass — absent on P2SAfter the main calibration + optional retry, the A1 runs:
followed by another wipe sequence. This command is completely absent from the P2S gcode. Context suggests it's a fine-tuning or validation pass after the main
M983calibration.4. A1 pre-extrudes before calibrating — P2S does not
A1:
P2S:
The A1 extrudes 10mm of filament before running the calibration command, ensuring the filament path is primed and under consistent pressure. The P2S skips this step.
5. A1 has a visual calibration test line — P2S does not
Near the end of the A1 gcode there's an
extrude_cali_testsection that prints alternating fast/slow segments on the bed for visual inspection. The P2S has no equivalent — calibration results are invisible to the user.Summary
M983+HparamM983.3noHouter_wall_volumetric_speedfilament_max_volumetric_speedjudge_last_extrude_cali_successM984The P2S gets a simplified, single-pass calibration with no verification or retry. Given that the P2S is positioned above the A1 in the lineup and costs more, this looks like an oversight rather than an intentional tradeoff — especially since the hardware platform (load cells, toolhead sensors) should support the more robust A1-style flow. Worth raising with Bambu.