Cetus3D has put together a minimalist machine with a price to match, but can this little machine still 3D Print with the best of them? Watch to find out! Disclaimer – Cetus3D sent me a pre-produc…
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
After having my Cetus3D fitted with the tinyFab CPU, I wanted to implement automatic bed leveling. The SmoothieWare firmware supports this and is described here. As the rest of the Cetus3D hardware is quite a closed system, I had to rely on information collected by tinyFab about the workings. I found the following image on the Cetus3D Facebook group
This became the basis for my auto bed leveling implementation.
Sensor
It all starts with the sensor. Most applications rely on either an inductive sensor or a mechanical switch. The problem with inductive sensors, however, is that they rely on voltages from 6 - 36V. This voltage is not readily available on the Cetus, it’s all 5 Volt. After reading some forums and paging through Aliexpress, I found a sensor that could work, the 3D Touch sensor.Â
This sensor combines two things
Actuator to drop a pin
Sensor to sense touching the bed
It needs the following connections
3-pin: Brown (-, GND) Red (+5V) Orange (control signal)
2-pin: Black (-, GND) White (Z min)
The actuator is triggered by a PWM signal on the three pin connector where the duty cycle determines the functions
3% - Push pin down
7% - Push pin up
8.4% - Self Test
10.6% - Alarm Release
5.5% - M119 Test Mode
Based on the image show earlier we have two port on the tinyFab CPU that we can use
Port 1.18 - This is connected to the second header on the extruder board.
Port 2.13 - This is attached to the door check on the mainboard
So I started with the easy stuff solder a socket to the mainboard for the door check like so
Then came the next challenge connecting the actuator. I hoped life would be easy and I could just connect the three pins to the auxiliary connector on the extruder. As can be seen, by the diagram, there is a transistor attached to pin 1.18 that pulls the signal low on a high from a pin. This meant that I needed something to make the signal go high against the GND pin. TinyFab suggested using a 10k resistor between 5V and the signal. Now I got the right signal between GND and the Signal pen. The only minor issue was that setting the pin to 3% resulted in a 97% duty cycle. By reverse logic setting it to 97% got me a 3% duty cycle and I could trigger the actuator. This is how I eventually modified my extruder board to get the right connections to the auxiliary connector.
The pins on the left are from top to bottom:
Signal (connected to 5V with 10k resistor)
GND (from Pin 3 of the Fan connector)
5V
Putting everything together and connecting the actuator to the extruder board it looks like this.
Configuration
There are three things that need to be setup in the config.txt file. First the servo, this controls the up and down movement of the pin. Modify the following lines in your config.txt file:
switch.servo.enable true
switch.servo.input_on_command M280 S97.0 Â # 100 - 3%
switch.servo.input_off_command M280 S93.0 Â # 100 - 7%
switch.servo.output_pin 1.18 # Pin connected to the aux-port
switch.servo.output_type hwpwm    # H/W PWM output settable
switch.servo.pwm_period_ms  20    # Default is 50Hz
Make sure that there is no other reference in your confiuration file to pin 1.18
The second part is are the leveling settings:
leveling-strategy.three-point-leveling.enable     true      #
leveling-strategy.three-point-leveling.point1 Â Â Â Â 38,0 Â Â Â # first probe pointÂ
leveling-strategy.three-point-leveling.point2 Â Â Â Â 175,0 Â Â Â # second probe point
leveling-strategy.three-point-leveling.point3 Â Â Â Â 175,180 Â # third probe point
leveling-strategy.three-point-leveling.home_first   true      Â
leveling-strategy.three-point-leveling.tolerance    0.03      Â
leveling-strategy.three-point-leveling.probe_offsets  37,0,0 # based on the bracket     Â
leveling-strategy.three-point-leveling.save_plane   false     Â
The final part are the z-probe settings. That determine what pin is connected to the switch.
zprobe.enable                  true
zprobe.probe_pin                2.13
zprobe.slow_feedrate              5  Â
zprobe.fast_feedrate              100 Â
zprobe.probe_height               10 Â
Most of these settings are already in the confix.txt file, you will need to modify and uncomment based on the above settings
Bracket
To mount the 3D Touch sensor to the extruder assembly I designed a bracket. This can be downloaded from Thingiverse. I printed this using 0.1 layer height and 0.2 mm nozzle. You will need 2 10mm M3 bolts to mount it on the extruder assembly and 2 10mm M3 to mount the sensor to the bracket. The end result should look something like this:
Calibration G-Code
Now that we have the sensor mounted and hooked up to the door connector and the modified auxiliary port on the extruder board we can test if everything is working. Upon startup of your printer the sensor will light up and do a self test. Use the following commands to test the up and down movement of the pin
M280 S97 - Pin up
M280 S93 - Pin down
When the pin is in the down position it should be lower than the nozzle on my printer the triggerpoint of the sensor if 0.5mm higher than the requested nozzle height. To check do the following:
Home axis: G28
Drop pin: M280 S97
To go center (based on offset of sensor): G1 X52 Y90
Now move the extruder downward until the sensor is triggered (If the sensor is not triggered before nozzle hits the bed you may need to add a washer between the sensor and the bracket.
Get a reading on the Z-Height and make a note: M114
Now you can add the following code to your slicer:
G28 ; home all axes
M280 S97 ; Pin Down
G32 ; Level Bed
G1 X52 Y90 ; Go to center
G30 Z0.5 ; Set sensor offset <-- use value seen at step 5 of the previous process
M280 S93 ; Pin Up
After some posts in the Cetus3D users Facebook group I decided to buy the tinyFab CPU and replace the Cetus3D CPU with it. Before you decide to do the same remember that you loose:
Wifi connectivity
WarrantyÂ
But you gain
Fast control board based on Smoothieware (high performance, open-source G-code interpreter designed to be user- and hacker-friendly)
Optionally auto bed leveling
Optionally software controlled heated bed
These reasons were enough for me to make the jump. I’ve collected my installation and configuration procedure here
Hardware installation
This is the simplest part. Disconnect printer, open the case, carefully remove existing CPU and put the tinyFab CPU in place. Be careful to have the orientation correct. It should look something like this:
Software setup
Download the following
Latest Smoothie firmware (the CPU comes pre-installed with the Smoothieware, but always better to get the latest)
Cetus config.txt file
Plug the printer into USB and turn on. You should see a removable drive appear, out the firmware file and config.txt file here. Restart the printer by powering off and on. This will upgrade the firmware and start using the config.txt for control of the printer.
The config.txt file needs to be adjusted to your printer. Make the following changes:Â
gamma_max: set this to the nozzle height in Cetus Studio
uart0.baud_rate: set this to 250000 for faster communication
Unmount the drive and restart the printer.
Calibrate nozzle height
I found the nozzle height in Cetus Studio not to be correct when starting to print with the tinyFab CPU, so I followed this procedure to set it correctly
Connect the printer through USB to either Simplify 3D printer control or repetier-host. Open the serial port to communicate directly to the printer and do:
Home axis (G28)
Move nozzle to middle of plate at 10mm above zero (G1 X90 Y90 Z10)
Use the controls in either printer control or repetier-host to lower the nozzle so that you can pass a piece of paper between nozzle and bed without the nozzle catching it.
Set new zero location (M306 Z0)
Store new zero location permanently (M500). This writes the setting in the config-override file.
Home axis (G28)
Calibrate extruder
I used the procedure described here to calibrate my extruder. The setting in the config.txt file is extruder.hotend.steps_per_mm. I ended up with 233 for my printer. Some tips:
Remove nozzle
Remove the setting from config-override before making changes in config.txt
Printer control
As we can no longer control the printer through Wifi, I have chosen to control it with OctoPrint. You need
Raspberry Pi 2/3
SD Card
Then follow the procedure on the site to install it on the SD card and set it up.
My settings
Here are the settings that I currently use for printing with my Cetus3D
config.txt
Simplify 3D profile [includes code for auto bed leveling]
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
So what do people print when they start with a #3dprinter? Right... print a #RaspberryPi case and a #phonecase. One with #protopasta #carbonpla and the other with #polyflex. Both printed on the #cetus3d and I'm still really impressed at what it can do. (bij Park Van De Tijden, Vathorst)
Machine failure.... Blown Mosfet on my extruder... Luckily it didn't cause a fire but my extruder was 300+ degrees overnight.... #3dprinter #cetus3d #mk3 (at Bushwick, Brooklyn) https://www.instagram.com/p/Bwzho58BNc-/?utm_source=ig_tumblr_share&igshid=bbt9l8fnw8wb