Zmin Printers Driver

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.

Printer Forum is a blog that shares about drivers for any printer devices. This blog does not provide the file directly from the server, We only index and link to the official source site that provided by the printer manufacturers to make user can download the driver easily. Check twice if you have downloaded the file or driver before using it on your computer.

This site does not host any illegal content, files or software. We respect Copyright Laws. If You have found the link to an illegal content, please Contact Us. We are not responsible for the damage and losses caused by the file or drivers that used.

How to Connect your Printer to a Computer

This Part explains how to connect a wired or wireless printer to a Windows or Mac computer. If you have connected, you can share the printer to your home network so that other computers at home can use the printer even if the computer is not directly connected.

Connecting a Printer on a WindowsConnecting a Printer on a Mac
  1. Set the printer so that the place is close to the computer. Make sure the distance is close enough so that the cable can reach the computer without having to stretch.
  2. Turn on the printer. Press the power button on the printer. This button usually has an icon above or beside it. You must connect the printer to a power source.
  3. Connect your printer to the Windows computer using a USB cable. Make sure the computer is on and not locked. In some cases, the computer will automatically run setup and install the printer correctly when you connect it to a computer so you can use it directly.
  4. Open Start. Click the Windows logo in the left corner of your desktop.
  5. Click Settings located at the bottom left side of the Start window.
  6. Click Devices. This option is located at the top of the Settings window.
  7. Click the Printers & scanners tab located on the left side of the window.
  8. Click the Add a printer or scanner button. This button is located at the top of the Windows page.
  9. Click the name of your printer, then click Add device. The printer name is usually a combination of the printer manufacturer (for example “Canon”), the printer model name, and the model number.
    If the printer name is not here, click the printer link that I want isn’t listed which is under the Add a printer or scanner button, then follow the instructions on the screen.
  10. Follow the instructions given. Depending on the printer, you may need to adjust the settings before the printer is ready. When finished, the printer is ready for use.
  11. When prompted, insert the CD that came with your printer into the disc slot on the computer. If you are using a used printer that is not accompanied by a CD, download the software on this website by search your model and printer manufacturers.
  1. Update your Mac computer. Before you connect the printer to a Mac computer, make sure all the latest drivers (drivers) and patches are installed on the computer. [1]
  2. Set the printer so that the place is close to the computer. Make sure the distance is close enough so that the cable can reach the computer without having to stretch.
  3. Turn on the printer. Press the power button on the printer. This button usually has an icon above or beside it.
    You must connect the printer to a power source.
  4. Connect your printer to the Mac computer using a USB cable. The USB cable must be plugged into the USB port on the computer.
    If your Mac computer does not have a normal USB port, buy a USB-C-to-USB adapter for that computer.
    When doing this, the computer must be turned on and you are logged in.
  5. Click the Install button, then follow the instructions given. Provided that it is compatible with your Mac computer, the printer will most likely be directly installed on the computer. However, you may need to click the Download & Install button in the window that appears to complete the installation. When the process is complete, the printer is ready to be used on your Mac computer.

Please note, Many modern printers provide applications that can be downloaded so that your printer can connect to a tablet or smartphone. Some old production printers may not be shared or connected via Wi-Fi or other networks.

Endstops or limit switches are used on every moving axes of a 3D printer. The following chapter will provide information on:

  • Unified Firmware 2.0 is the latest easy to use firmware for select 3D printers and boards from TH3D Studio. Both 8 bit and 32 bit based machines/boards are supported thanks to being built on Marlin.
  • Drivers for printers and MFPs.
Printers
  • Purpose of the endstop
  • Types of endstops
  • Configuring endstops and probes
  • Electromagnetic Interference / Electric Noise impact on endstops

Endstops fulfill two important functions in a 3D printer: Reference system for the axes system and safety.

Reference for the axes system

After powering up a 3D printer the printer’s controller board does not know at which position its axes are. Marlin indicates this by blinking question-marks in place of X, Y and Z on the LCD screen (v1.1.8 and older) or blinking ‘?’ in place of the coordinates besides X,Y and Z (Marlin v1.1.9 / v2.0.0 and newer).

This means the system needs first to establish its starting point of the physical (machine) coordinate system, a process called Homing. Homing can be initiated either via the G28 G-code or via the LCD controller.

Illustration 1: LCD indication not homed axes (Marlin <= v1.1.8)

Safety

The other important aspect of an endstop is protecting the hardware from damage. Should any movement try to exceed the physical limits of the machine, the endstop will cut the movement.


There are two main types of endstops. Hardware endstops and software endstops.


Hardware endstops

