Open Music Labs » mcanulty Analog and Digital Techniques — Tools for Musicians, Composers, and Tinkerers Tue, 10 May 2016 00:18:49 +0000 en-US hourly 1 Input Matrix Scanning Tutorials Sun, 23 Oct 2011 23:22:21 +0000 mcanulty Click on the image to check out the awesome and extensive new tutorials that Guest wrote up about the various methods of input matrix scanning, I’m pretty excited to see so much great info going up on the site all at once!

In other news, we also have a brand new twitter account which we will use to announce new products and articles in the future, as soon as I can figure out how to use it:

Hmm, all the cool kids can do it, right?  I’m sure I’ll figure it out in just a few more minutes…maybe just as soon as twitter stops throwing exceptions when I try to post.

]]> 0
Floppy Creators and a brief diversion Sun, 02 Oct 2011 04:22:39 +0000 mcanulty I thought I’d take an opportunity to post a couple of videos from users in the forums who have been working on their own floppy audio creations.

Forum user Paleorama has just posted this up, these sounds bring back a lot of memories:



And forum user Zool posted this last October, particularly cool is his use of a slide-potentiometer to reduce spindle speed:




On an unrelated note, a friend of mine asked me to take a look at their Korg nanoKONTROL which had its USB mini connector break off, so I grabbed a screwdriver and opened it up:

It’s a nice simple piece of construction, designed with fairly inexpensive generic components, except that I was a little surprised to see that it has an AVR ATMega32 pulling the strings inside of it.  I say surprised because AVR has a reputation for being a little over the cost-margin for products like this; normally one would expect to see something more generic, or even maybe something with USB in the micro, saving the cost of the extra part.

So, in addition to the Mega32, there is a PDIUSBD12 handling the USB interface, a handful of 4051 muxes, some transistors and such, and a bunch of pots.  I didn’t get a good look at some of the other chips, but there shouldn’t need to be much else in there.  The main reason I post about it though is because of the unstuffed header (on the left in the above photo) which I continuity checked and can verify is a breakout for ISP, although the pins are just a bit mixed up from the normal arrangement.  Everybody I know loves these little Korg nanoKontrollers, but  I’ve always thought it would be cool if they could be made to output something a little more detailed than MIDI’s 0-127.  Anyone want to take a shot at an OSC over USB controller project?  If so, there’s an inexpensive, ready-made project board right here, plus it screws together into a nice and easy to use finished product.  Just a thought!

]]> 6 Hi-fi 16bit DSP on an Arduino? Mon, 01 Aug 2011 08:18:30 +0000 mcanulty Introducing the Audio Codec Shield for Arduino and Maple

Ever wish you could do serious DSP on your favorite open-source AVR development platform?  We are very proud to be able to announce the availability of our new Arduino shield for the Wolfson WM8731 audio codec as well as code libraries for both the Arduino and Maple programming environments.  To top it all off (triple-feature!), the new libraries and a bootloader have been adapted for the MICrODEC, marking our first official release in C for the Audio Codec Shield’s big brother.

At only $44, we hope that many of you readers out there in internet-land will see the way to accepting some of these little guys into your hearts and homes (and pedal-rigs).

]]> 4
MICrODEC: It’s in your houses, it’s on your streets! Mon, 23 Aug 2010 02:03:57 +0000 mcanulty

The MICrODEC store is now open!

But what is the MICrODEC, you ask?

It’s our new kit for an open source reprogrammable digital signal processor, or, in other words, it’s like an audio effect box with any effect you want.  Still not sure?   Check out the videos for examples of what it can do (I’ve posted one below as well).

Go to the MICrODEC page for more details, and mail us or post in the forums if you have any questions.

]]> 0
Big foot’s a thing, no wait… Big things afoot! Sat, 17 Jul 2010 07:11:46 +0000 mcanulty I am reading up on assembly for AVR 8 bit microcontrollers, especially for the ATmega3250P, which is the brains behind the MICrODEC.  No new pictures, but we are busy getting the first batch manufactured and kitted up, as well as finalizing the first release software.  It’s pretty exciting playing with the sounds and software and it will just keep getting cooler as the functionality is expanded.

I’ll be showing one of the MICrODECs at Outsound this Sunday (July 18th) for their hands-on Touch the Gear event.  And as soon as I finish with all the paperwork I have to file in order to have Open Music Labs be an official entity in California and the United States, I’ll get back to making cool stuff and writing about it!

