# Configuration file downlaod button

**URL:** <https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530>\
**Category:** Feature Requests\
**Created:** [12 February 2023 16:45 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530 "2023-02-12T16:45:50Z")\
**Posts on this page:** 15\
**Page:** 2

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [28 December 2024 02:37 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/21 "2024-12-28T02:37:53Z")

</div>

“you can throw the json file into the Marlin source code directory and it’ll automatically import it into the build”

Can you be more specific about where to place the file and explain in a little more detail about how to use the json file?

If I “throw” the json file in either Marlin or marlin/src it make no difference to the build.

Do we still need the configuration/adv.h files at all? Where is the use of a json file documented?

Thanks.

---

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [28 December 2024 04:09 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/22 "2024-12-28T04:09:00Z")

</div>

I found ConfigEmbedding.md in /docs.

However when I run the command “python buildroot/share/PlatformIO/scripts/mc-apply.py” with the json file in the Marlin root dir or in /src it says “No marlin\_config.json found.” So why cant it find it?

The rather short instructions in ConfigEmbedding would seem to say that it is NOT automatically imported into the build. In fact the mc-apply.py actually goes and modifies the two configuration.h files. This would be good but it doesn’t work.

Can you please explain in detail how to do this? @CRCinAU

---

<div class="post-metadata">