Hardware endstops are electrically connected to the endstop ports of the printer control board and will provide a signal when the endstop condition is met.

Illustration 2: Most common endstops (left to right): Micro switch, optical endstop (light barrier), hall sensor (magnetic)

Regardless of the type the basic way of working is the same:

  • A typically 5 Volt signal (High) drops to 0 Volt (Low): Normally closed (NC) switch
  • A 0 Volt signal (Low) rises to 5 Volts (High): Normally open (NO) switch

Since endstops are a safety feature NC switches are recommended as they will halt the machine should the switch be damaged, e.g. by a broken cable etc.

Probe as Z-Endstop

Probes can act like an endstop for the minimum Z-axis. While the typical endstop has a fixed position, the probe is mounted on the print-head and can freely move around the bed.

Illustration 3: Common probe types: Inductive (left), solenoid touch probe (right)

Some aspects of probe configuration are considered in this endstop introduction. Further reading is provided in the Chapter Probes Configuration, Auto Bed Leveling and Unified Bed Leveling.

Software Endstops

Typically 3D printers are only equipped with hardware endstops on one side of each axis (Minimum or Maximum of the respective axis). As discussed above this is used to determine the starting point (origin) of the machine coordinate system.

Zmin printer driver

In order to also protect the other side of the axes software endstops should be defined in the firmware via the #define MAX_SOFTWARE_ENDSTOPS / #define MIN_SOFTWARE_ENDSTOPS directive. This then uses the value from #define [XYZ]_MAX_POS / #define [XYZ]_MIN_POS to determine the maximum distance between the physical endstop and the software commanded stop of the axis. Software endstops can be (de-)activated via the M211 G-code.

Zmin Printers Drivers


Background

By default, slicers generate G-code that places the base of a printed model at z=0 and build upwards from there. The result of homing the z-axis should thus place the build surface at the z=0 plane. After homing in z, the hardware z endstop is deactivated (unless you have set ENDSTOPS_ALWAYS_ON_DEFAULT in configuration_adv.h, which can be overridden by M120, M121), but to protect the hardware a software endstop is activated (which in turn can be overridden by M211 S0). This software endstop is located at Z_MIN_POS (defined in configuration.h) . This is normally at z=0 at the nominal location of the bed. Note that when using bed-leveling, this software endstop is applied to the uncorrected slicer generated z-values. This allows printing into the hollows of the bed, where z < 0.

We now describe some common Cartesian printer configurations, with and without bed-leveling probes.

Microswitch endstop - no bed leveling probe.

Here we mechanically adjust the bed and possibly additionally the microswitch trigger point to level the bed surface as close as we can to the z=Z_MIN_POS (normally = 0) plane. The z location of the hardware (microswitch) trigger point defaults to the value of Z_MIN_POS. It is possible however to use a microswitch trigger point above the bed by setting MANUAL_Z_HOME_POS to the z-coordinate of the trigger point. See here. Having the trigger point below the bed makes little sense as the nozzle would crash into the bed before the microswitch triggered on homing.

Probe used for homing and bed-leveling.

Printer

The probe should be mounted so that its trigger point lies below the extruder nozzle. Z_PROBE_OFFSET_FROM_EXTRUDER (negative!) is this vertical offset. This offset is applied by the firmware when homing in order to properly reference the coordinate system to the nozzle position. To measure this see here. For a mechanical probe like a BL-Touch, this offset is geometrically fixed. For a remote sensing probe (e. g. inductive or capacitive), the offset might vary with bed material. You can tweak it using M851.

Figure 1: Example configuration using BL-Touch for both homing and probing.

The process of bed-leveling generates an array of z-values of the bed heights at the probed points. Marlin interpolates these values to estimate the bed height at any given x/y location. Figure 1 illustrates the situation. While probing, all endstops are turned off so that the probe can reach into the valleys of the bed. To protect the machine in case of the probe failure during probing set Z_PROBE_LOW_POINT to limit the probing depth.

Microswitch used for homing, probe for bed leveling.

When homing, the printer is not protected against hardware endstop failure. This configuration uses a perhaps more reliable microswitch for homing, reserving the probe for bed leveling, where Z_PROBE_LOW_POINT provides failure protection. The configuration is illustrated in Fig. 2, requiring the use of both MANUAL_Z_HOME_POS and Z_PROBE_OFFSET_FROM_EXTRUDER Ideally, with an uneven bed, MANUAL_Z_HOME_POS should be adjusted so that z=0 lies halfway between the highest and lowest parts of the bed. This makes the maximum bed correction as small as possible.

Figure 2: Example configuration using a microswitch for homing, BL-Touch for bed-leveling probe.

Measuring offsets.

