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/