Difference between revisions of "Rainboard - DIY Dynamic Rainbow Isomorphic Keyboard"

Line 1: Line 1:
= Rainboard DIY Isomorphic Keyboard - Version Beta =
 
 
 
=== Daily Update: ===
 
=== Daily Update: ===
  

Revision as of 23:45, 28 October 2011

Daily Update:

Oct 28, 2011

When pressing several keys in the same column things don't work too well. According the people that make the button shield everything should work fine. We tried removing the diodes and things appear to work slightly better (although we don't know why). It's possible that the problem exists with the way that the button SPI code is implemented as it uses an interrupt without any sort of buffer. So if two button press were to occur between one cycle of the arduino a button press could be lost or mangled. As well we grabbed a large sheet of acrylic to make the case of the instrument. There was some concern about sturdiness, but hopefully the beefy 5.6mm thick acrylic should do it.

Oct 27, 2011

Played around with the LEDs today. Started using the Fast SPI [1] from google code and it seemed to alleviate the hardware serial receive issue. As well, put the 64 button shield not the arduino and everything seems to be a go. Wired in 7 buttons (with diodes) to test how things are going to work. Not too bad, however they delay between press in the button and audio playing on the iPad is quite substantial, perhaps 300ms. In order to see if the issue is with the iPad serial connection or just arduino latency I wired in a musical instrument shield from spark fun[2]. Turns out the latency has something to do with the connection to the iPad as the audio form the shield appears to be almost instantaneus. Will need to do some more testing to see if the issue is the with the serial output, red park cable, or iPad external accessory api.

High Contrast Colors for LEDS Buttons and Diodes 64 Button Shield

Oct 26, 2011 - Buttons and Diodes have arrived. The LEDs should be in soon.

Buttons Buttons Pressed Diodes

Oct 24, 2011 - Converted Midi to Use Software Serial. Fixed a software serial timing issue.

Testing Lights Arduino and Breadboard

Hardware List

The current hardware for the rain board uses standard DIY parts off of the internet.

  • 64 - LED Pixel RGB 8mm Naked PCB [3] from Bliptronics
  • 64 - Arcade Button - 30mm Translucent Clear [4] from Adafruit
  • 64 Button Shield [5] from SpenzieLabs
  • Arduino Uno Board [6]
  • iOS Serial Cable [7] - Redpark Serial Cable

Overall Connectivity Plan

The arduino Uno will be used as the brains of the Rainboard. It will take all input from the buttons and encode any input button presses to a unique number. The numbering system starts in the upper left corner of the Rainboard and increases through to the right side. At the end of the row, the number will continue on the next lower row starting at the left side. The button press will be sent to Musix [8] where the press will be translated to audio via an internal sound engine or transferred to another synthesizer via midi. The lights on the Rainboard will also be controlled from Musix [9]. Upon connection of Musix to the Rainboard, the buttons on the Rainboard will be coloured in correlation to the layout selected within Musix. This allows the Rainboard to be quickly configured using the Musix iPad/iPhone interface.


Proposed Hex Numbering

Proposed Note Numbering

Current Issues / Limitations

Bliptronics lights / SPI / Serial breaking

The Arduino library [10] that comes with the bliptronics lights uses SPI [11] in order to send data to the lights quickly. It was found that once the blip library was included with the project and init was called, hardware serial data receive (rx pin 0) on the arduino would not work. The current explanation is that the blip library spends a large quantity of time inside an interrupt. This is causing the serial rx interrupt to not be fired and the receive data is lost. So cercumvent this issue, SoftwareSerial is used instead of hardware serial. For more details on the issue please visit Rainboard SPI LED Serial Conflict page.

SerialSoftware (NewSerialSoftware v11b)

In order to work around the broken hardware serial rx, a software serial solution called NewSoftSerial [12] was used. The version currently being used is version 11 beta [13]. This library will like replace the SoftwareSerial library included with the Arduino software. The serial connection is used to talk to the red park serial cable. It appears that connections from the Rainboard to the iPad worked fine, but data would get corrupted from the iPad to the Rainboard when sending more than a few bytes. This issue has been fixed by altering the timing of the serial receive delays. For more details on the issue please visit Rainboard NewSoftSerial.

External Links


Comments

blog comments powered by Disqus