We’ve got a few neat things in the works, some articles about audio filters, writing code for the MICrODEC, some floppy audio circuits, and a little shop (‘i love little shops!’) all right around the corner.

]]> 0
Laser etched faces Wed, 23 Jun 2010 09:40:26 +0000 mcanulty Bethany from etched our prototype cover-plates for us!  There will be a few changes, but this is what our horoscopes indicate the first run of cases might look like:

MICrODEC w/ faceplate

the back is also usefully labeled:

MICrODEC back w/ labels

Ignore the nibbling around the power supply and the scratches, because unfortunately we can only offer those features on the special edition ‘pre-weathered’ acid wash model.  There’s some time traveling back to the 80s involved, then inventing the idea before we came up with it, and then burying all of the products in the Russian steppes…  anyway, it gets complicated!  So until those are ready, we will only be able to offer nice die-cut / laser-etched versions, and we’ll have pictures of those up as we get them in.

]]> 0
Modifying the arduino to burn other avr chips Fri, 18 Jun 2010 11:32:53 +0000 mcanulty ISP and ICSP are slightly different terms that refer to the same concept In System Programming or In Circuit Serial Programming – and they roughly interchangeable when it comes to Atmel AVR chips, the microcomputer brain at the core of the arduino.

The arduino is designed with a 6-pin ISP header that is there so you can program the chip on the board from an external programmer. In the event that you were to put a fresh new chip into the socket, this header would be a handy thing to have around.

You could use a programmer like the stk500, AVR-ISP, or any of a number of third party devices.

Notice the familiar 6 pin header on the stk500 with the label ISP6PIN:

If you look closely at the stk500 photo, you’ll also notice that pin1 on the header is marked, just like it is on the arduino:

You could connect them up with a six pin ribbon cable like this one:

The red stripe on the side helps when you get confused.  Those of you who connected up floppy drives and hard drives to pc motherboards when you were younger (weren’t we all younger?) may remember your first encounter with ribbon cables and that comforting red stripe.

You just make sure pin 1 connects to pin 1 on both boards and you’re all set to go!  (After you learn the wily ways of AVR Studio or avrdude, of course.)

Hey!   But what if you already have a working arduino?   In that case your chip at the helm has long since sown its wild oats and been initiated in the ways of the arduino bootloader (just like all of mine have always been when they’ve arrived in the mail).  In that case, you already have a completely functional In System Programmer that can program other avr chips!

It sounds so easy doesn’t it?  But yes, you guessed it, there is just one catch. Something is amiss, there is something in this picture that is out of place – can you spot it?

Look closely at the schematic, the ICSP (or ISP) header looks like this:

Following each of the lines in the schematic carefully, you will notice that they are connected as follows:

1. PB4 MISO  (master in, slave out)
2. 5 volts
3. PB5 SCK (serial clock)
4. PB3 MOSI (master out, slave in)
6. Ground

This is all part of the Serial Peripheral Interface Bus, or (SPI), that is built into every AVR chip, the hidden system that does the work to program every functioning arduino.

But wait, what’s all this master/slave business?  It’s a communications term from way back in the dawn of human civilization, somewhat recently deemed inappropriate in LA, which refers to special things that happen between two interconnected devices that would be inappropriate to discuss on a public forum with anything except hand-wavy euphemistic terminology that disguises what’s really going on.

The cool thing about the SPI arrangement though, is that MOSI and MISO always connect to other pins also labeled MOSI and MISO, so there’s no crossing of cables with Ins and Outs getting all switched up and mixed up every which way – MISO always connects to MISO, and MOSI always connects to MOSI.  SCK connects to SCK, and of course 5v is 5v and Ground is Ground.

This leaves us one fly in the ointment.  RESET is serious business when it comes to serial programming, because if both chips were to reset at the same time, well, the whole master/slave situation would get totally out of hand.  So the First SPI Programmers decided that there would be this thing with which one chip could select another, called, yes, creepily – Slave Select or SS.

If you look again at the schematic, you’ll see that our own PB2 SS is blissfully wandering about on its own, completely unconnected to the ISP header.  This is because the arduino was designed so that any AVR MEGAx82 chip you might put into the socket would swiftly fall prey to other, better prepared chips, whose headers have their ISP pin5 connected to their SS pin instead of their RESET pin.

