Replacement License Plate Bulb for CBR250R

A simple project to replace the incandescent bulb that lights up the license plate on my CBR250R bike that keeps burning out. This light and the tail light appear to be more prone to failure, perhaps due to the more rigid connection to the bike than the other lights. I’ve also been wanting to try and replace lights with LEDs as there is a theory that they provide additional safety due to the fast on times.

The project is really simple, just a PCB that fits into a 168 bulb socket and powers three LEDs with a resistor in series. I want to try and see if i can even do a simple retrofit like this before I think about moving to properly driven electronics.  Just sent the boards off to get manufactured, will update once the boards get here.

Project is hosted on Git.


Ring Clock Control Board

Just got some of the boards back from OSH Park and they look great!

2014-06-24 22.42.00

Next step is to get the components and try them out.

In the meantime I found a bluetooth enabled Arduino platform, the Lightblue Bean. This begs the question, would it be better to set the time of the clock with buttons on the clock or with a bluetooth app?  I think the coolest solution would be to use capacitive sensors along the perimeter but the cost would be higher than I want with this project at the moment.  Thankfully, due to the modularity of the design, I can easily change the control board and upgrade the device whenever I’d like.

More info on the project soon.

DOCSIS 3.1 Transmitter

As part of a class in my master’s program in Electrical Engineering, we were asked to create an OFDM transmitter/channel/receiver in Matlab.  In our next class we also created the transmitter in Verilog HDL for an Altera Stratix FPGA.  This is a that project.

Since this was a very interesting project for me I thought I’d share my code, hopefully it will benefit someone.

The transmitter is a very simplified design, with an FFT size of 256, Cyclic Prefix of 96 and a Roll off of 32.  A random number generator creates a sequence of bits which are converted into QPSK symbols.  After running through a FFT, the cyclic prefix and roll off are appended and prepended to the sequence.  This was one of the most interesting parts as it required creating a secondary clock which ran at (256+96+32)/256 (or 1.5) times the original clock rate.  The FFT output, now stored in RAM, was accessed in such a way that the cyclic prefix and roll off were added to the original sequence.

I should note that this is in no way a finished project, but does demonstrate the a starting point for implementing the DOCSIS 3.1 standard.  One of the most difficult parts of implementing this project is keeping track of every single bit, especially when switching clock speeds.  Modelsim was very helpful in this.

Likely the most challenging part of this project was the very long compile times.  It is very much well worth your time to read the compiler documentation.  Anything that can increase your compile times is going to save you a huge amount of time.

The repository is located here.

Latex Resume

I decided I needed to update my resume and give it a more modern look and found that there is indeed a LaTeX package for doing resumes.  The only problem, the references are poor.  Thankfully there is a wonderful little bit of code available for making your references much, much nicer.  Thanks to user doncherry!

Attached is my finished resume, all nice and pretty (note that references and contact info have been removed)




EmbedXcode for Arduino Development

While starting development on a project I finally got fed up with the default Arduino IDE and decided to try something new.  Apparently others have reached the same conclusion, and a few of them decided to start some wonderful projects:

Arduino Eclipse Plugin

I wasn’t able to get this one working, but what I saw looked great.  Check it out at: Arduino Eclipse Plugin.


I ended up going with this system, in part becuase of the excellent support from user avenue33 on the arduino forums, and becuase my research group all uses macs and so support of Linux or Windows is not crucial.  I just thought I would share the problems I had and the solutions.  You can get embedXcode from here: embedXcode.

I have two computers, a Mac Pro and a Macbook Pro, runing 10.7 and 10.9 respectively.  With 10.9, xcode 5 and arduino 1.5.5 you may find that you get a large number of errors when compiling the test project.  These errors are apparently due to the Arduino 1.5.5 IDE deciding to compile all libraries.  To change this edit the makefile with:


This will stop it from compiling everything.  EDIT: You want to not set APP_LIBS_LIST = 0, otherwise it will not compile the default libraries, or so it seems.  If you are getting “not declared” errors this could be the reason.  Edit2: Instead of setting USER_LIBS_LIST = 0, add the offending libraries to the exclude list or delete them.  The exclude list can be found below the above two items.

My other problem, which admitedly was simply because I didn’t read the instructions, was that I didn’t run the Arduino IDE before attempting to compile.

Hope that helps someone!

Aircraft Light Controller Part 1


As you may or may not know, aircraft flying at night are required to have navigational lights, configured as such.  After flying my Hobby Zone Super Cub at dusk and comparing that experience with flying my ParkZone Night Vapour at night, it became clear that having lights on the aircraft would greatly increase usability.

That’s how this project was born, an aircraft light controller.  Or really, a pulsing circuit.

There are many ways to do this, the first two that come to mind are using a micro, or using a  555 chip.  A micro requires a regulated supply, but can do some more interesting things, like changing the frequency based on battery voltage (notice the feature creep starting already).  A 555 on the other hand requires no regulation and is very robust.  Having a strange affinity for 555 chips that many share, I decided to go with that.

Here’s the circuit:

This works by charging the capacitor through the 10k resistor.  When it reaches a threshold level, the 555 output goes low.  The 100k resistor then is the discharge path.  When the capacitor discharges to the threshold point, the output goes high and charges the capacitor.  This creates a pulsing waveform, with frequency around 1-2Hz (I didn’t measure it) and very nice short pulse widths.

The 555 then controls a 2N3905 NPN transistor that drives the LEDs.  Since the entire battery voltage is available, we can have more than a single LED in series, with a simple resistor to control current.

In my design I also added a place to have an “always on” LED so I could add landing lights.  Not because they would be helpful, but just because they would look cool.

PCB Manufacturing

Here’s a couple pictures of the finished PCB:

IMG_7988 IMG_7990

The PCB was designed using Eagle and etched using the “PCB Fab-in-a-Box” kit, which works great if you have the time and inclination to etch your own board.  I used Feric Acid to etch away the copper.  Needless to say, if you’re planning on etching your own boards, use proper safety gear!  Goggles, gloves, chemical apron, the works!


The finished design can be found here.  You will likely need to modify resistor values to fit your needs, different supply voltages can affect the frequency, different chips can have different voltage limits, etc.  I was also very lazy with the resistors, I have to choose correct ones based on the LED forward voltage and the current I want going through them.  That will come.

Eagle Files: Aircraft_lights