e1e0.net

sources for e1e0 website
git clone https://git.e1e0.net/e1e0.net.git
Log | Files | Refs

free-cetus.md (9776B)


      1 Title: Cetus3D printer mods (free cetus !)
      2 Author: paco
      3 Date: 2019-01-16
      4 Type: article
      5 
      6 The Cetus is a 3D printer by [Tiertime][1].
      7 It's small and affordable (although not on the super cheap range of the
      8 Chinese printers). Also the quality of the build and hardware components
      9 is quite good, featuring linear rails and a 32bit cpu.
     10 
     11 The downside to this printer is that the firmware on the printer is not
     12 open source, and it does not work with gcode as the vast majority of the
     13 other printers on the market do. Once you buy it, you're stuck with the
     14 slicer that Tiertime provides which, of course, only works for Mac and
     15 Windows ... and although it is super simple and "it just works", it's
     16 really annoying in some aspects.
     17 
     18 So, there's the reason on trying to fix something that's not broken.
     19 
     20 There's a [company][2] that has developed a drop-in replacement of the
     21 original cpu board, but that runs with an open source firmware
     22 ([smoothieware][3]).
     23 
     24 The main goal is to use open source software on all the steps of the
     25 process, from design to print, so I won't have nasty surprises in the
     26 future (when Tiertime discontinues the printer, or stops giving support
     27 for it, or any of the fun stuff companies like to do, so they try to
     28 force you to buy new products) and use the OS that I want, and also a
     29 better control of the print settings for some 3D models that need more
     30 than the basics.
     31 
     32 The model I own is a MKII. This model does not have end stop switches.
     33 The homing is done when the cpu detects that the motors are stuck
     34 because they have reached end of travel. A bit crude, but I guess it
     35 saves cost on production.
     36 
     37 So, the first step for this conversion is to install limit switches.
     38 This is called "downgrade to MKI by Tinyfab". This needs to be done
     39 because the new cpu does not support that kind of brute homing. Also, I
     40 prefer the switch homing, as is less aggressive with the hardware,
     41 specially the motors and some small printed parts
     42 
     43 [Here][4] and [here][5] you can find a tarball with the files needed to print
     44 the adapters for the limit switches. They are the same files provided by
     45 Tinyfab, but renamed so it's clear which ones do you need to use.
     46 
     47 You'll need both X and Y axis pieces and one of the Z axis pieces
     48 depending on the model you have (standard or extended).
     49 
     50 If you plan to use a capacitive bed sensor, print also the piece to fix it to
     51 the hot end carriage. [Here][6] and [here][7] you can find a 3D model I did for
     52 that, as the one Tinyfab provides was broken for me.
     53 
     54 Print this before any disassemble of the machine of course !
     55 
     56 You can check the installation process on Tinyfab website. For me it was
     57 a little bit different than the pictures they show. So I'll try to
     58 describe it.
     59 
     60 * Remove the X motor (the one for the bed). That will set the belt
     61   loose. Insert the small X axis piece on the aluminium profile, put
     62   together the other part and the limit switch and secure that with
     63   screws to the piece you just inserted on the profile. Put then back
     64   the motor in place. You can push the tension mechanism for the belt
     65   from the other side of the track to make your life easier when putting
     66   back the belt on the pulley.
     67 
     68 * This one is the tricky one. The Y axis. Remove the motor too. In my
     69   case I had to remove the motor mount too, as you have to reach the
     70   screw that secures the belt to the hot end carriage. Be careful, as
     71   this will set the tension belt mechanism loose and the spring is quite
     72   strong. Pull out (but not entirely) the carriage, so the mentioned
     73   screw is visible. Take it out and replace it for the longer piece you
     74   printed. This is the one that will activate the limit switch. Put all
     75   back together carefully. Now remove the small cable routing piece that
     76   is attached to the motor, and replace it with the bigger Y axis piece
     77   you printed. The limit switch goes inside it.
     78 
     79 * The last one, Z, is the easy one. Just take out the first 2 screws on
     80   the vertical linear rail and pull out the whole cap (oh, you should
     81   remove the filament if you have any and the plastic tube). The limit
     82   switch goes inside the new cap. It can be a bit difficult to see, but
     83   there are a couple of holes for screws inside the piece so you can
     84   secure the switch to it. The switch bearing faces up. The pictures on
     85   the website may give you a hint.
     86 
     87 Now it's time to open the main printer case and access the motherboard.
     88 
     89 Remove the current _"limit switches"_, in case of the MKII those are some
     90 extensions to the cables that come from the motors. Connect the new ones
     91 in place and route the cables so they are not in the way and all axis
     92 can move freely. I routed mine below the Z axis motor.
     93 
     94 In case you also want to use the bed capacitive probe, you'll have to
     95 solder a connector to the "case open" slot and put the X axis limit
     96 switch there (and the bed probe where the X limit is supposed to be).
     97 This is needed because the case open slot does not provide the power
     98 needed by the capacitive sensor. Also, some changes will be needed on
     99 the config later.
    100 
    101 Remove the stock cpu and replace it by the tinyfab one. Simplest step in
    102 the whole process.
    103 
    104 Get the last firmware file from Tinyfab website. It comes with an
    105 example config file already.
    106 
    107 Connect the printer via USB to a computer. It will appear as an external
    108 drive. That's the SD card on the printer board.
    109 
    110 At this point, if you just copy the config file as the Tinyfab docs say
    111 and reboot the printer, you're almost good to go. Put there the firmware
    112 and rename it to 'firmware.bin' so it gets upgraded on next boot, just
    113 in case the cpu did not have the last version installed already.
    114 
    115 Set up the `gamma_max`, which is the max travel on the Z axis. I did
    116 this manually with the _"paper"_ method. So connect with a Gcode sender
    117 program like Repetier-Host or UGS. Then:
    118 
    119 * Home all axis with `G28` (be prepared to turn the printer off in case of
    120   failure, one axis going to the other side, ....)
    121 * Set coordinates to absolute with G90
    122 * Go to 0,0 on XY with `G0 X0 Y0`
    123 * Lower Z until the nozle traps the paper. Take a look at Z position.
    124   That's your new `gamma_max`.
    125 
    126 Now, enjoy your free 3D printing experience !
    127 
    128 I did some config tweaks though. [Here][8] and [here][9] they are for
    129 reference.
    130 
    131 Basically, I removed the section for the second hotend, as it was
    132 bothering me and I'll never have one on this printer.
    133 
    134 Changed the X axis limit switch pin, as there is now the capacitive bed
    135 sensor, so `alpha_max_endstop` is now `2.13^`
    136 
    137 I also enabled the zprobe, set up the good pin number `1.24!^` and did the
    138 bed level process. It's a bit tricky, but it works in the end (mind that
    139 I use the "Rectangular grid compensation" method as described on
    140 smoothieware [website][10], maybe the easier triangular method is enough)
    141 
    142 * Home all axis with `G28`
    143 * Start the probe process with `G32`
    144 * Save the results and the calibration file with `M500` and `M374`
    145 * Home again and you're good to go.
    146 
    147 This calibration will be read on power up by the printer, so no need to
    148 do it again unless you change something related to the bed plate.
    149 
    150 Some things to take into consideration, I cheated a bit to be able to
    151 perform the process. The way it works is, you define a bed size and an
    152 odd number to be the size of the probing grid, in my case 7 (so 7x7
    153 points will be probed). You al so need to enter the offset of the nozle
    154 and the probe. The problem is that that offset gets added to the bed
    155 dimensions for probing, so in my case the offset would be +40 for the X
    156 and -10 for the Y, that means that the probing would start at -40 on the
    157 X and will end on 190 on the Y. Maybe for other printers that makes
    158 sense, but the Cetus has its travel limited to the size of the bed.
    159 
    160 So what I end up doing, was set up a bed grid size of 140 on the X by
    161 170 on the Y and setting up only the Y offset. It's not perfect, but is
    162 close enough and it works kind of right.
    163 
    164 Also I did a pid temperature auto test. You can get more info about
    165 this [here][11]. It can easily be done with the command:
    166 
    167     M303 E0 S210
    168 
    169 `M303` is the actual command, `E0` is the heater (0 as is the first and
    170 only), and `Sxxx` is the target temperature. Use a temperature you're
    171 going to use in real prints.
    172 
    173 At the end you'll get a message like:
    174 
    175     Cycle 4: max: 246.189, min: 227.627, avg separation: 0.418274
    176         Ku: 34.9838, Pu: 39.85
    177         Trying:
    178         Kp:  21.0
    179         Ki: 1.053
    180         Kd:   105
    181     PID Autotune Complete! The settings above have been loaded into memory, but not written to your config file.
    182 
    183 So there you have your pid values you can put on the config file. Mine
    184 won't be probably good for you, although default ones may work.
    185 
    186 And finally I modified the max PWM value for the hot end control. The
    187 default was 160 and I could not get the hot end to temperature ... it
    188 fell always short. Maybe 255 is too much and a little lower is ok, I
    189 still have to try that. I hope is not too much and I don't fry
    190 something.
    191 
    192 With all this, the Cetus is now a normal printer you can use in
    193 combination with the open source slicer and gcode sender of your choice.
    194 I personally prefer [Slic3r][12] and [Octoprint][13] (so the printer is not
    195 right next to me).
    196 
    197 [1]: https://www.cetus3d.com/
    198 [2]: https://www.tinyfab.xyz/
    199 [3]: http://smoothieware.org/
    200 [4]: https://e1e0.net/files/cetus_limit_switch.tar.gz
    201 [5]: gopher://e1e0.net:70/0/files/cetus_limit_switch.tar.gz
    202 [6]: https://e1e0.net/files/cetus_zprobe_holder.stl
    203 [7]: gopher://e1e0.net:70/0/files/cetus_zprobe_holder.stl
    204 [8]: https://e1e0.net/files/cetus_config.diff
    205 [9]: gopher://e1e0.net:70/0/files/cetus_config.diff
    206 [10]: http://smoothieware.org/zprobe#probing-for-cartesian-machines
    207 [11]: http://smoothieware.org/temperaturecontrol#pid-autotuning
    208 [12]: https://slic3r.org/
    209 [13]: https://octoprint.org/