“Aha! ” you say, “the solution is simple!”  We’ll just make a mess and run wires everywhere, then we can take advantage of other unprepared soft-bellied chips, like so:

(Exercise for the reader: notice what pins are connected to the chip?  There’s power, and ground, and hey are those PB2-5, aka digital10-13, aka SS, MOSI, MISO, and SCK?  Just checking!)

And that could be fine, because well, messes have their place, wires are wires, and it is better to get the job done than to wait around for new parts and fancy schmancy programmers to arrive in the mail.  Plus, those chips had it coming, but what if you could do all that and have a nice clean fancy schmancy programmer for no cost whatsoever?  Then you could spend your money on nicely labeled breakout boards like this one from sparkfun:

Well if you want to, here’s how!
(I swear I’ll be less long-winded in this section):

What you want is for your AVR chip to be connected to the header as follows:

1. PB4 MISO (master in, slave out)
2. 5 volts
3. PB5 SCK (serial clock)
4. PB3 MOSI (master out, slave in)
5. PB2 SS
6. Ground

This is going to require cutting two traces, and making four solder connections.

The Arduino Duemilinova has a really nice, handy reset button on the board.  It turns out that this is connected to the ISP header Pin5, and then ISP header Pin5 is thereafter connected to the reset pin on the MEGAx82 (chip pin1).  So if you want that button to still be handy, you’ll want to cut both traces leading from the ISP header Pin5 and bypass it with a wire.

===  The Process… ===

First I tested all the connections with an multimeter to make sure I knew what was connected to what.  A reassuring beep from the multimeter told me that I knew which pins were which and that the leads were in fact connected the way they seemed to be.

And now here’s the scary part, but don’t be squeamish, you are about to become Somebody Who Does Things To Their Board.  If you google cutting traces and read the discussions, you’ll see people have all kinds of opinions about how to do this, and many of those opinions probably have their place.  For this modification however, I had no trouble using an X-Acto style artist’s knife.   I then followed up by testing with a multimeter to make sure I had created an open circuit between the reset button, the ISP pin, and micro’s RESET pin.

Click any picture for a larger image:

Step 1 – Cut the trace between Pin5 and the micro’s RESET

Step 2 – Cut trace between ISP Pin5 and the reset button

Step 2 – solder to reset button:

Step 3 – solder reset button to micro Pin1 RESET:

Step 4 – solder to micro Pin16 SS:

Step 5 – solder SS to ISP Pin5

Congratulations, you are good to go!  Well almost.

There is one, additional, non-invasive thing you must do:

Every time the USB port opens up a new connection to the Duemilinova Arduino, it resets the chip.  This is kind of like the conceptual situation I mentioned before in which both chips getting reset might cause everything to get all higgledy piggledy.  Well it turns out it’s true.

You could cut the reset trace, but then you limit the functionality of your arduino.  Until now, every change we’ve made has only enhanced what your arduino can do, so there’s no sense in getting hasty now.  A small resistor, between your 5v out and reset input on the side of the board will make everything work perfectly.  I used a 120 ohm resistor successfully, but judging by this discussion I wouldn’t go much higher than that.

I have been using the arduino library MegaISP for writing to other chips using this modification, and it has pleased me greatly.

I hope this article is useful to someone, it is my first real article for Open Music Labs!

]]> 0
New MICrODEC information Thu, 17 Jun 2010 19:28:13 +0000 mcanulty There’s now a really great overview on the MICrODEC wiki page, thanks to the inestimable guest!

]]> 0
pondering wiki wandering Tue, 15 Jun 2010 00:28:53 +0000 mcanulty I set up a wiki with the usual old Media Wiki which is now used by wikipedia (check out the article here).  But looking at it, and remembering how much I hate wiki markup, I’m thinking of switching over to MoinMoin, a python based wiki with a wysiwyg editor.  I might set them both up.  Wiki users (I’m looking you, microdec developers!) should give me feedback as you’re using the system and let me know what you prefer.

Update: new wiki up here!

]]> 0
Site Design Finished Mon, 14 Jun 2010 07:59:25 +0000 mcanulty The new site is finished, updates should be coming much faster now!  I’ll be moving traffic and old posts from the previous floppy forum over to the new one this week, and posting about floppy pcb developments as well as useful websites to check out.  Feel free to mail with comments, criticism, and submissions or to point out any bugs.  ewwwww, bugs!

]]> 0