Category: firmware

  • Using a DSLR Camera with Octolapse for Stunning 3D Printing Timelapses

    Using a DSLR Camera with Octolapse for Stunning 3D Printing Timelapses

    Recently I bought a used Canon SL1 camera; it’s an old but great camera to use as a webcam or any general-use camera taking. One benefit is that it works with a lot of software using the USB port to capture a live video feed from the camera. When using the USB port it does have a bit of delay between the camera and the live feed, but it isn’t super noticeable in recordings.

    I also discovered it works with Octolapse, a plugin for taking seamless-looking time-lapses of 3D prints. Following a tutorial by the creator of Octolapse (FormerLurker), I started setting up my camera with my Octoprint server.

    The tutorial starts with the initial installation of the main program to interface with the camera. gPhoto. gPhoto supports a wide range of cameras, including my camera, which can File transfer, live view, and capture photos or videos.

    What is gPhoto?

    gPhoto is a set of software applications and libraries for use in digital photography.

    gPhoto Wikipedia

    With the installation, I generally followed the provided steps. Updated any updates that my Ubuntu server needed, updated Octoprint. When installing gPhoto, I had to use the “alternative instructions” since I didn’t run my Octoprint server on a Raspberry Pi, the structure of Linux flavors and different device configurations can make it differentiate the process configuring scripts and general directory locations.

    Next is editing the “sudoers” file. It is similar to the standard setup, but instead of the regular path, I used the provided command to find the install directory where gPhoto was installed. I also used the output inside the line of code I needed to insert into the last line on the file.

    whereis gphoto2
    
    output:
    
    gphoto2: /usr/local/bin/gphoto2

    After that, I can test gPhoto with a snapshot command; surprisingly, it worked! I heard the audible click, and it saved a picture to my server. Once that is set up, the next step is to create a script for the plugin to run in Linux that holds a picture, deletes it from the original SD card, and saves it to where the snapshots need to be stored to later process the whole timelapse video.

    The script included with the tutorial works out of the box for me, thanks to FormerLurker’s documentation.

    After that, I add it to the plugin’s configuration. Which also went well. I continued the guide with “Configuring a DSLR camera,” After which I started a print, and the final result after rendering is below:

    Final result. (Actual quality of the printed cube was terrible due to a lack of tuning at the time)

    One issue after rendering, which I could only fix by uploading it to YouTube, was the encoding and format of the rendered video. VLC media player says its renders at 4K, meaning 4000 pixels across. For some reason, my computer could not play 4K in the regular Windows media player or even my other video players without rendering it at 1/16’s quality. This may be due to the lack of support in my computer’s GPU (Intel Arc A370M Laptop GPU), but I’m unsure. But I can change that in Octolapse’s settings when it renders the final video. The F-stop was also not set correctly, which I can adjust in the camera’s menu.

  • Upgrades for my Ender-3

    I finally got around to fixing and upgrading my Ender-3. I’ve had my Ender3 for almost 2 years now and have occasionally been upgrading when needed. Last year I made my best upgrade to the “silent board” TMC2208 stepper drivers. Which significantly silenced the noise of the printer when printing. As well as a BL touch which helps with bed leveling. (Read more about that process here)

    I hadn’t upgraded it much further than adding an Octoprint device (wireless control software for controlling and printing and a bunch of other features.) But I wanted to spend a bit more time working on the firmware and hardware because of several issues/features. One was a heating issue if I printed twice before it cooled down. Another major one was I needed to modify the firmware for PID Bed tuning (basically calibrating the temperature for my printer to know what the sweet spot is for keeping stable temperatures). I wanted to add “fast probing,” which made the bed leveling process much faster before it started printing, which I learned about thanks to Crosslink’s blog post.

    I moved my printer upstairs and closer to my desk for easy access and quick printing. As well as using an old laptop, I had to lie around for the Octoprint server and the laptop screen as a sort of 3D printer screen monitor. Which displays the webpage, where I can use the touchscreen to control and view information about the printer. Thanks to a nifty program called Ubuntu Frame, Ubuntu Frame uses the screen in “Kiosk mode,” which runs a website in a stripped-down version of chromium at bootup. Thanks to UI customizer, an Octoprint plugin, I could customize the home screen to look sleeker and in Dark mode, which made it easier for the eyes to see and navigate.

    (What’s dark mode? Click the icon below to see)

    I was also able to successfully program Marlin firmware for my printer with the features mentioned earlier. And ran the PID tuning. Another upgrade I wanted to make was to switch to Direct Drive. I had a direct drive setup from another project printer that I wasn’t using, and since in the future I wanted to run flexible plastics that would better run with Direct Drive, I decided I might as well install it at the same time.

    Took a couple of beauty shots with my brother Simeon’s camera while it was printing, and here’s the result:

  • Upgrading My 3D Printer Motherboard

    Recently I bought a new 3D printer motherboard; this motherboard is used to compute and control the motors, heaters, and fans for the average 3D printer. I purchased this motherboard to learn how to program a printer from scratch. A significant upgrade from this motherboard is swappable TMC drivers. TMC drivers are basically what provide and control the right amount of voltage that supplies the stepper motors.

    Calculating Vref is essential because if the motor does not get the right amount of voltage or too little, it can mess up the stepping. Either skipping (which will affect print quality) too quickly or not turning as much as it should. Or even overheating.

    I was able to calibrate the right amount of Vref (Voltage) for each stepper by using a formula that All3DP had on their site; with the right Vref, you can turn a small screw on the actual TMC drivers and check the voltage by using a Multimeter (more info here). In my case, I purchased a bundle that comes with the board and the TMC drivers. There are different types of TMC drivers, which came with TMC2209 “Silent Drivers” (super informational video on how silent drivers work here)

    Bigtreetech SKR 1.4 Turbo

    I used an old PrintrBot Simple Metal with most of its original parts for my first test on this board. I was able to calculate the right Vref, thanks to the help from my brother, Nicholas. Printrbot went bankrupt in 2018 and hasn’t fully released a new printer. Although Brook Drumm (the owner) has tried to start another project in 2020 with PlyBot. Luckily there’s a lot of documentation on the Printrbot and its motors, heater, and hotbed. As well as complete .step files on BrookDrumm.com, I was able to design and 3D print using Fusion360, a simple board adapter that screwed into the original frame and fit the new board.

    PrintrBot Simple Metal

    I had an issue with the board with an external screen that I bought called a BTT Mini 12864, a small cheap LCD screen with an SD card slot. I found it most helpful since the board would be less accessible to put an SD card into. But it took a while for me to get the card slot working in Marlin (the 3D printer’s Firmware). After a lot of googling and messing around with the code, I found my main issue, I had to enable the SD card to be set to LCD instead of Onboard SD. I can now use my external screen with an SD card which makes it easier to put print files onto the printer and start printing.

    3d printer screen
    3D Printed Screen Case

    Links:

    Amazon Bigtreetech LCD screen

    Amazon, Bigtreetech SKR 1.4 Turbo

    Printrbot

    Previous post about Printrbot

  • Configuring Marlin Firmware for My Ender 3

    I got into configuring marlin firmware for my specific printer recently; due to its widely supported amount of boards, I can easily modify the newest version of marlin for my printer. At first, I was going to go with the original Marlin as a base but decided to work with Jyers Marlin, a modified version for the Ender 3 V2, which I don’t have. But I have very similar hardware as in the Ender 3 V2 in my Ender 3, the only difference being a different LCD type and a filament sensor. Thanks to marlin’s extensive documentation on their website, both are extremely easy to configure.

    Once I could change the filament sensor and LCD type (post on that here,) I then ran into a slightly different issue. For some reason, the board that PlatformIO was not set correctly, and I had to change the default environment from STM32F103RET6_creality to STM32F103RE_creality, which fixed that issue. Another issue I had was a setting called FAN_SOFT_PWM, which needed to be enabled, and after some searching in the configuration file, I was able to find it, and enable it. After a couple of minor issues (Platform IO core bug, which was later resolved), I successfully compiled the code in VS Code with PlatformIO.

    I published my fork on Github here: https://github.com/BillyDaBones/Ender-3_Upgraded_Jyers_marlin/releases

    (please note: I am not a programmer, especially with Marlin configuration, use the firmware at your own risk.)