Monthly Archives: September 2013

AVR Timer Calculator

This is a simple javascript calculator I wrote to help me make timing calculations while working with the timers on AVR microcontrollers. The same calculations applies for all microcontrollers but the prescaler options only contain the ones possible on an AVR microcontroller (the configuration number is indicated in the brackets).

Javascript must be enabled on this page for the calculator to work. Choose what value you want to use as input by pressing the button beside the textbox(es) you want to use as the input. The output will be reflected in the other textboxes.

Continue reading

Turnigy ESC Programming Card Reverse Engineered

I replicated the functionality of a Turnigy ESC programming card. These programming cards are meant to configure electronic speed controllers (ESC). I always wanted to know how they work. Eventually I purchased one since I need one for my quadrotor helicopter’s ESC, and then I started playing with it.

It should be very simple to adapt the code to any microcontroller.

Continue reading

LED Pocket Watch


This is a LED pocket watch. It has 12 LEDs to show the hour, 60 LEDs to show the minute, and 60 LEDs to show the second. The LEDs are arranged in three rings. There is a button on the top to activate the pocket watch, and a button on the back to change modes and settings.


The battery is a rechargable lithium ion coin cell battery and it is charged from a micro USB connector. The battery life depends on how heavily the pocket watch is used, but if you leave it alone, it is estimated to last several months. There is a low battery indication feature. This pocket watch also feature a buzzer and a vibration motor, which are used for the alarm feature, and the motor causes a short “tick” as each second passes by. The pocket watch is constructed of a PCB, two pieces of laser cut clear acrylic plastic, and a 3D printed casing.

Click Me!! More instructions, pictures, animations, and videos.

Weekly Report September 1

I’ve been playing with a nRF dev kit from Nordic Semiconductors. The bad news is that they require a product key to access downloads. The kind-of-good news is that their code is designed to be compiled under Eclipse with GCC (hurray for open source). The bad news is that they’ve designed the files to use assumed toolchain install paths, their makefile literally says:

ifeq ($(findstring 86, $(ProgramFiles)), )
PROGFILES := C:/Program Files
else
PROGFILES := C:/Program Files (x86)
endif
GNU_INSTALL_ROOT := $(PROGFILES)/GNU Tools ARM Embedded/4.7 2013q1

So… it only works on the default install path of “GNU Tools ARM Embedded”, and only works for one version. Continue reading