Wednesday, September 26, 2012

Christmas Light Wireframe Design Helper Program

I created a program to help me with designing wireframe sculptures for Christmas lights. I figured it might help others, so I've included it here with versions for windows, mac and linux, as well as the source code.
This is the first year I'm doing wireframes for my light show, and I was struggling with how to make it the right size to fit the light strings so that I wasn't left with a bunch of lights to cover up. This program allows you to design the wireframe and then scale it to fit light strings so that it comes out perfect.
DISCLAIMER: This program is not perfect. I'm sure it's full of bugs, however it works for me and if it works for you, that's great. I may be able to help with some problems or fixes, but I have a family and a full time job, as well as working on my lights for this year, so don't be surprised if I don't answer questions right away :)
Now that that's out of the way, here's what the program looks like. I'll try to explain how it works, and maybe do a video later.  Click on the picture for full size.
So I hope it's easy to use, but basically you can drag the black points around to make your shape and the lights(red) will follow. The larger dot is the starting point. You can add and remove points in the line by clicking the "Add Point" and "Delete Point" buttons. You can load a background image to trace by clicking the "Load Image" button. The checkbox next to it will turn the image on and off. The colors of the points, lines and lights can be changed by clicking on the color pickers on the bottom right. You can also turn each one on and off with the checkboxes. On the left, you will see places to enter the number of lights on your string, as well as the spacing you want between each light. I haven't put any limits on these entries, so use some common sense :)  Below that are the measurements of your design. It gives overall width and height, as well as the length of rod you will need for your wireframe. You can adjust this using the sliders to change the scale. The large slider will make big changes, and the small one will give you finer control to get it just right. Above the sliders you will see "Extra Lights". This tells you how many lights will be left over. If you click on the "Auto Scale to Lights" button, it will adjust the scale so that it perfectly fits the lights and spacing that you entered. Lastly, you can save your design or open a previous one by clicking the appropriate buttons. It will save your layout and scale as well as the colors, however it will not save the background image.
I think that's it. If you have questions or comments, let me know. I hope some of you find it useful.

Thanks goes to GuruBlog for the cookie cutter code that I used as a starting point, and to Julapy for his color picker code, as well as Quark for his gui library.

Here are the download links. They all include the Processing source code.
EDIT: New version fixes a small bug with background image loading
Download for Windows v0.2
Download for MacOS v0.2
Download for Linux v0.2

Old Version:
Download Windows Version
Download MacOS Version
Download Linux Version

Wednesday, November 16, 2011

Sumpod Adventures - Part 4

Edit: not relevant anymore. I was mistaken. BAUDRATE is defined, but it's in one of the included files, configuration.h. I searched for 'BAUDRATE', but since it's not in the main sketch it returned no results. I guess I should have looked at the rest of the inlcuded files first to see that BAUDRATE is set to 115200.

Richard uploaded the Sumpod firmware last night. I uploaded it to my Aruino Mega and tried to connect to it with RepSnapper, but I got nothing. I also tried a few other programs, also to no avail. I started looking through the firmware, and found that the Serial.begin() command referenced 'BAUDRATE', but it was not declared anywhere. After changing it to 19200 (RepSnapper's default baud rate) everything was working great. I don't have anything hooked up to the RAMPS board yet, so I can't test anything more, but the board does respond as it should.

Just for clarification, it is line 202 in the firmware.

void setup()
Serial.begin(BAUDRATE); <<<<<<------- This is the line that needs to be changed.

void setup()
Serial.begin(19200); <<<<<<-------- This is what it should be.

If this doesn't make sense or it should be something different, please let me know.

Sumpod Adventures - Part 3

Now for the extruder and hotend. There are a couple issues with the extruder. The first is that there is no way to put the pulley on the motor, and the other is affixing the bowden tube fitting. For the motor, I drilled out the hole to 1/2" so that the pulley can be attached to the motor and then the motor mounted to the extruder. You can see in the pic below how the hole is now 1/2" all the way through. Before, it was only most of the way through and then had a small hole for the motor shaft. This provided no way of accessing the set screw as it is down in the hole. And the motor shaft is too short to mount the pulley the other way. Also in this picture is the modification to the top for the bowden tube fitting. The fitting does not screw into the included M10 nut. I'm in the US, and found that I could use a 3/8-24 nut which has a smaller outer diameter, but the inner is about the same, and allows you to screw it in about 1 thread, just like the M10 nut. This means less modification to the extruder. I just carved out a little bit on each side (about 1/16" per side) until the nut fit with both halves together. I hope that the single thread is enough to hold it.

As for the hotend, this is where my parts differ from the instructions at The main issue here is that the nozzle is different, and no longer fits correctly. The nozzle that came with my kit is a single piece with the threads for the bowden tube fitting integrated with the nozzle. This means that the fitting is now about 1/2" taller, and it interferes with the screw that holds the heatsink to the X axis. To fix this, I drilled another hole in the small aluminum block that is closer to the edge, so that the bowden tube fitting is now beside the screw.
Also, the two screws that hold the small aluminum block to the heatsink won't work. The holes in the heatsink aren't tapped, and are larger that the screws. The screws also aren't long enough to go all the way through. So I got some longer screws and ran them all the way through to the other end of the fan. We'll see if this poses a problem with the heat melting the fan. I hope not :)
There was one more small issue, the holes in the aluminum block were not drilled perfectly straight, so the nozzle is slightly tilted. I hope it doesn't affect anything. If it does, I guess it's not a big deal to make a new one.

