20 Oct
2010

EC155 PID with Arduino

This is a build log of my PID modification to my DeLonghi EC155 espresso machine. Currently, the machine uses an Arduino to drive a solid-state relay controlling the heating coil. The Arduino displays mode and temperature on a serial lcd, and also dumps status information over the serial port.

Update 1: I’ve ordered parts for a permanent install on protoboard, after I finish the install, I’ll update this post with build instructions and details. I will also provide a link to a mouser project where you can order most of the parts in one place.

Update 3: Everything is assembled and functional, and I made an aluminum case thing for the LCD and rotary encoder. Photos to come soon. (8/25/10)

Update 4: ZonCoffee .2 is released! See the release page to download the sketch and to see additional hardware information. (1/4/11)

This post is one of a series of posts regarding mods I have done to my EC155

Read More »

17 Oct
2010

The OSRAM SLG2016 and AVR

I happened to scavenge a couple of SLG2016′s from some old workstation debug displays. After finally locating a datasheet, I realized that they used the standard ASCII charset, so they are extremely easy to drive. Note: The SLG2016 differs from the SLR2016, SLO2016, and SLY2016 only by LED color.

Read More »

18 Sep
2010

DIY High-Quality Block Printing

Ever wanted to cover your wall with a nice high-resolution DIY poster? With a little bit of effort and a lot of paper, you can make a high-quality block-printed poster with free, open-source software. This method produces a nice smooth result, without using small dots like other block-printing preprocessing methods.
Read More »

29 Jul
2010

Macro video and photos with the S3 IS

With a couple bucks worth of cheap macro filters, you can get great macro video and photos with the Canon S3 IS (works with the S1 or S5 IS as well). All you need is a lens adapter that fits all of the canon S* IS models and a set of dirt-cheap filters.

Read More »

26 Jul
2010

JavaScript “Current Filename” Function

I found the need to get the current filename, without the file extension, of a webpage using javascript. I thought there would be an easy way with jQuery, but I found a good way to do it in plain javascript. I made a quick function to take care of this task that might save you some time, the compressed version is shown below. I’ll add a more human-readable version in the near future.This code is very unreadable! Please don’t use it blindly, as it may not work in all cases.

function getCurrentFile() {
  var filename = document.location.href;
  var tail = (filename.indexOf(".", (filename.indexOf(".org")+1)) == -1) ? filename.length : filename.lastIndexOf(".");
  return (filename.lastIndexOf("/") >= (filename.length - 1)) ? (filename.substring( filename.substring(0, filename.length - 2).lastIndexOf("/")+1, filename.lastIndexOf("/"))).toLowerCase() : (filename.substring(filename.lastIndexOf("/")+1, tail)).toLowerCase();
}

This function returns the current filename (minus the file extension) in all lower-case. Feel free to modify it to suit your needs. It also works properly even when a URL does not have a file extension (such as with some asp-based sites), or when there is no filename present (returns the folder name). This function is great for highlighting menu items based on which page the user is currently browsing. If you don’t understand some of the syntax, note that I’m using javascript’s conditional syntax as shorthand for if/else statements.

1 Jul
2010

New “Projects” Pages

I created a new “Projects” type to list some projects currently on protofusion. Check out the link in the top menubar, or click here. Have a project that needs some of the resources that protofusion can provide? Send an email to admin@protofusion.org.

16 Jun
2010

Victor Speed Controllers and EMC2

I’m currently working on building a EMC2-controlled CNC machine with mostly parts I have on hand. I decided to use Victor 883′s to control my servos, but EMC2 does not put out the RC-style PWM signal that victors are driven with. Thankfully, hardware in EMC2 is configured with HAL, allowing the software to work with nearly any hardware. Below are the values and configuration I used. If you are planning on using other RC-style motor controllers, you’ll need to calculate these values yourself.

Read More »

13 Jun
2010

Google Voice and Asterisk

Google Voice & Asterisk

There are numerous guides about setting up Google Voice and an incoming sip number for free outgoing calling. Sadly, all of the guides I found were written for FreePBX or some other Asterisk bundle, and also used a shell script to do much of the work (scary!). I have compiled the minimal amount that you need to put in your asterisk conf files to make things work, GUI-free and variant-independent.

Read More »

11 Jun
2010

End of the road for free data on iDen?

It looks like getting free data access on iDen handsets is going to end, likely on or before 6/20/10 according to this Sprint document (credit Engadget). Coincidentally, this is the same day that the Motorola i1 is released, the first Android phone on the iDen network. With this phone, Sprint would needed to lock down iDen data access a bit harder than blocking the phone’s built-in browser (the status quo), so the change will affect all phones on the iDen network (Boost and Nextel).

This also means that getting mobile connectivity for your Arduino will no longer be free. Boost mobile’s data rates run at $.35/day.

Update: 6/20 has passed, and I still have data access.

20 May
2010

(Really) Cheap RFID door opener

Well, the school year is over, so I thought I’d post up some information about my (extremely cheap and junky-looking but functional) door opener. Read More »

Gaggia Classic Disassembly and Cleaning

Gaggia Classic Disassembly and Cleaning

I recently purchased a used Gaggia Classic machine on Amazon. After realizing that it was not as “lightly used” as

Arduino Leonardo - Interrupts

Arduino Leonardo – Interrupts

As of Arduino 1.0, interrupts are not supported on the Arduino Leonardo. I’m working on a project using the atmega32u4