Speaking of cram-fu, here is my preliminary pin-map for the teensy:
// Teensy 3.2 pin map:
// 0 - FREE (reserve for serial?)
// 1 - FREE (reserve for serial?)
// 2 - input, motion sensor interrupts
// 3 - used by octo library
// 4 - output, SD card chip select (optional)
// 5 - output, enables amplifier
// 6 - output, serial flash memory chip select
// 7 - output, spi led chip select (optional)
// 8 - AUX button (optional)
// 9 - AUX2 button (optional)
// 10 - used by octo library (used to be pin 4)
// 11 - SPI data out (flash memory, spi led, sd card)
// 12 - SPI data in (flash memory, sd card)
// 13 - SPI clock (flash memory, spi led, sd card)
// 14 - output, WS2811 led (blade)
// 15 - used by octo library (connected to 16)
// 16 - used by octo library (connected to 15)
// 18 - I2C (motion sensors)
// 19 - I2C (motion sensors)
// 20 - input, Battery level
// 21 - input, Blade identify
// 22 - FREE
// 23 - power button
The teensy also has pads on the bottom which can be used, but I'm hoping to avoid using them as they are a bit of a pain to solder to. Especially *after* I've soldered the prop shield in place.
I hacked up the OctoWS2811 library, which is normally used to control 8 neopixel strings in parallel, so that it would only output data to one pin. It's a bit inefficient memory-wise, but offloading the LED communication to the DMA engine will leave a lot more cpu for audio processing.
I'm reserving pin 0 and 1 for a serial port, but I'm not sure why anybody would want one since the USB port can fulfill the same function with no additional hardware needed. (I already have command-line interface that let's you enter commands through the arduino serial monitor to play sounds, turn the saber on/off, etc.)
The "blade identify" pin is intended to make it possible to have several different blades with different default sounds and colors. The idea is to put different resistors in the blade and measure them against the internal pull-up resistor in the teensy. This also makes it possible to have blades of different lengths with different number of LEDs.
I figure I'll draw up a full connection diagram this weekend.