Archives de catégorie : General Documentation


ZOffset calibration without LCD screen

This article present you the procedure on how to set your ZOffset without any LCD screeen on your Scalar S 3D Printer.

This article presumes that you are using Marlin firmware (RC8 or newer) and a Scalar S 3D printer without LCD screen.


Starting Pronterface

Once unzipped, browse inside the pronterface folder and launch « pronterface.exe » in « Administrator » mode via the right click context menu

Pronterface GUI is starting

ZOffset calibration

Select your printer COM port (mine is COM13)

Push the « Connect » button to start the connection.

If the connection is working properly a list of text and parameters should be displayed on the console output on the right side of the application.

The information we are interested in are:

  • Marlin firmware version (RC8 or newer)
  • ZOffset current value here at the bottom (here is -0.10mm)

In order to adjust Zoffset we are going to print a calibration part compatible with Scalar S and a 1.75mm filament.

Click on the  « Load File » button

Then browse for the file « Scalar_S_Calibration_retraction.gcode » that you previously downloaded

Clock on the « Print » button

If you first layer is still too high you need to:

  1. stop printing by pressing the « Off » button
  2. Change the Zoffset using command M851 Zxxxx with xxxx being the new zoffset
  3. Save the new value using the  M500 command
  4. Start a new print in order to check the effect of the new Zoffset
  5. If it’s still not good, perform again step 2

Here we show how to change the Zoffset by typing command M851 Z-0.3 into the console.We send the command to the printer using the « Send » button located at the right of the text input field.

Note that:

  • In order to lower the nozzle on the first layer your ZOffset must be « Negative« .
  • Decrement the offset using steps of 0.1 or 0.2 (ex: go from -0.10 to -0.30)
  • If your nozzle seems to far away from the bed, consider decrementing of 0.5mm

pronterface auto bed leveling marlin ZOffset

Start again a new print using the « Restart » button

Save your new Zoffset using command M500

3D printer Safety precautions

  • General Safety Caution

    A 3D Printers is a production tool.  As such they needs to be dealt with caution mainly by  adults with no mental handicap. 

    The end user must have a general knowledge of the machine before using it and a special training might be needed in order to use a production tool.

    Kids must be assisted by an adult in order to prevent any accident with the machine.

    Information on this page have been obtained via sources that we feel are reliable, but might be subject to some later updates / changes.

    The way to use, store or build the machine is up to the end user. As such we cannot control the use/build and storage conditions of the machine. We are not responsible for any damages, accident or any other storage / handling related issues, as well as recycling means of the machine.

  • Health consideration

    3D printers are using different kind of materials from different origin and composition.

    Depending on the material,additives, and colorants, the toxicity of the filament may vary.

    PLA; Recognized to be safe and non toxic in it’s natural form, some precautions are to be taken when adding additives or lubricants inside the filament.

    ABS: Recognized as toxic, based on the micro particles it’s emits during the print process. The amount of Styrens and other products generated by the carbonization or certain chemical products, can even form cyanides and other toxic materials.More over a strong smell is created when printing ABS.

    Always use your printer inside a well ventilated room, or with a proper air filtration system. Not all carbon active filters are working. Please refer to a proper Gaz filter, as Carbon filters from extractor hoods are not fit to filter ABS micro particles.

    Never burn 3D printer filament as it can quickly decompose into toxic material when exposed to flame.

  • CE:

Scalar 3D printers are DIY kits provided with no additional protections. As a kit, it cannot be considered as a finished consumer product. CE marking depends on the way the machine was built . As such the following notes must be taken into consideration.

  • Electric safety

The machine include Power supply units with CE markings. They are protected against short circuits and overloads. They must be left untouched of any modifications

3D printers are using 12VDC (very low voltage). This voltage range is outside the scope of the low voltage directive.

Always unplug the power supply from your power outlet before doing any maintenance on your machine.

  • ElectroMagnetic Compatibility (EMC)

Electromagnetic radiations in conduit mode for distributors is not an issue as it is mainly linked to the Power supply.

The electromagnetic compatibility depends on the quality of the assembly, and might need some additional shielding but cannot in any cases be predicted.

  • Mechanical Safety

3D printers contains a lot of moving mechanical parts,  and the torque of the stepper motors is relatively low and should not cause too serious injuries.

However, it is advised to add any protections identified necessary by the user

The easiest and fastest way to secure your machine is to place it inside a closed and well ventilated room with and air extraction system, or to use a box that cover your whole printer with some security access doors.

In order to improve the electric safety of the machine, you might need to add a power switch that cuts off the power when the printer door is opened.

