About Licensing :: Learn more about our Licensing Model | Common Issues :: Solve Activation Problems
The Marlin Firmware project allows you to use an Arduino based board, as a 3D Printer controller!
This is actually what is running on a wide variety of 3D printers in the market today, meaning you can also upgrade your current printer with new firmware, and new features depending on how adventurous you are feeling....
The Marlin project can be downloaded from the Downloads section of the Marlin Website.
Once downloaded, extract to a location on your PC (e.g. Arduino Sketchbook folder)
We also have a video guide to show the main parts in the tabs on this page:-
The first step to get started is to install Visual Studio, Visual Micro, and the Arduino IDE.
Depending on which board your printer has, and if you need a programmer you may need additional board packages installing.
e.g. For the ESP32 the additional JSON URL below will need to be added to the list on the IDE locations screen in Visual Micro:-
https://dl.espressif.com/dl/package_esp32_index.json
Once added you can then use the Board Manager in Visual Micro to install the board package.
Now you have Visual Micro setup we can move onto downloading and getting the Marlin Project setup....
Simply open Visual Studio, and use the "File > Open > Existing Arduino Project", and select the Marlin.ino file from the project.
This will take a minute or so to complete as it scans all source files available to bring them into the project.
All Marlin configuration is done via a series of definitions in the Configure.h and Configure_adv.h files within the project.
This is heavily detailed on the Marlin Website for all options, and it is important to firstly set the correct Main Board directive.
Read More Detail on the Marlin Website here
You may already have a 3D printer which you have not fully built yourself.... and in this case you can still upgrade the firmware, but you may need to flash a bootloader on to the printer first.
First it is best to check it is a Marlin based printer, and to do this you will need to connect it to your PC, and open a Serial Port (often at baud 250000).
Once connected, issue the G-Code Command M115 (read more about GCode Commands in Marlin)
You will receive output similar to the ones below, both of which are Marlin compatible printers:
FIRMWARE_NAME:Marlin 1.1.0 (Github) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:RepRap EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:https://github.com/ErikZalm/Marlin/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:I3 Pro B EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000
This can of course be done using the Serial Monitor in Visual Micro, as shown below:
The pins to do this may not be immediately apparent, and these are often available via the SD header (as shown below for the GT2650 variant).
Once you are happy with the pins, you will need another Arduino board (or ICSP programmer), to program the bootloader onto the board.
In the below case we will be using the Arduino Uno as our programmer, which will need the Arduino ISP Sketch uploading to it.
Once uploaded we can connect the programmer to the printer, as shown in the above diagram for the Uno and GT2560.
Now we can set the Programmer in Visual Micro, and select the COM Port of the Uno, and Build and Upload the Bootloader.
Note:
Ensure you know which bootloader you need to upload to your board for your particular chip.
Once Uploaded, disconnect the ICSP programmer from the printer board, and connect the USB to your PC, we should now be able to upload the Marlin Firmware directly via the printers' USB port.
Once you have a printer with a bootloader, it should be as simple as connecting it to your PC and selecting the Board, and COM port as with a normal Arduino project.
Simply press Build & Upload to put the firmware onto the printer board.
This web site uses ASPNet Session cookie and Google tracking. Please read our privacy policy for more information.