Open source audio remote control

audio-remote

I’ve started a FLOSS remote control receiver project for DIY audio preamplifiers. I think it’s just about good enough to make public.

Remote control is one of the more challenging things for an audio DIY person to implement, so I thought having an open source hardware and software platform for doing this would be useful. It uses our good friend Arduino for brains and works with the Philips RC-5 protocol. I like RC-5 because its the closest thing I know of to a universal, well-documented, brand- and model-agnostic protocol.

The IR command decoding is done using Guy Carpenter’s excellent RC5 library. I also considered using Ken Shirriff’s multi-protocol IR library. Ken’s library works with a large number of protocols, but I thought its larger memory footprint might preclude porting this thing to tiny AVRs.

Details on the project are available in my RC5-Preamp GitHub or GitLab repository. [2021 update: This project is currently abandonware, so I have made the above repos private. If anyone wants access, contact me and we’ll figure something out.]

Arduino support for Komodo Edit

Komodo-edit with Arduino support

I’ve added basic Arduino support to Komodo Edit for projects that use a Makefile. This simply involved adding a menu and a toolbar for invoking make, make upload, make monitor, and make clean.

If you want to add the menu and toolbar to your Komodo, expand this file and drop its contents into your /home/<username>/.komodoedit/<version-number>/tools directory or the equivalent on your OS. (Update: see this comment for a potentially easier way to add the tools.) Add your preferred keyboard shortcuts for any or all of the commands by editing the items under “Arduino” in the Toolbox. I’m using F5 to Build, F6 to Upload, and F7 to Monitor.

To enable syntax highlighting on .ino files, add a new entry for *.ino files in Preferences | File Associations and set the Language to C++.

This setup gives me a good set of features I want, including the ability to:

  • Edit files with a full-featured programmer’s editor.
  • Perform the most used operations with keystrokes or GUI bits.
  • Create projects to encapsulate all relevant project files.
  • Navigate to all relevant project files from within the same environment.
  • View the results of building, uploading, and cleaning the project in the same environment.

Features notably absent are syntax checking and code completion. Komodo doesn’t currently parse/compile C/C++, so adding these features may be possible, but it won’t be easy.

Battle of the Arduino Makefiles

scale-model-reenactment

So, I’m shopping for alternatives to the official Arduino IDE that better suit the projects I’m working on. In this installment, I look at two promising Makefile implementations to see if either come through as a workable solution. One of the attractive things about a Makefile approach is that you should be able to wire it up to your favorite editor du jour.

Continue reading “Battle of the Arduino Makefiles”

Arduino IDE alternatives

arduino-uno

My Arduino work has gotten to the point where I find the official IDE a little constraining. I’m not alone in this. A quick search will reveal that there are lots of people working on different approaches to making the development process more scalable and otherwise more powerful. Some are developing alternative IDEs, some are working on integration with existing IDEs, and yet others are working on Makefile and Cmake based scripted solutions.

It’s important to remember that Arduino was intended for use by designers and artists—and to leverage as much as possible what those users were already used to with Processing. The official IDE succeeds remarkably in that, something for which the developers must be congratulated. The fact that more advanced users are seeking other ways to develop for the platform is in fact a testament to the success of the overall design.

<flame>In spite of this, there is a (tiny?) cult of people who find sport in bashing the official IDE for <insert sin here>. It’s important to remember that Arduino wasn’t designed for you. The reason that Arduino is as successful as it is—the reason the community is so large and diverse, the reason there are so many libraries for tackling the kind of things you want to do, the reason the hardware is so plentiful—is because the people behind it made it as accessible as they did. So, please dial down the negavibes and be happy to be part of a community that will (let you) build (advanced) tools for your favorite tools.</flame>

An incomplete list of completely unvetted libre alternatives for Linux includes:

There is a page at the Arduino wiki on the subject as well. Some of the alternatives listed above appear abandoned and/or otherwise obsolete, so caution is advised.

In the upcoming days, I’ll be working with these options to try to find something that better suits the scale of the projects I am now working on. I’ll report back anything interesting.

Arduino and Bio-inspired Design

A week ago Monday I did a guest lecture on Arduino for Marc Swackhamer and Neil Olszewski’s graduate architecture course on bio-inspired design. It was an awesome experience–lots of bright and enthusiastic minds. We followed the lecture up with a studio on Wednesday, and later today I will be assisting with reviews. Many thanks to Marc for letting me participate in this inspiring process.