I use one-sided boards so i can mill and drill them in one shot on the mill. Here's the eagle file:
And the resulting populated and connected board:
The firmware is written in C using a demo version of mikroC (http://www.mikroe.com/en/compilers/mikroc/pic/ ) Quite a nice compiler.
I almost ran out of memory on the PIC18F4331, bit after some extensive optimization i finally fit it all in.
More on the firmware later