Skip to main content Skip to local navigation

Blog posts

Working with the CoreWars 8086 source code

As I wrote before I think that the CoreWars 8086 program is pretty neat and I also think that it has the potential as a valuable teaching tool in my courses. By reimagining RedCode as real assembly for the 8086 processor, the developers take the CoreWar concept and make it more real -- more legitimate. […]

CoreWars for 8086

The Core War concept has been around since the 1980s. It uses a made-up version of Assembler called RedCode and the potential for using it to teach Assembler programming and computer architecture is really good. The other day I came across a variant of the RedCode-based games called CoreWars 8086. The GitHub page hosts six […]

A Binary File Editor for My Students

As I ponder fun activities to do with my 2nd year computer architecture students it has become clear to me that I need them to be able to view binary files. There are a number of editors out there capable of doing this, but I don't want to foist vim or emacs on them. Nor […]

Pinball Projects with Capstone Students

My friend and fellow engineering, Loren Wyard-Scott, re-introduced me to pinball machines a few years ago. His enthusiasm for these machines got me thinking that they might make good platforms for engineering capstone projects. So, for the past couple of years I've been getting my capstone students to work on acquiring older machines and updating […]

AI Today is like Microwaving in 1980

When I was a kid I would spend holidays with my grandparents in Michigan and Florida. It was during one of those holidays in the early 1980s that my grandparents introduced us to their fancy new microwave oven. Today, we take them for granted, but back in the 1970s are and 1980s they were magical. […]

The Cloud Service Trap -- Lessons for AI

It's August of 2026 and the Mbed platform is dead. You're forgiven if you don't know what Mbed is. It can be summarized this way: Mbed was a cloud service to help engineers make stuff on little chips. Basically, think of it like Google Docs for microchips. It launched in 2009, around the time that […]

TinyUSB on Arduino and RP2350: Step 3 -- Pico SDK MIDIUSB.cpp examples

There are plenty of ways to develop MIDI 1.0 applications on microcontrollers, such as the well-respected non-TinyUSB MIDI 1.0 library by Fourty Seven Effects library. That's great for general Arduino projects. However, here we're going to to continue in the direction we started in Part 1 and Part 2 of this blog series -- so […]

TinyUSB on Arduino and RP2350: Step 2 -- Simple or Complex?

In Part 1 I looked into how one could create a simple USB program to run on the RP2350. But that's just the tip of the iceberg. There is so much more that can be done via the USB port on a microcontroller like the RP2350! As described in this 2021 post on a TinyUSB […]

TinyUSB on Arduino Step 1: Identify yourself!

As I continue exploring MIDI on Arduino wth 32bit processors like the RP2350, it's clear that there are a lot of people interested in and working on sound and music applications with microcontrollers, including Phil Schatzman (Arduino MIDI, Arduino Audio Tools, and Synthesis Toolkit). While many of his projects don't use TinyUSB under-the-hood, his latest […]

MIDI 1.0 Example using RP2350 + Arduino

So, I've got a Seeed Studio Xiao RP2350. It's a minimalist RP2350 microcontroller board. Can it use its USB-C port to output MIDI 1.0 notes over USB? Yes. Here's how... I... The code that I used is: It compiles and loads on to the RP2350. I verified it using MTSL: Simple and easy. James Andrew […]