picture home | pixelblog | qt_tools

omino code blog

We need code. Lots of code.
David Van Brink // Mon 2008.05.26 22:41 // {wbl weird blinking lights}

Retro USB MIDI Device VIII


Noodling around with more boards. Nothing too insightful here, but I do love to post glamor shots of LED’s and such. I’ll call out the actual technical tidbits in an attempt to be useful.

Useful Technical Tidbit 1: How to Solder Surface Mount Parts

So I got these cute little surface mount boards and TQFP 44-pin 18F4550’s, from Sure Electronics.

I consulted Aaron for advice on soldering. It’s pretty easy.

  • Use a good tiny-pointed soldering iron. (I’m lucky, my employer had one.)
  • Melt some tiny-solder onto one of the board pads.
  • Hold the package exactly in place on the board with your finger, and touch the soldering iron to the pin on the soldered pad. (If the registration is wrong, hold it upside down and touch the pin again, freeing the chip.)
  • Solder another pad. If the registration is still good, solder the rest!
  • I went around the board with a Fluke set to “beep” mode, checking adjacent pins for solder bridges. Corrected a couple by the usual means of “Heat joint while upside down, impact on tabletop, avoid splatters.”

Useful Technical Tidbit 2: Quick and Easy ICD for the PIC 18F4550

For programming and debugging from the MPLAB ICD 2, it was easy to add an RJ-12 jack. This matches the cable that comes with the programmer. I had some jacks left over from installing phone lines in my home. Home Depot carries them, made by Leviton. The connections are:

Connections for ICD/ICSP between PIC 18F4550 and RJ-12 jack:

RJ-12            PURPOSE       18F4550 TQFP-44
1 green-stripe   reset mclr    18
2 orange-stripe  +5            7
3 blue-solid     ground        6
4 blue-stripe    rb7/icd data  17
5 orange-solid   rb6/icd clk   16
6 green-solid    unused

Two LED's with 200 ohm resistors

                 ra0      19
                 ra1      20

Setup code

    TRISA = 0;    // all outputs
    PORTA = 0x01; // one on, one off.

Here it is attached to the programmer. Note that the programmer *must* be connected to an external power supply. In MPLAB, in the connection settings, you can then have it power the target board. Convenient!

But you know, that board is just for dinking around. I wanted to make some LED sculptures, and this has lots of I/O. Can’t run USB off the internal oscillator…

The CUI Platform

Google led me to Dan Overholt’s CUI project, which is a lovely little PIC 18F4550 board that’s all set for what I needed! It turns out it that there are USB HID drivers for this board, but no USB MIDI. HID works with all the hip academic software like MAX and Supercollider via OSC. But MIDI drivers are handy too, for more traditional software like Reason. Dan was kind enough to send me a board for experimentation.

It’s very nicely designed. See how all the pins are clearly labeled? See how the analog inputs are each next to a +5 and gnd, so you can just plug in a potentiometer? Perfect!

As much as I’d love an excuse to spin a board and all that, when something like this arrives on the workbench, you just have to accept that that problem is solved, and you have to just move forward to the next.

oh, i dont know. what do you think?


(c) 2003-2011 omino.com / contact poly@omino.com