Wow. That was a busy semester. Between the variety of interesting and not-so-interesting classes that I took and all of the work that I did with my dorm and Next Make (not to mention two extremely successful parties that a group of us dedicated multiple sleepless weeks to putting on), I haven’t had any time to blog about all the stuff I’m working on. Now that the summer’s finally here, I have some time during the evenings (I’m working at Lincoln Labs this summer as well as next summer and fall to obtain my Master’s) to work on a variety of projects and write about them. Last summer, I really didn’t get to work on any of the projects I was hoping to, but I have much more resolve to do so this summer. Here’s what will keep my busy:
Version 1.5 of LED Controller Boards
The LED controller boards I designed for the Next House Party Lighting System are generally pretty good, but they suffered from a variety of problems owing to the lack of proper design iteration. Problems included:
- No spot for a on-board voltage regulator — we didn’t originally plan for this
- Not nearly enough capacitors — this ultimately led to voltage spikes so high that they destroyed the LED driver chips
- NOT NEARLY ENOUGH CAPACITORS
- No spot for a termination resistor on the RS485 network
- Not very space-efficient — could use a lot of layout fixes
- Should use EEPROM to set address, not DIP switches
- Really, how could have I forgotten the freaking capacitors?
I’d like to redesign and send out an order for these boards soon. I ultimately want to turn these boards into self-sufficient kits where you would be able to plug them into your computer via USB, but I’m going to hold off on the USB connectivity and use a separate communications board (that would allow you to talk to multiple LED controller boards at once).
Then, later in the summer, when I’ve proven the functionality of these boards (which I will use in a lighting system I’m designing for my room), I may add things like optional USB connectivity on them for even easier communication.
My 6.115 project, Cerebro, was a device that used an EEG from a toy to read electromagnetic activity at the surface of your brain and interpret it in the form of color lighting patterns for the Next House Lighting System. I made two videos demonstrating it. I built it on the 6.115 labkit, which required me to write almost 3000 lines of assembly. I’m going to rebuild it with an AVR, which will make my life much easier, and come up with some new signal processing algorithms that take better advantage of state to improve accuracy.
Also, I’ll document my original attempts on my site at some point. I have a lot of pictures.
Mixxx and Mixing
Mixxx is the digital DJ software I use. I got into DJing fairly recently; it felt very natural to do since I’ve always liked electronic music and have a pretty sizable collection. I use two turntables with Serato control vinyls, a Maya44 USB sound card, a Numark Total Control controller, and a M-Audio X-Session Pro controller.
I’d like to design more complicated mappings for my two controllers. Mixxx has a really amazing scripting language that allows you to make any MIDI controller perform a variety of complicated functions that you design. The Total Control is now my main controller — I plan to modify the mappings a bit to fit better with the vinyl control features of my turntables. Furthermore, I’m going to design the mapping so that they change based on whether you’re using vinyl control or not. I’ll then add extra features with my other controller, the X-Session Pro.
I’d also like to do some development on Mixxx. In addition to fixing some rather annoying bugs I’ve noticed, I’d like to separate the pitch control coming from the vinyl control from Mixxx’s internal pitch control state (normally, Mixxx will just set its internal pitch to the vinyl control pitch). This would allow users to control the pitch both from a MIDI controller and from their turntables and would eliminate a few glitchy effects that occur when you attempt to change the pitch from a control while using vinyl control.
Lastly, it would only seem fitting that I actually use the damn software, right? I used bleeding edge builds of Mixxx to DJ Next House’s two parties this past semester and had enormous success with that. This summer, I’d like to start recording regular mixes of various genres. There are so many electronic music styles out there and it’s often hard to find music unless you’re looking for specific things. I’d like to try mixing all sorts of things: electro, dubstep, house, techno, hardstyle, trance, etc. Hell, I’ll throw in some pop too.
Last night, I finished my setup for the summer:
Last year, I started a project to add a LED matrix to my door for the purpose of displaying arbitrary scrolling messages across it. When I discovered that the cost of the circuit boards would be prohibitive, I got a little disgusted and gave up. I’m planning on figuring out how to reduce the cost and actually building the thing.
Putting it all Together
I picked up some old laptops that someone was throwing out, so I have some candidates for a server. The server would run everything in my room: the lights, the door sign, my fan (it has an IR sensor and a remote that adjusts the speed, direction, etc., so I’m planning on building a simple interface for that), etc. From there, it’s easy to design a user interface to control everything.
All my system configurations are out of sync again and I need a better way to synchronize them than dotman, which was just a simple experiment. I think that I will build dotman2 on top of git; it will take care of the version control for me.
And so those are my plans for the summer. Too much? Probably. But then again, I go to MIT; I know how to survive on no sleep.