Is the Weedo Tina2 just a crazy toy for children ?
If you have read my previous posts, you now understand that I don't think so, and that it's a very capable printer both for makers and professional designers.
But the latest will be much more regarding on its dimensional print accuracy.
So this is the point of this post : can the Tina2 be calibrated and how to do it ?

What is print accuracy and why is it important ?

If you're building robots or machines like I do, you need to print very dimensionaly accurate parts. Because these parts will probably have to fit with other ones (either printed or industrialy made, like nuts and bolts - just a very simple example).
Think about Lego parts. I've always been amazed on how accurate they are !
If you would like to print your very own Lego parts, wouldn't you be disapointed if you couldn't clip them with the original ones ?
That's the point and I think you get the idea : if you print something that should be 15.25mm you expect it to be exactly 15.25mm.

It seems evident and you probably think your printer is accurate right out of the box ?
Wrong !
None of them are in my experience (even the most expensive ones).

So it's time to calibrate your Tina2 : you can follow this tutorial if you want to see how I proceed.

How do I know if my printer is accurate ?

This is simple. All you have to do is print a calibration part.
It can be any part for which you know some theorical dimensions that you will be able to check easily with a caliper once your part is printed.
You can find a lot of calibration parts over the web, the most famous one being probably the 3Dbenchy boat.
But a very simple cube is probably the easiest to start with.

Weedo Tina2 calibration, Jan 2022

How can I tell my printer to be more accurate ?

There's more than one answer to this question (wich willl probably lead me to write more posts on that subject).
But to keep things simple it's mainly a matter of "steps per distance (mm)".
In other words : "how many motor steps are needed to perform a 1mm move ?"
If you can answer this question you will be more than 90% sure to have accurate print results.
If you ask your printer to move 50mm (on X axis for example) you need to measure and make sure it did move 50mm. No more, no less...

OK but how do I proceed ?

The number of steps/mm/motor is a value stored in your firmware.
I will talk about the most common one here : the Marlin firmware which is what's inside your Tina2.
Unfortunately the manufacturer Weedo doesn't provide the Marlin firmware source so we can't just open it, modify it, and flash it back on the microchip.
So we need to be able to read this value from the microchip, do some measurement and some math, modify its value, and store it back on the microchip (erase and replace).
You have several options to do this but I personnaly used Pronterface in this tutorial.

Using Pronterface

Pronterface is a host software that will be able to "talk" to your printer.
Once downloaded you need to install it and to connect your Tina2 to your computer with a USB cable (unfortunately not provided by Weedo...).
Note that you might have to install the appropriate USB driver first.

Launch Pronterface.
To be able to communicate with your Tina2 you will then need to choose a 1000000bps baud rate (took me some time to figure this out).
Once connected you will recieve of lot of usefull informations concerning your printer's firmware (see image below).

Weedo Tina2 Pronterface, Jan 2022

What do we learn ?

What we can learn about our Tina2 here is that :

Weedo Tina2 calibration, Jan 2022