The safety measures for the machine is up to the end user.

Always unplug the main power supply from the grid when doing any maintenance or intervention on the machine.

  • Burn issues

The machine has several heating elements that can reach 140°C for the heat bed and more than 300°C for the hot end. Burn threat is real and have to be taken into serious consideration.

Some hot ends are provided with silicone insulators, that will lower the burn issues. However it might be required to add additional security measures depending of the use cases.

Always make sure the heating elements are cold before starting any maintenance or modifications on your machine

If you get burnt, you can use  Organic silicium G5 Immediately after the burn. This gel is very effective when applied immediately after the burn. More over it’s hydration capabilities makes it great to repair and protect your skin.



Aluminium extrusion comparison

aluminium extrusion comparison

3030 profiles:

Standard 30x30mm extrusion profile. They exist with a 8 or 6mm groove.

This type of extrusion profile is compatible with TNuts made for each groove size.

Very robust, they are used on Scalar M, Scalar L, Scalar XL  and Scalar XL Premium 3D printers

2020 profiles:

These are 20x20mm .They exist with 5mm or 6mm grooves.

They are also compatible with a big range of accessories.

They are also lighter and cheaper than the 3030 extrusion profiles.

2020 VSlot profiles:

They are also 20x20mm. They have V Shaped grooves.

They are ideal if you want to use them as sliders with Special V shaped Wheels

They are used on Scalar S, Scalar L, and Scalar XL premium 3D printers


PID auto tune

Temperature management by your 3D printer is often made using PID controller.


  • Pronterface (Windows, Mac)
  • Arduino IDE (optional)
  • 3D printer with active PID for the target heating element

Pronterface installation:

Pronterface is a cross platform host software for your 3D printer. It allows to send commands to your 3D printers in a simple way.

This application is stand alone and doesn’t require any installation

In order to be able to connect to your 3D printer you need to install the serial drivers of your electronic board.

Scalar 3D printers are using arduino MEGA 2560, so you only need to install Arduino IDE in order for the proper drivers to be installed.

Once you have downloaded the proper version of Pronterface , you will need to unzip it’s content in a folder.

Inside you should have the following file tree.

Pronterface PID

At this stage you will need to connect your 3D printer using a USB cable.

Once the drivers are installed, your OS will assign a specific COM port to your 3D printer.

Now you can launch « pronterface.exe »

The following window will appear

Pronterface PID


Depending on your OS you might need the proper user rights in order to acces COM port

Consider running your application as Administrator

Once the drivers for the seria COM port are installed your 3D printer COM port should be visible inside the drop down list of Pronterface (1)

  1. You should see the proper COM port asigned to your Arduino MEGA inside this drop down list
  2. Select the baud rate to 115200Bps (at least for Scalar 3D printers)
  3. Push the Connect button.

Pronterface PID

Once connected you should have a lot of information coming into the console window on the left side of the application.

Pronterface PID

PID Auto tuning

PID auto tune has to be made when your heating element is at Ambient temperature. Otherwise you will get wrong parameters!


In the bottom part of the console view, you have a text box where you can enter single commands for your 3D printers,

Hot end PID

Iin order to perform the PID tuning of your hot end you will need to send the following command :

 M303 E0 S210 C8

E0 is for Extruder 0 (your hot end)  , S210 is the target temperature (here 201°C) and C8 is the amount of iterations to perform , Here 8. The higher the number the more accurate your PID will be.

Pronterface PID

you will need to wait a few minutes in order for the algorithm to converge to a set a values.

Pronterface PIDhere we found out

bias: 92 d: 92 min: 196.56 max: 203.75
Ku: 32.59 Tu: 54.92
Clasic PID
Kp: 19.56
Ki: 0.71
Kd: 134.26
PID Autotune finished ! Place the Kp, Ki and Kd constants in the configuration.h
#define DEFAULT_Kp 17.28
#define DEFAULT_Ki 0.63
#define DEFAULT_Kd 118.87

your PID values will be different from the one here

Take theses PID values into account

Use the following command in order for your controller to take the Ki, Kp, and Kd values into account

 M301 P17.28 I0.63 D118.87

Make sure you have updated the command with the PID values that you found!

Save your settings into the EEPROM


M500 allows to save your settings into the controller EEPRO

Heat bed PID Command

M303 E-1 S60 C8

Take the Heatbed PID values into account

 M304 P1 I2 D3

Save into EEPROM




(source )

Plays a music at the end of a print


