Category Archives: 3-D Printing

Why is choosing a 3-D printer so difficult?

Years ago, I started following some early consumer 3-D printer projects on sites like Kickstarter. At the time, existing 3-D printers were very, very expensive, and/or built from kits. The future was promising consumer pricing on printers that would actually be usable by consumers rather than engineers.

In 2017, I picked up a cheap Monoprice Mini Delta printer, today known as the “Malyan M300” model, since Monoprice has since released a newer Mini Delta V2 that is a completely different machine.

Back then, I made the choice due to price. Small printers like this had dropped below $200 and the Mini Delta was actually cheaper than the last several EPSON inkjet printers I had bought.

I had trouble figuring out how to use the printer, and was pointed to Simplify3D software. That had a profile ready to go for the Mini Delta, and was super easy to figure out how to us. I’ve been printing stuff ever since… The only thing I was lacking it the ability to build larger items.

Upgrade path?

Today, there are hundreds — if not thousands — of 3-D printers for sale. You can pick up cheap ones for under $100, or get a well reviewed “good” printer in the $200-$300 range.

But which one should you choose? Every “good” printer, if you read the reviews, has tons of folks praising it as their favorite, and tons of folks saying it’s garbage and is nothing but problems. The 3-D printer market seems to have very inconsistent quality control.

But beyond that … here is what we need:

Buying a 3-D printer: What we need.

Part 1 – An elimination system.

When I ask about a printer, folks always say “it depends on what you want to do with it.” The first round is to simply eliminate printers that do not meet your requirements:

  1. If you have specific needs, such as how large an item you want to build, or how fast you require it to be built, you can immediately stop looking at all printers that do not meet those requirements. You can do the same with OS support (Mac, Windows, Linux).
  2. Not all printers print all materials. If you want to print flexible materials, some printers are great at that, and others cannot do it at all. If your goal is to print “rubberized” phone cases, you can instantly eliminate alot of choices.

Part 2 – Quality

The next part is something that should be 100% achievable without any opinions getting in the way. The job of a 3-D printer is to take a digital design and turn it in to the three-dimensional object. It should be trivial to simply run through a series of prints that exercise different aspects of printing (overhands, the need for supports, etc.) and then scan the resulting object and compare it against the digital blueprints. You should be able to end up with a simple list of accuracy in different categories, much like any auto buyer’s guide breaks down vehicles in to a simple set of basic categories.

Part 3 – Opinion

The last part should be the opinion part. How many units were dead on arrival? How many have had to be repaired? How fast is support? etc.

Even if you find the best printer, if it breaks and you can’t fix it, maybe it’s not a good choice. BUT, maybe you are fine getting past a project even if your printer breaks in six months and never runs again. That is why I think this choice should be last.

So … why is there no such website? Number two should be especially easy, as would be speed. At least we should have those.

Until next time…

PiZ SuperCap safe shutdown for Raspberry Pi Zero

Last year, I learned of a new Kickstarter that solved a significant problem with using a Raspberry Pi for embedded “turn key” projects. The Raspberry Pi is a disk-based Linux system, using a microSD card in place of a hard drive. If you kill power to a Raspberry Pi without safely shutting down Linux first, file system corrupt can occur. I have seen this dozens of times over the years on my devices. When it happens, I just reformat the memory card and re-image it and continue.

But now we don’t have to — at least not if we are using the Pi Zero.

Abhinav Shukla created the PiZ SuperCap and launched it as a Kickstarter in 2021. The device is a small circuit board with a capacitor. It connects to a Pi Zero via the I/O header. Instead of plugging the USB power cable directly in to the Pi, you plug it in to the PiZ SuperCap board. This charges the capacitor then begins powering the Pi.

PiZ SuperCap by Abhinav Shukla

If power is disconnected, the capacitor has enough power to run the Pi Zero for a short amount of time (about 15 seconds). It also toggles a GPIO pin to indicate that power has been lost. By running a simple Python script on the Pi, you can now detect when power has been lost and, if it is not resumed in a set amount of seconds, safely shut down the Pi Zero by issuing a “shutdown” command.