**Author:** ![CRCinAU](https://marlin.crc.id.au/forum/user_avatar/marlin.crc.id.au/crcinau/32/1337_2.png) [@CRCinAU](https://marlin.crc.id.au/forum/u/CRCinAU)\
**Post date:** [28 December 2024 06:25 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/23 "2024-12-28T06:25:47Z")

</div>

I’ve never actually used this functionality before - personally, I just use the custom builder on my site for my own firmware.

A few things I would check though:

1. Make sure you’re on the `bugfix-2.1.x` branch; and
2. Check which directory you have the json file in.

Looking at the code here:

> <https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.1.x/buildroot/share/PlatformIO/scripts/mc-apply.py>

It seems that the `marlin_config.json` file looked for in the current directory. As such, you probably have to call the script as its full path + filename from the root of the checked out git repo.

It also looks for `Marlin/Configuration.h` and `Marlin/Configuration_adv.h` as well, so they’re also relative paths to the root of the git repo.

---

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [28 December 2024 19:48 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/24 "2024-12-28T19:48:03Z")

</div>

Sigh more nightmares trying to make this work. As explained Ive tried the json in both the root and /src. It doesn’t find it. I dont know how to specify the parameters so that it does find it or why its not finding it in the two obvious locations.

Remember this is all so folks can use the dailies as a starting point.

Ive tried the custom builder. Its good, but if you haven’t used it before its very difficult to get a good result from a blank start. And this circles me back to how to get the config from the dailies and then tweak what we want - theres apparently no (simple) way to do this? Folks have been asking and asking and all we get are throw away comments about how it might be done.

What we really need @CRCinAU is some documentation explaining exactly how to do this. Or it would be awesome if the custom builder would allow selection of the dailies config as a starting point.

Can you help us understand what it is about the daily configs that makes them so difficult to reuse in anything other than the daily builds? Somewhere there must be either header files, config.ini or marlin\_config.json for each daily machine build?

---

<div class="post-metadata">

**Author:** ![CRCinAU](https://marlin.crc.id.au/forum/user_avatar/marlin.crc.id.au/crcinau/32/1337_2.png) [@CRCinAU](https://marlin.crc.id.au/forum/u/CRCinAU)\
**Post date:** [29 December 2024 07:14 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/25 "2024-12-29T07:14:58Z")

</div>

Hmmm - you’re right - it doesn’t seem to work.

Lets get it fixed for everyone in the Marlin ecosystem:

> <https://github.com/MarlinFirmware/Marlin/issues/27612>
>
> \### Did you test the latest \`bugfix-2.1.x\` code?
> 
> Yes, and the problem still exi…sts.
> 
> \### Bug Description
> 
> If \`CONFIGURATION\_EMBEDDING\` is enabled, the \`M503 C\` command will write \`MC.ZIP\` to the printers SD card with the compile time settings used.
> 
> According to \`docs/ConfigEmbedding.md\`, the following should be used to then apply that config template back to the .h files:
> \`\`\`
> $ git checkout -f
> $ unzip mc.zip
> $ python buildroot/share/PlatformIO/scripts/mc-apply.py
> \`\`\`
> 
> When attempting this, the script always returns:
> \`\`\`
> $ python3 ../buildroot/share/PlatformIO/scripts/mc-apply.py 
> No marlin\_config.json found.
> \`\`\`
> 
> Removing the main \`try\` / \`except\` block, I get:
> \`\`\`
> $ python3 buildroot/share/PlatformIO/scripts/mc-apply.py 
> Traceback (most recent call last):
> File "/home/netwiz/git/Marlin/buildroot/share/PlatformIO/scripts/mc-apply.py", line 22, in \<module\>
> for k, v in sorted(conf\[key\].items()):
> ^^^^^^^^^^^^^^^
> AttributeError: 'str' object has no attribute 'items'
> \`\`\`
> 
> When adding a debug to see what \`key\` contains, I see:
> \`\`\`
> $ python3 buildroot/share/PlatformIO/scripts/mc-apply.py 
> Key: Z\_SAFE\_HOMING\_X\_POINT
> Traceback (most recent call last):
> File "/home/netwiz/git/Marlin/buildroot/share/PlatformIO/scripts/mc-apply.py", line 23, in \<module\>
> for k, v in sorted(conf\[key\].items()):
> ^^^^^^^^^^^^^^^
> AttributeError: 'str' object has no attribute 'items'
> \`\`\`
> 
> As a result, no configuration files are modified and the \`marlin\_config.json\` file cannot be folded back into the configuration.
> 
> \### Bug Timeline
> 
> Likely a while.
> 
> \### Expected behavior
> 
> The script should restore config settings from \`marlin\_config.json\` to the related .h files.
> 
> \### Actual behavior
> 
> Error in output.
> 
> \### Steps to Reproduce
> 
> See main description.
> 
> \### Version of Marlin Firmware
> 
> bugfix-2.1.x
> 
> \### Printer model
> 
> \_No response\_
> 
> \### Electronics
> 
> \_No response\_
> 
> \### LCD/Controller
> 
> \_No response\_
> 
> \### Other add-ons
> 
> \_No response\_
> 
> \### Bed Leveling
> 
> None
> 
> \### Your Slicer
> 
> None
> 
> \### Host Software
> 
> None
> 
> \### Don't forget to include
> 
> \- \[X\] A ZIP file containing your \`Configuration.h\` and \`Configuration\_adv.h\`.
> 
> \### Additional information & file uploads
> 
> Added example \`marlin\_config.json\` as per output of \`M503 C\`.
> \[marlin\_config.json\](https://github.com/user-attachments/files/18268788/marlin\_config.json)

---

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [30 December 2024 17:17 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/26 "2024-12-30T17:17:57Z")

</div>

Thank you! This would be a really good fix for everyone 😍

---

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [29 June 2025 23:04 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/27 "2025-06-29T23:04:21Z")

</div>

Im revisiting this but hit by more frustration.

mc-apply got fixed but the M503 C output from a printer running a binary for mfs is in a different format to that expected by mc-apply.

Is this ever going to be possible?

---

<div class="post-metadata">

**Author:** ![CRCinAU](https://marlin.crc.id.au/forum/user_avatar/marlin.crc.id.au/crcinau/32/1337_2.png) [@CRCinAU](https://marlin.crc.id.au/forum/u/CRCinAU)\
**Post date:** [30 June 2025 07:20 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/28 "2025-06-30T07:20:15Z")

</div>

> [@Ferrograph](#):
>
> mc-apply got fixed but the M503 C output from a printer running a binary for mfs is in a different format to that expected by mc-apply.

Is your firmware from a build _after_ all these fixes got merged?

---

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [30 June 2025 08:37 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/29 "2025-06-30T08:37:53Z")

</div>

Yes the very recent pre-built from your website (Ender3-v4.2.7-BLTouch-20250629.bin), and code base “bugfix 2.1.x”, and I can see the mc-apply fixes in the timeline and also inspecting mc-apply.py itself I see the changes and can see its looking for a flat format json.

---

<div class="post-metadata">

**Author:** ![CRCinAU](https://marlin.crc.id.au/forum/user_avatar/marlin.crc.id.au/crcinau/32/1337_2.png) [@CRCinAU](https://marlin.crc.id.au/forum/u/CRCinAU)\
**Post date:** [1 July 2025 06:06 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/30 "2025-07-01T06:06:17Z")

</div>

Ok - I started to revisit the history of this to try and remember what went down - as I thought at the time that this should still be fixed.

If you do the `M503 C` from that firmware, what files come out?

I say this, as in the github report mentioned here, the build date is _very_ old:

> <https://github.com/MarlinFirmware/Marlin/pull/27628#issuecomment-3016156866>
>
> I still cant this to work.
> 
> \`S D:\\Working\\PROJECTS\\Marlin\\Code\> python buildro…ot/share/PlatformIO/scripts/mc-apply.py ./Marlin/E3422blt\_mfws\_config.json
> DETAILED\_BUILD\_VERSION: "bugfix-2.1.x-mfs"
> GIT\_REF: 4eb8a87
> STRING\_DISTRIBUTION\_DATE: "2024-12-27"
> Traceback (most recent call last):
> File "D:\\Working\\PROJECTS\\Marlin\\Code\\buildroot\\share\\PlatformIO\\scripts\\mc-apply.py", line 100, in \<module\>
> main()
> File "D:\\Working\\PROJECTS\\Marlin\\Code\\buildroot\\share\\PlatformIO\\scripts\\mc-apply.py", line 97, in main
> apply\_config(conf)
> File "D:\\Working\\PROJECTS\\Marlin\\Code\\buildroot\\share\\PlatformIO\\scripts\\mc-apply.py", line 70, in apply\_config
> back\_up\_config(key)
> File "D:\\Working\\PROJECTS\\Marlin\\Code\\buildroot\\share\\PlatformIO\\scripts\\mc-apply.py", line 52, in back\_up\_config
> with open(conf\_path, 'r', encoding='utf-8') as f:
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> FileNotFoundError: \[Errno 2\] No such file or directory: 'Marlin/Z\_SAFE\_HOMING\_X\_POINT'
> PS D:\\Working\\PROJECTS\\Marlin\\Code\>\`
> 
> Very strange error. Looks like it did actually find and open the file so thats progress, but bombs out at the first KV pair entry.
> 
> Unless Im doing something wrong?

That’s likely before any of this stuff stabilised. My logs say that in theory, it should work in builds _after_ Jan 8th, 2025.

Make sure you’re not using an old export - and feel free to attach the resulting export here for reference.

I thought all of this got fixed, but am happy if we discover otherwise…

---

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [1 July 2025 08:48 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/31 "2025-07-01T08:48:43Z")

</div>

Thanks for looking into this.

To be clear Im using latest bugfix-2.1.x code base. Im not sure where “2.2” came from.

Initially I tried mc-apply with an old export that had the flat file format and it choked because there was no header file names in the export json. So I updated a printer to your latest nightly build, and that produced an export with header file names, but additional category sections. So while mc-apply didn’t choke it did not update any config items. (It did make bak copies of the two headers though)

So it seems with mfs binaries M503 C is using a different export format - with the additional categories (which was mentioned in the mc-apply bug thread) - which honestly I prefer from a human readable point of view but it doesnt work with latest fixed mc-apply.

Also PlatformIO talks about being able to use the export file directly as config.ini but again the format is completely different. config.ini is ini format not json.

I read through endless documentation. Clearly something amiss or Im just being dumb and have missed some important step. I know there are two other scripts configuration.py and config.py. Its not clear what these are for.

As Ive mentioned Ive been trying to make this work for over a year now. Understandably frustration levels are high.

---

<div class="post-metadata">

**Author:** ![CRCinAU](https://marlin.crc.id.au/forum/user_avatar/marlin.crc.id.au/crcinau/32/1337_2.png) [@CRCinAU](https://marlin.crc.id.au/forum/u/CRCinAU)\
**Post date:** [1 July 2025 13:04 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/32 "2025-07-01T13:04:48Z")

</div>

The config is embedded with `CONFIG_EXPORT 1` - so in theory, that should match what the `mc-apply` script is expecting.

Can you attach the ZIP or json output of `M503 C` from a firmware that is recent to this ticket? I just want to verify what you are getting.

Sadly, the config embedding part is very poorly documented in Marlin - so it will take a bit of working through to see what is / should / could be happening.

---

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [1 July 2025 13:25 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/33 "2025-07-01T13:25:46Z")

</div>

Here you go: (sorry I could attach as a file due to forum limitation)

{  
“Configuration.h”: {  
“homing”: {  
“Z\_SAFE\_HOMING\_X\_POINT”: “X\_CENTER”,  
“VALIDATE\_HOMING\_ENDSTOPS”: “”,  
“HOME\_AFTER\_DEACTIVATE”: “”,  
“Z\_SAFE\_HOMING\_POINT\_ABSOLUTE”: “”,  
“Z\_HOME\_DIR”: “-1”,  
“Z\_SAFE\_HOMING\_Y\_POINT”: “Y\_CENTER”,  
“Y\_HOME\_DIR”: “-1”,  
“HOMING\_FEEDRATE\_MM\_M”: “{ (50_60), (50_60), (12_60) }",  
“Z\_SAFE\_HOMING”: “”,  
“X\_HOME\_DIR”: “-1”  
},  
“stepper drivers”: {  
“Y\_DRIVER\_TYPE”: “TMC2208\_STANDALONE”,  
“E0\_DRIVER\_TYPE”: “TMC2208\_STANDALONE”,  
“E\_ENABLE\_ON”: “LOW”,  
“X\_DRIVER\_TYPE”: “TMC2208\_STANDALONE”,  
“Z\_ENABLE\_ON”: “LOW”,  
“Y\_ENABLE\_ON”: “LOW”,  
“Z\_DRIVER\_TYPE”: “TMC2208\_STANDALONE”,  
“X\_ENABLE\_ON”: “LOW”  
},  
“temperature”: {  
“PREHEAT\_1\_LABEL”: “"PLA"”,  
“TEMP\_WINDOW”: “1”,  
“PREHEAT\_1\_TEMP\_HOTEND”: “200”,  
“TEMP\_SENSOR\_0”: “1”,  
“TEMP\_SENSOR\_BED”: “1”,  
“TEMP\_BED\_WINDOW”: “1”,  
“HEATER\_0\_MINTEMP”: “5”,  
“TEMP\_BED\_HYSTERESIS”: “3”,  
“HOTEND\_OVERSHOOT”: “15”,  
“TEMP\_BED\_RESIDENCY\_TIME”: “10”,  
“TEMP\_HYSTERESIS”: “3”,  
“PREHEAT\_2\_LABEL”: “"ABS"”,  
“PREHEAT\_2\_TEMP\_BED”: “70”,  
“HEATER\_0\_MAXTEMP”: “275”,  
“PREHEAT\_1\_FAN\_SPEED”: “255”,  
“PREHEAT\_2\_FAN\_SPEED”: “255”,  
“BED\_MINTEMP”: “5”,  
“TEMP\_RESIDENCY\_TIME”: “10”,  
“PREHEAT\_1\_TEMP\_BED”: “60”,  
“BED\_OVERSHOOT”: “10”,  
“PREHEAT\_2\_TEMP\_HOTEND”: “240”,  
“BED\_MAXTEMP”: “125”  
},  
“safety”: {  
“EXTRUDE\_MAXLENGTH”: “500”,  
“THERMAL\_PROTECTION\_BED”: “”,  
“THERMAL\_PROTECTION\_HOTENDS”: “”,  
“PREVENT\_LENGTHY\_EXTRUDE”: “”,  
“PREVENT\_COLD\_EXTRUSION”: “”,  
“EXTRUDE\_MINTEMP”: “170”  
},  
“eeprom”: {  
“EEPROM\_SETTINGS”: “”,  
“EEPROM\_BOOT\_SILENT”: “”,  
“EEPROM\_CHITCHAT”: “”  
},  
“probes”: {  
“Z\_PROBE\_FEEDRATE\_SLOW”: “(Z\_PROBE\_FEEDRATE\_FAST / 4)”,  
“NOZZLE\_TO\_PROBE\_OFFSET”: “{ -45, -7, 0 }”,  
“Z\_MIN\_PROBE\_REPEATABILITY\_TEST”: “”,  
“XY\_PROBE\_FEEDRATE”: "(200_60)”,  
“PROBING\_MARGIN”: “15”,  
“USE\_PROBE\_FOR\_Z\_HOMING”: “”,  
“Z\_PROBE\_FEEDRATE\_FAST”: “(12_60)",  
“Z\_PROBE\_ERROR\_TOLERANCE”: “3”,  
“Z\_CLEARANCE\_DEPLOY\_PROBE”: “10”,  
“Z\_PROBE\_LOW\_POINT”: “-5”,  
“Z\_CLEARANCE\_BETWEEN\_PROBES”: “5”,  
“BLTOUCH”: “”  
},  
“calibrate”: {  
“SEGMENT\_LEVELED\_MOVES”: “”,  
“GRID\_MAX\_POINTS\_Y”: “GRID\_MAX\_POINTS\_X”,  
“ENABLE\_LEVELING\_FADE\_HEIGHT”: “”,  
“DEFAULT\_LEVELING\_FADE\_HEIGHT”: “10.0”,  
“GRID\_MAX\_POINTS\_X”: “5”,  
“LEVELED\_SEGMENT\_LENGTH”: “5.0”,  
“AUTO\_BED\_LEVELING\_BILINEAR”: “”,  
“ENABLE\_LEVELING\_AFTER\_G28”: “”  
},  
“bed temp”: {  
“DEFAULT\_bedKi”: “0.023”,  
“PIDTEMPBED”: “”,  
“DEFAULT\_bedKp”: “10.00”,  
“DEFAULT\_bedKd”: “305.4”,  
“MAX\_BED\_POWER”: “255”  
},  
“fans”: {  
“FAN\_SOFT\_PWM”: “”  
},  
“geometry”: {  
“Z\_MAX\_POS”: “250”,  
“X\_MIN\_POS”: “0”,  
“X\_BED\_SIZE”: “235”,  
“MAX\_SOFTWARE\_ENDSTOPS”: “”,  
“MAX\_SOFTWARE\_ENDSTOP\_X”: “”,  
“MAX\_SOFTWARE\_ENDSTOP\_Y”: “”,  
“MAX\_SOFTWARE\_ENDSTOP\_Z”: “”,  
“Y\_MAX\_POS”: “Y\_BED\_SIZE”,  
“Z\_MIN\_POS”: “0”,  
“X\_MAX\_POS”: “X\_BED\_SIZE”,  
“MIN\_SOFTWARE\_ENDSTOP\_X”: “”,  
“MIN\_SOFTWARE\_ENDSTOP\_Y”: “”,  
“Y\_MIN\_POS”: “0”,  
“MIN\_SOFTWARE\_ENDSTOPS”: “”,  
“MIN\_SOFTWARE\_ENDSTOP\_Z”: “”,  
“Y\_BED\_SIZE”: “235”  
},  
“machine”: {  
“MOTHERBOARD”: “BOARD\_CREALITY\_V427”  
},  
“motion”: {  
“DEFAULT\_TRAVEL\_ACCELERATION”: “500”,  
“DEFAULT\_RETRACT\_ACCELERATION”: “500”,  
“DEFAULT\_ZJERK”: “0.3”,  
“INVERT\_Y\_DIR”: “false”,  
“DEFAULT\_YJERK”: “10.0”,  
“INVERT\_X\_DIR”: “false”,  
“DEFAULT\_XJERK”: “10.0”,  
“DEFAULT\_MAX\_FEEDRATE”: “{ 500, 500, 20, 50 }”,  
“EDITABLE\_STEPS\_PER\_UNIT”: “”,  
“DEFAULT\_AXIS\_STEPS\_PER\_UNIT”: “{ 80, 80, 400, 93 }”,  
“DEFAULT\_MAX\_ACCELERATION”: “{ 500, 500, 100, 5000 }”,  
“CLASSIC\_JERK”: “”,  
“DEFAULT\_EJERK”: “15.0”,  
“DEFAULT\_ACCELERATION”: “500”,  
“INVERT\_Z\_DIR”: “true”  
},  
“lcd”: {  
“RET6\_12864\_LCD”: “”,  
“CR10\_STOCKDISPLAY”: “”  
},  
“filament runout sensors”: {  
“FIL\_RUNOUT\_ENABLED\_DEFAULT”: “false”,  
“FILAMENT\_MOTION\_SENSOR”: “”,  
“FIL\_RUNOUT\_PULLUP”: “”,  
“FILAMENT\_RUNOUT\_SCRIPT”: “"M600"”,  
“FILAMENT\_RUNOUT\_DISTANCE\_MM”: “8”,  
“FILAMENT\_RUNOUT\_SENSOR”: “”,  
“NUM\_RUNOUT\_SENSORS”: “1”,  
“FIL\_RUNOUT\_STATE”: “LOW”  
},  
“stats”: {  
“PRINTCOUNTER\_SAVE\_INTERVAL”: “60”,  
“PRINTCOUNTER”: “”  
},  
“host”: {  
“HOST\_KEEPALIVE\_FEATURE”: “”,  
“PRINTJOB\_TIMER\_AUTOSTART”: “”,  
“DEFAULT\_KEEPALIVE\_INTERVAL”: “2”,  
“BUSY\_WHILE\_HEATING”: “”  
},  
“servos”: {  
“SERVO\_DELAY”: “{ 50 }”,  
“FORCE\_CONFIG\_EMBED”: “”,  
“WEBSITE\_URL”: “"marlin.crc.id.au"”,  
“NO\_CONFIGURATION\_EMBEDDING\_WARNING”: “”,  
“CORP\_WEBSITE\_C”: “WEBSITE\_URL”,  
“CORP\_WEBSITE\_E”: “WEBSITE\_URL”,  
“STRING\_DISTRIBUTION\_DATE”: “"2025-06-29"”,  
“DETAILED\_BUILD\_VERSION”: “"bugfix-2.1.x-mfs"”  
},  
“extruder”: {  
“INVERT\_E0\_DIR”: “false”,  
“EXTRUDERS”: “1”,  
“DEFAULT\_NOMINAL\_FILAMENT\_DIA”: “1.75”  
},  
“info”: {  
“STRING\_CONFIG\_H\_AUTHOR”: “"marlin.crc.id.au"”  
},  
“interface”: {  
“LCD\_LANGUAGE”: “en”,  
“SPEAKER”: “”  
},  
“media”: {  
“SDSUPPORT”: “”  
},  
“pid temp”: {  
“PID\_FUNCTIONAL\_RANGE”: “20”,  
“PID\_EDIT\_MENU”: “”,  
“PID\_AUTOTUNE\_MENU”: “”  
},  
“hotend temp”: {  
“DEFAULT\_Kd”: “76.55”,  
“DEFAULT\_Ki”: “1.54”,  
“DEFAULT\_Kp”: “21.73”,  
“PID\_K1”: “0.95”,  
“PIDTEMP”: “”,  
“PID\_MAX”: “255”  
},  
“serial”: {  
“CUSTOM\_MACHINE\_NAME”: “"Ender-3 4.2.7"”,  
“SERIAL\_PORT”: “1”,  
“BAUDRATE”: “115200”  
},  
“nozzle park”: {  
“NOZZLE\_PARK\_MOVE”: “0”,  
“NOZZLE\_PARK\_FEATURE”: “”,  
“NOZZLE\_PARK\_Z\_RAISE\_MIN”: “2”,  
“NOZZLE\_PARK\_XY\_FEEDRATE”: “100”,  
“NOZZLE\_PARK\_POINT”: “{ (X\_MIN\_POS + 10), (Y\_MAX\_POS - 10), 20 }”,  
“NOZZLE\_PARK\_Z\_FEEDRATE”: “5”  
},  
“endstops”: {  
“ENDSTOPPULLUPS”: “”,  
“X\_MIN\_ENDSTOP\_HIT\_STATE”: “HIGH”,  
“Y\_MIN\_ENDSTOP\_HIT\_STATE”: “HIGH”,  
“Z\_MIN\_PROBE\_ENDSTOP\_HIT\_STATE”: “HIGH”  
}  
},  
“Configuration\_adv.h”: {  
“lcd”: {  
“SPEED\_EDIT\_MAX”: “999”,  
“PROBE\_DEPLOY\_STOW\_MENU”: “”,  
“SPEED\_EDIT\_MIN”: “10”,  
“M73\_REPORT”: “”,  
“DOUBLECLICK\_MAX\_INTERVAL”: “1250”,  
“PROBE\_OFFSET\_WIZARD”: “”,  
“SOUND\_ON\_DEFAULT”: “”,  
“SHOW\_CUSTOM\_BOOTSCREEN”: “”,  
“BABYSTEP\_MULTIPLICATOR\_Z”: “1”,  
“FINE\_MANUAL\_MOVE”: “0.025”,  
“SD\_PROCEDURE\_DEPTH”: “1”,  
“ULTIPANEL\_FEEDMULTIPLY”: “”,  
“STATUS\_MESSAGE\_SCROLLING”: “”,  
“SHOW\_REMAINING\_TIME”: “”,  
“SET\_REMAINING\_TIME”: “”,  
“MENU\_HOLLOW\_FRAME”: “”,  
“SET\_PROGRESS\_MANUALLY”: “”,  
“BABYSTEPPING”: “”,  
“FLOW\_EDIT\_MAX”: “999”,  
“BABYSTEP\_ZPROBE\_OFFSET”: “”,  
“STATUS\_CHAMBER\_ANIM”: “”,  
“CONFIGURATION\_EMBEDDING”: “”,  
“FLOW\_EDIT\_MIN”: “10”,  
“SCROLL\_LONG\_FILENAMES”: “”,  
“BOOT\_MARLIN\_LOGO\_SMALL”: “”,  
“STATUS\_HOTEND\_INVERTED”: “”,  
“M73\_REPORT\_SD\_ONLY”: “”,  
“SHOW\_BOOTSCREEN”: “”,  
“SHOW\_ELAPSED\_TIME”: “”,  
“MANUAL\_FEEDRATE”: "{ 50_60, 50_60, 4_60, 2_60 }",  
“PROBE\_OFFSET\_WIZARD\_START\_Z”: “-4.0”,  
“CUSTOM\_STATUS\_SCREEN\_IMAGE”: “”,  
“ENCODER\_RATE\_MULTIPLIER”: “”,  
“DOUBLECLICK\_FOR\_Z\_BABYSTEPPING”: “”,  
“BABYSTEP\_MULTIPLICATOR\_XY”: “16”,  
“ENCODER\_10X\_STEPS\_PER\_SEC”: “30”,  
“MANUAL\_MOVE\_DISTANCE\_MM”: “10, 1.0, 0.1”,  
“MANUAL\_E\_MOVES\_RELATIVE”: “”,  
“XYZ\_HOLLOW\_FRAME”: “”,  
“STATUS\_BED\_ANIM”: “”,  
“PROBE\_OFFSET\_WIZARD\_XY\_POS”: “{ X\_CENTER, Y\_CENTER }”,  
“SD\_FINISHED\_STEPPERRELEASE”: “true”,  
“SD\_FINISHED\_RELEASECOMMAND”: “"M84"”,  
“LCD\_INFO\_MENU”: “”,  
“BOOTSCREEN\_TIMEOUT”: “3000”,  
“SET\_PROGRESS\_PERCENT”: “”,  
“SD\_MENU\_CONFIRM\_START”: “”,  
“SHOW\_PROGRESS\_PERCENT”: “”,  
“STATUS\_HOTEND\_ANIM”: “”,  
“EVENT\_GCODE\_SD\_ABORT”: “"G28XY"”,  
“ENCODER\_100X\_STEPS\_PER\_SEC”: “80”,  
“SDCARD\_RATHERRECENTFIRST”: “”  
},  
“gcode”: {  
“FWRETRACT”: “”,  
“RETRACT\_FEEDRATE”: “80”,  
“MEATPACK\_ON\_SERIAL\_PORT\_1”: “”,  
“RETRACT\_RECOVER\_FEEDRATE\_SWAP”: “8”,  
“RETRACT\_LENGTH\_SWAP”: “13”,  
“MAX\_AUTORETRACT”: “99”,  
“BLOCK\_BUFFER\_SIZE”: “16”,  
“RETRACT\_RECOVER\_FEEDRATE”: “80”,  
“RETRACT\_RECOVER\_LENGTH”: “0”,  
“RETRACT\_ZRAISE”: “0.3”,  
“FASTER\_GCODE\_PARSER”: “”,  
“RETRACT\_LENGTH”: “3”,  
“RETRACT\_RECOVER\_LENGTH\_SWAP”: “0”,  
“DEBUG\_FLAGS\_GCODE”: “”  
},  
“advanced pause”: {  
“FILAMENT\_CHANGE\_SLOW\_LOAD\_FEEDRATE”: “6”,  
“PAUSE\_PARK\_RETRACT\_LENGTH”: “2”,  
“FILAMENT\_UNLOAD\_PURGE\_RETRACT”: “13”,  
“FILAMENT\_CHANGE\_FAST\_LOAD\_LENGTH”: “415”,  
“FILAMENT\_UNLOAD\_PURGE\_FEEDRATE”: “25”,  
“FILAMENT\_CHANGE\_UNLOAD\_FEEDRATE”: “25”,  
“ADVANCED\_PAUSE\_FEATURE”: “”,  
“ADVANCED\_PAUSE\_PURGE\_LENGTH”: “10”,  
“PAUSE\_PARK\_NOZZLE\_TIMEOUT”: “45”,  
“ADVANCED\_PAUSE\_PURGE\_FEEDRATE”: “3”,  
“FILAMENT\_CHANGE\_UNLOAD\_LENGTH”: “450”,  
“PAUSE\_PARK\_RETRACT\_FEEDRATE”: “60”,  
“FILAMENT\_CHANGE\_FAST\_LOAD\_ACCEL”: “25”,  
“PAUSE\_PARK\_NO\_STEPPER\_TIMEOUT”: “”,  
“PARK\_HEAD\_ON\_PAUSE”: “”,  
“FILAMENT\_CHANGE\_ALERT\_BEEPS”: “10”,  
“CONFIGURE\_FILAMENT\_CHANGE”: “”,  
“FILAMENT\_LOAD\_UNLOAD\_GCODES”: “”,  
“FILAMENT\_CHANGE\_SLOW\_LOAD\_LENGTH”: “0”,  
“FILAMENT\_UNLOAD\_PURGE\_LENGTH”: “8”,  
“ADVANCED\_PAUSE\_RESUME\_PRIME”: “0”,  
“FILAMENT\_CHANGE\_FAST\_LOAD\_FEEDRATE”: “50”,  
“FILAMENT\_CHANGE\_UNLOAD\_ACCEL”: “25”,  
“FILAMENT\_UNLOAD\_PURGE\_DELAY”: “5000”  
},  
“calibrate”: {  
“ASSISTED\_TRAMMING\_WAIT\_POSITION”: “{ X\_CENTER, Y\_CENTER, 30 }”,  
“ASSISTED\_TRAMMING\_WIZARD”: “”,  
“TRAMMING\_POINT\_NAME\_2”: “"Front-Right"”,  
“TRAMMING\_POINT\_XY”: “{ { 33, 33 }, { 190, 33 }, { 190, 190 }, { 33, 190 } }”,  
“TRAMMING\_SCREW\_THREAD”: “M4\_CW”,  
“RESTORE\_LEVELING\_AFTER\_G35”: “”,  
“ASSISTED\_TRAMMING”: “”,  
“TRAMMING\_POINT\_NAME\_1”: “"Front-Left"”,  
“TRAMMING\_POINT\_NAME\_3”: “"Back-Right"”,  
“TRAMMING\_POINT\_NAME\_4”: “"Back-Left"”  
},  
“serial”: {  
“TX\_BUFFER\_SIZE”: “0”,  
“SERIAL\_OVERRUN\_PROTECTION”: “”,  
“PROPORTIONAL\_FONT\_RATIO”: “1.0”,  
“BUFSIZE”: “4”,  
“MAX\_CMD\_SIZE”: “96”,  
“ADVANCED\_OK”: “”  
},  
“extras”: {  
“MAX\_ARC\_SEGMENT\_MM”: “1.0”,  
“N\_ARC\_CORRECTION”: “25”,  
“MIN\_ARC\_SEGMENT\_MM”: “0.1”,  
“MIN\_CIRCLE\_SEGMENTS”: “72”,  
“ARC\_SUPPORT”: “”  
},  
“extruder”: {  
“HOTEND\_IDLE\_TIMEOUT\_SEC”: "(5_60)”,  
“HOTEND\_IDLE\_MIN\_TRIGGER”: “180”,  
“LIN\_ADVANCE”: “”,  
“ADVANCE\_K”: “0.0”,  
“HOTEND\_IDLE\_BED\_TARGET”: “0”,  
“HOTEND\_IDLE\_TIMEOUT”: “”,  
“HOTEND\_IDLE\_NOZZLE\_TARGET”: “0”  
},  
“homing”: {  
“HOMING\_BUMP\_MM”: “{ 5, 5, 2 }”,  
“HOMING\_BUMP\_DIVISOR”: “{ 4, 4, 4 }”,  
“QUICK\_HOME”: “”  
},  
“motion”: {  
“DEFAULT\_MINIMUMFEEDRATE”: “0.0”,  
“SLOWDOWN\_DIVISOR”: “2”,  
“MULTISTEPPING\_LIMIT”: “16”,  
“DISABLE\_IDLE\_X”: “”,  
“DEFAULT\_MINSEGMENTTIME”: “20000”,  
“SLOWDOWN”: “”,  
“DEFAULT\_MINTRAVELFEEDRATE”: “0.0”,  
“DISABLE\_IDLE\_E”: “”,  
“DISABLE\_IDLE\_Y”: “”,  
“DISABLE\_IDLE\_Z”: “”,  
“STEP\_STATE\_E”: “HIGH”,  
“STEP\_STATE\_X”: “HIGH”,  
“MIN\_STEPS\_PER\_SEGMENT”: “6”,  
“AXIS\_RELATIVE\_MODES”: “{ false, false, false, false }”,  
“STEP\_STATE\_Y”: “HIGH”,  
“STEP\_STATE\_Z”: “HIGH”,  
“DEFAULT\_STEPPER\_TIMEOUT\_SEC”: “120”  
},  
“reporting”: {  
“AUTO\_REPORT\_TEMPERATURES”: “”,  
“EXTENDED\_CAPABILITIES\_REPORT”: “”,  
“CAPABILITIES\_REPORT”: “”  
},  
“stats”: {  
“SERVICE\_WARNING\_BUZZES”: “3”  
},  
“host”: {  
“HOST\_PROMPT\_SUPPORT”: “”,  
“HOST\_ACTION\_COMMANDS”: “”  
},  
“bltouch”: {  
“BLTOUCH\_HS\_EXTRA\_CLEARANCE”: “0”,  
“BLTOUCH\_HS\_MODE”: “true”  
},  
“temperature”: {  
“THERMAL\_PROTECTION\_BED\_HYSTERESIS”: “2”,  
“THERMAL\_PROTECTION\_PERIOD”: “40”,  
“WATCH\_BED\_TEMP\_INCREASE”: “2”,  
“THERMAL\_PROTECTION\_HYSTERESIS”: “4”,  
“THERMAL\_PROTECTION\_BED\_PERIOD”: “20”,  
“WATCH\_BED\_TEMP\_PERIOD”: “60”,  
“WATCH\_TEMP\_PERIOD”: “40”,  
“WATCH\_TEMP\_INCREASE”: “2”  
},  
“safety”: {  
“USE\_WATCHDOG”: “”  
},  
“fans”: {  
“E0\_AUTO\_FAN\_PIN”: “-1”  
}  
},  
“\_\_INITIAL\_HASH”: “a35d8bd464c2fb17b2ba”,  
“VERSION”: {  
“DETAILED\_BUILD\_VERSION”: “"bugfix-2.1.x-mfs"”,  
“STRING\_DISTRIBUTION\_DATE”: “"2025-06-29"”,  
“GIT\_REF”: “c7fc6ee”  
}  
}

---

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [7 July 2025 16:06 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/34 "2025-07-07T16:06:21Z")

</div>

What do you think? This json seems to be different to what the mc-apply script is expecting.

---

<div class="post-metadata">

**Author:** ![Ferrograph](https://marlin.crc.id.au/forum/letter_avatar_proxy/v4/letter/f/8e7dd6/32.png) [@Ferrograph](https://marlin.crc.id.au/forum/u/Ferrograph)\
**Post date:** [14 September 2025 07:22 UTC](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530/35 "2025-09-14T07:22:08Z")

</div>

BUMP.

Does the config output I pasted help?

[Previous page](https://marlin.crc.id.au/forum/t/configuration-file-downlaod-button/1530.md?page=1)
