Sunday, February 28, 2010

Button Board Prototype


This is the prototype button board I am testing before I send out for PCBs. It has an ATmega168 on board and the program is doing row column scanning on the buttons and LEDs.

Tuesday, February 23, 2010

Monday, February 22, 2010

Sunday, February 14, 2010

Velocity Sensitive Pads?


I did a bit of research today looking into making pressure sensitive (aftertouch) button pads. No real leads yet. I did come across an interesting article about the circuitry in the Axis-49 by C-Thru Music. They use a two part pad that allows for velocity sensitivity by comparing the contact time of the inner and outer ring.

Button Pad/Neck Test



Deciding on which size button for the neck. The smaller button pads would give a more realistic guitar feel (1.75") but the distance makes for a very tight play area. The larger buttons are about 2" wide which is a little chunky in your hand but more comfortable pad spacing.

After some casual user testing, the general consensus is that the bigger pads are preferred.


Multiple ins and outs

One of the first issues I'm dealing with is figuring out how to read all 48 neck buttons and turn on/off all 48 LEDs. For modularity, I've decided that each PCB will contain 12 buttons arranged in 3 x 4. This will allow for easier troubleshooting and allow for a button pad platform to be created for other uses and projects. Because of this, my reading/writing options are slightly constrained as each PCB (four in the neck) has to be identical.
In most cases dealing with a large number of reading/writing assignments, row column scaling would be used. I've looked into this for the MK2 but since it does not have a uniform grid, and needs to be expandable, this doesn't seem like a possibility.

The solutions I am currently look at are: Shift Registers, Multiplexers, I/O Expanders, uControllers.

A closer look

Shift registers (4021 and 595)
Pro: Cheap, daisy chainable over 3 wires
Con: High parts count (need four 8-bit SR per board)

Multiplexers (4067)
Pro: Inexpensive, low part count (two per board)
Con: Each mux needs it's own Analog input

I/O Expander (MCP23017)
Pro: Inexpensive, can be both In and Out, LPC (two per board), i2c communication
Con: Ease of use unknown

uController (atTiny48/88)
Pro: Inexpensive, LPC (one per board), Serial Comm.
Con: AVR programming on board

So these are my options. I'll be making a decision this week.