ZENMCU - Microcontrollers for fun


Identify the essential. Eliminate the rest.

Welcome


ZENMCU is a bespoke electronics platform based on easy to use hardware and software. ZENMCU boards are able to read inputs (like light on a sensor, or a finger on a button), and turn it into an output (like activating a motor, or turning on an LED). You can tell your board what to do by sending a set of instructions to the microcontroller on the board.

ZENMCU is currently in development, and this website is essentially a development log. The plan is to build batches of a hundred or so to try to keep costs lower, use some for continued development, and try to sell the rest to recover some of the costs. Mileage may vary; its a process. You are invited to follow along!

Note - ZENMCU products are designed for hobby use and are not suitable for medical, industrial, or safety-critical applications.

Hardware

ZENMCU boards are based on the MicroChip (Atmel) SAMD10 and SAMD11 microcontrollers. These are ARM Cortex-M0+ cores with 16 KB of flash (8K instructions) and 4KB of RAM. The SAMD11 has USB and the SAMD10 doesn't. I also occasionally use the SAMD21, with 256 KB of flash and 32 KB of RAM, but I strive to stick to the smaller parts. Part of the fun is trying to do more with less.

Software / Firmware

The ZDK contains code for microcontrollers and workstations. The microcontroller code tries to be a simple hardware abstraction layer for i/o, timing, communications, and external gadgets like servos, rgb LEDs, small LCDs, etc. The workstation code has elastic arrays, file system utilities, command line arguments, USB host utilities, etc. Other modules, such as DDPE (2d pixel engine) build on top of the ZDK and are in turn used in various applications.

When I find myself doing the "same thing yet again" I usually try to boil it down to its essence and add it to the ZDK. So it has evolved slowly over time through several incarnations. It isn't intended to be a general purpose, massively portable, abstraction layer suitable for use in all manner of projects.

zdk- Things related to the 'Zen developer's Kit'

2023-01-22 com.zenmcu.0039-1_(zdk-spanda-revisited)

2023-04-05 com.zenmcu.0039-2_(zdk-saga-chronal-displacement-monitoring)

a4th - An experimental minimalist cross compiled Forth for the ATSAMD10/11/21 microcontrollers.

2023-01-25 com.zenmcu.0040-1_(4th-saga-a-taxonomy-of-forths)

2023-02-07 com.zenmcu.0040-2_(4th-saga-s4th-origin-story)

2023-03-22 com.zenmcu.0040-3_(4th-saga-s4th-pedigree)

coming back eventually - the "x4th Pretend User's Guide" (pretend guide... or ... pretend users? Hmmm...)

coming soon - h4th

coming maybe not as soon - a4th

Why?


I have been writing embedded firmware for microcontrollers for over 40 years, and my code is in the ROMs of billions of devices. I have worked in every capacity from individual contributor to director, and for the most part it has been enjoyable and rewarding. But honestly, work is work. You don't get to explore whatever happens catch your interest because that's not what you are being paid for.

But lots of things catch my interest and I enjoy working on little projects that don't require cross functional teams and millions of dollars to develop. Skipping the steps where you bring up a new chip on an FPGA and debug all of the ROM code before tapeout is ... less work. So here I am, playing with small, simple, things for fun. Hopefully some of them might be fun for you also.