3D printing lithophanes


So it has been a while since I’ve posted. I started a new job and only the second week-in I came down with the flu, so I’ve been busy and sick.

I’ve done a lot even with all that going on, but just haven’t had the time to post about it. For Valentine’s I made a custom heart shaped earring holder, I created a Rube Goldberg valentine’s box for my youngest son (his design). I created a new rpi camera mount for my Prusa i3 MK2, I’ve made progress on an enclosure for my Prusa, and lastly create my first lithophane.

I’ve seen numerous posts in the past 6 months or more of people creating lithophanes of family photos, spherical moons, etc… So I thought I’d create one today. I took an old photo and a couple of hours later I had a pretty cool lithophane. However, I knew there was a inverse option in the software I used, so I thought I’d try that next. The results are AMAZING! It is like having a physical photo!


I recommend using this site for creating your lithophane: http://3dp.rocks/lithophane/ It makes it super easy! I would make sure to click on Settings –> Image Settings  and then move the slider to the left for Positive Image. This will make it so the photo will show up when light source is behind the lithophane.

Update: I also like this site for creating lithophanes! https://lithophanemaker.com/

Noise Maker – Ring in the New Year!

As I mention in my Kitchen Towel Rack post: I printed the Party Noise Maker by Works by Solo on my Prusa i3 MK2 at 240%. I first saw this Party Noise Maker on a youtube video by Joel Telling.

Well I should play the lottery! Check this out!

I knew I was going to be cutting it close because the filament roll was getting low, but wow! I can’t believe I lucked out! I don’t have a filament sensor, so it would have been a failed print. I was in bed and using the Printoid app to view the print and I saw some orange behind the extruder, so I thought… ugh a failed print!?!? So I threw on my pajamas and ran down stairs to my surprise! hahaha I’m seriously going to buy a few lottery tickets today! haha

If you want to see all of the photos and timelapse video click this link: https://photos.app.goo.gl/5rSxSfz2vPbDiil92

Once I get showered and dressed, I’ll go outside and test out the noise maker!


Kitchen Towel Rack

So we used to have two kitchen towel racks, but one broke a while back. I took the old one and measured it out and then sketched it on a piece of paper with the dimensions. Then I opened up Fusion 360, and created a couple sketches and here is what I came up with:

Once I’m done printing the 240% Party Noise Maker by Works by Solo on my Prusa i3 MK2, I’ll print this out and and upload a photo of the final results. I first saw this Party Noise Maker on a youtube video by Joel Telling.

Build Lights

A few years back I created some build lights for our Continuous Integration (CI) server. You maybe asking “What are build lights?”. Well in a continuous integration server every time a developer checks in code to a source control repository it triggers an event on the CI server. The CI server will typically download the latest code from the repository build it and run all the unit tests. If all the test pass then it will typically copy the latest code to your development environment. If it fails people want to know ASAP, so they can fix whatever broke the build.

Build lights are the physical signal of whether or not all the unit tests have passed or they have failed.

When I built this project 3+ years ago I used a RPi to query our TeamCity CI Server using their XML REST based API. I wrote a script in python that polls the status every N seconds. If ANY of the unit tests fail a red LED would light up! This was the signal to the developers AND the project manager something was wrong. The best part was seeing how the other developers reacted. We had a number of unit tests that were failing for weeks and no one was fixing them, within 2 hours after I setup my RPi with the build lights the developers on the team had fixed ALL of unit tests that were having issues! 🙂

After that it was like a challenge to see who would fix the issue when the light would go red. In fact, the project manager would even jump in and ask why is the light red? It was amazing to see the effect it had on the team!

The reason I bring this up today and I’m blogging about it is… I’ve finally got around to hooking up the RPi to a stop signal that I bought on Amazon. To hook up a RPi to mains voltage I used a SainSmart 4-channel 5V relay.

Check out the video! 

Updated: Motion Detection

Over 3 years ago I augmented my home security system with a Passive Infrared Motion (PIR) sensor and placed it at the front door. I quickly put together a Python script that runs on a Raspberry Pi (RPi) computer.  Basically it sends and email and triggers a IFTTT event whenever there is movement (detected by the RPi GPIO library) by the front door.

Side note: If you haven’t checked out IFTTT I highly recommend you check it out, there are a LOT of really cool things you can do with it.

There has been an issue with the sensor sending multiple text messages per “event”. This is due to how I wrote the code to handle the event detection with a callback. This would allow for multiple events / threads to be fired per movement in rapid succession. There are many ways I could handle this issue.

  • I could do some low level locks around the global variable
    • pro: control the date variable that’s being used by each thread
    • pro: very granular level of control
    • cons: more difficult to code
    • cons: more prone to errors
  • I could add all events into a global in-memory and loop on the main thread over the queue
    • assumption: there is a thread safe in-memory queuing library in Python
    • pro: easy to code
    • pro: could add extra functionality easy per event (e.g. logging messages)
    • con: need to find a thread safe queuing system
    • con: might be overkill
  • I could listen to different events that don’t run on a seperate threads
    • pro: after looking over the RPi GPIO (General Purpose Input Output) documentation again. It seems there are other events that might be more suited to the task.
    • cons: the events I’m looking out would likely miss the extra events that are triggered, but who cares! 🙂

I’m leaning towards the last option. I’ll start with that one tomorrow and see how it goes, and update the blog soon.



Okay, so updated the code. Haven’t checked it into GitHub yet and it is working well. I’m not getting the multiple notifications within the same second. However, I’m still get false positives on occasion. So since this is hardware, I thought maybe something is up with the voltage. Especially, since my RPi is about 40+ feet from the PIR sensor. I got the multimeter out and it was reading a constant 3.2V, so I think that’s fine. What I did notice was the connections were pretty loose, so I tightened those up a bit and we’ll have to wait and see if I still get those false positives.