To measure an offset between a trigger point and the bed, lower the nozzle to the trigger point (by homing, if it’s the homing device), and note the z-value. Now turn off the software endstop temporarily (with M211 S0) to enable lowering the nozzle further down to the bed. Note the z again. The difference is the height of the respective trigger point above the bed.

Electromagnetic Interference (EMI) or electric noise, is an effect which can ruin the clean signal needed to properly and precisely measure electronically, be it temperature, endstop hits or any other value.


Sources and effect of EMI

In today’s life an abundance of sources for Electric Noise exists: Mobile phones, microwaves, WIFI, power supplies etc. In a 3D printer itself, there are also some prominent and strong sources of such noise:

  • Heated beds
  • Hot ends
  • Stepper motors
  • PWM modulation

The Electromagnetic Interference created by these sources are picked up by other components, either because they are directly connected or via radiation. The useful signal needed by the other components will be disturbed or even altered so much that it is no longer useful.


Effect on endstops / limit switches

In the following High = Logic 1 = 5 Volt will be used for a pressed switch and Low = Logic 0 = 0 Volt for a not triggered switch.


Ideal endstop characteristic

Illustration 4: Ideal Endstop

The above Illustration 4 shows an ideal endstop characteristic: Once pressed it jumps from Low to High and the printer control board realizes this in virtually no time.


Real endstop characteristic with low noise

Illustration 5: Real endstop characteristic

Illustration 5 shows:

  • There is no clean Low or High. Both states are somewhat unclean
  • Around the trigger point (marked in orange) an effect known as bouncing is shown: Due to mechanical influences the switch bounces between Low and High a few times before settling to High
  • Bouncing is unwanted but in case of endstops not a show stopper


Real endstop characteristic with peak noise

Illustration 6: Real endstop with EMI

This Illustration 6 shows:

  • Same characteristic as above but with a peak caused by EMI (marked in red)
  • The peak is high enough to be falsely detected by the printer control board as pressed switch, potentially ruining a running print


Countermeasures

There are numerous counter measures preventing noise:

  1. Shielded cables / twisted cable pairs
  2. Cable routing (route signal cables away from power cables)
  3. Software filtering
  4. Hardware filtering

Zmin Printer Driver

In the following the options 3 and 4 will be discussed further.


Software filtering

Beginning with Marlin v1.1.9 and v2.0 the software measures against endstop noise are improved and exposed as a setting. Prior versions already implemented filtering that is permanently active. For the sake of precision, this now has been exposed as a user setting in Configuration.h and deactivated by default.

Activating this option will lead to following endstop characteristics:

Illustration 7: Endstop with software filtering

The yellow marked area in Illustration 7 shows the area where the software compensation is active. The first yellow area is an effect due to noise and the algorithm decides that no endstop is triggered since the signal falls back to a Low state.

The second yellow area marks the spot where a real and wanted endstop triggering has happened. Now the algorithm basically “watches” the situation for some milliseconds until deciding if the endstop really is triggered or if an EMI / Noise effect needs to be compensated. This will lead to delays and finally to a precision loss in the detection of the endstop.

Depending on the printer’s geometry and affected endstop, this precision loss may result in issues especially concerning the bed leveling. Using this feature is not recommended. Implementing some type of hardware filtering is strongly preferred.

Hardware Filtering

Hardware filtering can range from a simple capacitor in parallel to the switch over a resistor / capacitor combination (RC-unit) up to opto-couplers and flip-flops.


Board

Some printer controller boards already contain such filters located at the endstop connectors. Unfortunately the popular RAMPS v1.4 design does not. A deficit that has been corrected with the RAMPS v1.4.2 design:

Illustration 8: RAMPS v1.4 vs v1.4.2


Endstop PCB

For 3D printing ready made filtered endstops are available, e.g. according to the Makerbot design:

Illustration 9: Endstop PCB with RC unit


Endstop with capacitor

A more simple variant, that can easily be fitted to existing endstops is a 100nF capacitor, soldered over the two endstop connector pins (in parallel):

Illustration 10: Endstop with 100nF capacitor


Effect of the hardware filtering

Illustration 11 below shows the effect of such hardware filtering: The noise level is smoothed and peaks will be reduced so much that they no longer will cause false readings. Additionally the fast bouncing at the beginning of the triggering will also be damped.

Zmin Printer Driver

Illustration 11: Endstop characteristic with hardware filter

Conclusion

Electrical Noise should not be underestimated. It is invisible but it may lead to strange effects that are very hard to diagnose due to its spurious nature. Simple measures like adding a capacitor will already improve the situation considerably, overall improving reliability of the machine.