Lisp Badge LE Is a Low-Power Programmable Badge That Operates on a CR2032 Coin Cell

Self-contained computer with display and keyboard running uLisp in a 107 by 61mm footprint.

James Lewis
2 years agoBadges

A new project from David Johnson-Davies of Technoblogy brings a new way to program Lisp while offering an update to a past project. The Lisp Badge LE runs uLisp for up to 40 hours on a single coin cell battery.

Lisp Badge LE's printed circuit board measures 107 x 61mm with holes on either side at the top for attaching a lanyard. This size PCB is the same Johnson-Davies used in the previous Lisp Badge. A monochrome LCD sits on the front. While the keycaps poke through the top side, they are mounted on the back of the PCB with the rest of the components.

An AVR128DB microcontroller (MCU) running at 24 MHz powers the badge. In the past, Johnson-Davies used this Microchip part in an op-amp lab kit. The MCU runs a variant of Lisp called uLisp. With 128 kilobytes of flash memory and 16 kilobytes of RAM, there is enough space for 2800 Lisp objects.

The LE part of this badge name stands for Low Energy. Amazingly, the entire badge runs from a single CR2032 coin cell with an estimated life of about 40 hours!

uLisp is a microcontroller-friendly version of the Lisp programming language. It can run on microcontrollers like the Arduino Uno's ATmega328P, Teensy 4.0's Arm Cortex-M7, and RISC-V cores.

You can access 196 Lisp functions and 37 keywords for things like Arduino constants. For example, there is a keyword named ":led_built-in" for Lisp Badge LE's onboard LED. Johnson-Davies also added a graphics library to plot directly to the 250x122 pixel display.

Programming extensions let you access additional hardware like the piezo buzzer for generating sound or the AVR128DB's peripherals. For example, there are hooks for the serial (I2C, SPI, UART) buses, eight analog inputs, and two analog outputs.

The 45-key keyboard makes it easy to enter programs into Lisp Badge LE. The character set includes upper and lower case letters, digits, and the symbols required for uLisp syntax. There are Meta and Shift modifiers to allow for additional character access.

Even though the focus for this badge is uLisp, there is an additional built-in programming option. You can also write and assemble AVR assembly code, which includes extensions to Lisp Badge LE's extra hardware!

In the future, Johnson-Davies may offer an alternative version of this badge with a 32-bit processor. But, for now, you can get the Eagle design files and Arduino IDE code from this GitHub repo. Then check out the Lisp Badge LE post on Technoblogy for detailed instructions on programming the firmware.

James Lewis
Electronics enthusiast, Bald Engineer, AddOhms on YouTube and KN6FGY.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles