Joel Cugnoni May 19th 2012 LinuxCNC/EMC2 with Seemecnc H-1 3d printer ------------------------------------------ I have just built my Seemecnc H-1 printer and managed to make it work in EMC2 / Linux CNC 2.5. I am running the stock kit hardware: Tb6560 3 axis board with Easystepper on pins 16/17 with 1.75mm hotend. The hardware has been setup according to the Electronics Manual (jumper and diode mods). I have not yet printed anything as I am waiting for ABS to be delivered but I have all axis working properly and Slic3r Gcode running (with slight modifications). Calibration is based on the default recommended settings and all units are in millimeters! This is how I did it: 1) downloaded the latest LiveCD from linuxcnc.org and installed it on a USB drive with Ubuntu 'Startup disk creator' (burning it to a cd should work as well) link: [url]http://linuxcnc.org/index.php/download/21/[/url] 2) connect the parallel cable to the PC and power up your H1. Boot from the USB drive / LiveCD in the 'Try Ubuntu' mode and run Applications -> CNC ->Latency test. Stress your PC by opening applications, running glxgears in a terminal and copying files. Then take note of the largest Max Jitter number (in ns). You should get something in the order of 10'000-15'000 to have a good control of the printer. 3) run Applications-> CNC -> Stepconf wizard 4) setup a new machine with the following options: name: Seemecnc-H1 axis config: XYZA driver type: Other units: mm Step time: 2000 ns Step space: 2000 ns Direction hold: 20000 ns Direction setup: 20000 ns Parport address 0x378 (default) Base Period max Jitter 150000 (note 1) Press 'Forward' (note 1: set max jitter = 1.1 * measured max jitter to have some margin) 5) Skip the Advanced config option window and move to Parallel port setup. Set the pins as follows (default = not inverted): Pin 1: X step Pin 2: Digital out 0, Inverted ** Pin 3: Y Direction Pin 4: Z Direction, Inverted Pin 5: Z Step Pin 6: Amplifier enable ** Pin 7: X Direction Pin 8: Y Step Pin 9 to 13 & 15: unused Pin 14: Digital out 1, Inverted ** Pin 16: A direction, Inverted Pin 17: A Step Note: it is easy to make a mistake and exchange pin 16 & 17, so if the extruder does not work just swap the role of these 2 pins. (**this enables the axis driver, without it, nothing works) 6) X Axis configuration: motors steps per rev: 200 Driver micro stepping: 8 Pully teeth 1:1 leadscrew pitch 50.8 mm/rev max velocity: 300 mm/s max accel: 1000 mm/s2 home location: 0 ** table travel -50 to 50 mm ** Note that you will get the standard 'default' 31.5 steps / mm calibration with these settings, a real calibration using a 20mm printed cube is necessary to fine tune these data. (** this is not yet optimized, I have set my zero in the middle of the axis with a stroke of +/- 50 mm for my trials) 7) Y Axis configuration: repeat the same as X axis, same comments. 8) Z Axis configuration: motors steps per rev: 200 Driver micro stepping: 8 Pully teeth 1:1 leadscrew pitch 0.635 mm/rev (calculated value, not calibrated) max velocity: 2 mm/s max accel: 100 mm/s2 home location: 0 ** table travel 0 to 50 mm ** Note: with this, you get the default 2519.7 steps/mm as recommended ** Z Axis range is not optimized. Zero coordinate at near contact with table 8) A Axis configuration: motors steps per rev: 200 Driver micro stepping: 8 Pully teeth 1:1 leadscrew pitch 5.6338 degrees/rev ** max velocity: 10 deg/s max accel: 50 deg/s2 home location: 0 ** table travel -9999999999.0 to 9999999999.0 mm Note: with this you get the default 284 steps / mm config. A calibration must be done to get the exact values for your system. **EMC uses degrees as units for A axis, but as we are using an extruder instead of a rotary table, we cheat a bit with the units and consider 1 degree as 1 mm of extrusion. So just forget about the displayed units and use values in mm here. 9) For each axis (use back and forward buttons to select): run 'Test this axis' to see if it responds properly. Be careful with the manual displacement arrows as they react extremelly fast. Play with velocity / acceleration values to change the dynamic response and also test a cyclic displacement of +/-2.5 mm to see if the system does not loose steps. 10) save your configuration. This will create a shortcut on the desktop to run EMC with your settings. 11) Gcode generation: Slic3r download a STL from Thingiverse for example download Slic3r 0.7.2b from here: [url]http://dl.slic3r.org/linux/slic3r-linux-x86-0-7-2b.tar.gz[/url] open file manager, go in Downloads, right click on the file and choose Move to->Home folder move back to your home folder, select slic3r-linux-x86-0-7-2b.tar.gz and right click->'extract here' go to Slic3r/bin and double click Slic3r to run it 12) Configure Slic3r settings: download the default settings from [url]http://forum.seemecnc.com/download/file.php?id=349[/url] Load these settings: it should be in Downloads/Slic3r_INI_SETUP_175mm_Filament_020_nozzle.ini In the Custom GCode pane, add this line to post-processing scripts: [code] /home/ubuntu/Slic3r-post-EMC.sh [/code] and save these settings !! Open Applications->Accessories->gedit and copy the following lines in a new file [code] #!/bin/bash # Slic3r post processing script to remove unsupported Mxxx codes for EMC2 grep -v '^M107' $1 > $1.ngc [/code] Save the file as /home/ubuntu/Slic3r-post-EMC.sh In the file manager, go to Home and right click on Slic3r-post-EMC.sh -> Properties in permissions, enable 'Allow executing' Note: all that the script does is to remove the line "M107" in the gcode file and rename it to .ngc to be able to load it in EMC2. You can do the same by opening the .gcode in a text editor and remove the M107 line manually... 13) Gcode generation: in Slic3r, click 'Slice...', select your STL file (lets call it yourfilename.stl) and wait 14) Running LinuxCNC/EMC2: on your desktop, double click the link 'launch seemcnc-H1' disable the emergency stop (1st button from top-left) enable power (2nd button) do File-> Open and choose the file named yourfilename.gcode.ngc in Manual control: - select X axis, use +/- buttons (or left-right arrow keys on the keyboard) to approximatelly center the X carriage, press Home Axis - select Y axis and do the same - select Z axis and go to your initial print height (or far above the table if you just want to test without printing), press Home Axis - select A axis and just press Home Axis. If you print, I guess that it is the right time to set your temperature properly and feed the filament with the + button (you may want to reduce the 2nd Jog speed to reduce manual feed rate) Once you are ready, press play and it goes !!! --------------- This is a fairly long procedure but I wanted to describe it in all details so that it can be reproduced properly while learning how it works. If it works well for you, I would suggest installing LinuxCNC to your hard disk for better comfort !! --------------- If this procedure is too long for you an you want to go straight to application, just run LinuxCNC livecd , download the attached archive to your home folder and extract it there. All settings, apps and examples are included, with screenshots of the settings and so on. Enjoy and give us feedback on seemecnc forums (original post here http://forum.seemecnc.com/viewtopic.php?f=24&t=604)