Jekyll2024-01-06T12:28:40+00:00https://damsteen.nl/feed.xmlSebastiaan DammannBlogging, coding, 3D printing and reviews LDO Voron V0.R2 build notes, tips &amp; tricks2023-12-29T09:00:00+00:002023-12-29T09:00:00+00:00https://damsteen.nl/blog/2023/12/29/ldo-voron-v02-build-notes<p>There are sometimes things you would have liked to know in advance before starting on something. Two weeks ago I purchased a LDO Voron V0.2 kit from a local reseller (3DJake). I very much enjoyed building and configuring my Voron V0.2R1 3D printer, but there are some things that are unclear or can be improved - in both the build manual of Voron and the LDO kit itself. I hope my tips and tricks here help the next person attempting to build a Voron V0.2.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/cover.jpg" alt="LDO Voron V0.2r1 as built by me" /> <em>My Voron V0.2r1, which I nicknamed “MoronV0”</em></p> <p><em>This article has been made possible thanks to PCBWay. More on PCBWay later.</em></p> <p>I’Il cover:</p> <ul> <li><a href="#general-tips-and-tricks">General tips and tricks</a></li> <li><a href="#printing-voron-v02-parts">Printing Voron parts</a></li> <li><a href="#build-notes">Build notes</a> <ul> <li><a href="#linear-rails">Linear rails</a></li> <li><a href="#hotbed">The hotbed</a></li> <li><a href="#hotend--x-carriage">The hotend and X-carriage</a></li> <li><a href="#electronics">Electronics</a></li> <li><a href="#first-software-installation--test-print">First software set-up</a></li> <li><a href="#skirt">Skirt</a> and <a href="#mounting-the-panels">Panel mounting</a></li> </ul> </li> </ul> <h2 id="why-not-a-kit">Why (not) a kit?</h2> <p>Vorons are made so they can be self-sourced, but with all the delivery costs in the Netherlands I’m not sure how much cheaper it actually is. The lazy (or time-efficient) option is to purchase one of the kits, from sources like LDO Motors, Fabreeko, etc.</p> <p>However, to distinguish themselves, the kit vendors deviate a bit from the base Voron BOM - and this is in my experience where things can sometimes be a little tricky, because the instructions aren’t very refined at all stages.</p> <p>LDO distinguished themselves by the following things:</p> <ul> <li> <p>Using a different Z-bed frame (community-developed Kirigami bed)</p> </li> <li> <p>Using a way to organize cabling to the hotend (community developed and LDO derived Picobilical)</p> </li> <li> <p>Power supply to the Raspberry Pi and extra neopixel ports (driven by the frame board of the Picobilical)</p> </li> <li> <p>The Picobilical hot-end board contains an ADXL accelerometer for tuning input shaping</p> </li> </ul> <h2 id="general-tips-and-tricks">General tips and tricks</h2> <p>First some general tips en tricks for undertaking the project.</p> <ul> <li> <p><strong>Don’t hesitate to ask questions at <a href="https://voron.link/discord">the Voron discord</a> to validate your assumptions.</strong> The community is - in my experience - responsive and there are dedicated channels for kit vendors like LDO. Some employees of LDO are also present there and answer questions. Some wiki pages were missing and links broken, and I continued building based on bad assumptions for too long. Don’t do that.</p> </li> <li> <p><strong>Use the pre-arranged build plates</strong> if the kit vendor offers them (like LDO does). These build plates contain, for the most part, all the parts you need in the right quantities. The only thing I needed to print is an extra mount for the mainboard.</p> </li> <li> <p>In the LDO kit <strong>you will have plenty of spare screws and other materials</strong>. Not everything is surplus, so still be careful - but don’t be left with question marks at the end of the build because there are so many leftovers.</p> </li> <li> <p><strong>Check with the included manifest on which version of Voron kit you actually have</strong> (Voron V0.2 or Voron V0.2r1). Before I received the kit I already sourced (reused) some parts but that turned out to be unnecessary because the LDO Voron 0.2-S1 kit included the needed parts.</p> </li> <li> <p>When fastening screws, <strong>don’t use too much force</strong> - regardless whether you have heat-set inserts or not. Tight is tight enough, except where explicitly noted.</p> </li> <li> <p>During several stages you will preload nuts into aluminium extrusions. Be extra careful there and read ahead in the manual how these nuts will be used. Especially where you preload nuts for the door magnets, you <strong>don’t</strong> want to use the no-drop-nut mod because you won’t be able to get the nuts close enough.</p> </li> <li> <p>If you have forgot to preload a nut, there is margin to forget <em>one</em> nut (see <a href="#skirt">Skirt mounting</a>) for a picture.</p> </li> <li> <p>The <a href="https://github.com/VoronDesign/Voron-0/tree/Voron0.2r1">Voron Github</a> contains the most recent version of the manual. In addition, keep <a href="https://docs.ldomotors.com/en/voron/voron02/build-faqv02">the LDO Build Notes</a> ready - note the page numbers deviate from the Voron manual at some point.</p> </li> </ul> <h2 id="printing-voron-v02-parts">Printing Voron V0.2 parts</h2> <p>Keep <a href="https://docs.vorondesign.com/materials.html">to the material guide</a> of Voron and the slicing instructions in the Voron build manual. I printed everything in blue and cyan eSUN ABS, which works fine. For the part that need to be transparent (bed logo), I used glow in the dark filament. It is transparent enough and as a nice bonus it stays lit for a short while after the printer is turned off.</p> <p>I also had a roll of HIPS so I printed non-critical parts like the skirt and feet in that material. If you do decide to experiment, limit yourself to parts where you don’t need to take the entire printer apart.</p> <p>For slicing, follow the recommendations in the Voron manual. I printed all parts in my insulated Bambu Lab X1C, preheating it on 110C for ten minutes, and then using Bambu Lab liquid glue on a PEI sheet (otherwise it doesn’t have enough adhesion).</p> <p><a href="/images/blog/2023-12-29-ldo-voron-v02-build-notes/bambu-studio-project.3mf"><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/bambu-studio-project.png" alt="Bambu Studio project" /></a> <em>Download my <a href="/images/blog/2023-12-29-ldo-voron-v02-build-notes/bambu-studio-project.3mf">Bambu Studio project here</a></em></p> <h2 id="build-notes">Build notes</h2> <p>The necessary tools are included with the LDO kit. This also includes a ruler, which you will need to measure/check a few things during the build or to position components.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/ruler.jpg" alt="LDO kit ruler" /> <em>Despite the typo on the ruler, it is a useful tool to have and I did not need my calipers during the build</em></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/screw-mismatch.jpg" alt="LDO kit screw mismatch" /> <em>The LDO build notes calls out using M2 BHCS instead of M2 SHCS screws, but no such screws were included in the kit. However, the only place you will use them is mounting the linear rails.</em></p> <h3 id="linear-rails">Linear rails</h3> <p>The linear rails are used on all axes of the motion system. If you’re wondering why they are so hard to move on the rail: they are preloaded for a certain weight/force on the carriage, so if you just move them by hand, they are hard to move. It is likely not a quality issue what you’re experiencing.</p> <p>One of the first things you’Il do is clean up shipping grease from the linear rails and then properly lubricate them. The <a href="https://docs.ldomotors.com/en/guides/rail_grease_guide">LDO greasing guide</a> mentions “Some of the most commonly recommended lubricants by Voron community members are Mobilux EP1 or EP2, Superlube 21030, or white lithium grease”. I picked Superlube 21030, since it is easy to get where I live.</p> <p>Before you do this <strong>make sure that on each rail the rubber endstops are present and properly pressed in</strong>, because you don’t want the carriage to fall off the rail. The HIWIN X-axis rail does not have endstops included, so I pressed some tie-wraps through the holes to make sure the carriage couldn’t fall off.</p> <p>To clean the rails I reused the original packaging of the linear rails and filled those with isopropyl alcohol.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/rails-prep.jpg" alt="Voron linear rails lube preparation" /></p> <p>I’ve let the rails rest for about 10-15 minutes and agitated them from time to time. After that, I emptied the bags and let the rails dry on kitchen paper towels.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/rails-lube.jpg" alt="Voron linear rails lube application" /></p> <p>For lubrication I used the recommended lubricant (Super Lube Synthetic Grease), and applied them into the carriage from the backside, using a simple syringe. If you press it against the backside you can force the lubricant in. When it comes out of the side of the carriage, the lubrication has filled the entire carriage.</p> <p>After lubrication, you need to clean up the rails to prevent the leftover lube from attracting dust.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/rails-lube.jpg" alt="Voron linear rails endstops" /> <em>Note the rubber endstops on the linear rails, and the tie wraps I used on the X axis</em></p> <h3 id="hotbed">Hotbed</h3> <p>During the assembly you’Il fixate the bed screws with nyloc nuts on the hotbed. The Voron instructions suggest that you put the nylon nuts on screws the wrong way. I suppose it protects the PCB heater.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/nozzle-tool.jpg" alt="Voron hotbed mounting" /> <em>A nozzle screw tool helps with putting the nuts on the screws</em></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/nut-order.jpg" alt="Voron hotbed mounting" /> <em>The nuts I put on in this way.</em></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/drag-chain.jpg" alt="Voron hotbed mounting" /> <em>The drag chain is put on like this. The wiring is subject to some improvement though.</em></p> <h3 id="hotend--x-carriage">Hotend &amp; X-carriage</h3> <p>For belt tensioning it helps to first loosely attach the belt to the carriage that LDO provided and loop the belt according to the instructions in the Voron assembly manual. Pull the belt as far as possible using pliers, making sure that you have the same number of teeth, then tighten them to the carriage. That makes you have by default a good tension to start with.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/belt-tensioning.jpg" alt="Belt tensioning" /> <em>Instant pareidolia! 😨</em></p> <p>Then mount the X-carriage to carriage the linear rail and verify the movement. Verify the belt is secure. After that you can cut off the leftover of the belt.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/stupid-standoff.png" alt="Voron standoffs" /></p> <p>The Voron assembly manual calls out “plastic standoffs” that may break easily. The LDO kit fortunately contains aluminium standoffs that won’t break. You will find them in the picobilical kit. They are not mentioned in the BOM document of the LDO kit.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/plastic-standoffs.jpg" alt="Belt tensioning" /> <em>It was a search, but I found them in the picobilical kit.</em></p> <h3 id="electronics">Electronics</h3> <p>A bunch of stepper motors don’t do anything by themselves - you need electronics. The stepper motors are already pre-wired correctly, so you don’t need to worry about that. Also <a href="https://docs.ldomotors.com/en/voron/voron02/wiring_guide_rev_a">keep the LDO wiring guide</a> as a reference.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/beware-the-fuse.jpg" alt="Motherboard fuse" /> <em>Beware of the fuse: Mine was loose in the packaging of the motherboard. At first I thought I was being careless and dislodged a ceramic capacitor, but this is a fuse and it wasn’t properly held in the BTT SKR Pico mainboard. Some tweezers made quick work of it.</em></p> <p>The Voron manual isn’t very clear on how to mount the electronics, nor is the LDO wiring guide, especially because the pictures seems to be about an older Voron kit. Both mention that you can use a DIN mount to mount the electronics, and then mention using tape to mount the electronics - but I don’t want these sensitive electronics potentially falling down.</p> <p>What I figured out is shown below. The largest square blue pieces are DIN rails, and you can mount them using to the nuts you’ve preloaded earlier. Use M3x10 screws as shown earlier. This will fixate the DIN rails securely, with the acrylic plate, to the frame.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/din-electronics-mount-2.jpg" alt="Voron V0.2r1 electronics mount" /></p> <p>I printed the “spider” piece at the right side twice: one for the mainboard, one for the Raspberry Pi. They easily secure on the printed DIN rails. Once you got the mainboard and the Raspberry Pi in place and it looks okay, you can then fixate the cable guide with VHB tape.</p> <p>The Raspberry Pi normally gets fed power from the mainboard, but in the kit of LDO the Picobilical frame board can provide the power. Polarity is documented on a separate page in the documentation, so for clarity I’ve also shown it below.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/rpi.jpg" alt="Voron V0.2r1 Raspberry pi power supply" /> <em>The Raspberry Pi gets fed power through its pin headers. Note both the orientation of the PCB and the polarity of the power cable. Also don’t forget to include the heatsink to cool the MCU of the RPI.</em></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/din-electronics-complete.jpg" alt="Voron V0.2r1 electronics mount" /> <em>This is what I ended up with</em></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/psu-finger-guard.jpg" alt="Voron V0.2r1 electronics mount" /> <em>The PSU finger guard is supposed to have a friction fit, but I didn’t trust it, so I used some VHB tape to stick it in place</em></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/bed-light.jpg" alt="Voron V0.2r1 electronics mount" /> <em>Don’t forget to connect the bed light to the RGB port of the SKR Pico</em></p> <p><em>Now we’re mentioning PCBs and electronics, it the perfect opportunity to introduce todays sponsor PCBWay - you partner for projects like the automatic orchid watering.</em></p> <h3 id="creating-your-own-pcb-with-pcbway">Creating your own PCB with PCBWay</h3> <p>PCBWay.com is a reliable and affordable platform for creating PCBs. They offer a wide range of services, including PCB prototyping, PCB assembly, and PCB layout. They also provide a variety of materials to choose from, including FR-4, aluminum, and flexible PCBs. PCBWay.com’s services are easy to use and affordable, making them accessible to everyone.</p> <p>If you’re looking for a reliable and affordable platform for creating PCBs, PCBWay.com is the perfect choice. They offer a wide range of services and materials to choose from, making it easy to create the perfect PCB for your project.</p> <p>Using PCBWay <a href="https://github.com/CR6Community/Hardware/blob/master/CR-6%20SE%20hotend%20PCB/CR-6%20SE%20hotend%20PCB%20V0.1/">I can easily create PCB boards</a> for the reverse engineered hot-end board of our CR-6 SE. This can keep our CR-6 SE running for many more years.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/sp-00.png" alt="PCBWay" /> <em>You select the PCB you need</em></p> <p><img src="/images/blog/2023-12-07-smrrf-2023/sp-01.png" alt="PCBWay" /> <em>Upload the Gerber file, assembly and BOM</em></p> <p>After you’ve uploaded the files, there is an automatic auditing done on the uploaded files. If you have any questions, you can easily contact someone on Skype to help you through. After this you can order the PCBs and have them shipped within a matter of days.</p> <h3 id="first-software-installation--test-print">First software installation &amp; test print</h3> <p>Before mounting the side panels, take your “naked” printer, install the necessary software and firmware, and do a first test print like a calibration cube. Preferably level the bed, and run a test print. If you don’t want to go that far, at least ensure that the motion system can home the printer, and all the temperature sensors and heaters operate as expected, and that you can extrude some filament.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/first-test-print.jpg" alt="First test print" /> <em>Running a first test print can prevent the need from taking your print apart later to troubleshoot obvious issues you could have found earlier</em></p> <p>To get started:</p> <ol> <li> <p>Double, no, triple check all the wiring. Take special attention to the polarity of all the cabling. The inputs of all PCBs are not tolerant to receiving the wrong polarity.</p> </li> <li> <p>Disconnect the USB cables of both the SKR and the Picobilical board. This is to prevent interference of Klipper.</p> </li> <li> <p>Optionally connect an HDMI cable to a screen or capture device, this allows you to monitor the boot process.</p> </li> <li> <p>Install Klipper (Mainsail) using the <a href="https://docs.vorondesign.com/build/software/installing_mainsail.html">Voron documentation</a> using the <a href="https://www.raspberrypi.com/software/">pi-imager</a> onto an SD card.</p> </li> <li> <p>Use the Klipper config provided by your kit vendor. For instance the <a href="https://github.com/MotorDynamicsLab/LDOVoron0/blob/v02r1/Firmware/printer.cfg">LDO motors</a> printer.cfg config file or use all the <a href="https://github.com/Sebazzz/moronv0-klipper">files in my repository</a> as a basis. You can upload them after Mainsail has booted.</p> </li> </ol> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/boot-1.jpg" alt="First boot - Klipper" /> <em>During the first boot the SD card partitioning will be modified to fully take up all space; after that a reboot will be triggered</em></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/boot-2.jpg" alt="Second boot - Klipper" /> <em>Booting…</em></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/boot-3.jpg" alt="Second boot - Klipper" /> <em>Don’t worry about these errors. Klipper hasn’t been fully set-up yet, so it will throw these errors and do some set-up</em></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/boot-4.jpg" alt="Second boot completed - Klipper" /> <em>Now the stage is yours!</em></p> <p>Now you can set-up Klipper and <a href="https://docs.ldomotors.com/en/voron/voron02/wiring_guide_rev_a#skr-pico-and-picobilical-firmware-setup">follow the LDO guide</a> to further set-up Klipper and flash it to both boards. They use the same MCU, you can flash them both with the same binary. You’Il also <a href="https://www.klipper3d.org/RPi_microcontroller.html">want to set-up the Raspberry Pi</a> as an MCU in Klipper to allow resonance calibration.</p> <p>To finish the most critical part of the Klipper config, make sure you change the MCU paths accordingly to the LDO documentation.</p> <p>When Klipper is successfully running, follow the <a href="https://docs.vorondesign.com/build/startup/">startup checks</a> on the Voron documentation site to do the initial tests and set-up of the printer. When homing and the heaters work correctly, you can continue with your first test print.</p> <p>Bambu Studio has built-in profiles for Voron, and I find more user friendly than PrusaSlicer. Alternatively, you can <a href="/images/blog/2023-12-29-ldo-voron-v02-build-notes/voron_design_cube.gcode">download this test print</a> and run that.</p> <p>If everything seems in order, let’s continue with the skirt and panels to finish the build.</p> <h3 id="skirt">Skirt</h3> <p>The skirt parts have holes at the bottom that you can use for your hex key.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/skirt-mounting.jpg" alt="Skirt mounting" /></p> <p>If you happened to forget preloading a nut, you’re not completely out of luck. There is one spare T-nut included in the kit, which you earlier used for attaching the belts to the X-carriage.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/forgot-tnut.jpg" alt="Forgot T-nut" /> <em>You can simply push this into the extrusion and align it with an allen key. That saves some time taking the whole printer apart again!</em></p> <h3 id="mounting-the-panels">Mounting the panels</h3> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/ldo-spool-holder.jpg" alt="LDO spool holder" /> <em>The LDO spool holder is mounted like this. The tolerances are pretty snug, so it may help to sand the spool holder itself a bit to prevent it getting stuck.</em></p> <h3 id="tophat-build">Tophat build</h3> <p>The nuts in the tophat should be preloaded like shown below.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/tophat-nut-orientation.jpg" alt="Tophat nut orientation" /></p> <p>When the tophat is assembled you can lock it into place. You can use the jig for aligning the stepper motor pulleys as a key, if you like you can also use this tophat key I designed (<a href="https://www.printables.com/model/685231-voron-v0-tophat-cam-lock-key">Printables link</a> | <a href="https://www.printables.com/model/685231-voron-v0-tophat-cam-lock-key">Makerworld link</a>).</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/tophat-key.jpg" alt="Tophat key" /></p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/tophat-lock.jpg" alt="Tophat lock" /></p> <h2 id="further-calibration">Further calibration</h2> <p>Now you can do further calibration, like <a href="https://www.klipper3d.org/Measuring_Resonances.html">resonance compensation</a> and <a href="https://www.klipper3d.org/Pressure_Advance.html">pressure advance</a>. The Klipper docs are the perfect place to review those procedures.</p> <p>If you’re looking for an accelerometer, and happen to have purchased the LDO Kit, you’re in luck. An ADXL accelerometer is actually included on the Picobilical hot-end PCB.</p> <p><img src="/images/blog/2023-12-29-ldo-voron-v02-build-notes/adxl-pi.jpg" alt="ADXL PI connection - LDO motors" /> <em>Which the printer turned off, connect the ADXL ribbon cable to the Raspberry Pi and to the Picobilical.</em></p> <p>Be very careful connecting the ribbon cable, both the connectors (which swivel upward to allow insertin the ribbon cable) and the ribbon cable itself is very sensitive. This ribbon cable is not meant to be connected directly, only use it when calibrating resonance compensation and then tuck it away. Also be careful that it doesn’t get pinched during homing.</p> <h2 id="conclusion">Conclusion</h2> <p>I hoped I could shed some light on the build of a Voron V0.2 kit by LDO and take away some doubts you may have during the build.</p> <p>Good luck and have fun with your new Voron!</p>There are sometimes things you would have liked to know in advance before starting on something. Two weeks ago I purchased a LDO Voron V0.2 kit from a local reseller (3DJake). I very much enjoyed building and configuring my Voron V0.2R1 3D printer, but there are some things that are unclear or can be improved - in both the build manual of Voron and the LDO kit itself. I hope my tips and tricks here help the next person attempting to build a Voron V0.2.SMRRF 2023 look back2023-12-07T19:00:00+00:002023-12-07T19:00:00+00:00https://damsteen.nl/blog/2023/12/07/smrrf-2023<p>SMRRF 2023 is a wrap! SMRRF 2023 was an exciting event that brought together 3D printing enthusiasts from all over the world. The event featured many interesting topics. I will summarize some highlights, including Cocoa Press, Full Control Gcode, non-planar printing, orchid watering, metal 3D printing, and Ascan Laser 3D Scanning.</p> <p><em>This article has been made possible thanks to PCBWay. More on PCBWay later.</em></p> <h2 id="event-location">Event location</h2> <p>The event location itself was also special, it was held in the examination halls of the University of Oxford, a very beautiful building by itself.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/north-school.jpg" alt="North School" /> <em>North School with most of the exhibitions.</em></p> <p><img src="/images/blog/2023-12-07-smrrf-2023/south-school.jpg" alt="South School" /> <em>South School with most of the platinum sponsors and the main stage.</em></p> <p>Among others, Bambu Lab and Prusa were the platinum sponsors. Prusa was present, but Bambu Lab was nowhere to be seen. From what I gathered, they apparently paid for “exposure” by having the creators use their excellent X1 series of CoreXY 3D printers.</p> <h2 id="prusa-printers">Prusa Printers</h2> <p>At the far-end of the north school Prusa 3D had their exhibition. They showed of their older Prusa Mini 3D printer and Prusa SL1 Resin printer.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/prusa-1.jpg" alt="Original Prusa i3 Mk4 in Prusa Enclosure" /> <em>Original Prusa i3 Mk4 in the Prusa enclosure was also present.</em></p> <p>The star of the show however, was the Prusa XL. The Prusa XL is a large-scale CoreXY 3D printer with a build volume of 36×36×36 cm. It features an optional tool changer with up to 5 independent tool heads, automatic first layer calibration for an always-perfect first layer, and many smart features, making it possible to print massive objects. This is demonstrated by <a href="https://www.printables.com/model/635018-prusa-tire-wheel">the Prusa tire</a>.</p> <p>The Prusa tire is a flexible wheel that can be printed on the Prusa XL 5T with a 0.6mm nozzle out of 2 flexible filaments, 2 PETGs, and one PLA. This is practically impossible to do on a single-nozzle printer like the Bambu Lab X1C with AMS - because changing materials comes with the risk of filament blockades in the nozzle due to different printing temperatures. In addition, TPU is quite hard to feed automatically due to the flexibility of the material.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/prusa-2.jpg" alt="The Prusa tire" /> <em>The Prusa tire consists of two PETG filaments, with PLA as support filament and two TPU filaments for the tire.</em></p> <p>The Prusa XL is capable of combining different materials within the same print, which is useful for creating these complex objects. However, at €2100 for a single toolhead version and €3600 for a multi-toolhead version it is quite a price to pay. From what I’ve seen online stringing and software issues are currently quite prevalent, so if you’re in doubt, you’re probably better off waiting for the Prusa XL to mature before buying one.</p> <h2 id="cocoa-press-3d-printing-chocolate">Cocoa Press: 3D printing chocolate</h2> <p>The one of the first of its kind, <a href="https://cocoapress.com/">the Cocoa Press</a>, aims to make it easy to allow arbitrary designs to be printed in eatable chocolate. The printer uses a special nozzle to deposit chocolate onto a surface. The printer can print complex shapes and designs. The printer is easy to use and can be used by anyone. The printer is also affordable and can be used in homes and small businesses. The DIY kit starts at $1,499. The fully assembled printers will be available soon.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/cocoa-1.jpg" alt="Cocoa Press: 3D printing chocolate" /></p> <video controls="" loop="" muted=""> <source src="/images/blog/2023-12-07-smrrf-2023/cocoa-2.mp4" type="video/mp4" /> </video> <p>In terms of printing, only 4 parts come directly into contact with chocolate, which makes the printer very easy to clean. This is also good from an hygiene perspective.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/cocoa-3.jpg" alt="Cocoa Press: 3D printing chocolate" /> <em>Some of the sample prints of the Cocoa Press</em></p> <p>One of the challenges that came up when developing the Cocoa Press is that chocolate needs to be printed at a very specific temperature. For this there were special thermistors chosen so the temperature of the nozzle could be kept in the decimal precision. The Cocoa Press can print with any chocolate, but the chocolate (cocoa cores) from Ellie and her team works the best because it has been developed for the correct printing temperatures and the correct consistency necessary for accurate printing.</p> <h2 id="full-control-gcode">Full Control GCode</h2> <p>Full Control Gcode is a software that allows users to have full control over the print-path of their 3D printer. The software allows users to control every bit of the print-path and all settings. The software also allows for parametric design without the need for CAD models, slicing software, or programming. The Full Control Software, which started as an Excel file, but now also has a Python version, is open source and can be downloaded from <a href="http://fullcontrolgcode.com/">fullcontrolgcode.com</a>.</p> <p>Because Full Control is both a slicer and modelling software in one, it has intrinsic more understanding about the model properties than a slicer could have. While the current generation of slicers just sees a bunch of vertices (=3d points) and faces (=the area between vertices) - full control on the other hand has intrinsic understanding of the model being printed. Below a few examples on what is possible.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/full-control-1.jpg" alt="Full Control GCode" /> <em>This strength specimen was printed using a variable extrusion with. All across the model the same amount of extrusions were used - but they are wider at the top and bottom. This ensures the model has the same strength throughout.</em></p> <p><img src="/images/blog/2023-12-07-smrrf-2023/full-control-2.jpg" alt="Full Control GCode" /> <em>The table shows various sample prints. Some you can easily <a href="https://fullcontrol.xyz/">generate yourself on fullcontrol.xyz</a>, like the Pin Support Challenge (shown in orange)</em></p> <p><img src="/images/blog/2023-12-07-smrrf-2023/full-control-3.jpg" alt="Full Control GCode" /> <em>The <a href="https://fullcontrol.xyz/#/models/ebdc86">Full Control lampshade</a> and concrete 3d printing is shown</em></p> <p>The concrete 3d printing is actually being <a href="https://www.3dprintedhouse.nl/en/">applied in the Netherlands for 3D printing homes</a>. One of the advantages of 3d printing the shell of the house is that you can embed thermal insulation, pipes and electricity while the 3d printing is performed. The 3d printed material needs about 1 hour to harden and it needs 24 hours to fully cure.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/full-control-4.jpg" alt="Full Control GCode" /> <em>3D printed velcro - which is similar to <a href="https://www.printables.com/model/543802-printable-velcro">earlier designs found on Printables</a> but this feels much more rigid</em></p> <h2 id="automatic-watering-of-orchids">Automatic watering of orchids</h2> <p>Anyone who has orchids at home know that they are beautiful plants, but also quite difficult. They need a rigid watering scheme in which they need to be soaked in water every few days and then be kept dry. They eventually die off and then are <em>supposed</em> to come back. Often they won’t, and then you know you made a mistake somewhere.</p> <p>The <a href="https://orchidwatering.com/">automatic orchid watering</a> system resolves this issue. It consists of a 3d printed planter, an aquarium pump, and a custom PCB with an MCU that controls the whole system. You can set the interval in which watering needs to be done. By default every seven days the orchid is soaked in water, then the water is completely pumped out again.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/orchids.jpg" alt="Automatic watering of orchids" /></p> <p><em>This is the perfect opportunity to introduce todays sponsor PCBWay - you partner for projects like the automatic orchid watering.</em></p> <h3 id="creating-your-own-pcb-with-pcbway">Creating your own PCB with PCBWay</h3> <p>PCBWay.com is a reliable and affordable platform for creating PCBs. They offer a wide range of services, including PCB prototyping, PCB assembly, and PCB layout. They also provide a variety of materials to choose from, including FR-4, aluminum, and flexible PCBs. PCBWay.com’s services are easy to use and affordable, making them accessible to everyone.</p> <p>If you’re looking for a reliable and affordable platform for creating PCBs, PCBWay.com is the perfect choice. They offer a wide range of services and materials to choose from, making it easy to create the perfect PCB for your project.</p> <p>Using PCBWay <a href="https://github.com/CR6Community/Hardware/blob/master/CR-6%20SE%20hotend%20PCB/CR-6%20SE%20hotend%20PCB%20V0.1/">I can easily create PCB boards</a> for the reverse engineered hot-end board of our CR-6 SE. This can keep our CR-6 SE running for many more years.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/sp-00.png" alt="PCBWay" /> <em>You select the PCB you need</em></p> <p><img src="/images/blog/2023-12-07-smrrf-2023/sp-01.png" alt="PCBWay" /> <em>Upload the Gerber file, assembly and BOM</em></p> <p>After you’ve uploaded the files, there is an automatic auditing done on the uploaded files. If you have any questions, you can easily contact someone on Skype to help you through. After this you can order the PCBs and have them shipped within a matter of days.</p> <h2 id="metal-3d-printing">Metal 3D printing</h2> <p>There were also several demos on metal 3d printing.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/metal-1.jpg" alt="Metal" /></p> <p><img src="/images/blog/2023-12-07-smrrf-2023/metal-2.jpg" alt="Metal" /></p> <p>These parts were created using the result of the German <a href="https://wiki.fablab-muenchen.de/display/FABMX/Project+FabMX">Project FabMX</a>. This project aims to create an open-source metal 3d printing system. Printing is done through an pellet extruder, using plastic pellets with an high degree of metal particles in them. After printing, the parts are put in an sintering oven of 1000+ degrees Celcius. The plastic particles disappear, and the metal remains and fuses together. Although the part does shrink, you can account for this in the design process. Afterwards you have a strong metal piece, almost just as strong as possible via selective laser sintering.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/metal-3.jpg" alt="Metal" /></p> <p><img src="/images/blog/2023-12-07-smrrf-2023/metal-4.jpg" alt="Metal" /></p> <p>These parts shown above were created using SLS (selective laser sintering). Selective Laser Sintering (SLS) 3D printing is a method of manufacturing objects from engineering design files through sintering, the laser fusion of layers of powdered material to create an object. SLS 3D printing metal is a new method of printing metal parts.</p> <p>Metal SLS 3D printing is a widespread additive manufacturing process with exceptional accuracy, the ability to print complex geometries, and mechanical properties similar to injection molded parts. The samples above also show that you can use support material, just like in FDM 3D printing. This support material is easily broken off and the part remains.</p> <h2 id="ascand-laser-3d-scanning">Ascand Laser 3D Scanning</h2> <p><a href="https://ascand.xplicator.com/">Ascand Laser 3D Scanning</a> is a company that specializes in creating 3D scans of objects. The company uses lasers to create highly accurate 3D scans of objects. The company’s scans are used in a variety of industries, including manufacturing, engineering, and architecture. The company’s scans are highly accurate and can be used to create detailed models of objects. This is achieved by taking many samples, using the camera of your smartphone and then using artificial intelligence and cloud processing to extract an 3d model. The 3d model is fully textured and can then be reproduced on a 3d printer.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/3d-scan-2.jpg" alt="3d scanning" /></p> <p>Using this scanning technique an accuracy of 0.1 mm is possible. To get started, you <a href="https://ascand.xplicator.com/?page_id=6">download the parts</a> to hold your phone and print them out, and you need <a href="https://ascand.xplicator.com/?page_id=1718">their turntable</a> at €99. If you add an additional laser, you can get the best results. After scanning, you upload the video and depending on the quality you need - you pay between 1 and 3 credits per scan.</p> <h2 id="full-body-3d-scanning">Full body 3D scanning</h2> <p>As an nice extra my dad got 3d scanned using a full 3d scanner. This was performed by E3D and all proceeds go to the Sanjay Mortimer Foundation.</p> <p><img src="/images/blog/2023-12-07-smrrf-2023/3d-scan-1.jpg" alt="3d scanning" /></p> <video controls="" loop="" muted=""> <source src="/images/blog/2023-12-07-smrrf-2023/3d-scan-3.mp4" type="video/mp4" /> </video> <p>We have now received the files, and right now I’m printing a replica of my dad.</p> <h2 id="conclusion">Conclusion</h2> <p>The SMRRF was a great event to be a part of. There was a lot to see, and it was interesting to discuss all things 3d printing with the various makers I’ve met. Not only did we talk about the various techniques and developments, but also about the 3d printing industry in general.</p> <p>In a future blog post I plan to show off some other smaller things I’ve seen on the SMRRF. Until then!</p>SMRRF 2023 is a wrap! SMRRF 2023 was an exciting event that brought together 3D printing enthusiasts from all over the world. The event featured many interesting topics. I will summarize some highlights, including Cocoa Press, Full Control Gcode, non-planar printing, orchid watering, metal 3D printing, and Ascan Laser 3D Scanning.Counting down to SMRRF!2023-11-21T08:00:00+00:002023-11-21T08:00:00+00:00https://damsteen.nl/blog/2023/11/21/countdown-to-smrrf<p>It is almost 2 December, and that means that we’re in Europe almost ready for the first edition of the <a href="https://www.sanjaymortimerfoundation.org/smrrf23">Sanjay Mortimer RepRap Festival</a> organized in Oxford, UK. Organized by the foundation started in the memory of the late Sanjay Mortimer, founder of E3D, which we all love, this is according to SMF “to be the UK’s hottest 3D printing event of the year with companies and visitors from all over the world in attendance. I’Il be going to SMRRF too, together with my father!</p> <p><em>This article has been made possible thanks to PCBWay. Please visit them on <a href="https://www.pcbway.com/">PCBWay.com</a> for all your PCB and advanced 3d printing needs.</em></p> <p>In Europe, especially in the Benelux (Belgium, Netherlands, Luxembourg) area, I don’t know any medium to large events focused on the consumer and prosumer market of 3D printing. Although many 3D printing endeavours have their roots also in Europe (one of the main developers of the <a href="https://en.wikipedia.org/wiki/Marlin_(firmware)">Marlin 3d printer firmware</a> was a fellow countryman) and of course Ultimaker (now UltiMaker after the fusion with MakerBot) is a Dutch company located in Utrecht.</p> <p>For industries you also have <a href="https://formnext.mesago.com/frankfurt/en.html">FormNext</a> in Frankfurt, Germany, which is also on my wishlist to visit some day. However, there is more general industry-level innovation there and it is less focused on consumers. Creality and similar manufacturers can still be found there though.</p> <p>I’Il be going a single day (2 December only), and flying from Amsterdam Schiphol to London Luton. From there it is a whopping two hours with a coach. In hindsight London Heathrow would have been more quicker, though it appears our journey will be cheaper - even if takes a little bit longer.</p> <p><img src="/images/blog/2023-11-21-countdown-to-smrrf-speakers.jpeg" alt="Sanjay Mortimer RepRap Festival 2023 - speakers" /> <em>List of speakers as published on the <a href="https://twitter.com/The_SMF_/status/1725548584764952758">@The_SMF_</a> Twitter/X account</em></p> <p>Unfortunately I’Il be missing the sessions about FullControl on the second day. This seems interesting to me because is a completely different way to generate gcode. I’d looked forward to the PeoPoly session too - since their 3d printer design with linear motors are . The session on ABS also seems interesting, since I can and do print ABS from time to time with my excellent Bambu Lab X1C printer.</p> <p><strong>SMRRF, let’s go!</strong></p>It is almost 2 December, and that means that we’re in Europe almost ready for the first edition of the Sanjay Mortimer RepRap Festival organized in Oxford, UK. Organized by the foundation started in the memory of the late Sanjay Mortimer, founder of E3D, which we all love, this is according to SMF “to be the UK’s hottest 3D printing event of the year with companies and visitors from all over the world in attendance. I’Il be going to SMRRF too, together with my father!Unboxing a Creality Wifi Box and how to install Octoprint on it!2022-02-10T19:00:00+00:002022-02-10T19:00:00+00:00https://damsteen.nl/blog/2022/02/10/how-to-install-octowrt-on-creality-wifi-box<p>Earlier <a href="/blog/2022/01/31/protect-your-network-with-vlans">I’ve demonstrated how you can protect your network</a> by shielding it from cloud-only devices like the Creality Wifi Box. However, you can also unlock the full potential of your Creality Wifi Box by installing the well-known remote printing solution <a href="https://octoprint.org/">Octoprint</a>. Let’s unbox the Creality Wifi Box and see how it works!</p> <style scoped=""> img + p, img + em { clear: both; display: block; } </style> <h2 id="unboxing-the-creality-wifi-box">Unboxing the Creality Wifi Box</h2> <p>The Creality Wifi Box comes in a white box with Creality’s motto on it.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/box-top.jpg" alt="Creality Wifi Box - in the box" /> <em>“Create Reality - Achieve Dreams”</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/top-off.jpg" alt="Creality Wifi Box - in the box" /> <em>We’re greeted with a manual and the device itself in protective plastic</em></p> <p>Removing the protective plastic, it reveals the Creality Wifi box.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/device-top.jpg" alt="Creality Wifi Box - top view" /> <em>The front of the Creality Wifi Box has four status LEDs</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/device-side.jpg" alt="Creality Wifi Box - side view" /> <em>The side of the box has an microSD card slot and a reset button (reachable with a pen)</em></p> <p>Though the Creality Wifi Box, regardless whether you run the default firmware or install OctoWRT on it, requires an microSD card - no microSD card has been delivered with it. You need to provide one by yourself.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/device-back.jpg" alt="Creality Wifi Box - side view" /> <em>The back side contains room for a wired ethernet connection (if you don’t want or can’t use wifi). There is a USB connection for a printer, and one for an (optional) webcam.</em></p> <p>On the default firmware only the Creality webcam and webcams with the same chipset are supported. Hopefully this will better with the alternative firmware we’Il flash!</p> <p>Finally, on the bottom layer of the box we find two micro-USB cables and one micro-USB to mini-USB adapter.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/box-cables.jpg" alt="Creality Wifi Box - side view" /></p> <h2 id="installing-octoprint">Installing Octoprint</h2> <p>Hackaday has published <a href="https://hackaday.com/2020/12/28/teardown-creality-wifi-box/">earlier a complete technical teardown</a> on the Creality Wifi Box, and it took not long for solutions like <a href="https://github.com/ihrapsa/OctoWrt">OctoWRT</a> to appear. OctoWRT is what we will use.</p> <p><em>Update 2024-01-06: Unfortunately this particular fork of OctoWrt is no longer maintained, however, @shivajiva101 on Github contacted me. You can use his fork: https://github.com/shivajiva101/OctoWrt</em></p> <p><em>Note:</em> Octoprint is a supported solution on a Raspberry Pi 3 and higher - however it is <em>not supported</em> on low powered devices like the Creality Wifi Box. What does “supported” mean in this case? Well - if you have performance issues - or any issues that could relate to performance - then you can’t ask the authors to do something about it. It is all about managing expectations.</p> <h3 id="preparing-the-sd-card">Preparing the SD card</h3> <p>Take an SD card of at 4GB or more. I used an 8GB SD card. We’re going to format this card, and put the necessary files on.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/sd-card.jpg" alt="SD Card preparation - Installation of OctoWRT on the Creality Wifi Box" /></p> <p>You need to format the microSD card as FAT32.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-01-format-a.png" alt="SD Card preparation - Installation of OctoWRT on the Creality Wifi Box" /></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-01-format-b.png" alt="SD Card preparation - Installation of OctoWRT on the Creality Wifi Box" /></p> <p>We’re first going to install <strong>OpenWRT</strong>, the base operating system, and then install Octoprint on top of it.</p> <p>Go to the <a href="https://github.com/shivajiva101/OctoWrt/tree/main/firmware/OpenWrt_snapshot">OctoWrt repository</a> <del><a href="https://github.com/ihrapsa/KlipperWrt/tree/main/Firmware/OpenWrt_snapshot">KlipperWRT repository</a></del> and download one of the “*factory.bin” files and put it under a specific name - <code class="language-plaintext highlighter-rouge">cxsw_update.tar.bz2</code> - on the SD card.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-02-wrt-inst-01.png" alt="OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>I took file <code class="language-plaintext highlighter-rouge">fluiddWrt-FACTORY-ramips-mt76x8-creality_wb-01-squashfs-k5.10.46.bin</code> for this installation</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-02-wrt-inst-02.png" alt="OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>When you click on “Download” you get the file</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-02-wrt-inst-03.png" alt="OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Just save it as <code class="language-plaintext highlighter-rouge">cxsw_update.tar.bz2</code> directly on the SD card</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-02-wrt-inst-04.png" alt="OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>This is what you’Il end up with</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-02-wrt-inst-05.png" alt="OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Don’t forget to do a save removal of the SD card</em></p> <p>Now put the SD card into the Creality Wifi Box, put a network cable between it and your computer, and connect it to a stable USB power supply.</p> <p>If you don’t have the option to connect through network adapter (for instance, buy a USB-to-ethernet adapter on your favorite webshop) or wifi - then you need to connect using a USB-to-TTL adapter via serial.</p> <h3 id="configuring-openwrt">Configuring OpenWRT</h3> <p>The Creality Wifi Box is starting up and flashing the file we just put on the SD card. While it is doing that, we need to configure a temporary IP address on our computer. We can use Powershell for this.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conn-01.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Open a Powershell command prompt as administrator</em></p> <p>Once booted, the device will assume the IP address of <code class="language-plaintext highlighter-rouge">192.168.1.1</code> - so we need to assume an IP address that can communicate with it.</p> <p>If you will connect over a network cable, read this. If you connect over wifi, read ahead.</p> <p>We need to find the <em>local network adapter interface index</em> first. For this, type in <code class="language-plaintext highlighter-rouge">Get-NetIPAddress</code> and check which index is assigned to your ethernet adapter.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conn-02.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>In my case the ethernet adapter is a Realtek, yours might be an Intel or Broadcom. The interface index of mine is _21_.</em></p> <p>During the following steps you may temporarily loose internet connection, if you use the ethernet adapter to connect to internet too. If you don’t want that, you need to manually assign it the IP address and DNS servers it probably got assigned manually in your network (<code class="language-plaintext highlighter-rouge">New-NetIPAddress –IPAddress 192.168.0.156 –PrefixLength 24 -InterfaceIndex 21 –SkipAsSource $False -DefaultGateway 192.168.0.1</code> in my case).</p> <p>We will use this command to add an IP address, for my network adapter with index 21:</p> <div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">New-NetIPAddress</span><span class="w"> </span><span class="err">–</span><span class="nx">IPAddress</span><span class="w"> </span><span class="nx">192.168.1.8</span><span class="w"> </span><span class="err">–</span><span class="nx">PrefixLength</span><span class="w"> </span><span class="nx">24</span><span class="w"> </span><span class="nt">-InterfaceIndex</span><span class="w"> </span><span class="nx">21</span><span class="w"> </span><span class="err">–</span><span class="nx">SkipAsSource</span><span class="w"> </span><span class="nv">$False</span><span class="w"> </span></code></pre></div></div> <p>This is the result I get:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conn-03.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>You should have no errors when you execute the command</em></p> <p>You can confirm the IP address was properly assigned by running <code class="language-plaintext highlighter-rouge">Get-NetIPAddress -InterfaceIndex 21 | Format-Table</code>:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conn-04.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>The IP address of my local network is shown (so I still have internet) and the IP address I will use to connect to the Creality Wifi Box that is now reflashing itself</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conn-05.jpg" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Blue and yellow lights will light up when the firmware is being flashed</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conn-06.jpg" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>When the device is booting it with go full RGB</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conn-07.jpg" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>When ready, the device will show a single green light</em></p> <hr /> <p>Now, we can wait for the device to finish its process and make a connection. For this we can run <code class="language-plaintext highlighter-rouge">ping -t 192.168.1.1</code> until we get a response or watch until the KlipperWrt access point comes up:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conn-08.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Response to pinging, eventually</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conn-09.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>If you only have wifi capability, then you can connect to this _KlipperWrt_ open access point</em></p> <p><em>Note: If you don’t get a response after 10 minutes, press the reset button on the device for 5 seconds and try again.</em></p> <p>We can now visit OpenWRT on http://192.168.1.1:81/cgi-bin/luci/:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-01.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Make sure you visit by <code class="language-plaintext highlighter-rouge">http</code> and not <code class="language-plaintext highlighter-rouge">https</code></em></p> <p>Log in by using username “root” and no password (empty). You’re greeted with a status page.’</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-02.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Don’t forget to change the empty password to something secure eventually!</em></p> <h4 id="connecting-the-device-to-your-wired-ethernet">Connecting the device to your wired ethernet</h4> <p><strong>If you will connect your device over ethernet:</strong> We will let the device ask for an IP address of your home network.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-03a.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Go to the interfaces page, and edit the LAN interface</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-03b.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Select “DHCP client” and confirm “Switch protocols?”, and save</em></p> <p>It will ask for an IP address at your router and show up.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-04g.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>The changes will be applied and you will soon be able to see the device appear on your network</em></p> <p>Visit your router to see which <em>DHCP leases</em> have been taken:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-complete.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>In my case I will now be able to visit the device on IP address 192.168.0.119</em></p> <h4 id="connecting-the-device-to-your-wifi-network">Connecting the device to your wifi network</h4> <p>This needs a little bit of different steps. We will link the device to the wireless network and let it ask for an IP address.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-04.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Go to the wireless page and edit the existing KlipperWRT network</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-04a.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Set it up as an wireless client to your network</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-04b.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Select the wireless security your network uses, and enter the wireless password</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-04c.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>On the interfaces tab add a new interface</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-04d.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Enter the details and connect it to the wireless interface that for now yet says “KlipperWRT”</em></p> <p>After you click save, the interface will refresh and you need to reselect the device.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-04e.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Reselect the device, and enter a hostname so you will be able to find the device later on. Click the save button.</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-04f.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>When you click “Save &amp; apply” on the main page, you should see something similar to this. Confirm it.</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-04g.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>The changes will be applied and you will soon be able to see the device appear on your network</em></p> <p>Visit your router to see which <em>DHCP leases</em> have been taken:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-03-conf-complete.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>In my case I will now be able to visit the device on IP address 192.168.0.119</em></p> <p>With a proper connection set up, we can now focus on setting up OctoWRT itself.</p> <h3 id="connecting-to-a-command-prompt">Connecting to a command prompt</h3> <p>When you’ve found the IP address, you can connect over the <em>ssh</em> protocol. For this you can simply use the command prompt on Windows 10 (type in <code class="language-plaintext highlighter-rouge">ssh root@ip-address</code>) or download <a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html">PuTTY</a>.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-04.png" alt="Connecting to OpenWRT - Installation of OctoWRT on the Creality Wifi Box" /> <em>Connected over SSH!</em></p> <h3 id="preparing-the-system">Preparing the system</h3> <p>Octoprint runs on Python and needs a few other dependencies to run. We’re going to install these - but we must first prepare the system. For this we must modify the feeds the <em>opkg</em> package manager gets it data from.</p> <p>First back up the existing the existing configuration files of <em>opkg</em>:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mv</span> /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf.bak<span class="p">;</span> <span class="nb">mv</span> /etc/opkg.conf /etc/opkg.conf.bak<span class="p">;</span> </code></pre></div></div> <p>You can copy and paste the blocks below in one go, these define the new feeds:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> <span class="o">&lt;&lt;</span> <span class="sh">"</span><span class="no">EOF</span><span class="sh">" &gt; /etc/opkg/distfeeds.conf src/gz openwrt_core https://downloads.openwrt.org/releases/21.02.1/targets/ramips/mt76x8/packages src/gz openwrt_base https://downloads.openwrt.org/releases/21.02.1/packages/mipsel_24kc/base src/gz openwrt_luci https://downloads.openwrt.org/releases/21.02.1/packages/mipsel_24kc/luci src/gz openwrt_packages https://downloads.openwrt.org/releases/21.02.1/packages/mipsel_24kc/packages src/gz openwrt_routing https://downloads.openwrt.org/releases/21.02.1/packages/mipsel_24kc/routing src/gz openwrt_telephony https://downloads.openwrt.org/releases/21.02.1/packages/mipsel_24kc/telephony </span><span class="no">EOF </span><span class="nb">cat</span> <span class="o">&lt;&lt;</span> <span class="sh">"</span><span class="no">EOF</span><span class="sh">" &gt; /etc/opkg.conf dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay #option check_signature </span><span class="no">EOF </span></code></pre></div></div> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-05.png" alt="Octoprint preparation - Installation of OctoWRT on the Creality Wifi Box" /> <em>This is what it looks like when pasted in the terminal. If you like, you can confirm the contents by typing <code class="language-plaintext highlighter-rouge">cat /etc/opkg.conf</code> and <code class="language-plaintext highlighter-rouge">cat /etc/opkg/distfeeds.conf</code>. The “&gt;” are added automatically when you paste it in the terminal.</em></p> <p>Next, we will format the microSD card with proper partitioning.</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> /tmp wget https://github.com/shivajiva101/OctoWrt/raw/main/scripts/1_format_extroot.sh <span class="nb">chmod</span> +x 1_format_extroot.sh ./1_format_extroot.sh </code></pre></div></div> <p>This is how the output will look like:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-06.png" alt="Octoprint preparation - Installation of OctoWRT on the Creality Wifi Box" /> <em>Ignore that error message highlighted in yellow - it’s fine! Note: this script will take a minute or so to execute.</em></p> <p>Now let’s reboot, to be sure. Type <code class="language-plaintext highlighter-rouge">reboot</code> and confirm. You will loose the connection and need to watch the device coming online again. It will show a solid green LED when ready.</p> <p>Now we’re going to make sure Octoprint has more memory to work with by enabling <em>swap memory</em> that uses the SD card as scratch space:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>opkg update <span class="o">&amp;&amp;</span> opkg <span class="nb">install </span>swap-utils zram-swap </code></pre></div></div> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-07.png" alt="Octoprint preparation - Installation of OctoWRT on the Creality Wifi Box" /> <em>Don’t worry about the errors, the packages still got installed properly!</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-07b.png" alt="Octoprint preparation - Installation of OctoWRT on the Creality Wifi Box" /> <em>By running <code class="language-plaintext highlighter-rouge">opkg list-installed | grep -iE ".*(zram).*"</code> you can confirm everything got installed</em></p> <p>Now we’re going to <em>enable</em> swap on the SD card:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">dd </span><span class="k">if</span><span class="o">=</span>/dev/zero <span class="nv">of</span><span class="o">=</span>/overlay/swap.page <span class="nv">bs</span><span class="o">=</span>1M <span class="nv">count</span><span class="o">=</span>1024<span class="p">;</span> mkswap /overlay/swap.page<span class="p">;</span> swapon /overlay/swap.page<span class="p">;</span> mount <span class="nt">-o</span> remount,size<span class="o">=</span>512M /tmp<span class="p">;</span> </code></pre></div></div> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-08.png" alt="Octoprint preparation - Installation of OctoWRT on the Creality Wifi Box" /> <em>The first command will take a while to execute and show no output while it is working. Be patient!</em></p> <p>We will also want the system to re-enable swap every reboot:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> <span class="o">&lt;&lt;</span> <span class="sh">"</span><span class="no">EOF</span><span class="sh">" &gt; /etc/rc.local # Put your custom commands here that should be executed once # the system init finished. By default this file does nothing. ## Activate the swap file on the SD card swapon /overlay/swap.page ## Expand /tmp space mount -o remount,size=512M /tmp exit 0 </span><span class="no">EOF </span></code></pre></div></div> <p>Note: this might be a good chance to rename the system to something different than KlipperWrt, because we’re not installing Klipper!</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>uci <span class="nb">set </span>system.@system[0].hostname<span class="o">=</span><span class="s1">'OctoWrt'</span> uci commit system /etc/init.d/system reload </code></pre></div></div> <h3 id="installing-octoprint-1">Installing Octoprint</h3> <p>Finally we got our system set up! Let’s install Octoprint dependencies and itself!</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>opkg update opkg <span class="nb">install </span>gcc make unzip htop wget-ssl git-http opkg <span class="nb">install </span>v4l-utils mjpg-streamer-input-uvc mjpg-streamer-output-http mjpg-streamer-www </code></pre></div></div> <p>The above commands will install some dependencies. These will take a while to execute - but should execute without errors. If you don’t have a webcam plugged in, you <em>may</em> see the following: <code class="language-plaintext highlighter-rouge">/etc/init.d/mjpg-streamer: device '/dev/video0' does not exist</code>.</p> <p>Now let’s install Python 3. The last two lines will install a precompiled package that Octoprint needs.</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>opkg <span class="nb">install </span>python3 python3-pip python3-dev python3-psutil python3-netifaces python3-pillow wget <span class="nt">-O</span> /tmp/python3-regex_2021-8-3_mipsel_24kc.ipk https://github.com/ihrapsa/OctoWrt/raw/main/packages/python3-regex_2021-8-3_mipsel_24kc.ipk opkg <span class="nb">install</span> /tmp/python3-regex_2021-8-3_mipsel_24kc.ipk </code></pre></div></div> <p>The following upgrades the package manager. This command will take a while. It will give a warning about running as root, but you can ignore it.</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install</span> <span class="nt">--upgrade</span> setuptools pip <span class="nb">install </span>wheel pip <span class="nb">install </span>frozendict pip <span class="nb">install </span>immutabledict </code></pre></div></div> <p>Let’s check what Octoprint is <a href="https://github.com/OctoPrint/OctoPrint/releases">the most recent</a> - 1.7.3 right now - and put the version number in this command:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install </span><span class="nv">Octoprint</span><span class="o">==</span>1.7.3 </code></pre></div></div> <p>This command will obviously install the bulk of the data, and will certainly take a while. It hang a while on installing PyYAML for a while too but it did continue after 5~10 minutes.</p> <p>For my piece of mind, I opened a second ssh session and ran <code class="language-plaintext highlighter-rouge">htop</code> to watch what happens:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-09.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em>Watching that there was actually work being performed and the device did not freeze gave me some peace of mind: For this you can run <code class="language-plaintext highlighter-rouge">htop</code></em></p> <p>I ran into the following error about <code class="language-plaintext highlighter-rouge">netifaces</code> however:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-10.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em>“Command errored out with exit status 1:” and “Running setup.py install for netifaces … error”</em></p> <p>To get more information about this, you can re-run the command with the <code class="language-plaintext highlighter-rouge">--verbose</code> flag:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install </span><span class="nv">Octoprint</span><span class="o">==</span>1.7.3 <span class="nt">--verbose</span> </code></pre></div></div> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-10b.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em>More information when running with the <code class="language-plaintext highlighter-rouge">--verbose</code> flag</em></p> <p>Well, that gave more information! It says: <code class="language-plaintext highlighter-rouge">gcc: error: unrecognized command line option '-ffile-prefix-map</code>. Why? Well this <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70268">option was introduced in gcc 8.0</a>, and we run gcc 7.4.0. GCC 8.0 is not yet available for the version of OpenWRT we run, so I had to cross compile the library on my own computer. With that done, I <a href="https://github.com/ihrapsa/OctoWrt/issues/9">uploaded it to the OctoWrt issue</a> and I could now also use it myself.</p> <p>So, you only need to execute:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> /tmp wget https://github.com/ihrapsa/OctoWrt/files/8036126/python3-netifaces_0.11.0-1_mipsel_24kc.ipk.zip unzip python3-netifaces_0.11.0-1_mipsel_24kc.ipk.zip opkg <span class="nb">install </span>python3-netifaces_0.11.0-1_mipsel_24kc.ipk <span class="nb">ln</span> <span class="nt">-fs</span> /usr/lib/libpython3.9.so /usr/lib/libpython3.7.so.1.0 </code></pre></div></div> <p>And now we’re ready to install Octoprint:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip <span class="nb">install </span><span class="nv">Octoprint</span><span class="o">==</span>1.7.3 <span class="nt">--verbose</span> </code></pre></div></div> <p>And eventually:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-10c.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em>Success!</em></p> <p>By copy/pasting this block, we will create a service that will automatically execute when the Creality Wifi Box boots:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> <span class="o">&lt;&lt;</span> <span class="sh">"</span><span class="no">EOF</span><span class="sh">" &gt; /etc/init.d/octoprint #!/bin/sh /etc/rc.common # Copyright (C) 2009-2014 OpenWrt.org # Put this inside /etc/init.d/ START=91 STOP=10 USE_PROCD=1 start_service() { procd_open_instance procd_set_param command octoprint serve --iknowwhatimdoing procd_set_param respawn procd_set_param stdout 1 procd_set_param stderr 1 procd_close_instance } </span><span class="no">EOF </span><span class="nb">chmod</span> +x /etc/init.d/octoprint service octoprint <span class="nb">enable</span> </code></pre></div></div> <p>The above commands will run without any error or output.</p> <p>Time to reboot! Run <code class="language-plaintext highlighter-rouge">reboot</code>.</p> <p>You will lose connection, but you can watch with a command like <code class="language-plaintext highlighter-rouge">ping -t [ip address here]</code> when the device is booted.</p> <h4 id="troubleshooting-octoprint-startup">Troubleshooting Octoprint startup</h4> <p>It may take quite some time, especially the first time, for Octoprint to initialize. You can log into Creality Wifi Box via ssh again, and run htop to see if anything is happening:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-11.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em>htop is a task manager</em></p> <p>In addition you can watch the log file - if it exists - via this command:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">tail</span> <span class="nt">-n</span> 1000 <span class="nt">-f</span> /.octoprint/logs/octoprint.log </code></pre></div></div> <p>If the process isn’t running or quickly dies, you can run <code class="language-plaintext highlighter-rouge">octoprint serve --iknowwhatimdoing</code> manually and see what the output is. When you’re done troubleshooting and Octoprint runs, you can press Ctrl+C to terminate.</p> <h3 id="configuring-octoprint">Configuring Octoprint</h3> <p>When Octoprint is running and the box has had 5-10 minutes to do its thing, you should be able to visit it in your web browser:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-12.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em><code class="language-plaintext highlighter-rouge">192.168.0.119</code> is my IP address - but you also may be able to find it already on <code class="language-plaintext highlighter-rouge">hostname:5000</code> or <code class="language-plaintext highlighter-rouge">octoprint.local:5000</code></em></p> <p>The first time after booting, when you’re visiting the user interface, it needs to build and cache it. This will take a while and you’Il see in the log something like this:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>octoprint.server.util.flask.PreemptiveCache - INFO - Adding entry for / and {'path': '/', 'base_url': 'http://192.168.0.119:5000/', 'query_string': 'l10n=en', '_timestamp': 1644441437.925116, '_count': 1} </code></pre></div></div> <p>But eventually…</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-13.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em>There it is! Now we can start the configuration.</em></p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-14.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em>Set up an account</em></p> <p>Complete the rest of the initial configuration wizard, patiently. The section where you specify the server commands is important:</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-15.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em>This tells Octoprint how to reboot the system and how to restart itself (for instance after installing plugins)</em></p> <p>Fill in this information:</p> <ul> <li>Restart Octoprint: <code class="language-plaintext highlighter-rouge">/etc/init.d/octoprint restart</code></li> <li>Restart system: <code class="language-plaintext highlighter-rouge">reboot</code></li> <li>Shutdown system: <code class="language-plaintext highlighter-rouge">poweroff</code> (Note that this will shut down the device safely, but actually does not power it completely off)</li> </ul> <p>For the section of the webcam, you can use these URLs if this is the only instance in your network (alternatively use the IP address):</p> <ul> <li>Stream URL: <code class="language-plaintext highlighter-rouge">http://octoprint.local:8080/?action=stream</code></li> <li>Snapshot URL: <code class="language-plaintext highlighter-rouge">http://octoprint.local:8080/?action=snapshot</code></li> </ul> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-16.png" alt="Octoprint installation - Installation of OctoWRT on the Creality Wifi Box" /> <em>Finished! Octoprint will restart after completing the wizard</em></p> <h2 id="configuration-tips">Configuration tips</h2> <p>Some configuration tips in regard to Octoprint below.</p> <h3 id="hide-unusable-serial-ports">Hide unusable serial ports</h3> <p>Hide the following serial ports from Octoprint in Settings -&gt; Serial connections:</p> <ul> <li><code class="language-plaintext highlighter-rouge">/dev/ttyS0</code></li> <li><code class="language-plaintext highlighter-rouge">/dev/ttyS1</code></li> <li><code class="language-plaintext highlighter-rouge">/dev/ttyS2</code></li> </ul> <p>These are internal ports of the device and are not used for printing, but they do confuse the auto connect.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-conf-serial-ports.png" alt="Octoprint configuration - Installation of OctoWRT on the Creality Wifi Box" /> <em>Hide those useless serial ports</em></p> <h3 id="disable-anonymous-usage-tracking">Disable anonymous usage tracking</h3> <p>This has a slight load on the system and will not help the project as this device is not supported anyway.</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-conf-telemetry.png" alt="Octoprint configuration - Installation of OctoWRT on the Creality Wifi Box" /> <em>Sorry foosel, I don’t think you’re helped with this telemetry anyway</em></p> <h2 id="plugins">Plugins</h2> <p>Octoprint has great support for plugins, but because this device is so limited you should be careful adding any plugins that will run during the printing process. This includes things like timelapse plugins and plugins that modify or analyse the gcode in real-time.</p> <p>However, you can safely install plugins that improve the user interface, like:</p> <ul> <li><a href="https://plugins.octoprint.org/plugins/marlingcodedocumentation/">Gcode documentation plugin</a></li> <li><a href="https://plugins.octoprint.org/plugins/themeify/">Themeify</a> because we like everything dark</li> <li><a href="https://plugins.octoprint.org/plugins/widescreen/">OctoPrint-WideScreen</a> for efficient use of screen space</li> <li><a href="https://plugins.octoprint.org/plugins/octopod/">Octopod</a> allows notifications on your phone</li> <li><a href="https://plugins.octoprint.org/plugins/portlister/">Portlister</a> to automatically connect to printers</li> </ul> <p>Any plugin you install incurs some performance hit on the system, but the user interface plugins generally only need additional time on initial startup.</p> <p>Some plugins, which rely on more features in Linux than OpenWrt provides, like <a href="https://plugins.octoprint.org/plugins/resource_monitor/">Resource Monitor</a>, don’t work.</p> <h3 id="onedrive-backup">Onedrive Backup</h3> <p>If you like to use the <a href="https://plugins.octoprint.org/plugins/onedrive_backup/">Onedrive-Backup plugin</a>, you need to install some dependencies manually:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>opkg update opkg <span class="nb">install </span>python3-cryptography pip <span class="nb">install</span> <span class="s2">"msal&lt;2.0.0"</span> pip <span class="nb">install</span> <span class="s2">"https://github.com/cp2004/OctoPrint-OneDrive-Backup/releases/latest/download/release.zip"</span> </code></pre></div></div> <h2 id="troubleshooting">Troubleshooting</h2> <p>You can view the Octoprint logs via:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>less /.octoprint/logs/octoprint.log </code></pre></div></div> <p>Check if Octoprint is running at all:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ps w | grep -i octo </code></pre></div></div> <p>You should get something like “/bin/octoprint” at least.</p> <p>Check what processes are running:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>htop </code></pre></div></div> <p>If plugins run into compilation errors while downloading some plugins, you may be able to install the Python package via opkg. There is a <a href="https://downloads.openwrt.org/releases/21.02.1/packages/mipsel_24kc/packages/">list of packages here</a>. If a plugin needs the <a href="https://pypi.org/project/cryptography/">cryptography pip package</a> for instance, search for “python3-cryptography” or “python-cryptography”.</p> <h2 id="conclusion">Conclusion</h2> <p>I hope have shown you in some more detail how to install OctoWrt and gave some more in-depth guidance along the way.</p> <p>OctoWrt would not be possible <a href="https://github.com/ihrapsa/OctoWrt/">without the work of ihrapsa</a> <em>and</em> <a href="https://github.com/shivajiva101/OctoWrt/">shivajiva101</a> on getting Octoprint working and <a href="https://github.com/figgyc">figgyc</a> on getting OpenWRT to run on this device. I’d like to than them both for this!</p> <p>Happy printing!</p> <p><img src="/images/blog/2022-02-10-how-to-install-octowrt-on-creality-wifi-box/octo-complete.png" alt="Octoprint complete - Installation of OctoWRT on the Creality Wifi Box" /> <em>The end result!</em></p>Earlier I’ve demonstrated how you can protect your network by shielding it from cloud-only devices like the Creality Wifi Box. However, you can also unlock the full potential of your Creality Wifi Box by installing the well-known remote printing solution Octoprint. Let’s unbox the Creality Wifi Box and see how it works!“PID Autotune failed! Temperature too High!” How to PID tune a high watt heater2022-02-04T20:00:00+00:002022-02-04T20:00:00+00:00https://damsteen.nl/blog/2022/02/04/pid-tune-your-high-watt-heater<p>I’ve been busy retrofitting a BIQU B1 printer with the new <a href="/blog/2022/01/13/biqu-h2-high-temperature-first-look">BIQU H2 High Temperature extruder</a>. However I ran into some trouble tuning in the 70 watt heater. Every time I attempted to PID auto tune it overshot way past the target temperature and the PID tuning process was aborted. So how to we fix this? Let’s see!</p> <style scoped=""> img + p, img + em { clear: both; display: block; } </style> <h2 id="the-situation">The Situation</h2> <p>I have rewired my BIQU B1 to handle this high power heater, and allow the BIQU H2 to be fitted in a fixed way. For this I’ve removed the entire USB-C cable and breakout board and wired everything directly to the mainboard.</p> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/BIQU-h2-mounted.jpg" alt="BIQU H2 mounted to the BIQU B1" /> <em>The BIQU H2 mounted to the BIQU B1 with a simple fixed mounting plate</em></p> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/mainboard-wiring.jpg" alt="BIQU B1 rewired" /> <em>I’ve wired all wires directly to the mainboard, and used both heater MOSFETs in parallel to share the load (Marlin option <code class="language-plaintext highlighter-rouge">HEATERS_PARALLEL</code>)</em></p> <p>At the top right in the picture you find the MAX31865 on a stepstick board, which connects to the PT100 high temperature thermistor.</p> <h2 id="pid-autotune-failed-temperature-too-high">PID Autotune failed! Temperature too High!</h2> <p>When tuning in the temperature, I ran into the issue that I could never complete the PID cycle.</p> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/PID-1.png" alt="PID tuning a high temperature hot-end" /> <em>You can start a PID tune with the command <code class="language-plaintext highlighter-rouge">M303 S235 U1 C8</code> where 235 is the target temperature and 8 the number of cycles. We also want to use the results, so we use “U1”.</em></p> <p>Starting the PID tune was easy enough.</p> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/PID-2.png" alt="PID tuning a high temperature hot-end" /> <em>Marlin says: “PID Autotune failed! Temperature too High!” and aborts the auto-tune procedure</em></p> <p>But the PID tuning aborted after overshooting by more than 30 degrees Celcius. This is a safety measure, but why does this happen? For this we need to dive a little deeper in Marlin’s heating process.</p> <h2 id="how-heating-in-marlin-works">How heating in Marlin works</h2> <p>A heater is controlled by one or more MOSFETs, which are little chips which turn the heater on or off. There is no in-between state: the heater is either on or off.</p> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/mosfets.jpg" alt="MOSFETs on a BTT SKR CR-6" /> <em>MOSFETs for bed heating and hot-end heating on a <a href="https://damsteen.nl/blog/2020/11/25/how-to-btt-skr-cr6-installation">BTT SKR CR-6 board</a></em></p> <p>That poses a problem for accurate temperature control: How often do you enable power the heater, and for how longer? PID controlled heating solves this problem: The three values that define the PID configuration determine when and for how long to turn on the heater to reach or maintain a specific temperature.</p> <p>However, the PID is only valid and efficient for a certain temperature range: A PID tuned for a temperature of 300C will not necessarily be valid for a temperature of 50C. For this reason Marlin employs PID only within a certain <em>range</em> of the target temperature: <em>the PID functional range</em>. For instance, with a <code class="language-plaintext highlighter-rouge">PID_FUNCTIONAL_RANGE</code> of 30 degrees, when you heat your hot-end to 230 degrees, PID will only be used when the hot-end temperature is in the range of 260-200C. (You might expect 215C-245C but that is not the case)</p> <h3 id="bang-bang">Bang bang</h3> <p>So what is used <em>outside</em> the PIDs functional range? That’s what we call bang-bang heating. This is follows a very simple algorithm: turn the heater on and watch the temperature. When the temperature rises above a certain limit, turn the heater off and wait for temperature to drop under the limit, turn the heater back on.</p> <p>The bang-bang value can be tuned however: you can tell with <code class="language-plaintext highlighter-rouge">BANG_MAX</code> that instead of turning the heater for 100% (255) on, it should turn the heater only 50% of the time on (128). And this is one part of the solution.</p> <h3 id="marlin-pid-parameters">Marlin PID parameters</h3> <p>There are several parameters in Marlins Configuration.h you can use:</p> <pre><code class="language-cplusplus">#define BANG_MAX 255 #define PID_MAX BANG_MAX #define PID_FUNCTIONAL_RANGE 10 </code></pre> <p>As configured above this means:</p> <ul> <li><code class="language-plaintext highlighter-rouge">BANG_MAX</code>: Turn on the heater at a 100% duty cycle outside the PID’s functional range. The value range is 0-255, so 255 is 100%.</li> <li><code class="language-plaintext highlighter-rouge">PID_MAX</code>: When in the PID functional range, allow the hot-end be <em>at maximum</em> on at this duty cycle (range 0-255 means 0-100%). It is here set to the same value as BANG_MAX, so 100%.</li> <li><code class="language-plaintext highlighter-rouge">PID_FUNCTIONAL_RANGE</code>: The temperature range in which PID control is used.</li> </ul> <h2 id="the-solution--explanation">The solution &amp; explanation</h2> <p>When the heater is on, temperature does not immediately transfer. It takes a moment for the thermistor to get to the temperature as the heating occurs. We have the heater configured to run at 100% power - the full 70W. Yet, Marlin will only start using PID at 10C before the target temperature. That doesn’t leave a lot of margin - however this is only part of the issue. When PID tuning, Marlin will first put 100% power on the heater (according to <code class="language-plaintext highlighter-rouge">PID_MAX</code>).</p> <p>There are two knobs we can turn:</p> <ul> <li><code class="language-plaintext highlighter-rouge">PID_MAX</code>: The amount of power we send to heater inside the PIDs functional range</li> <li><code class="language-plaintext highlighter-rouge">PID_FUNCTIONAL_RANGE</code>: Increase the functional range of PID</li> </ul> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/Graph.png" alt="Marlin PID temperature graph with overshoot" /> <em>Trying to maintain temperature: (1) 40C overshoot attempting to heat to 100C, (2) failed PID tune for 235C, (3) I had increased the PID functional and the hot-end was already hot (within functional range), so second PID did go through</em></p> <p>My first attempt was increasing <code class="language-plaintext highlighter-rouge">PID_FUNCTIONAL_RANGE</code> from 10 to 60. It appeared it didn’t work, but then it did, but it would never be stable when heating up the hot-end from a cold state.</p> <p>So, I decreased <code class="language-plaintext highlighter-rouge">PID_MAX</code> from 255 to 100 - this did the trick. Getting <em>reaching</em> a temperature is way costs much more power than <em>maintaining</em> a temperature - so it is fine if we don’t have the full 70W available. With this I was able to do the PID tune.</p> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/pid-graph.gif" alt="PID tuning in progress" /> <em>Don’t worry - during PID tuning the graph will shoot around the target temperature while the firmware learns how to control the heater</em></p> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/PID-complete.png" alt="PID tuning complete" /> <em>If you’ve called M303 with the U1 gcode you can immediately save the new PID results with <code class="language-plaintext highlighter-rouge">M500</code></em></p> <p>As you can see, after the PID tune I was able to maintain temperature perfectly.</p> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/PID-complete-graph.png" alt="PID tuning complete" /> <em>And an completely stable temperature after the PID tune!</em></p> <h2 id="conclusion">Conclusion</h2> <p>PID auto-tuning high power heaters in Marlin requires tuning some parameters you might otherwise not touch. However, by tuning the <code class="language-plaintext highlighter-rouge">PID_MAX</code> and <code class="language-plaintext highlighter-rouge">PID_FUNCTIONAL_RANGE</code> you can get PID auto-tuning to work stable, and tune your hot-end so it maintains a stable temperature. It is just a matter of understanding the parameters you have available to you.</p> <p><img src="/images/blog/2022-02-04-pid-tune-your-high-watt-heater/hot-hot-hot.png" alt="PID tuning complete" /> <em>Hot hot hot!</em></p> <p>Happy printing!</p>I’ve been busy retrofitting a BIQU B1 printer with the new BIQU H2 High Temperature extruder. However I ran into some trouble tuning in the 70 watt heater. Every time I attempted to PID auto tune it overshot way past the target temperature and the PID tuning process was aborted. So how to we fix this? Let’s see!Protect your network with virtual LANs - trying out the Creality Wifi Box2022-01-31T20:00:00+00:002022-01-31T20:00:00+00:00https://damsteen.nl/blog/2022/01/31/protect-your-network-with-vlans<p>Just for fun and giggles I wanted to try the Creality Wifi Box. After <a href="https://www.youtube.com/watch?v=SBr0ArgDztc">Teaching Tech’ critical review last year</a> I was curious how the state of the Creality Cloud ecosystem is today. The Creality Wifi Box essentially connects your printer to the Creality Cloud, and the device cannot be accessed locally. For this reason, it has no business being on my network other than to use my internet connection. So, to protect my network from any possible vulnerabilities we can use virtual LANS - VLANs. Let’s see how!</p> <style scoped=""> img + p, img + em { clear: both; display: block; } </style> <h2 id="the-situation">The Situation</h2> <p>The image below shows the situation. I have some devices, like my computer, a home server and a Zigbee gateway. The Creality Wifi Box has no business accessing these devices. I may trust Creality, but I still want isolation of cloud-accessed devices, because you can never underestimate the internet.</p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/Network-simplified.svg" alt="Simplified network diagram" /> <em>Simplified network diagram. How can we make it so the Creality Wifi Box can only access the internet and not any other devices?</em></p> <p>In this article I will show you how to configure it in your network. However, if you don’t have a switch you can skip that particular section. If you connect your device over wifi, I will show that as well.</p> <h2 id="the-solution">The Solution</h2> <p>There is a simple solution for this. Just run a dedicated ethernet cable to a dedicated router, or use a dedicated wireless router and connect the wifi box to that. However, this so cumbersome to have multiple devices and ethernet cables - just to isolate some devices!</p> <p>There is a good and almost free alternative for this: Virtual LANs - also known as a <em>vlan</em>. With virtual LANs each ethernet packet from a particular device is receives a tag, and will then be isolated and handled separately. <em>Note: The default VLAN for all devices (also the devices you are already using right now) is VLAN 1.</em></p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/VLAN-diagram.svg" alt="How VLANs work" /> <em>The network endpoints don’t necessarily need to be aware of the existence of the VLAN. The network switch can tag the traffic, and then the router can sort it out. The network packets from the Creality Wifi box is marked in <span style="color: purple;font-weight: bold">purple</span>.</em></p> <p>In the above diagram the network port assigns a tag “VLAN 2” to all data packets from the Creality Wifi Box. The port from my computer is not assigned any VLAN, so it defaults to VLAN 1. The packets travel together on the shared network connection between the switch and the router. The networks are not aware of each other - only the router is aware, on which the VLAN also has been configured.</p> <h2 id="how-to-configure-it">How to configure it</h2> <p>I will show you how to configure it. In my network I have a <a href="https://www.netgear.nl/support/product/gs108ev3.aspx">Netgear GS108Ev3 managed switch</a> and an <a href="https://store.ui.com/products/unifi-dream-machine">Unifi Dream Machine</a> as a router. You may have different network devices, but conceptually it all works the same. The buttons and inputs might just be in a different order 😉</p> <h3 id="configuring-the-switch">Configuring the switch</h3> <p>On my switch, I have my Creality Wifi Box on <strong>port 1</strong>, my outgoing line that eventually ends up at my router is on <strong>port 8</strong>. In your switch configuration interface you enable <em>802.1Q VLAN</em>. You also add the VLAN, in this case I give it VLAN the ID <strong>2</strong>.</p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/switch-config-01.png" alt="VLAN configuration in Netgear switches" /> <em>In this first step we define _that_ we want a second VLAN</em></p> <p>Next, we must define how each port responds to each VLAN. We call this: assigning membership to a port. We do this for each VLAN (both default and the new VLAN 2).</p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/switch-config-02.png" alt="VLAN configuration in Netgear switches" /> <em>VLAN 1 (default VLAN) needs all ports to be assigned as _untagged_. This means the switch will not interfere with any traffic that carries the default VLAN tag.</em></p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/switch-config-02b.png" alt="VLAN configuration in Netgear switches" /> <em>For VLAN 2 I set port 8 (which goes to my router) as _tagged_, so traffic destined for VLAN 2 will be accepted. For port 1, which goes to the Creality Wifi Box, I set it as _untagged_ so that it may receive traffic which is untagged and can tag it (purple in the earlier diagram).</em></p> <p>Finally, we must tell the switch that we want all untagged traffic to receive a tag. Remember, the Creality Wifi Box doesn’t know and cannot be configured to send traffic on VLAN 2, so we have the switch tag the traffic.</p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/switch-config-03.png" alt="VLAN configuration in Netgear switches" /> <em>We tell the switch we want all traffic from port 1 (where the Creality Wifi Box is) that has no tag, to be tagged as VLAN 2 (purple)</em></p> <p>That finishes the switch configuration. Now we need to tell our router that we have an additional network.</p> <h3 id="configuring-the-router">Configuring the router</h3> <p>Next up, configuration of the router. The router is what brings it all together.</p> <p>We need to tell the router that we have an additional network.</p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/router-config-01.png" alt="Unifi - add network" /> <em>Add a new network</em></p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/router-config-02.png" alt="Unifi - add network" /> <em>I called this network <strong>UntrustedLAN</strong> - you can recognize this later when setting up the firewall.</em></p> <p>Next is the most critical part - we assign a VLAN to this network. We also assign a separate IP address range. When the Creality Wifi Box asks for an IP address, that request will be tagged with VLAN ID 2, and it will end up getting an address assigned in this range.</p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/router-config-03.png" alt="Unifi - set network VLAN" /> <em>I also assigned a domain name to this network, that’s not very important.</em></p> <p>Next, we will make sure the firewall blocks any traffic from the VLAN 2 to our regular network.</p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/router-config-04.png" alt="Unifi - set firewall" /> <em>Choose to add a new rule</em></p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/router-config-04b.png" alt="Unifi - block VLAN traffic" /> <em><strong>Block</strong> all traffic <strong>matching our LAN</strong> that comes from our <strong>VLAN 2 (UntrustedLAN)</strong></em></p> <p>That’s it from the router.</p> <h3 id="wifi">Wifi</h3> <p>If you like a wifi network to be isolated, then you can assign that wifi network to the network we’ve created earlier.</p> <p><img src="/images/blog/2022-01-31-protect-your-network-with-vlans/router-config-wifi.png" alt="Unifi - VLAN configuration for wifi network" /> <em>When you assign the entire wifi network to the UntrustedLAN, it becomes part of the VLAN. You can then connect the Creality Wifi Box to that wifi network.</em></p> <h2 id="summary">Summary</h2> <p>This article has shown how you can secure your network by placing isolating certain network devices to a separate virtual LAN. It is only software configuration in your router and wireless access point or switch. Afterwards, the device will be limited in what network devices it can access.</p> <p>Though I have a UDM and Netgear switch, the procedure will be similar on other devices, like <a href="https://openwrt.org/docs/guide-user/network/vlan/switch_configuration">OpenWRT-based devices</a>. You need devices which support 802.1q based VLANs though, port based VLANs work differently and do not tag traffic.</p> <p>Happy networking!</p>Just for fun and giggles I wanted to try the Creality Wifi Box. After Teaching Tech’ critical review last year I was curious how the state of the Creality Cloud ecosystem is today. The Creality Wifi Box essentially connects your printer to the Creality Cloud, and the device cannot be accessed locally. For this reason, it has no business being on my network other than to use my internet connection. So, to protect my network from any possible vulnerabilities we can use virtual LANS - VLANs. Let’s see how!No more thingies on Thingiverse for me - fully migrated to PrusaPrinters!2022-01-27T20:00:00+00:002022-01-27T20:00:00+00:00https://damsteen.nl/blog/2022/01/27/thingies-on-prusa-printers<p>It is 2022 and Thingiverse still looks like an website from 10 years ago. It is slow, it is not always reliable, and it still doesn’t only accept 3MF files as 3d models. That wasn’t enough for me to migrate. However, when in <a href="https://www.databreachtoday.com/thingiverse-data-leak-affects-25-million-subscribers-a-17729">October of 2021 a data breach came to light</a> - that was the final straw! I decided to move my <a href="https://www.thingiverse.com/sebazzz/designs">Thingiverse account</a> to the <a href="https://www.prusaprinters.org/social/170831-sebazzz/prints">PrusaPrinters.org model database</a>. I marked my Thingiverse account as obsolete and I invite you to do the same!</p> <p>Speed and performance, pace of development, or anything really, was never Thingiverse’s forte the last few years. However, I didn’t care much. Thingiverse has the largest community and therefore I remained on Thingiverse. A moving train doesn’t stop so easily I guess.</p> <style scoped=""> img + p, img + em { clear: both; display: block; } </style> <p><a href="https://www.thingiverse.com/sebazzz/designs"><img src="/images/blog/2022-01-27-thingies-on-prusa-printers/thingiverse-account.png" alt="My Thingiverse account (Sebazzz)" /></a> <em>I don’t have the most internet points ever, but I do have some useful designs on Thingiverse</em></p> <p>Thingiverse has not been really maintained.</p> <ul> <li>The printer list is out of date</li> <li>They don’t accept <a href="https://blog.prusaprinters.org/3mf-file-format-and-why-its-great_30986/">3MF files at a design only</a></li> <li>They don’t support two-factor authentication, leaving any account potentially vulnerable</li> <li>The allowed file size is very small, especially for pictures and screenshots</li> </ul> <p>The final straw was the <a href="https://www.databreachtoday.com/thingiverse-data-leak-affects-25-million-subscribers-a-17729">data breach</a> they didn’t inform their users properly about.</p> <p>There are plenty of alternatives, like <a href="https://www.myminifactory.com/">MyMiniFactory</a>, <a href="https://cults3d.com/">Cults3D</a>. The new kids on the block are <a href="https://thangs.com/">Thangs</a>, <a href="https://www.crealitycloud.com/">Creality Cloud</a> and <a href="https://www.prusaprinters.org/">PrusaPrinters.org</a>.</p> <h2 id="thangs">Thangs</h2> <p><a href="https://twitter.com/AngryWarkocki/status/1359624435343491080">Thangs has not been completely uncontroversial</a>, it is putting a <strong>lot</strong> of sponsorship money into promoting their service while having no apparent way to make money. These business practices make me wary, especially as <a href="https://twitter.com/AngryWarkocki/status/1359563131262013444">Thangs’ parent company Physna Inc. is a venture capital</a>. I have also asked <a href="https://twitter.com/sebazzz91/status/1433146552185458694">my own questions directly to @Thangs</a> of which you can read their responses. Maybe this feat of mine is unnecessary, but I don’t trust it and it was enough reason to look elsewhere.</p> <h2 id="cults3d">Cults3D</h2> <p>Cults3D has also not been completely innocent, <a href="https://www.reddit.com/r/3Dprinting/comments/rv70zv/cults3d_are_blind/">not taking down copies of models</a> and <a href="https://www.reddit.com/r/3Dprinting/comments/rklney/official_response_from_cults_regarding_the/">not paying out a seller</a> - resulting in <a href="https://www.reddit.com/r/3Dprinting/comments/rioeci/well_now_that_cults3d_is_blacklisted_where_should/">backlash from the 3D printing community</a>. After the backlash, they also <a href="https://www.reddit.com/r/3Dprinting/comments/rj5nkm/before_you_consider_deleting_your_cults_3d_account/">made it much more difficult to remove your account</a> which is against the European privacy regulation GDPR.</p> <p>Sufficient to say, I looked elsewhere.</p> <h2 id="creality-cloud">Creality Cloud</h2> <p><a href="https://www.crealitycloud.com/">Creality Cloud</a> is the model database of Creality, and also their cloud slicing &amp; printing platform for their Creality Wifi boxes and <a href="/blog/2021/04/24/connect-creality-cr-10-to-computer-or-octopi">Creality CR-10 Smart 3D printer</a>.</p> <p>The main disadvantages of Creality Cloud for is that they don’t support two factor authentication, and it is tightly coupled to their application. I have also heard that models were pirated and unlicensed copies of 3D models on their site were not taken down, though I haven’t found a definitive source about that.</p> <h2 id="prusaprinters">PrusaPrinters</h2> <p>The most well-known Prusa brand of printers launched <a href="https://www.prusaprinters.org/">PrusaPrinters.org</a> as modeling site, initially for their own printers, but since the Thingiverse breach they’ve seen a huge influx of users. <a href="https://twitter.com/josefprusa">Josef Prusa</a> tweeted they are looking for a new name to make it more inclusive to users of other brands of printers. Having never owned a Prusa - I think it is a good idea!</p> <p>The PrusaPrinters.org website is ran by Prusa, a European organization, and fully supports two factor authentication. The site is easy to use, has no weird terms of service you need to agree about, and is sold through the sales of Prusa 3D printers.</p> <p><a href="https://www.prusaprinters.org/social/170831-sebazzz/about"><img src="/images/blog/2022-01-27-thingies-on-prusa-printers/prusaprinters-account.png" alt="My Thingiverse account (Sebazzz)" /></a> <em>My PrusaPrinters account home page</em></p> <p>This made it the most viable alternative to me - and they have an easy to use migration service to migrate all your models from Thingiverse. My choice was made!</p> <p><em>Update: As <a href="https://www.thingiverse.com/thing:5219681/comments#comment-6334537">bomas_lulz</a> also here in the comments says: PrusaPrinters.org also has challenges that pay out in actual Prusament (filament from Prusa) - and apparently one of the former Thingiverse devs works on PrusaPrinters.org</em></p> <h2 id="shutting-down-my-thingiverse-account">Shutting down my Thingiverse account</h2> <p>The only thing left is shutting down my Thingiverse account and spread awareness of Thingiverse alternatives. For this occasion I have made a 3D model to mark my Thingiverse account as “dead”.</p> <p><a href="https://www.thingiverse.com/thing:5219681"><img src="/images/blog/2022-01-27-thingies-on-prusa-printers/render.png" alt="Bye-bye Thingiverse (Sebazzz)" /></a> <em><a href="https://www.thingiverse.com/thing:5219681">Download and place the model</a> on your own Thingiverse profile</em></p> <p><a href="https://www.thingiverse.com/thing:5219681"><img src="/images/blog/2022-01-27-thingies-on-prusa-printers/render-square.png" alt="Bye-bye Thingiverse (Sebazzz)" /></a> <em>Alternative version</em></p> <p><strong>Let’s start the exodus together and let’s migrate away from Thingiverse! I invite you to mark your account obsolete by including this model as your final upload! Feel free to share and modify this model like you want!</strong></p> <p>See you around!</p>It is 2022 and Thingiverse still looks like an website from 10 years ago. It is slow, it is not always reliable, and it still doesn’t only accept 3MF files as 3d models. That wasn’t enough for me to migrate. However, when in October of 2021 a data breach came to light - that was the final straw! I decided to move my Thingiverse account to the PrusaPrinters.org model database. I marked my Thingiverse account as obsolete and I invite you to do the same!BIQU H2 500°C Extruder - unboxing and first look2022-01-13T20:00:00+00:002022-01-13T20:00:00+00:00https://damsteen.nl/blog/2022/01/13/biqu-h2-high-temperature-first-look<p>BIQU wants to enter the market for high temperature printing and has release the <a href="https://www.biqu.equipment/products/h2-500-extruder-for-3d-printer?utm_source=marketing&amp;utm_medium=writer&amp;utm_campaign=damsteennl">BIQU H2 500°C direct drive extruder</a>. This is a variant of their <a href="https://www.biqu.equipment/products/biqu-h2-v2-0-extruder?utm_source=marketing&amp;utm_medium=writer&amp;utm_campaign=damsteennl">BIQU H2 direct drive extruder v2.0</a> of which <a href="/blog/2021/02/08/biqu-h2-direct-drive-extruder-review-no-compromises">v1.0 variant I wrote a review earlier</a>. For purposes of review and testing I have received a unit from BIQU. In this article I’Il do an initial unboxing and first look of the device and its internals.</p> <p><a href="https://www.biqu.equipment/products/h2-500-extruder-for-3d-printer?utm_source=marketing&amp;utm_medium=writer&amp;utm_campaign=damsteennl"><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/cover.jpg" alt="H2 box" /></a></p> <h2 id="specifications">Specifications</h2> <style scoped=""> img + p, img + em { clear: both; display: block; } </style> <p>For a general description of the features of the H2 direct drive series, including its very low weight, you can <a href="/blog/2021/02/08/biqu-h2-direct-drive-extruder-review-no-compromises">refer to my earlier review of the H2 v1.0</a>. When it comes to high temperature printing, these features specifically apply to the BIQU H2 500°C Extruder:</p> <ul> <li>The <strong>heat block</strong> is made of an <strong>nickel plated copper</strong> instead of regular aluminum</li> <li>The <strong>default nozzle</strong> is made of <strong>high temperature hardened steel</strong></li> <li>The stepper motor is tolerant of temperatures up to <strong>180°C</strong></li> <li>The assembly uses a <a href="https://peaksensors.co.uk/what-is/pt100-sensor/">PT100 temperature sensor</a> together with a <a href="https://learn.adafruit.com/adafruit-max31865-rtd-pt100-amplifier">MAX31865 amplifier</a> for accurate temperature reading capability</li> </ul> <p>Compared to an regular BIQU H2, the high temperature variant is about 10-20 dollars more expensive. Not bad!</p> <p>As mentioned, the hotend assembly is rated to go up to 500°C. As a suggestion, BIQU left a helpful list of filaments you can print thanks to the higher temperatures.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/filament-list.png" alt="H2 packaging - suggested filaments like PEEK, PC, PA/Nylon" /> <em>The most well-known filaments on this list might be Nylon (PA) and PC (Polycarbonate). And yes, that on the right is PEI - what you might have used as a build surface.</em></p> <h2 id="packaging">Packaging</h2> <p>The H2 500°C comes in a rectangular white box, with plenty of protective foam inside. The packaging self is shrinkwrapped in plastic foil.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/packaging-top.jpg" alt="H2 packaging - top" /> <em>Top of the box - notice the warning about the high body temperature of the extruder at high temperature</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/packaging-bottom.jpg" alt="H2 packaging - bottom" /> <em>BIQU must have hired an designer that worked at Apple 😉 - the packaging looks very attractive!</em></p> <p>When we open the box we’re greeted by the manual.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/inside-1.jpg" alt="H2 packaging - inside - top" /></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/inside-2.jpg" alt="H2 packaging - inside - w/o manual" /> <em>A part of the H2 extruder already peeks through</em></p> <h3 id="whats-inside">What’s inside?</h3> <p>Next to the H2 extruder, there is a small black box.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/thermistor-stepstick.jpg" alt="H2 packaging - MAX31865 on a stepstick" /> <em>The thermistor amplifier chip is kept safe by foam packaging</em></p> <p>The MAX31865 chip contained in the packaging is a requirement for measuring the temperature of the PT100 thermistor safely. The chip is put on a stepstick, which fits into any board with stepstick slots (boards with replaceable stepper drivers). This will be a challenge for me, as I don’t have any printer that has boards available that support stepsticks.</p> <p>We also find a JST-XH 4-pin connector with inserts to be crimped to a cable. It is not immediately obvious what its purpose is.</p> <p>In the large white box next to black foam, we find several accessories:</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/cables.jpg" alt="H2 packaging - cabling" /> <em>Silicone stepper motor cable, regular plastic fan extension cable, and a <strong>70W</strong> heater cartridge. The silicone stepper motor cable is supposed to be able higher temperatures, though I wonder why the fan cable isn’t also silicone. In addition with find a silicone sock for the heater block itself, and a fan guard.</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/fan.jpg" alt="H2 packaging - fan" /> <em>A 9000 RPM fan</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/tools.jpg" alt="H2 packaging - tools" /> <em>Some tools, 3 hex allen wrenches, a Bowden connector with 2cm long Bowden tube as filament guide, a 17mm wrench and a 8mm wrench and finally some mounting screws for the fan</em></p> <p>Finally, at the bottom most layer, we find a PT100 thermistor crimped onto a 4-pin JST-XH “stepper motor” connector (of which only two pins are used). This connector will be plugged into one of the ports on the mainboard where you’d normally plug in a stepper motor.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/thermistor.jpg" alt="H2 packaging - thermistor" /> <em>Safely packaged away at the bottom of the box: a thermistor in a steel tube package</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/mandatory-duck.jpg" alt="H2 packaging - mandatory BTT duck" /> <em>Of course the mandatory BTT duck can’t be missed 😄</em></p> <h2 id="the-h2-itself">The H2 itself</h2> <p>Let’s take a look at the BIQU H2 itself - from outside to inside. Since I’ve had BIQU H2 v1.0 - I can compare it to that.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-3d.jpg" alt="H2 - 3d view" /> <em>Just like the original H2, this H2 has a very small footprint in terms of size and weight</em></p> <p>From first glance, the BIQU H2 looks the same.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-back.jpg" alt="H2 - backside" /> <em>The H2 has two mounting holes on each side: top, bottom, front and back</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-front.jpg" alt="H2 - backside" /> <em>The H2 shows the large gear on the front, which can also be used for manually feeding filament - though I don’t know how well this will work with high temperature filaments</em></p> <p>Similar to the E3D Hemera, the fan air outlet is designed so it does not blow air onto your printed parts.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-disassemble-1a.jpg" alt="H2 - disassembly" /> <em>First step in disassembly: get the two hex bolts out</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-disassemble-1b.jpg" alt="H2 - disassembly" /> <em>Two mounting holes on all sides</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-disassemble-2.jpg" alt="H2 - disassembly" /> <em>The bolts that hold the H2 together are accompanied by <a href="https://www.mcmaster.com/split-lock-washers/">split lock washers</a> which are supposed to prevent the bolts getting loose (not if <a href="https://www.linkedin.com/pulse/nasa-split-lock-washers-useless-roger-bogrash/">you ask NASA</a>)</em></p> <p>After the bolts are removed, the two parts that make up the direct drive extruder assembly can be pulled apart.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-insides-1.jpg" alt="H2 - disassembly - insides" /> <em>The stepper motor part is on the left side, and the hot-end and half of the drive gear to the right</em></p> <p>The gears seem to be of better quality than the original H2. Just like the original, all the gears are supported by tiny sealed bearings. There is no lubricant in the direct drive extruder itself.</p> <p>On the other part we find the heater block with its bimetallic heat break, and one half of drive gear. Just like the original H2, the drive gear can’t be tensioned to a specific level - one thing I noticed as a downside of the original H2. However, you may not print as much TPU on a print you’Il specialize for high temperature printing anyway.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-insides-2.jpg" alt="H2 - disassembly - insides" /> <em>Further disassembling the extruder shows the individual gears and the custom stepper motor</em></p> <h2 id="manual">Manual</h2> <p>There is also an extensive manual included with the H2, which describes the unit itself - but also firmware changes necessary which <a href="/blog/2021/01/08/how-to-compile-cr6community-marlin-with-vscode-platformio">requires you to learn to compile your own firmware</a>. Besides selecting the correct temperature sensor, you must also configure which pins are used for communicating with the MAX31865.</p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-manual-p1p2p3.jpg" alt="H2 - disassembly - manual" /> <em>Overview, disassembly, and some measurements that can be used to design your mount in a CAD tool - if one in the H2 ecosystem isn’t already available</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-manual-p4p5p6.jpg" alt="H2 - disassembly - manual" /> <em>More specifications and some instructions for mounting. In addition an exploded view shows all the parts.</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-manual-p7.jpg" alt="H2 - disassembly - manual" /> <em>Part list</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-manual-p8p9p10.jpg" alt="H2 - disassembly - manual" /> <em>The instructions for changing the firmware - these instructions are still up to date!</em></p> <p><img src="/images/blog/2022-01-13-biqu-h2-high-temperature-first-look/h2-manual-p11p12.jpg" alt="H2 - disassembly - manual" /> <em>More instructions - it is good that they take half the space in the manual to make clear what needs to be done</em></p> <h2 id="notes-on-compatibility">Notes on compatibility</h2> <p>As noted above, this H2 isn’t just a matter of mounting it. You need a compatible motherboard with free SPI pins and a socket that allow the processor to communicate with the MAX31865 temperature chip.</p> <ul> <li>If you have <strong>one of the SKR 1.3/1.4/2.x boards</strong> with replaceable stepper drivers, it is a walk in the park - plug and play (after firmware changes). These boards are generally put into either custom printers, and also come with the BIQU B1/BX. <ul> <li>However, if you already use all five stepper drivers, you need to purchase <a href="https://www.biqu.equipment/products/btt-rrf-wifi-v1-0-module-driver-expansion-module-for-skr-v1-4-1-4-turbo-skr-v1-3-3d-printer-part?utm_source=marketing&amp;utm_medium=writer&amp;utm_campaign=damsteennl">an expansion module</a> and give up on your LCD screen</li> </ul> </li> <li>If you have SKR mini boards - drop-in replacement for Ender 2 Pro/Ender 3, which do not have replaceable drivers, <a href="https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/issues/476">things get more complicated</a> <ul> <li>BIQU does have a <a href="https://www.biqu.equipment/products/btt-rrf-wifi-v1-0-module-driver-expansion-module-for-skr-v1-4-1-4-turbo-skr-v1-3-3d-printer-part?utm_source=marketing&amp;utm_medium=writer&amp;utm_campaign=damsteennl">driver expansion module</a>, however, this doesn’t work on SKR mini’s as they have only an EXP3 port and not dual EXP1/EXP2 ports. Either way, you would be giving up your LCD display. The BTT touch screen would still work though, just not in Marlin mode.</li> <li>So, you’re left with soldering - and you must have both the equipment and courage to do so.</li> </ul> </li> </ul> <p>In terms of mounting the H2 to your printer - this should be pretty doable. A lot of mounts have already been developed by the community. The only worry I’d have, is how well printed mounts will hold up in the ambient temperatures necessary for some of the plastics.</p> <h2 id="next-steps">Next steps</h2> <p>As the next steps, I will check which one of my current printers is most feasible to modify.</p> <ul> <li>I have an Ender 2 Pro which can accept an SKR-mini board, but this requires an unclear amount of work. I’Il also may need to purchase a glass bed to allow higher temperature printing for certain filaments.</li> <li>I have a CR-6 with E3D Hemera which I can either completely rebuild its guts so I can fit an SKR 1.3/1.4 board. I’Il need to design a new motherboard enclosure, as it is currently not large enough to accommodate stepsticks.</li> <li>I also have any Anycubic Vyper which works perfectly and I rather keep as it is now (except for <a href="/blog/2021/03/27/creality-cr6-community-firmware-release-6-is-here">the Community Firmware</a>).</li> </ul> <p>I do have a CR-10 Smart coming in and a Ender 3 S1 (thanks to my presence in Creality’s first overseas user seminar), but both I’d like to keep stock for a while until modifying them.</p> <p>In any case, no matter what it needed. I’m up for the challenge!</p>BIQU wants to enter the market for high temperature printing and has release the BIQU H2 500°C direct drive extruder. This is a variant of their BIQU H2 direct drive extruder v2.0 of which v1.0 variant I wrote a review earlier. For purposes of review and testing I have received a unit from BIQU. In this article I’Il do an initial unboxing and first look of the device and its internals.A summer off, community firmware cont.2022-01-02T18:00:00+00:002022-01-02T18:00:00+00:00https://damsteen.nl/blog/2022/01/02/a-summer-off<p>The last thing I posted was in May last year, time for an update of what I was up to last 6 months!</p> <h2 id="the-summer-of-less-printing">The Summer of less printing</h2> <p>Also in summer 2021 I was still working from home. I have my home office in the attic. Both development of the Community Firmware and my paid day job at EY I do from this space.</p> <p>Usually in the summer it gets quite hot here because the sun is shining on the (brick) roof, all day long. To make matters worst, all heat from the living room and other rooms also rises through the stairwell to the attic. I have no air conditioning unit here - except for a <a href="https://www.youtube.com/watch?v=_-mBeYC2KGc">fairly inefficient mobile air conditioner</a>.</p> <p>To keep this space habitable, I try to avoid most activities that produce heat. This includes gaming and, of course, 3d printing. Though I have an PEI or similar surface on all my 3D printers, I like to keep a 60C bed temperature for PLA. And I don’t only print PLA of course (also TPU, ABS, PETG).</p> <p>Even then, it easily gets 28C-30C here. Enough reason to pause 3D printing for a while</p> <h2 id="promotion">Promotion</h2> <p>Other than that, also a lot of mental energy was poured into my work, and I was also promoted to the title of Manager. I’m thankful for this opportunity, but it did make that I didn’t have a lot of energy to put into other efforts.</p> <h2 id="catch-up-with-gaming">Catch up with gaming</h2> <p>After acquiring a GTX3090 for a reasonable price (second hand, when it was still possible!) I had some gaming to catch up with. Due to the developments of the community firmware, I practically hadn’t gamed for quite a while.</p> <p>I took some time to catch up with Cyberpunk 2077 (having also waited for the most critical bugs to be resolved), and also replay the ever awesome Deus Ex series of games.</p> <h2 id="internal-creality-testing">Internal Creality testing</h2> <p>I was also contact by Creality to do some internal testing for beta units of their printers. I have done this for the CR-10 Smart, of which I made several articles already. I have by now dismantled the CR-10 Smart, as my beta unit had quite some trouble with keeping a proper leveled bed.</p> <p>I also tested the Creality Ender Pro 2. I still have this unit, and very much like it. It is a simple printer, and not much can go wrong. The only thing I don’t like is that the source code of the firmware isn’t released yet. There are some things I would like to customize.</p> <h2 id="vyper--the-community-firmware">Vyper &amp; the Community Firmware</h2> <p>Over time, the Community Firmware has received contributions for support for new printers:</p> <ul> <li>Sovol SV001</li> <li>Creality CR-200b (also requires custom horizontal touch screen firmware)</li> </ul> <p>Myself, I have an Anycubic Vyper now in addition to the CR-6 I already had. This Vyper has an DWIN touch screen, just like the CR-6. That calls for an port of the Community Firmware! The Vyper is a better CR-6, featuring a proper dual gear extruder, E3D Volcano-like hot-end, auto-leveling Z-axis, and quite accurate strain gauge leveling. The only downside is the default stock firmware.</p> <p>Porting the Community Firmware is what I will be focused on the next few months.</p>The last thing I posted was in May last year, time for an update of what I was up to last 6 months!Filament review: BIQU PLA matte and PLA Premium filament review - The first filament production from BIQU2021-05-20T13:00:00+00:002021-05-20T13:00:00+00:00https://damsteen.nl/blog/2021/05/20/biqu-pla-matte-premium-filament-review<p>BIQU / BigTreeTech is best known for their <a href="/blog/2021/01/24/bigtreetrech-skr-cr6-review">BTT SKR 3D printer motherboards</a>, printers like their <a href="/blog/2020/10/18/biqu-b1-review">BIQU B1</a> or <a href="https://www.biqu.equipment/collections/3d-printer">BIQU BX</a>, and also parts like their <a href="/blog/2021/02/08/biqu-h2-direct-drive-extruder-review-no-compromises">BIQU H2 direct drive extruder</a>. BIQU is now also introducing their own filament. Let’s take a look!</p> <h2 id="two-types-of-biqu-pla">Two types of BIQU PLA</h2> <style scoped=""> img + p, img + em { clear: both; display: block; } </style> <p>BIQU sent me two rolls of their PLA: One roll of PLA Matte and one roll of Premium PLA. The difference is the texture: Premium PLA is shiny instead of matte.</p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/cover.jpg" alt="BIQU PLA box" /> <em>BIQU PLA comes in a cardboard box with recommended printing parameters and a short description on the side</em></p> <p>BIQU wants to distinguish this filament by ease of use and being a general purpose printing filament. Though it is currently not available yet in a European warehouse, BIQU already sells it on their website.</p> <h2 id="packaging">Packaging</h2> <p>BIQU filament comes in a cardboard box with a description on the side, stating the recommended printing parameters. The spool inside is vacuum sealed.</p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/inside.jpg" alt="BIQU PLA box" /> <em>A vacuum sealed spool with some desiccant</em></p> <p>The plastic bag has been vacuum sealed with a strong vacuum, but it is not reusable. There is also a bag of desiccant inside to keep the filament dry during transport. The desiccant can be reused when you store the spool of filament later. There are instructions on the desiccant on how to reactivate it.</p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/roll.jpg" alt="BIQU PLA box" /> <em>PLA Matte filament</em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/desiccant.jpg" alt="BIQU PLA desiccant" /> <em>The desiccant included is reusable - you can store your filament dry after usage</em></p> <h3 id="spool">Spool</h3> <p>I always have some attention for the spool. Some brands, like SUNLU, have spools that are more cumbersome to use because there are only two holes in the spool to stick the filament in. I also find the reusability (master spool) or recyclability (cardboard) of importance.</p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/roll2.jpg" alt="BIQU PLA" /> <em>The design is attractive to the eye</em></p> <p>The spool is not reusable nor recyclable. There are at 0, 90, 180 and 270 degree angle two holes to secure loose filament in. It is not as well as a spool of Prusa, but better than Sunlu for instance.</p> <h2 id="prints">Prints</h2> <p>I made several prints using this filament. Let’s go check it out!</p> <h2 id="matte-pla">Matte PLA</h2> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/torture-toaster1.jpg" alt="BIQU PLA - Test prints" /> <em>The <a href="https://www.thingiverse.com/thing:4803370">ClockSpring Torture Toaster</a> printed with 2.5mm retraction on a Bowden printer</em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/torture-toaster2.jpg" alt="BIQU PLA - Test prints" /> <em>Fully functional! Only the 0.1mm tolerance didn’t work - but that is pretty much unavoidable when printing at decent speeds</em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/dd-cr10-smart.jpg" alt="BIQU PLA - Test prints" /> <em>BondTech LGX mount for the <a href="https://www.thingiverse.com/thing:4851078">Creality CR-10 Smart</a></em></p> <p>This model had some supports, but they broke away easily.</p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/faucet.jpg" alt="BIQU PLA - Test prints" /> <em>Bathroom faucet knob</em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/tray1.jpg" alt="BIQU PLA - Test prints" /> <em>Stackable storage tray</em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/tray2.jpg" alt="BIQU PLA - Test prints" /> <em>The layer lines are only visible in a close-up - otherwise they are invisible</em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/stacked-box.jpg" alt="BIQU PLA - Test prints" /> <em>Multiple stacked boxes with a <a href="https://www.thingiverse.com/thing:4857727">Velleman VTUSB stand</a> printed in BIQU Premium PLA</em></p> <h2 id="premium-pla">Premium PLA</h2> <p>Premium PLA has a more shiny finish, but not as shiny as silk PLA. This results in stronger prints compared to silk PLA.</p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/dagger.jpg" alt="BIQU PLA - Test prints" /> <em>The <a href="https://www.thingiverse.com/thing:3704389">collapsible dagger</a></em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/motherday.jpg" alt="BIQU PLA - Test prints" /> <em>A gift for mothers day 2021</em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/frozen1.jpg" alt="BIQU PLA - Test prints" /> <em>Frozen - my daughter loves this. This model was printed with minimal (built-in) supports.</em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/dragon1.jpg" alt="BIQU PLA - Test prints" /> <em>Dragon. Testing how far I can tune down retractions on my Bowden printer - this is at 3mm (I normally print at 6.5mm)</em></p> <p><img src="/images/blog/2021-05-20-biqu-pla-matte-premium-filament-review/deer.jpg" alt="BIQU PLA - Test prints" /></p> <h2 id="pros-and-cons">Pros and cons</h2> <p>So, with these prints, where does this leave this filament?</p> <p><strong>Pro’s:</strong></p> <ul> <li>Minimal tendency stringing. On my Bowden CR-6 I was able to tune retraction to 3 mm.</li> <li>The matte PLA hides layer lines very well.</li> <li>Reliable. I haven’t had any clogs, jams on any hot-end (PTFE, all-metal, Bowden or Direct Drive).</li> <li>Comes with a reusable desiccant bag.</li> </ul> <p><strong>Cons:</strong></p> <ul> <li>The matte PLA seems to be susceptible to print artifacts near the Z-seam when using a large nozzle.</li> <li>The spool is not reusable nor recyclable - it is a standard plastic spool.</li> </ul> <p><strong>Other thoughts:</strong></p> <ul> <li>The desiccant bag has instruction on how to reuse it. This encourages saving the desiccant and reusing it later.</li> <li>There is a typo on the packaging of the Matte PLA. This is resolved in newer batches of the filament.</li> </ul> <h2 id="where-to-get-it--pricing">Where to get it &amp; pricing</h2> <p>BIQU filament is available on <a href="https://www.ebay.com/itm/274820309571">EBay</a>, <a href="https://www.aliexpress.com/item/1005002762055559.html?spm=a2g0o.store_pc_newArrival.8148356.17.63a07da2lA9Utz">AliExpress</a> and <a href="https://www.amazon.com/dp/B092HPYDZ4?ref=myi_title_dp">Amazon</a>.</p> <p>The price is about 26 dollars which puts it just above SUNLU and near other PLAs.</p>BIQU / BigTreeTech is best known for their BTT SKR 3D printer motherboards, printers like their BIQU B1 or BIQU BX, and also parts like their BIQU H2 direct drive extruder. BIQU is now also introducing their own filament. Let’s take a look!