# How to access BIGTREETECH firmware

I recently purchased a BIGTREETECH SKR mini E3 V1.2 and need to adjust some of the settings in configuration h to accommodate for my custom built 3d printer. In the past I've used the RAMPS 1.4 board and adjusted the firmware in the arduino IDE. What is the best way/recommended way to do this for the mini E3 V1.2.

Thanks.

# Basics

Firmware can be distributed in 2 ways:

• As a compiled file (for example as .hex).
• As an uncompiled repository (as in a preconfigured marlin distribution) that needs to be compiled at the users' side.

# compiled file

Compiled files can't be altered easily. The only way to change settings after installation is to send the correct commands via a console to alter the settings in the SRAM then save the new settings into the EEPROM via M500 from the M50X family of commands - and hoping that EEPROM was activated in the firmware to begin with.

# uncompiled distribution

To alter an uncompiled Repository, you can follow the basic path in Updating Marlin Firmware - Step by Step Guide

The previous answer is good, but here's one specific for Bigtreetech.

1. Install platform.io. I use the command-line interface (CLI)
2. Modify your marlin files. You can clone existiing firmware for your board from the BigtreeTech Github for your board.
3. Remove microUSB card from your Bigtree tech board
4. Plug microUSB card into microUSB reader, and the microusb reader into the computer. You should be able to read your microUSB card
5. Enter the command in the root directory of your Marlin files: platformio run -e STM32F103RC_bigtree_USB. At least, this is the one for my board. You should have to run this in one folder before the Marlin folder.
6. It creates a file called firmware.bin in the directory .pio/build/STM32F103RC_bigtree_USB/firmware.bin. Copy it to your microUSB card, replacing and deleting any existing .bin. You can use the name firmware.bin.
7. Remove microSD card from computer and plug into board.

In your Marlin Configuration.h file, there should be a variable called something like MACHINE_NAME. If you make that name custom, then it will appear in the Octoprint terminal when connecting to your board, letting you know that you have updated the firmware.