Posts Tagged ‘WTPA v0.95’

WTPA v0.95 Up and Executing

Thursday, December 4th, 2008

OK, OK dusty and neglected friends. For you, today: Twinkles!

What does this mean? Well, several things. The most important of which is that the new version 0.95 PCBs are up and executing code. There are 2 MCUs on the new boards that communicate via a UART. Mostly I did this because I wanted to keep this sampler “kit-friendly” (meaning big DIP parts) and ran out of pins on the main MCU to do all the stuff I wanted to do.

What you’re seeing right now is the smaller helper MCU (here an Atmega168, but it’ll end up a 48p or 88p depending on how much I shave down the code) making the lights go. This is his reason for being, in addition to reading the control pot / CV in, the switches, and generating white noise for the clock jitter generator circuit. More importantly, he’s pretty much done. Besides freeing up the main MCU for more important stuff, this extra MCU allows a lot more foofy lighting effects —

I’ve coded in a bunch of little strobe effects and fades and chases that ought to help keep your sampling experience trippy.

More importantly this update means that I’ve got a bigass hole in my freelance work right now and I’m pretty sure I can use it to nail the code/hardware debugging for WTPA once and (almost) for all. There’ll have to be another PCB rev (I’ve found hardware bugs on this one already) but the code should be pretty much exactly portable to the next one.
A couple days ago I set a deadline of, er, tomorrow to get this revision up, sampling, and tested. The code for the main chip is already well underway, and I think this is realistic. Stay tuned…

WTPA v0.95 Assembled, Other Nerd Biz

Thursday, November 6th, 2008

The nerd-biz has been thick since my last post — Chicago-based rocketry’s own Ignignokt ate peroxide in New Mexico, I finished making a bunch of art pieces / circuits for my man Cory (who is putting them in a show this month at Team Gallery which opens on November 13th — those of you in New York should definitely crash it), I made some fancy LED illumination for a furniture firm here in Chicago, and we have a new President who I’m told has a Twitter account. As of now I’m currently playing hooky on an Embedded radio project which is due soon for another buddy of mine.
Sadly this means that I’ve been a big slacker w/r/t WTPA, but I did manage to assemble the HOT NEW circuit:

In this photo if you look closely you can see that the board is up and running, drawing a reasonable amount of current and turning on the power light. It’s back to a pricey and involved Hello World, but I’m excited to get the code up to speed soon. Truth be told I’m about ready to flip out and just finish this project since it’s been all up in my free time for half a year now, and I can’t wait to get on to some NEW electronic instrument design. I just got this great book and it is both inspiring and incredibly useful — it makes me remember why I fell in love with the humble emitter follower all those centuries ago :-)

PS: Here are some random hard-earned nuggets of electronic design arcana I discovered during that artsy Video Game Controller-Controller job:

  • On the AVR, DORD flips the order in which the bits are _received_ as well as transmitted.
  • Surprisingly I’ve seen the AVR (mega164p) run at 20MHz more often than not at 3.4vDC. I only saw one misbehavior that looked like an oscillator burp.
  • The INVALID pin on the Max3221 is useful as hell. The TSSOP-16 package gives me more bridged pins than anything else I’ve ever soldered, however.
  • Serial Terminal Dumps — use “script -a LogFile” then “term” or “kermit” or “screen” or whatever. You can also do this with Minicom and the escape-L command. Or “term” and “tee”. And you will be totally buggered if you try this on a Mac b/c of its bizzare “cooked” serial drivers.
  • A weird thing about doing SPI with the Playstation One: You can send an ACK pulse TOO FAST after serial byte exchanges with some games, and the console will abort the transfer. I had to add nops in my interface. Also — this is only true for some games (EA Sports, are you listening?)
    • Corrollary: Some games (specifically EA sports games) will bail on you and pause if you have a bad controller exchange during play — I think this is an effort on the developers to help the player in case they pull a controller out in the heat of competition, and it makes sense, but MAN was it annoying to me and required a lot of workaround.

