Prusa i3 Mk3 MMU 2.0 Banging on Start

If you haven’t seen it yet Prusa’s i3 Mk3 MMU 2.0 printer module offers up multi-material printing using five pre-loaded filaments with a single extruder. The magic happens with a fairly ingenious filament selector module hanging out above the printer proper.

And it works. The selector is adequate at selecting filaments and I’m not seeing much of an issue with it’s functionality. That’s barring wildly out-of-diameter filament widths (1.9mm+ instead of the spec 1.75mm).

However, there seem to be some teething problems with the software design. One of the issues I’ve come up with on that end is the auto detection and alignment of the MMU 2.0 carriage.

On start the MMU 2.0 seems to be detecting the right end of the carriage too soon. Then it hammers against the left side of the carriage when the MMU 2.0 moves back. It’s using resistance on the stepper motor driver and appears to be very sensitive. 

I’ve posted two videos, the first of it working properly and the second of the failing carriage detection. If you’re curious about the MMU 2.0 or are trying to check if what you’re own printer is doing is normal here you go.

Cheapest EBay Filament! Good Deal or Total Junk?

In our new series of videos on YouTube we ask an important question. Is the cheapest PLA 3D Printer filament on EBay a shrewd deal or total garbage?

Initially I’ve weighed out the filament. And over the following weeks I’ll be printing with the entire 2.2lb (1kg) spool to see if it’s worth your hard earned US dollars.

So join me in the shop to see if the lowest priced PLA 3D Printer filament is any good.

Disable Middle Click to Close in XFCE4-Terminal

If you’ve used XFCE4 Terminal as a terminal emulator on the desktop you may have noticed an odd behavior. Every so often a tab will inexplicably close while you’re using it or floating the mouse pointer by it on the desktop.

As it turns out this is a middle mouse button click to close. In my case it happens when I’m using the track pad. Or not using the track pad, as the case may be, and instead nailing it with my palms while typing.

At one point the setting was stored in ~/.config/Terminal/terminalrc and on some older installations this may still be the case. On the current (through updates) Ubuntu install that I’m running it’s located in ~/.config/xfce4/terminal/terminalrc and in either case the option in question is MiscTabCloseMiddleClick=TRUE which needs to be changed to MiscTabCloseMiddleClick=FALSE

Hopefully this will save you from the headache of having your work or connection unexpectedly disappear!

Eken H9/H9R/H9S Action Camera WiFi Connection

You may own an Eken H9 series action camera. You may, like myself, have gotten a few different lenses for it to modify it for your own, non-fisheye, use.

But how will you connect to it either through a wire or wireless?

All you need is an application (VLC will do) that can read in an RTSP stream (read more on those over at Wikipedia) and punt it to wherever you’d like.

Be aware that you won’t be streaming out at full resolution (yet? maybe impossible?). While it does work the Eken can only output “standard def” 480p with the following network connection address.

I’m still looking into changing the URL around for different streams. Unfortunately the Eken flat out crashes if you connect to an invalid URL. That’s not exactly the best handling on error conditions there folks!

NMAP reports the following on ports 1 through 1000 (TCP) when it’s not active:
Nmap scan report for
Host is up (0.0084s latency).
Not shown: 998 closed ports
21/tcp open ftp
554/tcp open rtsp
And for UDP:
Nmap scan report for
Host is up (0.0086s latency).
Not shown: 999 closed ports
67/udp open|filtered dhcps
MAC Address: xx:xx:xx:xx:xx:xx (Unknown)
And the connection address is:


  • Q – might be a quality setting? While I didn’t notice a difference this would probably require objective testing
  • W – is width (this doesn’t appear to change the cameras output; just the size displayed rendering it extremely dithered)
  • H – is height (this doesn’t appear to change the cameras output; just the size displayed rendering it extremely dithered)
  • BR – No idea as of yet

It also runs an FTP server on the address sharing out all the contents of your Eken to anything that connects up to it. Poor error handling and poor security come prepackaged on this unit.

But the Eken is at the lowest price point you’re likely to find. And the quality is in the cheap and cheerful camp rather than total crap. At the 40~50 USD price point I like it!

