After reviewing the release notes, there was no reason for me to upgrade to this version other than the habit of trying to keep the software current.
25 July, 2020
Updating the starting and ending G-code
Today, I am making some minor tweaks to the start and end G-code within Cura. There are three changes I would like to make. The first is to have the bed and the hot-end heat up at the same time. Second, I am wondering if calling M420 right after a G29 is helpful. If it is not helpful then come up with helpful solution. The third change is to have the hot-end to have a different ending position.
Final G-code
Start G-code
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
; Start Dual Nozzle/Bed Preheating
M140 S{material_bed_temperature_layer_0} ; start preheating the bed
M104 S{material_print_temperature_layer_0} T0 ; start preheating hotend
G28 ; home
M190 S{material_bed_temperature_layer_0} ; heat to Cura Bed setting
M109 S{material_print_temperature_layer_0} T0 ; heat to Cura Hotend
G28 ;Home
G29 ;
M500 ; Save settings
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
End G-code
G91 ;Relative positioning
G1 E-2 F2700 ;Retract a bit
G1 E-2 Z0.2 F2400 ;Retract and raise Z
G1 X5 Y5 F3000 ;Wipe out
G1 Z10 ;Raise Z more
G90 ;Absolute positionning
G1 X{machine_width} Y{machine_depth} ;Present print
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed
M84 X Y E ;Disable all steppers but Z
Research
Change 1
Chuck Hellebuyck has a video on how to get Cura to heat up the bed and hot end at the same time. Faster Hot End & Heated Bed warm-up in Cura
Change 2
G29 - Bed Leveling (Automatic): Probes the bed and enables bed leveling compensation.
M420 - Bed Leveling State: Get and/or set bed leveling state.
'Storing Bed Leveling Mesh & Updating your Slicer' from TH3D Studio
'Unified Bed Leveling (UBL) - Marlin Firmware' from 3DMaker Engineering
'Automatic Bed Leveling' from Marlin
M500 - Save Setting: saves all configurable settings to EEPROM
Having a start g-code that uses a G29 followed by M420, is not necessary. The G29 turns on bed leveling, probes the bed, and stores the values to RAM. The M420 turns on bed leveling and reads the values from the EEPROM.
Options to make bed leveling more helpful
- Modify the start g-code to run G29 without M420
- Modify the start g-code to run G29 and M500 without M420
- Modify the start g-code to run G29, M500, and M420
- Modify the start g-code to run M420 and occasionally run a bed leveling that saves the data
In thinking through the options, I have settled on option 2. The build surface on my Ender 5 Plus is removable. Having the auto-leveling routine run before each print should help get a good first layer as the build surface develops imperfections over time. By saving the bed leveling data, I should get two benefits. The first benefit is the data will be present after the power is cycled on the printer. The second benefit is the plug-in 'Bed Visualizer' will have current data.
Change 3
The ending G-code uses the variable {machine_depth} to set the 'Y' axis. This puts the hot end in the back left corner. The problem is when the printer starts up the BL Touch sensor reports an error. My solution is to change from using the variable {machine_depth} to a value of '0'.
Update: The X0 Y0 position put the hot end in the front left corner. I am trying X{machine_width} y{machine_depth}, hopefully this puts the hot end in the back right corner.
Before Changes
Before I get started on making any changes, I recorded the start and end G-code that my version of Cura (4.6.1) is using.
Start G-code
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
G28 ;Home
G29 ;
M420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder G1 Z2.0 F3000 ;Move Z Axis up
End G-code
G91 ;Relative positioning
G1 E-2 F2700 ;Retract a bit
G1 E-2 Z0.2 F2400 ;Retract and raise Z
G1 X5 Y5 F3000 ;Wipe out
G1 Z10 ;Raise Z more
G90 ;Absolute positionning
G1 X0 Y{machine_depth} ;Present print
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed
M84 X Y E ;Disable all steppers but Z
04 July, 2020
Getting the first layer right
Over the past few days, I have made several attempts to level the bed of my Ender 5 Plus. I have read the manual that came with the printer, read several forums, and watched several YouTube videos.
What I have learned
- The first layer is very important to get right. This is the foundation that the rest of the print is built on.
- If a print has trouble sticking to the bed. Check the bed level is a good first step.
- The OctoPrint plugin Bed Visualizer can help understand where there are high spots and low spots on the build plate.
- There is the "right" amount of squish. See 'Bed Leveling Guide' image.
I am using the model 'Bed Leveling Calibration Test Object (Parametric)' by pgreendland. The first couple of attempts turned out poorly. This caused me to relevel the bed. In looking closer at the results, I could clearly see each line the printer laid down. This got me to thinking that maybe under extrusion was the problem. I did switch some part on the extruder motor. I wanted metal parts instead of plastic.
I performed the standard extrusion test. The hot end was heated to 200 C, I marked the filament at the 100 and 110 mm points, and extruded 100 mm. Only 94 mm of the filament was pulled in.
To update the extruder steps, I made a back of the configuration using the OctoPrint plugin 'EEPROM Marlin Plugin'. For my printer, the Extruder steps were 94. Using the formula (expected amount of filament * Current E-Steps) / Actual extrusion amount, I was able to calculate a new step value.
(100 X 93) / 94 = 98.9
I set and saved the new value to the EEPROM then reran the extrusion test. This time the test hit the mark.
Reprinting of the 'Bed Leveling Calibration Test Object' turned out better. The print stuck to the bed. The print was not as solid as I expected. I also think that the hot end may be a little high.
For the next test, I am going with a more complex model. I am not changing any settings. I want to see if the current settings can produce a nice print. I am going with the 'CHEP Calibration Cube' for the model.
Setting up Octoprint
When I was running my old 3D printer, I found using OctoPrint to be helpful. I think it would be good to set up a new instance of OctoPrint.
Steps
- From the OctoPrint web site, I download OctoPi 0.17.0.
- Using Etcher, burned the image to a 16GB SD card.
- Updated the file octopi-wpa-supplicant.txt with my network credentials.
- ssh to the pi
- ran raspi-config
- changed the user password
- change timezone
- rebooted the pi
- Using a browser, I navigated to the IP of the OctoPi and followed the prompts to set up the first user
At this point, I paused to explore the interface. While I was exploring, OctoPrint went ahead with checking for updates. Updates were discovered and I went ahead with installing them.
Plugins
- Bed Visualizer
- Displays 3D mesh of bed topography report
- Settings
- General
- GCODE Commands for Mesh Update Process
- G28
- G29 T
- EEPROM Marlin Editor
- Floating Navbar
- Heater Timeout
- Settings
- Enable
- Navbar Temperature
- Display temperatures on navbar
- Octolaspe
- Creates a stabilized timelapse
- Octoslack
- monitoring your printer and prints via Slack, Mattermost, Pushbullet, Pushover, Rocket.Chat, Discord, Riot/Matrix, or Microsoft Teams
- Simple Emergency Stop
- Themeify
- Themes for octorpint
- Settings
- Enable theme
- enable customization
- Custom Style
custom style info comes from a YouTube video channel 'Teaching Tech' entitled 'The best Ocotprint Plugins to enhance your 3D printing experience'Selector CSS-Rule Color Picker Value .span8 width 70% .container width 100% .span4 width 25% .row margin-left 0
21 June, 2020
Restarting my 3D Printing hobby
Recently, I decided that I missed playing with, working with, and modifying my 3D printer. After a bit of research, I settled on purchasing the Ender 5 Plus.
While I was waiting for the printer to arrive I spent time watching YouTube videos on how to assembly the printer. I picked up several helpful tips and tricks. The Assembly of the printer was quick and easy.
My first challenge came in leveling the bed. The blame for the challenge is all my fault. I didn't read the documentation carefully. I am made a bad assumption about how the software worked and what steps I needed to perform. Once I did read the documentation and watched a couple of videos, it took about 20 minutes to level the bed. I went through the AUX leveling steps twice just to make sure the bed as fairly level. For leveling, I had the build plate heated to 70 C and the hot-end to 190 C. The Auto-leveling sequence was run.
For the slicing program, I am using Cura 4.6.1. For my first print, the calibration cube was used. I took the defaults that Cura has for the Ender 5 Plus and send the gcode to the SD card.
Here is where my second challenge appeared. When I put the card into the SD slot the printer didn't find the file. Turns out that the gcode needs to placed at the root level on the SD card and the file name can't be longer than 15 characters.
Once the file was renamed, the printer recognized the existence of the file. I was then able to get the print started. When the hot-end starting moving from the home position to the starting point of the priming line the extruder sent filament to the hot-end. The priming line printed without issue. The skirt and cube printed without issue.
I noticed during the print that the heated build got turned off or set to 0. I didn't manually adjust the bed's temperature settings. I also noted a strange noise when the infill was being printed.
Took several measurements on the X, Y, and Z faces. I got a reading of +/- of .05 mm for most of the cube. The exception was the first two layers which were - .2 mm in the X and Y direction.
This seems like a reasonable first print.
ToDo
- Examine the gcode for purge/prime sequence, to determine if I can get rid of the line the prints from the home position to the start of the purge/prime line.
- Examine the gcode for changes to the bed temperature to determine if the gcode is turning off the bed or if the firmware is turning off the bed.
16 February, 2020
Rebuild my docker lab setup
Background
Over the last few weeks, I have rebuilt my Docker lab and Home Assistant set up a few times. The heart of the setup is a Raspberry 4. Finally, all the hardware I ordered has arrived and I have a bit of time to rebuild my setup. Hopefully, I won't need to rebuild for a while.Plan
This time I want to set up a Rasberry Pi 4 Model B (2GB) with Raspbain Buster then configure the Pi to use a 1 TB SSD. Since the Rasberry Pi 4 doesn't currently support booting from an SSD, I will use the workaround from James Chambers. Once the Rasberry Pi is set up and a basic configuration is done, I will then install IOTstack from Graham Garner. This will help me set up Docker, HASS.io, Portainer, Mosquitto, and Tasmoadmin.What I am hoping to get out of this is a stable platform for learning and experimenting with Docker, Home Automation, Internet of Things, and electronics.
Notes
Setting up the Raspberry Pi
- Used balenaEtcher to flash Raspbian Buster with desktop to an 8 Gig SD Card
- Used balenaEtcher to flash Raspbian Buster with desktop to a 1 TB SSD
- Plugged in a monitor, keyboard, mouse, network cable and applied power
- I waited for about 5 minutes for the system to run through its first-time power-up.
- created an empty file named ssh and placed it the boot folder for both SD and SSD
- created the file wpa_supplicant.conf and placed it in the boot folder for both SD and SSD
- Set basic config values for keyboard
- changed the pi default password
- skipped the update
- sudo fdisk /dev/sda
- set the SSD PARTUUID to d34db33f
- sudo blkid
- made backup of /boot/cmdline.txt
- edited /boot/cmdline.txt to use the PARTUUID that was set earlier
- sudo reboot
- verified the SSD is being used
- findmnt -n -o SOURCE /
- updated /etc/fstab
- changed the PARTUUID to d34db33f
- sudo reboot
- resizing filesystem
- delete the partition /dev/sda2
- create a new partition with a first sector at 532480
- sudo resize2fs /dev/sda2
- This takes a while
- df -h
- verify /dev/root shows a size value close to the size of the drive
- sudo reboot
Configuring the Raspberry Pi
- set Hostname
- boot to CLI
- auto login: uncheck mark
- sudo reboot
- verified Raspberry Pi configuration
- verified that I can ssh into the raspberry pi
- sudo apt update
- sudo apt upgrade
Install IOTstack
- ensure git is installed
- sudo apt install git
- clone IOTstack
- git clone https://github.com/gcgarner/IOTstack.git ~/IOTstack
- run menu
- cd IOTstack
- ./menu.sh
- installed docker
- installed Hass.io
- installed Portainer
- installed Mosquitto
- installed tasmoadmin
- docker-compose up -d
References
YouTube: Andreas Spiess 'Boot a Raspberry Pi4 with an SSD to make it reliable and fast'
YouTube: Andreas Spiess '#255 Node-Red, influxDB, and Grafana Tutorial on a Raspberry Pi'
YouTube: Andreas Spiess '#295 Raspberry Pi Server base on Docker, with VPN, Dropbox, Influx, Granfana, etc.'
26 January, 2020
Setting up Home Assistant on Raspberry Pi using generic Linux host method
Recently my installation of Home Assistant died. It appears that I burned up the SD card. I can no longer read the SD Card. When I run gparted against the SD card, the card mounts in read-only mode. After a bit of research, I came up with a plan.
Rough Plan
- Install the latest Raspbian Buster image
- Reconfigure the Pi to run from a hard drive
- Install Home Assistant using the generic Linux host method
Steps
- Downloaded Raspbian Buster with desktop from the Raspberry Pi website
- Using balenaEtcher to flash Buster to an SD card (8GB)
- Booted the Pi for the first time
- Setup the language, keyboard, and timezone.
- Changed the pi user's password
- Selected the WiFi network
- Updated the software
- Updated the packages
- sudo apt update
- sudo apt upgrade
- sudo reboot
- Followed the directions from the blog post 'Quick SD to SSD on the pi 4'
- use the utility 'SD Card Copier' to copy the SD card to the hard drive
- run 'sudo blkid' to get the UUID of the SD sard and the hard drive
- backup the file /boot/cmdline.txt
- edit the file /boot/cmdline.txt. Change the partuuid from using the SD card to the hard drive
- reboot
- Note: must leave the SD card in the Raspberry Pi
- Changed the hostname of the Pi
- Enabled SSH on the Pi
- Setup ssh key on my main PC
- ssh-keygen
- ssh-copy -i ~/.ssh/key-name pi@ip.address
- ssh-add
- Disable Password Authentication on the Pi
- sudo nano /etc/ssh/sshd_config
- Uncommented the line 'PasswordAuthentication yes'
- changed yes to no
Set a static IP for the Piedit /etc/dhcpcd.confaddedinterface wlan0static ip_address=XXX.XXX.XXX.XXXstatic routers=XXX.XXX.XXX.XXXstatic domain_name_servers=XXX.XXX.XXX.XXX- reboot
- Changed Pi Configuration to boot to cli
- Followed the directions from the blog post 'Install Docker and Docker Compose on Raspberry pi 4(Raspbian Buster)'
- curl -sSL get.docker.com | sh
- sudo usermod -aG docker pi
- sudo apt-get install libffi-dev libssl-dev
- sudo apt install python3-dev
- sudo apt-get install -y python3 python3-pip
- sudo pip3 install docker-compose
- Followed installer for a generic Linux system
- sudo apt install bash
- sudo apt install jq
- sudo apt install curl
- sudo apt install avahi-daemon
- sudo apt install dbus
- sudo apt install apparmor-utils
- curl -sL https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh | bash -s -- -m raspberrypi4-64
- Setup Home Assistant
There was an issue with Home Assistant connecting to the internet. I removed the changes to /etc/dhcpcd.config. This seems to have helped.
Subscribe to:
Posts (Atom)
Challenging myself to learn something new
I have recently set a big challenge for myself. I want to know about Machine Learning . To add to the challenge, I am trying out usin...
-
The other day, I came across an electronic component labeled with 'RW1820'. The component is a digital temperature sensor. I figured...
-
Today, I want to test the differences between the Cura 'Standard Quality' profile and Chuck Hellebuyck's profile 'Cura for C...
-
Today, I upgraded my version of Cura to 4.6.2 . After reviewing the release notes, there was no reason for me to upgrade to this version ot...