WTPA v0.95 Boards Arrive

Friday, October 17th, 2008

There is some spiritual sense of wholeness, some cosmic teleology that makes me feel thoughtful about posting pictures of a circuit called “Where’s The Party At” when it’s Friday night.

Like if somehow all the drunk, attractive people on Milwaukee Avenue could see the current in these traces they wouldn’t go to a 4am bar, because they would already have been there. Or something. I can’t decide whether this parable is supposed to be more like the two young fish meeting the old fish in the river, or the young bull and the old bull seeing all the cows from the top of the mountain. Some kind of middling-stinky animals appreciating time-and-reality type business is what I suppose I’m going for here.

*Ahem* So:

The next revision of PCBs are in! You’re looking at the Version 0.95 WTPA “barebones” boards. One thing I really like about Advanced Circuits is those sharp (and handy) fluorescent notepads they give you when you order a board. It tickles my hope for nerd-success: I used to really have to hoard them — not so long ago it took Very Serious Consideration before ripping off one of those bright, rare leaves to write “Call Mom” or something. Now I can pretty much paper my walls with them. Feels good. Before you know it I’ll have a cummerbund!

I can already see it’s going to be one of those nights, so down to business: These boards are necessary because they’re the last rev before I order the hundreds of PCBs and many thou of parts I’ll need for the real production release. Hopefully these guys are pretty close to perfect. Parts are already on their way from Digikey and Mouser and should be here next week. I’ve got an OS to re-write in the meantime — I’ve been learning a lot about the GNU Linker for some other projects and as a result my MCU code is getting a lot more pretty looking, and a little more clear (to me anyway) w/r/t how GCC’s optimizer thinks about it. Practically speaking I doubt I’ll have the OS re-written in the next couple weeks: I’ve been nuts making a Playstation version of Beat The Champ (also #8 here) which needs to be done in short order and, and just got a fancy interior design related project which of course ought to be done like yesterday, too. Of course the X-Prize Lunar Lander Challenge is next weekend and I plan to get good and drunk and watch my friends at TrueZer0 put a whoopin’ on the guy that wrote Doom.
Finally, my crappy electronic music project is playing (using WTPA even) next Friday at the Hideout with my old buddies in Parts and Labor.

Rev 0.95 Gerbers Up, New Design Decisions

Wednesday, October 8th, 2008

Yo! A lot has happened since the last time I posted here. For one I’ve organized this site more logically, with the most recent *ish at the top. But the most important thing is this:

I’m done with the new WTPA boards! Done, at least with the schematics and layouts. I’m currently printing up (another) prototype run of bare PCBs to work out any (who’s placing bets?) hardware bugs before I make the *BIG ORDER*. There’s a lot to say about the new designs, but, like the Roc Boys: Speech: First Of All I’d Like To Thank My Connects–

After Bent in the spring, four brave souls bought beta versions of WTPAs and –Lordy– all four really built them! Their contributions and comments on the process were invaluable to this latest version. MAKE Magazine and its denizens have hooked me up with a lot over the last year and most recently the opportunity to talk about WTPA at American Maker at the Museum of Science and Industry here in Chicago. That in turn led to some writeups on Create Digital Music and Hackaday and the resulting diarrhea-esque inbox explosion did a lot towards cattle-prodding me into getting this project rolling along better. It also felt really good. So, big propers to all of them, and all y’all who wrote to me with suggestions, requests, and kind words. Special thanks to Richard How for sending me a properly compressed version of the demo video that I listed below.

Now, sincere acts of ass-licking aside, let’s talk electronics:

Those of you who are dorks can probably tell that there are some differences between the latest boards and the first run. In that poetic way that HTML lets us do so well, here is a Canonical List of changes and features:

  • The RAM chip is now surface mount. This was a hard call b/c so many kit builders are put off by SMT, but 4 out of 4 beta testers (and 1 out of 1 Todd Baileys) wished they had more recording time, and the old memory chip was the biggest SRAM I could find in through-hole. So there’s now 512k of RAM as opposed to 32k — 16x as long sampling time. I promise that with a little practice and anything but the crappiest iron you can solder it.
  • The latches are parallel rather than serial latches. This means that there are fewer clock signals buzzing around the board, and the data rates are generally higher.
  • Support for the onboard PWM-based synth was dropped. It was pretty lame, and besides, this is a sampler.
  • There’s another op amp. This helps some (hopefully) cool stuff happen:
    • There’s way better separation between the quiet analog sections, the noisy analog sections, and the REALLY noisy digital sections. An 8-bit sampler is supposed to be crusty, but there were some really annoying whines that were a function of crap getting into the high impedance amplifiers.
    • Better pre-amp design.
    • The sample-rate clock is now a VCO. Originally I did this so that I could route a quiet control voltage to the frequency control pot instead of a noisy audio frequency square wave, but I figured while I was at it I could include a CV input, too.
    • The gain mismatch between sampling and overdubbing should be fixed.
    • There’s an exciting new error source to tweak: CLOCK JITTER! In the spirit of exploring cool sounding sampling “flaws” (like low bit-depth, aliasing, low sample rate, etc) I included a circuit that lets the user optionally add an adjustable amount of jitter to the clock. We’ll see how that sounds, but I’m excited.
  • I decided to add a SECOND microcontroller (and lose a latch). This guy mostly handles the switches and LEDs, and generates a PSRB as a noise source for the jitter generator. This is a little bit of a splurge, but it frees up pins (and some cycles) on the main MCU for cooler things (like parallel interfaces and more RAM lines) and allows us to PWM the LEDs, which just looks cool. It also allows us a deicated SPI interface which we could conceivably interface to permanent memory, like an SD Card. That’s pretty low on the priority list for me, but it’d be a really cool feature to add later.
  • Another practical upshot of this is more switches in user interface. The menu system on the old one was a little byzantine to some people (and sometimes me).
  • MIDI is fully implemented. MAN, this was a huge improvement! I use my beta version with an MPK49 all the time and it’s SOOOO much better than fiddling with little knobs and tact switches. It’s a priority of mine to make sure this works with Ableton Live before I release the final revision.
  • Probably some other stuff I’ve forgotten.

As well as another heartrendingly beautiful, autumn-sunset-like list of FAQs, gathered from emails and the like:

  • When can I buy one?
    • Soon. Soon? Before the holidays, I think. Is that soon?
  • Why so long?
    • I’ve got an OS to re-write, and testing to do as well as a lot of logistical stuff like hounding Chinese factories to send me parts, which is about as much fun as mowing the lawn. Or HTML.
  • How much will they cost?
    • I’d rather not say on the site, mostly because I’m honestly not sure. There are still enough pending weird money chats with distributors and stuff that I can potentially put my foot in my mouth pretty seriously.
  • Where’s the source, you dingus? You said this was open source!
    • Yeah, yeah. It is. Sorry. But while I’m still tweaking everything it’s a pain in the ass to maintain a public version. The PCB isn’t final yet, the code has potential bugs and unimplemented, un-optimized stuff, and I’d rather spend my time knocking out features and fixes than answering email. This is a little selfish, perhaps, but rest assured that once I release the real thing you will likely have more gibberingly verbose C code and notes than you care to read. I promise :-)
  • How’d you learn this stuff?
    • A lot of twiddling with a scope. Read this, get an oscilloscope and a breadboard, pick an anlog project that you love, do it, then learn how assembly code works, do a project with it, and finally make friends with GCC. It really, really helps to love what you’re doing. I think about electronics when I’m on dates and stuff (although I didn’t always. Give it time. And don’t blame me for the obvious wet blanket this will toss on your pimp game).
  • Are you completely and utterly on the jock of Jim Williams?
    • As a matter of fact, I am :) I have a lot of other personal mentors to whom I owe volumes and who I won’t embarrass by mentioning on this site, like this guy who taught me pretty much everything I know about C programming.
  • Do you Twitter?
    • Embarrssingly, yes.