Other notes on the Eken H9 series:
  • With the exception of the Plus they’re all interpolating up to 4K; the native hardware only handles up to 1080P 60fps well in my experience
  • Eken’s H9 is running a wifi network at 54mbps (20mhz, no HT). That’d suggest 802.11g standards.
  • The camera has a built in DHCP service in addition to RTSP and FTP servers
  • Plug it in via USB without a memory card and it will act as a low-def video streaming device
  • Plugging in the Eken’s USB cable seems to power it while streaming
  • I found that my Eken seemed to have a heating issue; It may get a modification to dissipate the heat more effectively
  • The WiFi RTSP with the above connection URL exports Motion JPEG (MJPG)
  • The user is “331” and the password is “wificam” for the ftp service
A note on VLC:
  • Tune down the network caching option under the network connection to reduce latency
Sources not listed above: Listed the URL for connection as sniffed from WireShark. Hackeken also lists the username and password which are passed in clear-text.

Smoothieware Update for MKS SBase v1.3

While updating my MKS SBase v1.3 to the latest smoothieware software I ran into a bit of a snag. Not a snag you’d find in the actual (recent) Smoothieboards, mind, but a snag that would only occur with the MKS SBase.

As it turns out they’re shipping with a 2014 copy of the Smoothieware firmware. Even as late as 2016! Because of this it won’t read a Fat32 formatted SDcard. Instead you’ll need to format the SDcard with Fat16 for the updated and then can re-format it with Fat32 for storage.

So that’s it! Should you have a MKS SBase board and are having an issue try Fat16 formatting.

Note that Smoothieboards are available from their maintainers. If you purchase a board from them you’ll likely not have these issues. And the hardware is a bit more likely to be in spec!

And you may want to know what this Smoothieboard thing is. Thomas Sanladerer has you covered with one of his videos, better than I would with a few paragraphs of words, on YouTube.

Moving around LVM2 Partitions (and Changing their Size)

Recently I ran into an issue where the size of an existing disk images LVM2 partition didn’t fit. The latest hardware from our vendor didn’t contain a large enough SSD memory drive! Since I didn’t want to re-create the entire image I turned to the Internet for help.

My issues with pre-created images aren’t infrequent. While it’s not as much of a problem currently as it was in the past LVM2 does add a bit of a wrinkle (being a relatively new container format). Between G4L and GParted they solve most issues, just not this one.

While there were quite a few resources available, AskUbuntu was the most concise. In this post in particular. If you look down the second answer by Gilles sorts both problems nicely.

Max6675 Housing (3D Printed) in Translucent Green PLA

While working on a temperature controlled oven for drying out desiccant and plastics I needed a housing for the Max6675 thermocouple controller. I also didn’t want to adapt something to fit. Being in possession of a 3D printer I figured that was just the solution to the problem.

Fortunately someone over on Thingiverse (bradford) had created a design that contained the measurements. A small bit of tweaking later the project was done! Changes to the design account for larger solder joints and make room for jumper cables.

You can find my revamp of the original design along with some pictures of it in action on Thingiverse.

Translucent green PLA was used for the print itself. Layer height was set to .2mm with infill at 15%. Infill type was set to 3D Cube style. Combining those settings in Slic3r Prusa Edition created a durable part.

Fixing WebCollage Screensaver “Use of uninitialized value $vals” error

Tired of getting errors scrolling down the screen in the WebCollage Linux screensaver? So was I.

WebCollage (here’s the link to the .deb on Ubuntu), for a bit of background, is a nice Xorg screensaver for Linux that displays a random collage of images fetched from various search systems on the Internet and popped up in an array as a screensaver. It gives you a weird and occasionally surreal collage that I always find interesting.

Reading the error stating an unset variable “$vals” was to blame for the for thousandth time I decided to take action. The perl file, located somewhere on the file system, was calling an array that didn’t fetch anything leading to the following.

As it turns out, there is an unset variable “$vals” on line 264 and 268 of the Perl file (/usr/share/perl5/HTTP/ on my Debian system). There are multiple ways to fix this error. I’m just going to check to see if it’s defined before referencing. Here’s my changes to line 264 on:

