Posts Tagged ‘Cool Tools’

Tokyo. A great place to be a nerd.

Friday, January 7th, 2011

Best. Concession. Stand. Ever.

I went to Tokyo with my GF’s family over the New Year. It was, in a word, OFF THE CHAIN. The above is a stall in Akihabara, which defies everything I know about retail shopping. In a bin, hanging out like so many gnarly street fruits, are op-amps, AVRs, weird eeproms, name it. It was crazy. And there were streets of these. As if that wasn’t enough:

It's what you think.

That store just sold stuff with threads. If it had cut threads, you could buy it there. If it did not, you couldn’t. Why not? I got some bags of clear polycarbonate metric machine screws, cause hey, you never know when you might need THOSE.

In Tokyo the air-in-a-can is flavored

Obligatory picture of 5G, one of the worlds most awesome synthesizer stores. This is the tech bench. You can tell because it looks like a messy-ass tech bench.

PS2 Fiddling Part I

Tuesday, December 14th, 2010

Mucking with the serial stream on the PS2 Controller

So I’ve been building a bunch of video game controller controllers (game TiVos we call them) for Cory Arcangel for a big Barbican show. It’s pretty much everything from the Odyssey / Atari 2600 to the PS2. Basically, their job is to play back (repeat) a played video game in an artsy way, and to talk to a host computer for file transfer, etc etc. Most of them work by snooping the active-low buttons during the recording, then pulling those buttons low during playback at the right time. There is NO WAY this stays in sync with the system, but that kinda wasn’t the point.

However, it turns out for the PS2, that some of the bowling (yes, bowling) games Cory wanted used the ANALOG BUTTON PRESSURE coming off the controller. I was already an advocate of reading and replaying the serial stream from the controller rather than messing with the switches, but it turns out to do these games you pretty much have to do that. So, here I am, learning PS2 serial protocol. There are tons of notes online on this, but I especially liked and used Andrew McCubbins’ “PSXCONT” notes (though I couldn’t find his source code). The UPCB project, as usual during this video game project, was very helpful. Micah Dowty’s notes were really helpful. Lastly, the curious inventor PS2 site rules.

There had to be a lot of bus turnaround kind of thing to both read and playback the PS2 stream, so I needed an external MUX which I made from a 74HC157.

Armed with all that, I hooked up the TiVo, wrote some test code, let her rip, and watched the serial stream for boo-boos using the Saleae Logic analyzer.

What the analyzer had to say

There were lots, and they had to do with non-deterministic boot times and the initialization sequence it takes to convince the PS2 that the controller is legit. More later.

WTPA2 Proto Starting to Pwn

Monday, September 20th, 2010

So the first iteration of WTPA2 has some dumbass mistakes — bus problems during flashing hardware (missing pullups), some switch latch goofiness, and turns out all those RC filters in the encoder datasheet really ARE a good idea. However, once all the traces got cut and the little merce-resistors got in place, the thing works great. The VCO is spot on. More importantly, so is the FLASH MEMORY! The SST flash kinda sucks in that it’s not fancy and requires you to manage erasing-before-writing and demands paying attention to buffering and stuff, but you can totally turn off WTPA2 and turn it back on and keep playing with that perfect burp sound you made.

Logic analyzer bus-sniffing.

Also, equally excitingly, the ISR has gotten A LOT FASTER — this proto recorded and played back just fine at 45kHz. A lot of this had to do with taking some very good suggestions from Olivier over at Mutable Instruments (of the Shruthi-1 fame) who is a great programmer and shamed me out of much laziness in my code.
As if that wasn’t enough, I finally licked the lion’s share of the noise sources that plagued WTPA1. I’d always been really careful about analog signal routing, but I’d been pretty cavalier about ignoring the hell out of some of the “Analog Noise Cancelling Techniques” in the Atmega datasheet. Turns out I traced most of the noise back to on-chip activity which had to do with reading and writing to the SRAM (toggling GPIOs) while the ADC conversion was taking place. I moved some of the accesses around and that NAILED it. Like, totally duh!

Also, re: the picture — I bought one of those Saleae Logic analyzers the moment they started supporting Linux because it seemed like a cool toy. But it’s actually really useful and works great! In addition to actually seeing what’s going on over the bus (as attached here) it’s REALLY handy for timing ISRs. Like, you toggle a pin high when you vector, and then low again when you exit. I always did this with a scope, but the logic analyzer is great because it records a lot of them and you can analyze variation, see what happens between several different calls, use many channels, etc etc.

Anyhoo, WTPA2 had an exciting week. It may take a break for a minute as I have a really busy winter coming up, but still, good time.
xo
TB

Video Game TiVos get rolled out.

Wednesday, February 24th, 2010

The dataloggers/TiVos/weird new media art passed the test and I got tooled up to make a bunch. Sometime in the interim, Atmel’s distributors RAN OUT OF STOCK on a lot of their dataflash parts and so there’s a smaller flash chip (the AT45DB161D vs the AT45DB642) which just so happened to be able to fit on that footprint. The tiny, precious Hirose DF series programming connector got replaced by a good-old 6-pin standard-ass 0.1″ header, which made my life easier and really didn’t lose us any board real estate. Above is the pasting of the boards. Yours truly was a human pick and place with these.

I got this fancy Fancourt Flip Rack to theoretically assemble WTPAs, but it got its first shakedown here. It was super handy for soldering in switches and headers for this design.

The assembled panels…

And one of the devices under test. The Cheetah sticker makes it run faster.