About Me

Hi, my name is Chris and I have lots of hobbies. From woodworking, to CNC, to embedded tech and other hardware projects, you’ll find it all here. I’ve been a professional software engineer all my life so my hardware projects always include a software component.

 

I started playing with embedded tech in the form of the AVR microcontrollers. This lead to Arduino and eventually to more powerful embedded processors like the ESP8266/ESP32 and RP2040. I also use Raspberry Pi to drive my bigger projects like my Post Light Controller. I try to create libraries as much as possible so I can share my work between projects. You can see a list of many of these on my github repository. I've listed them below.

 

Another long term interest is in writing small languages. These are usually targetted at a specific purpose. I started with m8rscript, which is an untyped JavaScript-like language with some advanced features from language like C++ and Lua. It's intended to generate code to be run on an interpreter. I made it so I can have a scripting language for a ESP32 based tiny computer i was playing with. The advantage of an interpreted language is that I can load interpreted code without linking it to main system, and to make it possible to emulate the system on a Mac for testing.

 

More recently I created Clover, a strongly typed C-Like language to run on small systems, like Arduino. The problem with an untyped language like m8rscript is that data storage is not very efficient so it takes more space, both for data, code and the interpreter. Clover is interpreted, too. But it takes up a tiny amount of space compared to m8rscript. I made it to run on the Arduinos controlling the lights for my Post Light Controller. I wanted to be able to write code to performs effects with the lights without having to burn new firmware into the Arduinos. The Arduino Nano is tiny and have a 1K EEPROM built in, and compiled Clover code fits nicely in that space, but can do several cool effects like flicker, show rainbow colors and pulse on and off.

 

I've always been interested in the MC6809 microprocessor. Created by Motorola in 1978, it had more advanced features than the other 8 bit microprocessors of the day. I used it at work and I've been smitten ever since. Sadly, 16 bit and then 32 bit processors came out soon after that and the 6809 fell by the wayside. But it always been a favorite of mine. That 's why I've most recently created a full emulator for the 6809 that can run native code on Mac or ESP32 (and no doubt other embedded chips). And given the advances made since the '70's, the emulated code runs on the ESP32 at about twice the speed of the original 2MHz 6809. Not only that's but I've also ported Clover to generate native 6809 assembly code. so you can run on this vintage hardware using a modern compiled language.

 

Have fun looking around and contacting me if anything piques your interest.