The Sensor project - Adding Telemetry to a TAZ

Yeah that’s true, flexible filament may be tricky, especially if there is too much tension on it. I think continuing the project with what you originally spec’ed out, using the light sensor, might be the best course of action. That way you can implement the project without feature creep complications, and fully investigate the benefits & drawbacks (if any) of using the light sensor. You could always look into the hall sensor if the light sensor doesn’t suit your needs.

Regarding the LCD screen: I have my raspberry pi with a Adafruit motor hat to control 12V fans and lights, mounted underneath the tabletop of my printer. I created an enclosure for the LCD (, rotary encoder ( , and buttons ( mounted to the 20x20 framing of my enclosure.

I have a custom Python script running as a service on my RPi that displays a custom GUI using pygame to the LCD. It also connects to octoprint through octoprint’s API to check on the status of the printer, tool head temperature, and send commands to the printer. The GUI displays the printer status (waiting, printing, print complete), print job info (time remaining, file being printed), ambient enclosure temperature & y motor temperature (through 2 temp probes), fan & light statuses, and actions.

The actions can be cycled through and selected with the rotary encoder. Actions like:
[] Flash E3D, in which the script will stop octoprint, flash the printer with my E3D firmware, then start octoprint.
] Purge nozzle, which will home axis, then move to the far right of bed, bring up to 240C, purge about 30mm of filament, then wipe excess filament off the side of the bed.

The buttons allow me to manually set the extruder/motor fans, case fans, lights, cancel a print and lift nozzle immediately (red button), or (re)print the currently selected print job. The script automatically controls the case fans and extruder fans based on print temperature, ambient temperature, and what is being printed. So I only need to manually change those in case I want to purposely turn off/on the fans in case of emergency or dreaded clogs.

I also have the lights and fans controllable through octoprint, in case I want to remotely turn on/off lights and fans. I created a custom enclosures for the RPi and the LCD/buttons. But wiring up the LCD and buttons was a lot of work. Also, running a GUI takes up about 17% of the RPi’s resources, which can slow down the print job if you’re going really fast, so I have the script automatically sleep the display after inactivity or during a print. If I had to do it again, I would keep a tablet at my printer that I could access octoprint to flash firmware and run commands. I may keep a couple push-buttons for canceling a print or turning on lights. If you want more info on the script or stl files I can share those too.

That’s an awesome setup! I may have to build one of those now!

Thanks! Here’s a 2 part PDF with some more info about the wiring and connections (part 2).
Enclosure_pt1.pdf (8.02 MB)
Enclosure_pt2.pdf (8.4 MB)

Hi all, just a bump, Taz 5 owner here,

You’re all, it seems, WAY more knowledgeable about the topic than I, but I have wasted a bunch of filament on not being able to automatically stop when I run out, and I’m interested in affordable and simple ways to pause the printer when I run out. My first idea was simply to use a reed switch at the intake end of the guide tube that would snap together when the last piece entered and pause the machine (still somewhat wasteful, but way LESS wasteful than missing it). I don’t know anything about the wiring, if there are any pre-existing connectors I can make use of, or if I’d have to flash the thing, it’s been printing perfectly since I got it so never had to mess with it.

I’m only printing in PLA so a solution that required hard filament would be ok for me as a stopgap measure for sure. Any ideas welcome, I think my requirements might be simpler than what I’m seeing here, although I’d certainly consider paying for a drop-in solution.

Thanks for any info,


The reed switch idea can work if you are only concerned with a filliament outage. For that you can use an opical endstop and an unused endstop port (z maximum for example). You program your arduino board to issue a pause if the endstop is triggered. Not too difficult to implement. the tricky part is it doesn’t do anything for a filliament stoppage where there is still filliament in the feed tube, but it isn’t feeding. Thats where the fancy ones with the wheels come in handy.

Oh good! those look cheap on eBay. I am assuming the ones that say Reprap are ok for this use. Is there anything else I need to know?

Further sensors would be awesome, and I’m willing to guinea pig for you guys, but I need to stop bleeding filament first. :slight_smile:


Heh, sooooo… is there a resource I can look up to help me do this? GIS seems to show a bunch of sockets on the board, so I’ll look at that this weekend, but don’t have any clue about the programming part. I CAN program, but I know nothing about backing up the existing software and then the update part. A bit scary as I’m in the middle of a six week build process and wouldn’t want to interrupt it for weeks.

Thanks for any pointers,