IIt is possible to play some music (8bits) at the end of your prints in the following cases:

  • If you have a LCD display with a Buzzer
  • If you electronic board supports an audio output
  • If your firmware supports M300 commands (Marlin, Repetier)

How does it work?

It is possible to  generate a certain amount of Audio sounds by modulating the output signal of the Display Buzzer.

M300  Gcode command allows to do just that.

You can have the full command details by looking at the dedicated page ::

Can I find existing sounds/musics?

There are some tools that already exist. They allow you to convert any RTTTL format ringtones into M300 compatible Gcodes.

You can find one here: : , it’s an online generator that can convert Ringtones into M300 compatible Gcodes.

This generator also allows to render the audio output of each convertion.

However, if you want a pack of already converted songs with more than 11000 ringtones check this link:

You will also find a batch convertor here::

With the originals ringtones here:

How to proceed?

Each converted file has  Gcode extension.

Each .Gcode file is a simple text file that you can open and edit with a standard text editor such as notepad++, notepad or any other.

Here is an example of what is inside one of these converted files:

Open your slicer:

Each slicer should allow you to customize at least the start and the end of your gcode.

The part that we are looking for is to customize the end of our gcode, so that the music will play once the print is over.

The sollowing example is done using Cura .

In the Tab section of cura you will see « Start/End-GCode« .

inside you should be able to choose « end.gcode » from a list

Then a text zone will appear at the bottom with some text in color.

This text are the actual instructions used by your 3D printer when the print is finished.

Now you only need to copy/paste the content of your M300 converted ringtone file into the end of the text editor.

This is it!

now you can slice normaly any 3D object you want, your music will be played at the end of each new prints.

How to easily test your converted files?

Depending on your firmware version, the audio output of the songs might be crapy (For example,  marlin version before 1.1.0.RC3 better handle the audio output)

So it’s very interesting to test those songs before using them everywhere.

You can copy/paste the already converted files (with .gocde extention) into a SD card and play them directly from your LCD display.


Due to some memory restriction, firmwares are often limited to display a maximum amount of files per folder.

Adding directly the 11 000 files inside a single folder will most likely crash your firmware when it will try to list all the files.

So it’s advised to only test a pack of 20 or 30 files max per forlder.


How to improve / fix Z woobble

Commonly called « Z Woobble » on most of reprap forums, this phenomenon is very frequent when you assemble a reprap 3D printer.

Often, this phenomenon can appear after a while whithout even knowing why or what we did.

There are always at least 1 or many reasons why this happens.

When we have this effect at the begining it can be time consuming or challenging to find out how to fix it.

What is Z Woobble?

A deposit 3d printer, is printing layers on top of the previous layers.

In a perfect world, all the layers are perfectly aligned and we have a perfect wall finish.

In reality, we can often have Z Wooble, it means that the layers are miss aligned and we have some « waves » on the sides of the prints.

If we look closely under light we can see a periodic pattern repeating itself.

If we look even closer we can see that the layers seems to be layered correctly but the height of each layer may vary slightly.

Le plastique s’écrase par moment et se détend à d’autres endroits.

If we place our threaded rod in front of a long print we can clearly see the pattern matching with the thread.


The identified causes so far are numerous, that’s why we can often accumulate them, making things challenging to fix.

Here are the causes we could identified so far:

  • Threaded rod are not parallel to themselves or to the guiding smooth rods.
  • The X belt tensioner is applying force on the Z axis smooth rods instead of the X axis smooth rods. THe smooth rods will then bend slightly enought to generate the issue.
  • The extruder is not calibrated. (EStep/mm not calibrated),The amount of plastic is too much or not enought making the plastic deposing irrugular.
  • The X carriage is not moving smoothly on the Z direction. One of the side is moving before the other side and the movement is not linear anymore.
  • One of the threaded rod is blocked when the axis is going down.(often when we are using auto bed leveling)
  • Auto bed leveling is compensating too much. meaning that one of the Z axis side is higher that the other side based on the heatbed. Use a flat object in order to adjust the height on both sides of the z axis to greatly diminish the compensation of auto bed leveling.
  • The filament is periodically blocked, impacting the plastic flow.
  • The extruder is sleepering on the filament. This impacts the plastic flow.
  • The layer height is too high or too low according to your nozzle diameter.
  • The filament diameter is not uniform and may vary a lot. Here again the plastic flow will be impacted.
  • One of the Z axis nuts have slack.
  • At least one of the nuts or the threaded rods are worn.In this case the best is to change both Threaded rods and Nuts on both sides.
  • The top of the threaded rod is constrained/ Threaded rods are never perfectly straight. constraining the top of the threaded rods will impact the guiding rods. Freeing the top of the threaded rods can fix the wooble effects.

