Skip to content

626Pilot 自制 Delta 类自校正系统,基于 Smothieware——采用 OOP 模块化编写,高性能的 G-Code 解释器及 CNC 控制器。

Notifications You must be signed in to change notification settings

pcdotfan/Smoothieware

 
 

Repository files navigation

    1. 626Pilot's Delta Calibration 介绍

此版代码仍处在测试阶段。 我不认为调平功能会对你的机器造成损坏,但请将你的手时刻放在复位键上!在运行时千万别离开!

此固件包含了为 Delta 类打印机设计的自动校正系统,您可以在 src/modules/tools/zprobe/ComprehensiveDeltaStrategy.cpp 获取相关信息。

从 GitHub 下载 FirmwareBin/firmware.bin,将其放在 SD 卡中,重启。

自动校正系统需要 Z 调平开关,或者是直接使用压敏电阻(FSR),这里有一份我设计的 Z 自动调平装置,大概需要花费 $15 + 一些使用 3D 打印制成的零件: http://www.thingiverse.com/thing:161753 ,还有一个更廉价的($5)——使用机械限位开关(比前两种方案精度低) http://www.thingiverse.com/thing:1000936

或许你会使用到这固件中的配置文件:我将其放在了 ConfigSamples 目录下的 Azteeg X5 或者 Smoothieboard ".delta" 文件夹里。

建议选用 Smoothieboard 版本,我并没有一台正在工作中的 Azteeg X5.

    1. 配置文件 你需要先将 ConfigSamples 内的配置文件拷贝一份并重新适配于你的机器。

此模块需要大量 RAM. 在进行自调平校正之前,请关闭 LCD 面板及网络支持直至校正结束。

    1. 校正工作流程 比较推荐的一种校正方法:
  • G29 E (调平)
  • G32 (校正限位开关/水平半径相关内容,在执行结束后别忘了按 M500!)
  • G31 H O P Q R (simulated annealing. corrects for errors in X, Y, and Z - it may help to run this multiple times)
  • G31 A (depth mapping. corrects errors in Z, but not X or Y - benefits from simulated annealing, though)
  • M500 to save everything
  • 提示:* 输入 G31 可列出所有可用的命令。你可以指定不同的 a full list of its available commands. You can specify different annealing temperature multipliers per-variable! This isn't usually necessary, but nice to have.
    1. 平面校正
  • 重要!* 在此之前先运行一次 G29,to get an idea of how repeatable your probe is , and to tune the probing parameters, which can have a HUGE impact on accuracy! You want 30 microns (0.03mm) or less, 几近于 0. If your probe's repeatability is worse than that, you may have printed your mount too loosely (not enough filament flow) or you may have "delta arm blues" or some other slop in the printer that should be corrected before trying any sort of calibration.

Priming and smoothing will make everything take longer to run, but may provide greater accuracy - provided that they actually provide a benefit, which they may or may not! If you need excessive priming or smoothing, it may be that your feedrates (particularly slow_feedrate) and accelerations are off. If they're too high, you may have repeatability issues; and if they're too low, you may have problems from the steppers vibrating. (They will tend to vibrate more the slower you go!)

The best way to calibrate your probe is to use the command G29 E S15 with different values for smoothing (P) and priming (Q). I would not bother to use either feature unless that experiment tells you it's necessary. *Do yourself a favor.* Spend as much time on G29 as it takes to get your probe's score as low as possible. You want 0, but you can take a little higher. *Even if it takes 20 minutes to get your probe dialed in, it WILL pay off ALL THE TIME because you'll get a better calibration!!!*

    1. Heated Bed If you have a heated bed, you MAY want to turn it on during the GeneB-style calibration (G32) and the simulated annealing routine (G31 OPQRS). However, you may want to leave it off instead. Try it both ways. The thermal expansion of the print surface may cause better results at room temperature, or at your favorite printing temperature. Choose the one that produces a better calibration (the one with the lowest energy).

If you don't have a heated bed, it will be necessary to set *comprehensive-delta.probe_ignore_bed_temp* to *true* in your config.

"But shouldn't we always calibrate at full operating temperature?" - No, not necessarily. We want the print surface to have the least amount of deformation possible during calibration, because those deformations will throw the calibration off. That's why you'd want to try it both ways, and pick whichever one is better.

ATTENTION

  • Make sure you bring your print surface up to temperature BEFORE you run the depth correction routine (G31 A). The print surface WILL change shape slightly when it's brought up to temperature - and yes, it IS enough to matter!!!
    1. Printer Calibration After your probe is calibrated, you can run G32, which will perform a standard "GeneB"-style calibration, in which delta radius and endstops are adjusted. That will get your printer a little closer to its optimal configuration. (If you already have an existing sorta-good calibration, you can skip this step.)

