Infitary 3d printer HBi3 (aka old M508) – new Marlin firmware and settings
So, after a year of using mention printer it’s high time to do some firmware tweaking (despite all additional, already printed goodies for the printer itself). My Infitary set came with SD card, on which came also Marlin firmware source code for this printer. Because of it, we have, let’s say “configured” firmware. It’s too old to use now, but all we really need is Configuration.h and Configuration_adv.h files.
Now just a quick info. It looks like Infitary came with slightly newer version of the printer, it’s now called M508. The main difference is in the board – it looks nicer, is more colourful and it is also Ramp 1.4 now. In git repository of Marlin we cane find config files for this printer – but they will not work out of the box for my older model. I’m not sure, if it’s a proper name, but let’s call it (like in the auction I bought it) Infitary HBi3 (Prusa). The other visible thing, that has change, is the case for power supply.
What we could gain?
The real question is, if there is a need for such an update. I can’t say it’s extremely necessary, since I was able to fix/tweak all the main problems with slicer and starting/ending scripts but there are few annoying misconfiguration in provided firmware:
- the bed size, end stops and start position is badly defined in original firmware. The nozzle X0, Y0 position is just as end stops – out of the bed.
- acceleration and jerk for X, Y axis is much to high (default acceleration is 3000, jerk 20; in my case best results are with acceleration somewhere around 1200 and jerk 10)
- EEPROM configuration is not enabled (to store settings)
- no filament change option (just pause)
- max bed temperature could be higher (if you provide insulation, use external relay of bigger MOSFET it can go up to 130C, but firmware limits it on 115C)
- with my belt (that came with printer) steps are a bit inaccurate (20mm cube has about 19,5mm after printing)
- homing often catch clips, that I’m using to hold my glass plate (because it moves Z=0 first, and then moves X and finally Y)
- upload gcode to SD card doesn’t work (yes I know, if it works, it’s slow 🙂 )
And yes, we can fix all this things 🙂
So let’s get started…
First it’s always better to do backup :). Se we can do a binary copy of our current firmware with ‘avrdude’ tool. You can install it from Linux repository (Debian in my case) or use one provided with Arduino IDE – you need to get it anyway, to upgrade firmware.
To do backup of the firmware:
avrdude -p atmega2560 -P /dev/ttyUSB0 -c stk500v2 -b115200 -F -U flash:r:factory_firmware.hex:i
To restore firmware from file to printer:
avrdude -p atmega2560 -P /dev/ttyUSB0 -c stk500v2 -b115200 -F -D -U flash:w:factory_firmware.hex:i
Of course You will have to change /dev/ttyUSB0 to something relevant in your case (on Windows some comXX).
Now when we are “safe”, it’s time to prepare environment.
- First, you will need to install Arduino IDE – if not already installed. I do not recommend using Debian distribution package – because it’s old, too old. Just download proper archive from Arduino homepage.
- Secondly you need to download Marlin repository, preferably just use git
sauron@sauron:/tmp/cos$ git clone https://github.com/MarlinFirmware/Marlin
Cloning into 'Marlin'...
remote: Counting objects: 75441, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 75441 (delta 0), reused 2 (delta 0), pack-reused 75431
Receiving objects: 100% (75441/75441), 50.72 MiB | 11.28 MiB/s, done.
Resolving deltas: 100% (49237/49237), done.
- Now you need to change configuration files (Configuration.h and Configuration_adv.h) in Marlin directory
- Open Arduino application, set in Tools->Board to “Arduino Mega 2560” and also in Tools->Programmer to “AVR ISP”
- Open Marlin/Marlin.ino from cloned GIT repository (it should all look like on the picture on the right)
- and upload it to the printer!