Feel free to come back to us if you know some other causes and possible fixes.


Marlin V 1.1.9

Updating/upgrading your 3D printer firmware

A few words first:

This page is dedicating to upgrading/updating your marlin firmware for your 3D printer.

Here we will also show what settings to use for Scalar XL 3D printers, but the main idea stay the same for any other printers. Be advised however that the philosophy can be slightly different for Delta 3D printers and that you might look for another type of guide if you own a Delta 3D printer.

Also the described marlin firmware is from 2015 August 24th so if you want to update to a newer version be advised that some modifications might be needed that are not covered on this guide.

First things to downloads first:

You will need to download and install a few tools first:

Arduino Ide

Install 7 Zip

Unzip the firmware on your hard drive.

After installing the tools above, you will need to download a copy of the marlin firmware.

Marlin is also available from the official repository here

Process to flash your firmware using the .hex (binaries)


  • Download the .hex corresponding to your 3D printer configuration (see below)
  • unzip the before using it
  • Connect your 3D printer to your PC using a USB cable
  • run Xloader.exe
  • Select the.hex file
  • Select the output device Mega(ATMEGA2560)
  • Select your 3D printer COM port
  • Click the  « Upload » button


Firmware Updates:

Needed libraries in order to compile Firmware 1.1.9: (not needed if you are using the .hex files)

  • TMC2130
  • TMC2208
  • Neopixel

Procedure to install these libraries:

Procedure in order to enable « Power_loss » feature

Warning! No support will be made from us on this feature!

Use it at your own risks

A proper APU is needed with a TTL output is greatly advised for this feature.

Inside file Configuration_adv.h uncoment line 591

Version 1.1.9

Version 1.1.9 (Changelog) , available for Scalar 3D printers since 11/08/2018

Scalar S

  • E3DLite6 1.75mm + heatbed 95°C Max (binaire) (sources)
  • E3D lite6 1.75mm + heatbed 140°C Max (binaire) (sources)
  • E3D lite6 1.75mm + heatbed 140°C Max + Trap (binaire)(source)
  • E3D lite6 1.75mm no heatbed(binaire) (sources)
  • E3DLite6 1.75/3mm + heat bed 140°C +Trap+ Dual Extrusion Chimera (binaire) (sources)
  • E3DLite6 1.75/3mm + heat bed 140°C + Dual Extrusion Chimera (binaire) (sources)
  • E3D Chimera 1.75mm + heat bed 140°C + Z M8 + RRD + TMC2208 in X and Y + Dual end of filament modules (in D11 and D6) (binaire) (sources)
  • E3D V6 1.75/3mm + heatbed 140°C Max (binaire) (sources)
  • E3D V6 1.75/3mm + Tr8x1.5 (binaire) (sources)
  • E3DV6 1.75/3mm TR8x1.5 + end of filament  (binaire) (sources)
  • E3DV6 1.75/3mm TR8x1.5 (MKS GEn 1.4 + TMC2130(spi) en X et Y, et DRV8825 en Z et E) (binaire) (sources)

Scalar L

For Z axis 10mm trap screws

For Z axis 8mm trap screws

Scalar XL Premium

For Z axis 10mm trap screws

For Z axis 8mm trap screws

Scalar XL Premium 40

Version 1.1.5

Version 1.1.5 (Changelog)

Available for Scalar 3D printers from 22/09/2017

Scalar S

Scalar L

Scalar XL Premium

E3DV6 + PT100+TFT28 Touchscreen

    • You will need to wire the PT100 on the AUX2 inputs instead of AUX1 input

Once downloaded, unzip it anywhere on your hard drive

The Arduino IDE;

After having installed it, execute it.

Install marlin firmwareAfter a few seconds the main window will open with an empty sketch

Configure the IDE to get the line numbers:

In order to make it easier for you to find the proper location on each feature inside the firmware, you might be interested to enable the line numbers on the IDE.

it’s very easy, in the menu bar, just go to File>preferences

Then select « Display Line numbers » check box and click « ok »

now the line numbers should be visible on the left of the editor.

Special Note: The lines numbers are valid for firmware version 1.0.0. For other firmware versions the lines might change a little bit and some parameter names might even slightly change.

Load the firmware

In order to load the firmware, in the menu select « File>Open… »

Browse into the folder of the firmware you have extracted, the main folder content should look like this

Inside « Marlin » folder the most important files that you will need to use are « Configuration.h »

and « Marlin.ino »