I backed ten of these units, and I am glad I did. They work great! Now I can use a Pi Zero for any type of embedded project I want and just kill power when I want to shut down.

How it works

Here are some things to be aware of:

  1. When you first apply power, the Pi Zero will not immediately power up like you are used to. It must first charge the capacitor. The Pi Zero won’t actually start up until about 8 seconds after you apply power.
  2. When you turn off power, if no shutdown script is installed, the Pi won’t turn off until the capacity runs out. On my Pi Zero W (first version), I timed it at 75 seconds when just sitting at a text console login prompt. If you are running a graphical desktop or any programs using the CPU, it won’t last that long.
  3. The PiZ SuperCap will toggle GPIO pin 4 to indicate a power loss. To enable safe shutdown, you need some form of program or script that will monitor GPIO pin 4 and shut the system down when power goes away. The sample code provided uses a 9 second delay before deciding to power off, making the unit act like a mini UPS rather than shutting down on any temporary power blip. Clever.

Shutdown script

The designer provides some sample Python code on the project page, but here is a shorter one I came up with. I am not a Python programmer, so I have no idea if my technique is good. I just wanted it to block until it sees a power loss, and either shut down (after a delay) or continue:


import RPi.GPIO as GPIO
import time
import os

GPIO.setup(4, GPIO.IN)

while True:
        # Wait for power to drop.
        print ("Waiting for power loss...");
        GPIO.wait_for_edge(4, GPIO.FALLING)
        print ("Power loss")

        # Give user 9 seconds to restore power.
        print ("Waiting to see if power is restored...")

        if GPIO.input(4) == 0:
                print ("Power not restored.")
                os.system("sudo shutdown -h now")
                print ("Power restored.")

The above script has print statements in it so you can run it from the console to verify it is working. Those can be removed (or commented out) once you are sure it works.

You will need to do a “chmod +x” to make it executable.

If you want to make it run on startup, edit the /etc/rc.local file:

sudo pico /etc/rc.local

…and add this line at the end before “exit 0”:

# Pi Z SuperCap monitor script:
python /home/pi/supercap

You can then restart the system (“sudo restart now”) and when it reboots, the script should be running. Disconnect power and after 9 seconds (or whatever time you modify the script to use) it will issue a safe “shutdown” command.

3-D printed enclosure

I have created a very simple 3-D printer enclosure that holds a Raspberry Pi Zero and the PiZ SuperCap. Let me know if this is something you might want.

PiZ SuperCap by Abhinav Shukla in a custom 3-D printed enclosure by Sub-Etha Software.

Support the designer

If one of these might be of interest to you, consider backing the project at:

FLSUN Super Racer discount code

I have received my FLSUN SuperRacer 3-D printer. It is very large, and must be assembled. Assembly is simple (maybe 28 screws, of two sizes, plus connecting plugs) but took me almost an hour. Others (who have done this) say it should take about 20 minutes.

The first thing I did was follow the steps in the manual to upgrade the firmware on the printer and the display. Each requires formatting a microSD card in a specific way (32K sectors for the printer, 4K sectors for the display). Updating the display requires opening it up (four screws) to access the card slot on the circuit board.

After this, I printed the included demo — a nut and bolt:

FLSUN SuperRacer SR 3-D printer demo file – nut and bolt.

It turned out exceptionally nice, even using generic Amazon Basics filament I had.

To better visualize how large it could print, I used to create a ring that was almost as large as the print surface. Since my SImplify3D did not have a profile for this printer (you have to e-mail them to receive it), I downloaded and installed the Mac version of Cura and used it’s SuperRacer profile to slice it. I then printed it, just fine:

FLSUN SuperRacer SR 3-D printer demo file – large ring.

So far, so good. I’ll be posting more about this printer as I have time. Until then, if you want to get one…

Please use my referral link:

Use code SUBETHASOFTWARE for a discount.