The Curmudgeoclast

Thoughts, projects, and ramblings of Dave Astels


Sun 15 October 2017

Feather M0 Express supersizing

Posted by dastels in project   

NOTE: This is based on the 2.x branch of circuitpython and doesn't yet work on the lastest from the master branch.

In my last post I described how I hacked a 2Mbyte SPI flash onto a Trinket M0 to give it the memory space for CircutiPython of one of …

Read more...



Sun 02 April 2017

SmartHome: Node Hardware

Posted by dastels in project   

Nodes are the metaphorical eyes, ears, and hands of the smarthome system. There will be many of them in a home. Even in my modest apartment I will probably have about a dozen. So they need to be unobtrusive, reliable, and fairly inexpensive.

I went through several progressively more refined …

Read more...


Sat 25 March 2017

Smarthome: Introduction

Posted by dastels in project   

Almost a year ago a friend and I started playing with the idea of building a smart home control system. Before getting too far I ended up back in Canada and the friendship dissolved, as they do. I, however, continued evolving my ideas and I now have what I think …

Read more...


Wed 14 December 2016

Typechecking in GoLisp

Posted by dastels in tutorial   

GoLisp now provides basic, and optional, type checking for the arguments and return values of user defined functions. Additionally, primtive functions also have type checking on arguments, as appropriate. For example:

[code lang=text] > (+ 'a 3) Error in evaluation: Evaling (+ 'a 3). Wrong argument type for argument 0; expected Integer …

Read more...



Tue 06 September 2016

My first Arduino shield

Posted by dastels in project   

Arduino Uno is a nice, simple platform to hack on but has limited IO. The Arduino Mega2560 has a ton of IO but is bigger and more expensive. However, you're not stuck with an Arduino as it comes off the shelf. One really nice thing about the Arduino platform in …

Read more...


Thu 08 October 2015

PWM control of LEDs

Posted by dastels in tutorial   

Pulse Width Modulation is a technique to vary the duty cycle of a signal while keeping it's frequency constant. For example:

This turns out to be a very handy thing to be able to do. So much so that it's a basic feature in most, if not all, MCUs.

LED …

Read more...


Sun 04 October 2015

Analog to digital

Posted by dastels in tutorial   

By now I'd controlled an LED and read a digital input. The next step was to read analog values. The STM32F407 on the Disco board has 3 analog to digital convertors (ADCs), which can be used to read from 19 different sources: 16 external sources, two internal sources, and the …

Read more...