Katz & Maus Automata

Poking around on the internet one day, I found this clever Cat and Mouse Automata from Germany, and decided to try and build it. The plans are available free for download too!

catmouse

I think it’s cheating to use a laser cutter for this sort of project, but it lets you build it fast and accurately. Within an hour of changing parts of the design to US units (sigh) to match my materials and ten minutes of cutting, I had all the parts ready. Assembly took several days as I glued a few parts at a time.

catmouse

I’m now inspired to design and build my own automata projects, so stay tuned!

Posted in Automata | Tagged , , , | 6 Comments

Tea Candle Lamp

lamp1

I decided to try and design a tea candle lamp with the help of a laser cutter. I drew the pattern using a thick marker, scanned it, converted it to a vector and then massaged it some.

I used white oak for the wood, and it turned out well, although there were a fair number of burn marks which needed sanding. 

Each side is the same, and there is a base to hold it together. The design needs some changes, as some parts are quite thin and broke off (as you can see!).

box_vector

Posted in Misc, Projects | Tagged , , , | Leave a comment

Custom Pinball Machine

Another project I’ve worked on over the past 5 years is a custom pinball machine!

PinballI’ve created a separate site to document the project, but I thought I should at least mention it here. Check it out: http://worlddominationpinball.wordpress.com/

Posted in Projects | Tagged , , , , , | Leave a comment

Laser Cutting

So I joined TechShop. They have lots of cool stuff to play with, one thing being a laser cutter. I decided to make use of the laser and make some cool wall art of Pittsburgh!

laser1 pittsburghI created the source vector by tracing over a map, converting it to a bitmap, using the “Trace Outline” function in Corel Draw and then tidying up the vector outlines manually.

Posted in Misc, Projects | Tagged , , | 1 Comment

Wooden Rings

Recently I tried making some rings as a present for someone special. I found an interesting article about making segmented rings without a lathe, so I decided to give it a shot. To get started I bought some 1/8″ inch thick hardwoods from Rockler, including Walnut, Cherry, and African Mahogany. I then glued a bunch of squares together of different timbers, with the grains at various angles. Once the glue was dry I drilled out the center, and used a scroll saw to cut the outer diameter.

IMG_3045It was then a matter of sanding down the outside by hand (which took ages), polishing with extra fine steel wool, and applying several layers of tung oil. I am quite please with how they came out.

IMG_3106finished

Posted in Misc | Tagged , , | Leave a comment

Watch out for Chinese Counterfeits!

Posted in General | Leave a comment

Big Muff Pi

Being inspired by the Black Keys I decided to make Big Muff Pi clone, and inject some dirty, dirty grit into my guitar sound. The circuit for such a thing is readily available on gaussmarkov.net, which means all the hard work is already done, and you can enjoy building a sweet box of tone! The final product looks pretty good, and sounds even better. All for about $30 in parts!

Posted in Guitar, Projects | Tagged , , | Leave a comment

Weather Station Part 2

Continued from part 1. Alright! So I got my Arduino, time to mess around with it! …and in the process of messing around with it, the serial port on the router stopped working. <Sad-Face>. Luckily the WRT54G has two serial ports, but only the first is connected to the console by default. After some reading, this is what I needed to do: change /etc/inittab so it refers to tts/1 instead of tts/0

tts/1::askfirst:/bin/ash --login

Add a line to /etc/init.d/S15serial to set the IRQ of the second serial port on startup. Both ports share an IRQ of 3:

/usr/sbin/setserial /dev/tts/1 irq 3

Success! After the (second!?) reboot these changes took effect and I didn’t have to tear some hair and abandon things.

The Arduino

So, I have an Arduino. First thing was to get an SD card attached. I used an add on board from Futurlec and the Arduino’s SD library and was up and running surprisingly quickly. With a free 32MB card from a digital camera, at a logging rate of 47 bytes every 15 minutes, I’d have enough space to last 20 years. Sweet!

Data from the weather station comes in over a RS232 link. To get this down to 3.3V for the Arduino I needed an interface circuit. I’m only concerned with receiving data so a simple transistor inverter will suffice:

This connects to the RX pin on the hardware serial port of the Arduino. I also needed a software serial port to talk to the router, using the NewSoftSerial library. The fastest the software serial port can run is 9600 baud, so I would need to slow down the baud rate of the serial port on the router (add this to /etc/init.d/S15serial):