From the Arduino IDE you will need to open « Marlin.ino » that is the firmware main project.

Once opened the ide should look like this

It’s really useful for you to increase the size of the window in order to better see the line of codes later on.

To expand the window size click on the increase size on the top right corner of the application.

Configure the Ide for Arduino mega 2560 microcontroler

Now you will need to setup your ide in order to properly select the output platform.

for this you will need to go into your menu « Tools>Board » and select « Arduino/Genuino mega or Mega 2560 »

And then select the proper Processor « Atmega2560(Mega 2560) »

Now connector to your 3D printer USB port and make sure that the arduino is properly detected by your pc.

From this you are set to go to the next step.

Dig into the firmware mysteries!

On the top of the IDE, in the green part, you should find many tabs called « Marlin », « Conditionals.h », « Configuration.h » etc…

Select the one called « Configuration.h »

Now in the text editor you will see appearing a lot of text.

This file mainly contains all the configuration parameters for your printer.

the lines in color are active while the lines in grey are comments.

A few words about comments

Comments are lines starting with « // ». they are often greyed.

Also a comment can be added at the end or middle of a line. In that case the beginning of the line will be colored and the remaining part past « // » will be greyed. The greyed part is also considered a comment.

Comments are very useful in order to give a lot of relevant information about the specific meaning of each settings.

A word about parameters

Parameters are often defined following a « #define » keyword.

Once uncommented the parameter following the #define will be active/enabled.

Let’s start configuration

Customizing your printer welcome screen massage

At the very beginning of the « configuration.h » file you will see parameter  CUSTOM_MACHINE_NAME followed by some name into brackets

Here you can setup a custom text with a limited of 13 characters if your lcd language is set to English or french. (Other languages may display more of less characters.)

Thermistor setup:

in order to tell the firmware which thermistor we are using we need to select the proper thermistor table for both hot ends and heatbed.

These tables can be selected near line 146.

In this example you see 5 parameters related to temperature sensors.

The 4 first ones are linked to hot ends.

The last one is used for heat bed only.

For scalar XL depending if you are using AllInOne hot end or E3DV6 you will need to use a different thermistor table for TEMP_SENSOR_0.

Use « 5 » for E3D V6 or AluHotEnd hot ends

Use « 13 » for Allinone

About the heatbed it mainly depends on what thermistor you are using, for Scalar XL and Scalar M 3D printers we are using 100K NTC beta 3950 1% thermistors so we are using table « 11 »

Setup the hotend PID

The PID, also known as « proportional–integral–derivative » controller, is used to control the heating element temperature.

For more information on this topic please check the wikipedia page:

Near line 194, you have the ability to enable/disable PID functionality.

