The Curmudgeoclast

Thoughts, projects, and ramblings of Dave Astels

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...



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...



Sun 04 October 2015

Blinking an external LED

Posted by dastels in tutorial   

Once ArmPit Scheme was in place and running, and manipulating the onboard LEDs, it was time to grab some components, wires, and a breadboard and get hacking.

The wiring

My first project was simple: blink an external LED. Unlike Arduino boards, the Disco board has male pin headers, not female …

Read more...


Fri 02 October 2015

ArmPit Scheme

Posted by dastels in tutorial   

In my new position as Director of Innovation at SteelSeries I've been doing plenty of hardware hacking and prototyping. I've done some work with Arduino, and more recently Teensy3.1. Now I'm playing around with The STM32F4 Discovery board from ST Micro.

The STM32F4Disco is centered around an STM32F407VGT6 MCU …

Read more...


Wed 15 October 2014

Frames in GoLisp

Posted by dastels in tutorial   

This was originally posted on the SteelSeries Technology Blog and the work was supported by SteelSeries. Since this was based on work I had originally done for RubyLisp, I'm including it here as well.

I recently needed a more flexible and performant way of manipulating structured data, specifically data coming …

Read more...