Tuesday, April 20, 2010

Fresh Coat of Paint





After the body was completely finished being routed and all electronic components were fitted, I brought the wood to my friend Igal's garage to paint. The body is an Olympic White nitrocellulose lacquer and the neck is gloss black. Due to time constraints, I couldn't quite get a professional finish but I think it turn out nicely given the circumstances.

Light Up Logo

New Button boards



The new button boards are assembled and working. They snap together flush and fit snuggly in the neck.

Assembled Master and DIN boards


I assembled the main and DIN boards. The main board was a real chore and I was pretty bleary eyed after handing all those SMD parts.

Saturday, April 10, 2010



new touch plate PCB

Fingerboard



the fingerboard laser cut from a piece of 1/4" rosewood

Friday, April 2, 2010

Master Control Board



This is the brains of the operation. Based on the ATmega1280 (as used in the Arduino Mega), the master board takes inputs from the button pads, touch plates and all other sensors.

Sunday, March 28, 2010

Wood Work






The MKII will feature a wood body design. I've used a 8'x8"x1" piece of poplar to create the neck and body. They have been cut on a band saw and hollowed out with a router. There is still a little more work to be done before it gets a paint job. The rosewood fingerboard should be laser cut this week.


Sunday, March 21, 2010

Velocity Sensitive Touch Plate

Each switch features two trigger traces coupled with a ground trace. Comparing trigger contact times between the two traces will allow for velocity derivation.

Tuesday, March 16, 2010

Button Board PCB Test





The button boards came in and they appear to be working great. I will need to make a few modifications.
  1. They need to be wider so that they fit end to end at the same spacing as the pads.
  2. New surface mount connectors need to be added for B2B connections.
  3. The vias attached to the pad footprint can be smaller.
  4. Mounting holes need to be added.
  5. Fix boards address switching

Monday, March 8, 2010

Wednesday, March 3, 2010

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.




Monday, January 25, 2010

Another great GUI example


The folks over at Livid Instruments created a great GUI for their Ohm and Block instruments. It's very much inline with what I was envisioning. Mapping one button to a set MIDI note or CC output seems pretty straight forward. The main hurdle I see is coding a way to have button press combinations create new MIDI Note messages.

Sunday, January 24, 2010

GUI Model


The Korg Nano Kontrol Editor is a good example of the kind of GUI I am looking to to create.

Gooooooaaaaals

Quick intro here. I will be logging or should I say blogging my progress on the MK2, now dubbed "The Ghost," here. I'll post thoughts and developments as the design process unfolds.

First off, goals:

Hardware
1) More durable enclosure (looking at wood options at the moment)
2) Adding a third row of buttons while slimming down the width of the neck(less than 2")
3) Custom electronics (easily connectable PCB button boards, use of shift register, custom uController board)
4) LCD Screen feedback with data knob for preset changing
5) Potentiometers for MIDI CCs
6) "Whammy bar" for MIDI CCs (Pitch Bend)
7) Ribbon controller on body for MIDI CCs (MOD wheel)
8) Ribbon controller on neck for MIDI CCs
9) Slide switches for quick mapping changes
10) Professionally etched touch plate with tactile feedback
11) SD card slot for loading user mappings

Software/Firmware
1) Custom designed GUI for creating and loading performance mappings (Processing GUI and uploading mappings to SD)
2) Play modes including chords (polychordal), notes, drums and step sequencer.