Then, you can run the simulated annealing calibration. Type G31 OPQRS. If you want to completely start from scratch, you can run G31 OPQRSY (the Y means "reset all offsets to 0") - but I don't recommend that - better to start from a fresh G32 (GeneB) calibration. The printer will go down and tap the print surface in a grid, and then start the simulated annealing process. It should take a few minutes, and you'll see two of the LEDs on the controller flash on and off slowly to indicate that it's working.

The algorithm has the ability to transit through worse solutions in order to find better ones, so you may find that as you run G31, it gets worse before it gets better, in two ways. First, the readout that tells you the energy level (during annealing) may rise before it falls. (You want the energy reading to be as low as possible - ideally 0. 0.05 or less is optimal, and 0.1 is "barely acceptable.")

Second, you may find that running G31 produces worse (higher energy) results that then become better. Each time you get a better result, my recommendation is to type M500 so that the calibration is saved. That way, you can run the annealing process five times if you want, and if it never produces an improvement, you can just reset the controller.

There ARE conditions in which the simulated annealing will not improve the calibration:

  • If your calibration is already fairly good (less than 0.05 energy on my printer, and maybe higher or lower on yours), this may well be the case. This is also a good reason to type M500 after you run G32.
  • It may also be that you have too much tower lean. Any tower lean will twist the effector so that it's not parallell ("tram") with the print surface. That twisting will rotate the effector's nozzle slightly off from center, meaning that its XYZ position is deflected a little from where the printer thinks it is! This can throw off the calibration. Using a digital angle gauge like the ones used to algin table saws, you may be able to re-tighten your towers to your chassis such that they have less lean. Some delta printers are better about this than others.
  • It may be that there's an issue with the probe. I found that using my Hall-O probe mount, it worked very poorly when I used 16-gauge wires to conenct it because the stiffness of the wire would push and pull against the probe during travel. If you want to use my Hall-O probe, make sure you use thin wire (22-gauge or higher), such as that which comes with the Hall-O board.
    1. Depth Mapping (Z-only 校正)
  • 切记:* 若机器已配备热床,在执行以下操作时请确认其处于关闭状态。 Then, turn the bed heat ON and wait for it to STABILIZE at its operating temperature BEFORE you proceed!!!

G31 HOPQR fixes errors in X, Y, and Z, assisting greatly with dimensional accuracy. However, there is one final step to get an even better calibration! After G31 HOPQR, you can run G31 A. That will tap the bed in a grid as before, but instead of adjusting the calibration, it will store a depth map of the print surface and use this to correct Z in real time. This ONLY fixes errors in Z, not X or Y, so you should only run it AFTER you do the annealing. Afterwards, you can run G31 Z again, and it'll show you the final corrected depths - they should be within a few microns of zero!

    1. Saving the calibration When you're satisfied with your calibration, type M500 to save everything. If you turn the printer off and then on again, it WON'T lose its configuration, so you only have to do this calibration once. Run it again if the printer is moved, or a heavy object or person collides with it.
    1. 概览 Smoothie is a free, opensource, high performance G-code interpreter and CNC controller written in Object-Oriented C++ for the LPC17xx micro-controller ( ARM Cortex M3 architecture ). It will run on a mBed, a LPCXpresso, a SmoothieBoard, R2C2 or any other LPC17xx-based board. The motion control part is a port of the awesome grbl.

Documentation can be found here : http://smoothieware.org/

NOTE it is not necessary to build Smoothie yourself unless you want to. prebuilt binaries are availble here http://builds.smoothieware.org/

    1. Quick Start These are the quick steps to get Smoothie dependencies installed on your computer:
  • Pull down a clone of the Smoothie github project to your local machine.
  • In the root subdirectory of the cloned Smoothie project, there are install scripts for the supported platforms. Run the install script appropriate for your platform:
    • Windows: win_install.cmd
    • OS X: mac_install
    • Linux: linux_install
  • You can then run the BuildShell script which will be created during the install to properly configure the PATH environment variable to point to the required version of GCC for ARM which was just installed on your machine. You may want to edit this script to further customize your development environment.
    1. Building Smoothie From a shell, switch into the root Smoothie project directory and run:
make clean
make all

To upload you can do

make upload

if you have dfu-util installed.

Alternatively copy the file LPC1768/main.bin to the sdcard calling it firmware.bin and reset.

About

626Pilot 自制 Delta 类自校正系统,基于 Smothieware——采用 OOP 模块化编写,高性能的 G-Code 解释器及 CNC 控制器。

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 54.2%
  • C 42.8%
  • HTML 1.0%
  • Makefile 1.0%
  • Ruby 0.3%
  • Shell 0.2%
  • Other 0.5%