If disabled you are going to use a « bang-bang  » temperature control logic (see wikipedia for more details:

It’s better to use PID mode for heating element that are compatible with this mode of heating such as Hot ends and 220V heat beds driven by SSR.

Avoid using PID mode for standard 12V 200W heat-beds because the power supply might not handle it very well.

PID control is great if you want a stable reliable temperature control.

If you just need a more simple way to drive the heating elements, then use Bangbang mode and disable this « #define PIDTEMP » parameter.

Special mode for PID mode:

In this mode when the temperature is low, the BangBang mode will be used.

Once the temperature is close to the target temperature (this can be configured in the settings) the PID mode will be used.

This mean that the hot-end will be very fast to reach a temperature close to the target temperature, but it will slow down at the very end in order to avoid possible temperature overshots.

Bang Max Parameter

This parameter is located around line 195.

40W heater cartridge:

If you have a hot-end with a 40 watt heater cartridge, you can lower down a little bit the BANG_MAX value.

Here is an example used for the AllInOne hot-end.

Setting up the PID constants:

Near line 210 you will reach a section where you will be able to define the PID constants.

On this example you can see that many PID values are commented and only 1 set of values is left uncommented.

Check what hotend you have and uncomment the 3 set of values corresponding to your hot-end.

For E3D hot-ends, as they are using 20W heater cartridge, you will need to previously set BANG_MAX to 255.

For AllInOne hotend, you will need to lower it down to 250 in order to avoid big overshot.

Setting up PID for heat-bed

Near line 268 you should find the parameters to enable/use pid function for heat-bed.

Note that depending on the type of heat-bed you are using, BANGBANG mode might be more suited. Indeed, if the heat-bed (often 12V heat-beds) is directly linked to the power supply, using PID mode might crash trigger some safety on the power supply side.

However if you are using a 220V driven by SSR (solid state relay), PID mode is something you can consider.

PID for Scalar XL 700W/220V heat-bed

To enable PID on heat-bed , just uncomment line 268 : #define PIDTEMBED

then select which heatbed you are using, in our case here we are using 700W 220V silicone heater mounted on a 3mm 435x320mm aluminum sheet.

If you are unsure that those settings are good for you, just pick the one closer to what you have and you will need to perform PID auto tune (see the procedure here: )

Extrusion safety:

Near line 307, just below PIDTEMPBED block, you should find settings related to extrusion safeties.

#define PREVENT_DANGEROUS_EXTRUDE parameter will allow extrusion only when hot end is hot enough using EXTRUDE_MINTEMP parameter at line 311.

If you hot end is below this temperature, extruder won’t move at all.

#define PREVENT_LENGHTY_EXTRUDE will prevent extrusion if a single gcode command is asking for a very long extrusion (more than 200mm).

Thermal protections:

A mechanism is available to detect if the heating elements are heating properly during all the print duration.

If the firmware detects any abnormal drop of temperature for a certain amount of time, an error message will appear on the LCD (THERMAL RUNAWAY), the print will stop and all heating elements will power off.

This protection is available for both hot end and heat-bed and you can enable 1 or both independently.

Auto bed leveling:

Near line 476 you have a whole section dedicated to Auto bed leveling (ABL).

This section is responsible for managing the G29 gcode.

On scalar 3D printers, it’s also responsible for using the induction probe.

At line 476 you can enable/disable this feature.

line 477 #define Z_PROBE_REPEATABILITY_TEST is used in order to double each measurement using slower speed the second time to increase measurement precision.

Block near line 498 are the coordinates of each probing points when using Grid mode.

Just a little bit below, near line 525, you will find the offsets used by the firmware to determine the induction probe location from the nozzle tip.

You will also find a few parameters  that you can adjust if you want to tweak how fast the auto bed leveling mechanism is going.

Note: if you decrease too much those values you might encounter some troubles or even crash the nozzle into the heat-bed while moving to the next probing location.

Setup Steps/mm for each axis based on your mechanics

Depending if you are using Belts, threaded rods, trapezoidal lead-screws, etc… you might need to adjust the amounts of steps required in order to move 1mm or your printer won’t move the proper distance.

parameter DEFAULT_AXIS_STEPS_PER_UNIT  is handling this notion for all axis (X, Y, Z, Extruder)

use prusa calculator if you need help in determining the proper values:

All parameters with ACCELERATION really depends on you mechanics ability to move fast, accelerate fast and decelerate fast.

Enabling EEPROM support and setting preheat presets:

line 649 #define EEPROM_SETTINGS is used in order to enable EEPROM support.

EEPROM is the internal memory of the arduino board. it’s a non volatile memory used to keep the important adjustable settings into memory for later use.

Most of the settings available from the LCD display are stored inside the EEPROM of the arduino.

Blocks near lines 659 are pre-heat presets for PLA and ABS. here you can setup your own. the default ones are shown on this example.

Configuring MQ2 smoke sensor:

The section dedicated to the MQ2 smoke sensor is located at the very bottom of the configuration.h file.

There line 863 #define MQ2_GAZ_DETECTOR will, if left commented, disable the smoke detection module. If un-commented, it will enable the smoke detection module.

When enabled, the next settings can be active.

line 869 #define MQ2_PIN is for advanced users if you want to use a spacial arduino IO pin.

By default we are using pin 57 (A3/D57 from AUX1 on Ramps 1.4)  because it’s capable to be used in both Analog and digital mode. You can use any other IO pin but make sure it’s compatible with the sensing mode you are using.

line 872 MQ2_ALARM_TRIGGER_KEVEL_PPM is used when the sensing mode is used in ANALOG mode, meaning we are using the ANALOG output of the MQ2 sensor.

To enable ANALOG mode, you need to un-comment line 870 : USE_ANALOG_MODE

In this mode the analog output voltage will vary depending on the sensor detection.

In ANALOG mode, the blue trim on the sensor cannot be used, so in order to adjust the sensitivity of the sensor, the firmware is using a table that convert the output voltage of the sensor into PPM. When this PPM value is reached the alarm will trigger.

If you want more information about what value to use for your specific MQ2 module (each module is slightly different), enable parameter « MQ2_VERBOSE » at line 867, connect your printer to any host software and read the console output. A lot of values should be listed when you apply some smoke or gas to the probe.

In order to prevent false alarm, the firmware is taking several measurements in order to make sure the sensor output is stable above the trigger level.

Parameter MQ2_CONFIRM_COUNT is used for that purpose. Feel free to increase or decrease the confirm count to your liking. Increasing this value too much will reduce the reactivity of the alarm but will ensure that a real threat is detected.

Selecting alarm warnings:

A few warning levels are possible for this module.

  1. An error is logged into the serial output console, so you can catch it using 3rd party hosts software
  2. An error message can be written on the LCD display (make sure you have one if you are using this option
  3. LCD buzzer can warn the user performing non stop beeps
  4. LCD blinking can also warn the user about something abnormal

Each of these warning levels (except the first one) can be enabled/disabled at will and can be combined.

Uploading the Sketch to your Arduino:

Before uploading your sketch it’s a good idea to first check that the code and settings have a proper syntax.

On the top left corner of the Arduino IDE, you will find a round button with a « check » mark on it.

Push it and the compilation will begin.  At the bottom right side of the IDE a progress bar will appear and a message on the left side will tell you that the compilation is in progress

Install firmware updateOnce done the following message at the bottom of the IDE should appear

Uploading the firmware to the arduino

If everything is ok and no error message appear, you can now upload this version of the firmware to the arduino.

To do this you will need to click on the button located right next to the « verify » button, the one with an arrow going from the left to the right.

The ide will compile again the code and will then upload the firmware to the Arduino.

The process is similar but will take longer.

Note that the progress bar might get stuck for a while but the upload process will still be running. On your arduino board a flashing led will appear, meaning that everything is in progress.

Once done an explicit message at the bottom of the IDE will appear, and the flash led will stop.

At the end your arduino will reboot and your new firmware and settings will be available on your arduino.

Special Notes:

If you already have the EEPROM enabled on your 3D printer (it’s the case for Scalar 3D printer users), all settings stored in the EEPROM will still be active.

You will need to restore firmware settings (From the LCD,: « Control>restore Failsafe« ) in the following cases

  • if you changed the PID values from the firmware
  • if you changed the steps/mm settings from the firmware
  • if you have enabled/disabled PID function
  • More generally, If you have changed any other settings that is available from the LCD display.

Before doing that, make sure you have saved/written down somewhere your « ZOffset » parameter, as it will also be overwritten by the restore fail-safe operation.

What is the best « layer height » for your printer

A lot of questions can rise when it comes to tweaking our slicer parameters.

Adjusting the layer height value to have the best possible quality can become tricky.

What is the Max and Min layer height for my printer?

To answer this question we need to take into account the nozzle size of your hotend.

Printing with a layer height too low might cause the plastic  to be pushed back into the nozzle and the extruder will struggle to push the filament. In the worth cas the plastic can expand/react/change state inside the hotend.

Depending on your extruder, it can also damage the filament preventing it to properly push the filament.

Also in the opposite situation, if the layer height is too high, the layers won’t stick properly to the previous layer resulting in a poor finish/poor rigidity  of your 3D model.

An easy way to determine the Min and Max layer height is to apply this simple formula:

Min Layer height =  1/4 nozzle diameter

Max Layer height = 1/2 nozzle diameter

Once you have this calculated you can test to print a calibration pattern and adjust the layer height slightly.

Optimal layer height for your Z axis

Layer height also depends on your mecanics and electronic settings:

Indeed, the following things will impact layer height:

  • Firmware Settings  (micro stepping)
  • Electronic settings (motors steps per turn)
  • Z axis threaded rod steps

A great calculator is available online and it will give you compatible layer heights for your machine:

At the bottom of the page you will see « Optimal layer height for your Z axis »

This calculator helps  to determin if the amounts of steps performed per layer height is an integer value.

As the firmware is only able to drive an integer amount of steps, using a layer height requirering a float value will cause a potential cumulative error (depending on the firmware) and the total height of your printed part can be smaller/higher than expected.

Scalar Family working layer heights with M8 leadscrews:

Those values will work for machines having a M8 leadscrew , 1/16 micro stepping and 200 steps/turn stepper motor (1.8°/step).

Inside firmware set EStep/mm = 2560

They might also work with other hotends having the same nozzle diameters.

AllInOne 0.35mm Nozzle:

  • 0.1mm
  • 0.15mm

E3D 0.4mm:

  • 0.1mm
  • 0.15mm
  • 0.2mm

AllInOne 0.5mm Nozzle:

  • 0.1mm
  • 0.15mm
  • 0.2mm

E3D 0.6mm:

  • 0.1mm
  • 0.15mm
  • 0.2mm
  • 0.25mm
  • 0.3mm

AllInOne/E3D 0.8mm Nozzle:

  • 0.1mm
  • 0.15mm
  • 0.2mm
  • 0.25mm
  • 0.3mm

Scalar Family working layer heights with TR8x1.5 trapezoidal leadscrew :

Those values will work for machines having a Tr8x1.5 trapezoidal leadscrew, 1/16 micro stepping and 200 steps/turn stepper motor (1.8°/step).

In Firmware set EStep/mm = 2133.3

They might also work with other hotends having the same nozzle diameters.

AllInOne 0.35mm Nozzle:

  • 0.09mm
  • 0.12mm
  • 0.15mm

E3D 0.4mm:

  • 0.09mm
  • 0.12mm
  • 0.15mm
  • 0.21mm

AllInOne 0.5mm Nozzle:

  • 0.09mm
  • 0.12mm
  • 0.15mm
  • 0.21mm

E3D 0.6mm:

  • 0.09mm
  • 0.12mm
  • 0.15mm
  • 0.21mm
  • 0.27mm
  • 0.3mm

AllInOne/E3D 0.8mm Nozzle:

  • 0.09mm
  • 0.12mm
  • 0.15mm
  • 0.21mm
  • 0.24mm
  • 0.27mm
  • 0.3mm

Scalar Family working layer heights with SFU1204 BallScrew :

Those values will work for machines having aSFU1204 ballscrew, 1/16 micro stepping and 200 steps/turn stepper motor (1.8°/step).

In Firmware set EStep/mm = 2133.3

They might also work with other hotends having the same nozzle diameters.

AllInOne 0.35mm:

  • 0.06mm
  • 0.08mm
  • 0.10mm
  • 0.12mm
  • 0.14mm
  • 0.16mm

E3D 0.4mm:

  • 0.06mm
  • 0.08mm
  • 0.10mm
  • 0.12mm
  • 0.14mm
  • 0.16mm
  • 0.18mm
  • 0.20mm

AllInOne 0.5mm:

  • 0.06mm
  • 0.08mm
  • 0.10mm
  • 0.12mm
  • 0.14mm
  • 0.16mm
  • 0.18mm
  • 0.20mm

E3D 0.6mm:

  • 0.06mm
  • 0.08mm
  • 0.10mm
  • 0.12mm
  • 0.14mm
  • 0.16mm
  • 0.18mm
  • 0.20mm
  • 0.22mm
  • 0.24mm
  • 0.26mm
  • 0.28mm
  • 0.30mm

AllInOne/E3D 0.8mm:

  • 0.06mm
  • 0.08mm
  • 0.10mm
  • 0.12mm
  • 0.14mm
  • 0.16mm
  • 0.18mm
  • 0.20mm
  • 0.22mm
  • 0.24mm
  • 0.26mm
  • 0.28mm
  • 0.30mm

Those values are given as information purpose and some parameters might not work with some materials/colors etc…

Those values are given as information purpose and some parameters might not work with some materials/colors etc…

Use them as a starting point to calibrate your printer.

LJ12a3-4-z/bx Inductive probe Wiring

Inductor Probe

This probe is used on many modern 3D printers with metallic heat beds for Autoleveling purpose.

It’s cheap and robust in design and can handle the heat of the heatbeds.

Voltage Consideration

It’s always/mostly provided as a 6-36V version wich is not compatible with standard Micro controller boards requiring 3.3-5V input voltage (for most 8Bit micro controllers such as Atmega 2560).

If you try to use 5V input voltage the probe won’t work at all.

To asses this constraint, people are powering the probe using the 12V input voltage.
To make the output compatible with TTL (0-5V) input level voltage, the cheap way to do it is to solder a resistor bridge as shown on this picture:


As a reminder, on the probe itself you should find a wiring diagram:

With brown wire = +12V input
Black wire = Signal Ouput
Blue wire = 0V (Ground)

From the Previous Schematic 

  • Vin = Brown wire
  • Sig = Black wire
  • Vout = Blue Wire

Overall Wiring diagram

If you are using the Probe wiring diagram, you will need to invert the resistor bridge:
The 10K resistor will be placed on the very left side
The 15K resistor will be placed on the middle of the schematic.
The final wiring diagram should look like this one:

Instead of the 10Kohm resistor you can also use a 9Kohm resistor, if you keep the 15K resistor.This should give you something close to 4V output
You can also use a 20K resistor instead of 15K resistor, if you keep the 10K resistor. This should give you a voltage close to 4V output also.

Important Note:
The probe signal output voltage is slightly lower than the input voltage. So if you apply 12V input voltage you will have a signal output voltage lower than 12V.
Consider this if using the alternative solutions as they might not work that well.