Firmware
Our Tina2 is shipped with Marlin 2.14.8 firmware (source hasn't been published by Weedo), last Updated on 2020-12-21 by (Perron, WEEDO3D) and compiled on Jul 12 2021.
Free Memory: 1544
PlannerBufferBytes: 1232
V56 stored settings retrieved (659 bytes; crc 52809)

Units
Our Tina2 is configured to use mm and °C units.

Steps per unit
Distance unit being mm this will be our Steps/mm values. These values are taking a very important role in calibrating our Tina2 ! 

M92 X100.00 Y100.00 Z400.00 E90.00

From this line we know that :

  • X motor is set to 100 steps/mm
  • Y motor is set to 100 steps/mm
  • Z motor is set to 400 steps/mm
  • Extrudeur motor is set to 90 steps/mm
Weedo Tina2 calibration, Jan 2022

Maximum feedrates
These are expressed as units/s so it will be mm/s.

M203 X300.00 Y300.00 Z10.00 E25.00

From this line we know that :

  • X maximum feedrate is set to 300mm/s
  • Y maximum feedrate is set to 300mm/s
  • Z maximum feedrate is set to 10mm/s
  • Extrudeur maximum feedrate is set to 25mm/s

Maximum Acceleration
 Distance units being mm these wille be mm/s2.

M201 X3000 Y3000 Z100 E1600

From this line we know that :

  • X maximum acceleration is set to 3000mm/s2
  • Y maximum acceleration is set to 3000mm/s2
  • Z maximum acceleration is set to 100mm/s2
  • Extrudeur maximum acceleration is set to 1600mm/s2

Starting Acceleration
Expressed as units/s/s so they will be mm/s/s.

M204 P3000.00 R2000.00 T2000.00

From this line we know that :

  • Print acceleration is set to 3000mm/s/s
  • Retract acceleration is set to 2000mm/s/s
  • Travel acceleration is set to 2000/mm/s/s

Advanced Settings

M205 Q20000 S0.00 T0.00 X10.00 Y10.00 Z0.30 E5.00

From this line we know that :

  • Minimum segment time is 20000µs
  • Minimum feedrate is 0mm/s
  • Minimum travel feedrate is 0mm/s
  • Maximum X jerk is 10mm/s
  • Maximum Y jerk is 10mm/s
  • Maximum Z jerk is 0.3mm/s
  • Maximum E jerk is 5mm/s

Home offset

M206 X0.00 Y0.00 Z0.00

From this line we know that no homing offset are applied.

Auto Bed Leveling

M420 S0

From this line we know that auto bed leveling is disabled.

Material heatup parameters
Temperature unit being °C these values will be expressed as °C.

From these lines we know that there are 2 preheating presets for materials.
From my guess one seems to be for PLA  (preset index 0) and the other one for ABS (preset index 1).

PLA preset
M145 S0 H180 B70 F0

  • Extruder temperature is set to 180°C
  • Bed temperature is set to 70°C
  • Fan speed is set to 0%

ABS preset
M145 S1 H240 B110 F0

  • Extruder temperature is set to 240°C
  • Bed temperature is set to 110°C
  • Fan speed is set to 0%

PID settings

M301 P63.00 I2.25 D440.00

From this line we know that the Hot End PID is set with

  • a Proportional value of 63
  • an Integral value of  2.25
  • a Derivative value of 440

Z-Probe Offset
Expressed as mm.

M851 Z-0.60

From this line we know that

  • Z probe X and Y offsets are not set
  • Z probe Z offset is set to 0.6mm

Filament load/unload lengths
Expressed as mm.

M603 L0.00 U100.00

From this line we know that

  • the Load length is set to zero
  • the Unload length is set to 100mm

How can we exploit these informations at our advantage ?

To calibrate our Tina2 of course !

Among all these informations I did mention the M92 gcode line that tells the printer how many steps/mm to use for each motors (X/Y/Z and Extruder).
Write down these values somewhere. You will need them later during the calibration process (I strongly suggest to use a piece of paper and a pen here).

From here how do I calibrate my Tina2 ?

Once you can communicate with your printer using Pronterface, it's just going to be a matter of sending Gcode commands to your printer.
I described how I personnaly proceed in this calibration tutorial. But I will also resume it here.

Print a small calibration cube like 20x20x10mm. This will be your "Theorical values".
Measure your printed cube with a caliper and write down the printed X/Y/Z values. This will be your "Measured values".

Unless your Tina2 is perfectly calibrated right out of the box (which I don't believe), you will probably notice a difference between the "Theorical" and "Measured" values : where you asked for 20mm you might measure 20,72mm or 19,87mm or whatever...
This is what we're going to correct by modifying our "steps/mm" (M92).

Use the following formula to calculate your new "steps/mm" (I suggest you proceed one axis at a time - start with X for example) :
New Step value = (Theorical value / Measured value) x Old Step value.

Example :

  • Theorical X dimension is 20mm
  • Measured X dimension is 19.87mm
  • M92 X is 100 (mm)

New M92 X will be : (20 / 19.87) x 100 = 100.65425.

So when we had M92 X100 previously we now want it to be M92 X100.65.
Simply type this in Pronterface to send this new X steps/mm to your Tina2 : M92 X100.65 (and <Enter> or use the "Send" button).

Not finished !
You need to store it definitely on the EEPROM. To do so type M500 (then <Enter> or "Send").

Want to make sure it's been stored ?: type M501 and notice the M92 gcode line has now changed !

Weedo Tina2 calibration, Jan 2022

Time to check the result

Print the same calibration cube again and measure it.
It should now be more accurate than before (closest to the theorical value - 2mm).
Not the case ? Measure again and redo the math and procedure.

Once you're good with the X axis you can now repeat the procedure for all the other axis.
Your Tina2 should now be fully calibrated and will give you accurate prints.

As I said there are more things to calibrate (acceleration or PID settings for example) to get the most out of your Tina2 .
So stay tuned for more tutorials about calibration.