Skip to main content Skip to local navigation

Blog posts

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 […]

TinyUSB on the ESP32-C6 -- I mean ESP32-S3: First Steps

I am interested in developing MIDI 1.0 and MIDI 2.0 applications on embedded devices. As part of Designing Sound Futures, I worked with Mohaimen Hassan on Shetu, the very first MIDI 2.0 device produced in an academic setting. Unlike other attempts, it was written completely in C, with no other libraries or programming languages. The […]

Java Graphics and User Interfaces -- in the Terminal

When I first started programming in Java I thought that graphics would be best with a framework like JavaFX. It was a lot more complicated than I thought it would be. I switched to using the Princeton Standard Library with my students and find that it works great for things like graphs, etc. even though […]

jUnit6, part 5: State Saving When Running Repeating Tests

Back when I was a PhD student at McGill, our lab had a rule of thumb when it came to robot tests: if the robot can't repeat the test at least ten times then it can't do it. You can see this in Dave McMordie's thesis, in Ned Moore's thesis, in Neil Neville's thesis and […]

jUnit 6, part 4: automated testing from the command line

When developing a stand-alone Java program all by yourself, it's typically preferable to do so from an IDE. However, a lot of projects rely on automated compiling and testing and this is really best done from the command line. While you may be used to using jUnit from inside an IDE like IntelliJ, it can […]

jUnit 6, part 3: parametric testing external file

Building on the second post on jUnit 6, here is a parametric unit test set up with an external CSV file: This file, test values.csv, has comments and a header line that is to be ignored. It can be included in an IntelliJ project. We assume that a Calculator class is available that contains an […]

jUnit 6, part 2: parametric testing with delimiters and comments

I started examining jUnit 6 in an earlier post. It turns out that in jUnit6, the common separated values data can use delimiters other than commas. Very cool. Before getting into the import of CSV files for testing, let's look at two features that are useful for setting up a bank of tests. We'll assume […]