#if (index($vals, "\n") >= 0 ) {
if (defined $vals) {
$vals = _process_newline($vals, $endl);
if (defined $vals){
push @result, $field . ': ' . $vals;

Creating Mr. Beams Networked Lights Hacks

Mr. Beams produces an inexpensive line of autonomous outdoor lights. Coming in at 25$ each and 47$ or so for a pair they’re decent bang for your lighting buck.

But what if you’re not satisfied with the product out of the box? What if you’d like to completely void any warranty provided with the product? Possibly break it horribly? Continue reading Creating Mr. Beams Networked Lights Hacks

3D Printing: 3D Printer Build Plate Leveling

3D printers require a level build plate. We’re taking a look at how you can level your Replicator, CTC, Flashforge, or other Makerbot Replicator style printer build plate

Bill of Materials for this Build:

  • Finger Guage (or sheet of paper)
  • (Digital) Dial Gauge
  • 3D Printed Jig
  • Small Magnets (optional)
  • Hot Glue (to adhere magnets)

Some newer extruders such as the Kossel style Deltamaker cleverly level the head instead of the plate, which proves a bit simpler. They’ve got there own weaknesses, of course, but a level plate generally isn’t one. For the rest of us we have to put up with leveling springs in three or four locations needing to be tightened to spec periodically.

As with any procedure you can severely damage yourself or your equipment. By reading this article you acknowledge that the author, this publication, and any other entity have no responsibility for damage or injury. Take all necessary safety precautions and make sure that any procedure will not cause damage or injury before going through with it.

So what’s an easy way to level the build plate? You can fiddle around with a finger gauge and manually level it repeatedly to .102mm or .004 inches (about the thickness of a sheet of paper) on all the points hoping that it’s dragging just right every time and you’re not getting a variance.

Pittsburg branded digital gauge from Harbor Freight
Pittsburgh digital depth gauge from Harbor Freight

Or you can pony up 15$(USD) or so and get a digital depth gauge (ours was from Harbor Freight, pictured right). There are also tire tread depth gauges with the proper resolution for the job available in the 5$ range. We went with the classier dial style digital gauge jig as seen in the pictures. Link to the required jig on Thingiverse: (STL Files at Thingiverse)

You may want magnets as well. Gluing them in place on the print-out provides a bit more staying power to your jig. Less moving about while you’re setting the screws on your plate is definitely a plus but the design will clip on if you have trouble finding magnets.

Digital meter installed in a red PLA jig

Digital depth guage installed in 3D printed jig with magnets

In addition to magnets re-sizing the inner diameter of the print out’s pass-through hole to the gauge might be necessary if there’s a variation to it on your meter. A bit of tape or smudge of dried adhesive on the inside of the opening can achieve the same goal if you’re not keen to pre-measure everything and alter the 3D drawings.

How does it all work? You’re still going to need your finger gauge (or paper) to level a single corner properly. Being careful not to hit the bed with your print head position the print head properly near one of the leveling screws and get it to the correct distance from the print bed. We accomplished this by moving the print head out of the way, manually moving the Z axis all the way to the top, then moving the print head near the screw with the built in jog function.

How to check the depth of clearance on a printhead with a feeler guage

A finger guage balances under the print head to check the depth of clearance

While the build plate is positioned correctly next to the screw go ahead and level the build plate. On most printers this is accomplished by tightening or loosening the screw until your finger gauge (or paper) drags appropriately. Your 3D printer may differ.

Once that screw is tightened to the proper tension go ahead and move your print head(s) off to the side using the jog feature of the printer. With the printhead moved to the side place your jig on the printers carriage rods as pictured.

A 3D printer jig showing zero positioned over a leveling point on a CTC 3D printer
3D printer leveling jig positioned properly on a single level point

Zero the digital depth gauge by pressing “Zero” (or your equivalent) once it is mounted securely in place. With the gauge reading zero move your Y and Z axis around until the meter is roughly next to each one of the tensioning screws. Then add or remove tension with the screw until the gauge reads zero for each of the positions.

You’ll want to repeat your check until all four points read near zero. It generally takes a few passes.

That should be it! If that all worked for your 3D printer you should now have a leveled build plate.