stty -F /dev/tts/1 raw speed 9600

However, the default speed of tts/1 is already 9600, so I didn’t need to do anything.

The rather simple Arduino code I came up with, which ties everything together is here. After a few days of testing, this is what it finally looked like:

It looks a little messy, but it works. Both the Arduino and the actual weather station on the roof use some siphoned power from the router, thus the whole system runs off a single 12V 1A power pack. The router sits inside the house, with the grey wire above going out to the weather station on the roof:

That’s it! Now I have weather data flowing in to my server at home. With a little bit of PHP to display it all, the results look pretty good. (Update 22/02/2013: The station needs some repairs and is out of action right now)

Posted in Weather Station | Tagged , , , | 1 Comment

Do Not Press!

Just a little coffee table pleaser I whipped up. Hook it up to any wireless remote, and you’re in business. I don’t actually have a use for it yet, but its fun telling people not to press it. As usual, some credit goes to Sparkfun.

Posted in Misc | Tagged , , | 3 Comments

Weather Station Part 1

Way back in 2007 I made a weather station to be used on my dad’s property. The original idea was to build a station that could log temperature, humidity, wind speed and rain and make the data available on the net to be viewed remotely. I hollowed out a cheap weather station unit from ebay, built my own electronics and connected it up to an old PC running FreeBSD. Unfortunately I never really got it all working as the satellite internet connection did not have any incoming ports open (for web serving), the PC was noisy and power-hungry, and there were often brownouts (which seemed to destroy the UPS I had). Recently I decided to re-vamp the system, and overcome said obstacles.

The Plan:

The weather station sends data every 15 minutes via RS232, this is captured by the Arduino and saved to an SD card. This should provide a nice little backup if there are power outages or interruptions. The Arduino also sends the weather data via a software serial port to a router running OpenWRT. The router can then use a simple command like wget to open a php page on a webserver which will record the weather data and display it on a snazzy webpage. It would be possible to cut out the Arduino completely, I have seen hacks that add an SD card to the router, but this is too complicated and difficult for my liking.

To get started I ordered a Arduino from Sparkfun. Generally I avoid the Arduino, but it does have easy to use SD card and software serial libraries. I chose the Arduino Pro Mini 328 – 3.3V/8MHz as the SD card and router are both work on 3.3V.

OpenWRT

The next step was to get OpenWRT (whiterussian-rc6) working on an old router I had. I hoped it would be a simple process: download the binary and use the router’s web interface to reflash. Alas, something went wrong and I was left with a semi-dead brick. I attached to the serial port on the router and found the bootloader couldn’t read the flash. Great.

After much messing around and research I managed to reflash using the serial port and Broadcom’s CFE (Common Firmware Environment). What I did:

  1. Run a tftp server on a local machine with a copy of the binary.
  2. Assign the router an IP on the local network:
    ifconfig eth0 -addr=10.1.1.179 -mask=255.255.255.0 -gw=10.1.1.250
  3. Reflash, pointing to the binary (openwrt.bin) on the tftp server (10.1.1.150):
    flash -noheader 10.1.1.150:openwrt.bin flash1.trx

Note: this worked for me on a WRT54G V3.1, there’s no guarantee it will work for other hardware, but hopefully it will help someone out there.

After configurating the router and learning about VLANs, I needed some way to respond to the Arduino over the serial port. By default, the serial port in the whiterussian build is connected straight to the console under the root user. The hack method I came up with is to pretend the Arduino is a user, and use it to run a script every time there is new weather data. For example, the Arduino will send:

./wlog.sh T06597 L0024 H00613 R00 W03726 D06

which runs the script ‘wlog.sh’ on the router:

#!/bin/sh
ts=`date "+%s"`
sleep 1
echo "[$ts]"
url="http://home.fakeserver.net/input.php?d=$1|$2|$3|$4|$5|$6|$ts"
wget -q -O - $url > /dev/null

The script will wait one second, echo back a timestamp, then use wget to open and send the data using a php script. As I said, this method is a complete hack, but man is it easy. I’ve also been informed it’s probably a good idea to send ‘^C’ before running the script, in case wget is still running from last time. All this sounds like a plan, and I’m sure I’ll find out if I can get it working reliably. Continued here.

Posted in Projects, Weather Station | Tagged , , , | 2 Comments