I've now got the machine mostly assembled, all that's left is the wiring. I'm hoping to get that done tonight and maybe test it out!

Sumpod Adventures - Part 2

I've now painted all the parts, and started assembly. It's definitely been an adventure. For those who don't know, spray painting MDF isn't fun. I went though an entire can of primer on two parts before I gave up and just brushed on some Kilz paint. After that dried, the spray paint worked great :)
I went with an orange and white color scheme. My wife calls it a creamsicle :) I only painted the outer pieces orange, and left the inside white as was suggested on the Sumpod forums. It should allow me to more easily see what's going on inside. It's also a matte finish on the inside, which I'm hoping will help with glare in videos.
I did learn an important lesson after painting. That is, I should have tested the fit on every piece before I painted them. There were quite a few places where there wasn't enough clearance and I had to sand to make parts fit. Luckily most of it is in places that aren't visible once assembled.

Sumpod Adventures - Part 1

So a few months ago I ordered a Sumpod 3D Printer. Due to numerous production issues, I received it last friday. I will try to show my progress here, and show any snags I run into. Hopefully it will help anyone who has similar issues. So now, on with the build!
The first thing I did was unpack and inspect all the parts, which is where the first issue came up. A few of the pieces had damaged corners, which isn't a big deal, but one part was damaged in a critical location. It's the top of the X axis. The end of it that holds the bearings for the belt is bent down, which would create a problem when trying to keep the belt aligned on the bearings and motor. And just for the record, Richard (creator of the Sumpod) did offer to send me a new part, however I figured I'd try my hand at fixing it first so he doesn't have to pay for shipping to the US.

I cut out a metal plate that would fit over the top and hopefully hold everything where it should be. This also presented some issues as the bolts were now too short. Also, the bolts for the bearings are underneath the top of the printer when assembled, and there is so little clearance that I had to use flat head bolts to avoid hitting the top of the printer. We'll see how it holds up when I get it all together.



For those of you who are building your Sumpods, a great place to start is There are downloadable PDFs with instructions. However, I noticed that his hotend is slightly different from mine, so I will document that as best I can.

Saturday, June 25, 2011

Bartop MAME Cabinet - Finished!

So I finally finished my bartop mame cabinet. Actually I finished it a few weeks ago, and I'm just now getting around to the documentation part :)

It turned out better than I expected, and my son loves it! I used a mini-itx mobo with an Intel Atom processor. This limited the front ends I could use. I wanted to use hyperspin, but it requires more than my little board can muster. I'm currently using mgalaxy, but I'd like to find something better (and free, I've already overspent on this project).

I did run into some problems during the build. I used weld-on plastic cement to fuse the main portion to the side panels, and it seemed to work well, but I needed to attach the monitor and the rear panel, and I just didn't trust the strength of it, so I ended up using screws. While it's not quite as pretty, I used stainless button head screws, so it's not bad looking. The other problem was with the monitor. I got it for free because it had a bad power supply, and it wasn't repairable (I tried). It ran on 12 volts, so I figured I'd just hook it up to the computer's power supply and everything would be fine. Well, the problem comes when the display and the computer share the same ground connection, and the video cable also carries a ground connection... Horrible lines on the display. I solved the problem by using a second, smaller power supply for just the display and then disconnecting its ground connection through the power cord. Even with these issues it came out really great.

Here's the specs for those who care...
21" LCD 1600x1200
Intel Atom Processor 1.6GHz
120GB HD
Win XP Pro
mGalaxy frontend
I-Pac VE
2 8-way competition joysticks
18 Happ pushbuttons

Here are some pictures of the build...

Here's some of the button holes drilled. For the joysticks I countersunk some screws into small pieces of plastic and epoxied them in place. I then used the weld-on to attach them to the underside of the control panel for a seamless, no scew look.

Here's the control panel finished. In retrospect I should have waited until I finished drilling and working on the rest of it, but I just couldn't resist :)

This is the rear panel with the computer and power supplies mounted. I also mounted the speakers there.

Here's the back of the monitor and the control panel. You can see the speaker controls mounted just under the monitor on the left (from this side). I mounted the I-Pac to the back of the monitor since I found out that the sticky velcro shows through the acrylic :(

This is just the two pieces about to go together. You can see my ghetto L brackets. At least they are inside and can't be seen :)

Here's my son and my sisters having fun. I just need to figure out how to get them off it so that I can play!

If anyone has questions or ideas for different frontends, put them in the comments!

Thursday, April 28, 2011