Main

ITP Archives

August 17, 2007

Material Connexion

Thanks to everyone who came out tonight to the closing party of the Interactive Youth exhibition at Material Connexion. I'd also like to thank everyone at Material Connexion, who hosted a great event, especially the outstanding Ben Rosenthal, Project Manager for Public Programs.

Also, in from the archives is a link from back in May from the Popular Science How 2.0 Blog about the ORB at Maker Faire.

July 11, 2007

Material Connexion: Interactive Youth

Material Connexion, New York has installed an exhibition entitled Interactive Youth which is an assortment of work from Michael DelGaudio, Anne Hong, Andrew Schneider, and my father and me, including Storyteller, Sasu Bracelets and Ochie's Cube, Solar Bikini, The Alphabet Machine, Mutherboards, City Streets, Northern Lights, and The ORB.

The exhibition was just blogged by the industrial design site Core77, and yesterday I took some photos, a few of which are posted below.



The exhibition will be on display through Aug. 3, 2007. Material Connexion is located at 127 W. 25th St., NYC. Many thanks to Ben Rosenthal @ MC for all of his hard work in making this exhibition a reality.

May 8, 2007

One final ITP all nighter

Just for old times' sake...

May 7, 2007

Full circle

Come to the edge, he said.
They said: We are afraid.
Come to the edge, he said.
They came.
He pushed them and they flew.
-Guillaume Apollinaire

Tisch School of the Arts Dean Mary Schmidt Campbell closes the ITP class of 2007 along with the rest of the TSOA graduates at Madison Square Garden with the same words used by Red to open our ITP class two years earlier. Thanks to everyone for an amazing experience. This is only the beginning, now it's on to "invent the future". See you all tomorrow at the show.

May 6, 2007

ultraORB Thesis Presentation

The presentation of the ultraORB at ITP Thesis week is now online and can be streamed here or downloaded here. I'm working now to improve the programming, moving toward displaying controlled geometric objects Tuesday and Wednesday at the ITP Spring Show.

May 3, 2007

Double spin (1/2).

Moving forward — a quick spin with one of the two boards. Now on to connect the brushes to power up the other half. More later...

May 2, 2007

Goodnight

The initial mockup. Time for bed.

May 1, 2007

Lights.

LEDs are soldered and testing is underway. There are a few minor bugs to tweak out with the lighting and then it's on to full assembly and programming. The color balance is a bit askew, but that's an issue for another day. 48 hours to go...

April 30, 2007

12.5%

Here's a view of 1/8th of the final assembly with LEDs in place. 280 LEDs to go.

Resting atop the PCB is the CNC machined aluminum board mount, holding in the foreground one of the four DC-DC stepdown converters from short-circuit.com. The board mount is topped by the three conductor commutator assembly, handmade from readily available materials and a few custom laser cut plexiglas spacers. The commutator mates with a set of brushes to deliver +15VDC, GND, and a timing signal from one of a pair of hall effect sensors mounted on the assembly rotating about the vertical axis (each quadrant of each PCB also has its own hall effect sensors to sense rotation about the horizontal axis).

April 29, 2007

ultraORB Concept Video

For those of you who haven't been following along with the in-person presentations, here's a little clip of video that was shot about a month and a half ago, showing the ultraORB concept in action. This is a demo and concept test with 4 single-color LEDs — the version due to be presented this coming week will have a total of 320 tri-color LEDs under microprocessor control to create a truly three dimensional persistence of vision display.

The final one hundred hours

Just under 100 hours to go until the first display of the ultraORB at my thesis presentation, Thursday, May 3 at 8:40pm. There is still a lot to do, but things are moving forward. 16 microcontrollers are interfacing with 128MB of onboard flash memory and my laptop through 8 dual-channel USB interfaces. Now it's on to wrapping up a few loose ends and then soldering the 320 RGB LEDs. Then on to the first spin. Stay tuned...

April 15, 2007

The view from the solder station

After a couple of days of intense soldering, the first major task is complete. The 960 0201 LEDs are all in place. It's funny, after two days of work, the boards look almost entirely the same to the naked eye. While I can barely focus on the screen to write this (seriously — now I understand what it's like to need glasses, if thankfully temporarily), the upside is that after soldering almost 1k 0201 parts, the 0402 package parts look like bricks and are easier than ever to handle. In any case, I'm here to say that it is very possible to hand solder 0201 parts. Time to go clear the head and get ready for another day of soldering tomorrow. In the meantime, here's the view from the soldering station:

April 12, 2007

Wuhan Direct

The circuit boards are here, having made the trip from the GoldPhoenix fab in Wuhan, China to Manhattan in about 36 hours. The parts are here, a day early in typical DigiKey fashion. Now it's time to start burning some flux. Before I do, though, here are a couple of quick photos from the unpacking process.


The virgin board. I have a pair of these to solder, with at a guess maybe 3-4k SMD pads each. It looks like I won't be seeing much daylight for the next week or two.


If you've ever wondered what $2k in DigiKey parts looks like, wonder no more. Not all that impressive on the surface, eh?

April 8, 2007

Forward Progress

Finally there is some positive progress to report on the latest ORB. The circuit boards have been designed and ordered (thanks, as usual, to Shane @ GoldPhoenix) and the CNC milled aluminum circuit board supports are completed and in hand. Many thanks to David Gotter (bio) and Rob Klaus of D&R Machine for their excellent work and patience in helping me through my first design for CNC fabrication. Check out David's other project, Further OPTIONS developing "innovative vehicle entry systems for wheelchair-bound individuals". D&R offers extremely capable and affordable machining services and is open for long-distance business via Internet and mail order. Contact them for your next project.

I'm also very excited to say that this piece has become a three-generation project. In addition to my collaborator and father, Ron Sears, my grandfather Jim McCoy is contributing his masterful woodworking and finishing skills to this project. Everything is in line for a beautiful piece.

This week, my biggest test thus far will begin: a massive soldering undertaking centering around 320 surface mount RGB LEDs, and a matching 960 resistors in 0201 packages. That's 0.024" x 0.012" for those of you keeping score at home. In addition, the design utilizes sixteen 80-pin PIC microcontrollers and a slew of other circuitry. If I can still focus my eyes well enough to see the audience at thesis week, I'll call it a victory. Starting later this week, when the parts and boards arrive, I'll be posting photos and possibly video of the assembly process right here on this blog.

For now though, here's a peek at one of the pair of aluminum board mounts fabricated at D&R Machine. There's much, much more to come, culminating in an initial exhibition at the ITP Thesis Week and Spring Show, on May 3 and May 8-9, respectively.

November 12, 2006

OrbPCB

The PCBs for the 3D spherical display are in, and here's a sneak preview of the beginning stages of assembly:

As I get farther into the assembly process (the entire system will use four identical copies of this board) I will attempt to get some action photos detailing my surface mount soldering process. This is my first time soldering a .5mm pitch QFP package (the PIC18LF8722) and I was pleased to find that it wasn't bad at all. The only remaining question mark then is the 8CASON package of the 64Mbit Atmel flash memory (shown at left upside-down next to its final home). It fits an SOIC-8 footprint, but with no width to spare, and it is a leadless package, so there is no pad or lead for me to solder with my iron. I'm optimistic about soldering it with ITP's rumored hot air station, so hopefully tomorrow you will be seeing photos of at least one fully completed board and one smiling student, and maybe a hot-air soldering tutorial from a rookie's perspective.

Otherwise, all is proceeding well. Here's a preview shot of the fantastic frame and support mechanism that my father is currently crafting for the project. This photo is a few days old, and the piece is coming along great. We should be starting to put all the pieces together within the next few weeks. Stay tuned...

Update:

I should also mention that I am trying Kester 331 Water Clean flux and the matching solder for the first time and it is incredible. At the first impression at least, soldering is just as easy as with the standard 44 flux/solder that I have been using for years, but the flux residue comes off the boards with a hot water rinse almost instantly. It's far easier to clean 331 with hot water than it is to clean 44 with acetone and alcohol, and obviously much more appropriate to do so in my apartment. I highly recommend it. Of course it is still leaded solder, so don't forget to wash your hands.

November 5, 2006

PCB Tools Overview

Michael Ang and I are teaching a DriveBy at ITP on Monday the 13th about electronics without breadboards, which is to say PCB design, production, and surface mount soldering. In the meantime, I thought I'd give a quick overview of my toolchain from PCB design to production. More details to come, both at the DriveBy and on this site. But for now...

PCB Design

CadSoft Eagle (Mac version requires X11 from Apple)

The freeware version of this package lets you draw boards up to 4" x 3.2". It's a great package, with solid part libraries, and good functionality to easily add your own custom patterns. It's equally at home with surface mount or through-hole designs, and it's the tool we will focus on at the DriveBy.

There are a few quirks to the interface that take some getting used to. First, in order to act on a group defined by the Group tool, you need to right click. On the Mac, this is substituted with a command-click (Make sure 'Emulate three button mouse' is active in the X11 Preferences). So to move a group of items, group them with the Group tool, then switch to the Move tool, command-click, and you're off.

Secondly, the Copy tool oddly only works with single items. To copy a whole group, you first use the Group tool to select them, then switch to the Cut tool. Command-click (note that this doesn't cut in the sense that Windows users are used to, but actually is more like copy), and then switch to the Paste tool to lay down the copy.

The next stumbling block is getting your files exported in the right format to get PCBs manufactured. Virtually always this means Gerber files. Here is a good tutorial from SparkFun about this. For my recent project, a 3D dimensional spherical surface display (PCB shown at left), I actually used the .cam file from the tutorial to do my export. The job is still processing, so we'll see how it goes.

Panelizing Jobs

For my last few projects, I have used Gold Phoenix PCB for production, and have been very satisfied with the service. They can go down to 4 mil trace/space (for an extra fee), and also have cool extras like colored soldermask (also for an extra fee), and a good expedited service (also for an extra fee - surprise?).

The special at Gold Phoenix typically is for one board of around 1 square foot. This means that, since the free version of Eagle can't handle designs over about 3"x4", we need a way to combine multiple designs after the fact into one panel.

GerbMerge to the rescue. This is a Python app that takes the Gerber files exported from Eagle and combines them into a single design using random placement to find a near-optimal layout.

It requires mxBase 2.0.4 and SimpleParse to install. Once installed, you control it using a configuration text file, which you have to customize to the specifics of your project (filenames, number of copies of each board, etc.). There is a sample configuration file in the documentation that will help you get started. Here is mine from this last project, if it might help.

Viewing Gerbers

Finally, once your boards are designed and panelized, you will want to take one last look at your files to make sure that all is correct before sending them (and your money) off to have the PCBs fabricated. There are a number of ways to accomplish this, but my favorite of the moment is gerbv, an open source package created specifically for this task.

There is a Windows port linked from the SourceForge page, but for Mac, the easiest way to get it is through DarwinPorts. It grabbed a whole list of dependencies for me completely seamlessly. You will have to add /opt/local/bin to your path if it isn't already included, though.

When it is all installed you can run it with the files you want to see as command-line parameters, giving you a view of your output files like the one shown here.

More...

This skips about 99% of the process of designing a board, but hopefully will be helpful in getting some tools setup and being able to start playing. Again, the DriveBy on Monday the 13th will cover this and more in more detail, so come with your questions or feel free to post them in the comments to this entry.

October 12, 2006

Censor This Post

I saw a talk this week by Ethan Zuckerman of globalvoicesonline.org, an organization dedicated to amplifying news feeds from the developing world into the eyes of our mainstream media.

Ethan's talk was motivational and thought provoking throughout, but I think the highlight for me was a quick story about a proxy server and a line of Javascript donated by the blogging community of Pakistan to help bloggers in India circumvent a goverment ban on blogspot.com URLs. From help-pakistan.com:

In light of the recent blogspot ban in India, the blogging community in Pakistan would like to present as a gift to the Indian blogging community a small script that can be inserted into their websites which converts all Blogspot links into a URL utilizing the proxy servers of pkblogs.com

Credit goes out to Adnan Siddiqui for creating this nifty javascript utility which quite simply needs to be installed on your file server and one line of code inserted into the header file of your website. Once installed all your surfers will automatically use pkblogs for all outgoing blogspot links

Download the ZIP file Pkblogs Script.zip

Please consider this as a gift from Pakistan to all Indians in hope of building friends across the border

God bless the hackers.


Another highlight of the talk was the conclusion when Red asked Ethan what we might do to help the world, what issues we might take on, and he responded:

You've got to find something you're passionate about, but passionate in a way that scares you. If it doesn't scare you, you haven't found the right thing.

October 11, 2006

Read Modify Write Errors (Why the **** aren't my LED's blinking right?)

This is an issue that I have encountered on virtually every PIC-based project that I have ever worked on. Trying to do something possibly as simple as turn a series of LEDs on at a time becomes a frustrating exercise in futility. Why?

It has to do directly with how the PIC modifies an I/O port when you set a pin individually. (NOTE: this may not apply to all models of PIC hardware, but I have encountered the effect in a wide variety of PIC devices).

When the PIC sees a command such as HIGH PORTB.0 it actually must read the entire PORTB from the pins into an internal register. This happens regardless of whether or not the pin is configured as an input by the TRISB register. Then it modifies bit 0 in the register and finally writes the entire byte from the register out to the I/O port.

Doesn't sound so bad, right? Well usually it's not, unless you do something like:

In this case with an LED connected directly from the PIC pin to ground, when the PIC reads PORTB from the pins, it reads the voltage across the LED, because that is what is connected directly to the pin. Unfortunately, depending on the color and exact makeup of the LED, this voltage will be anywhere from 2-4V, because the current through the LED is limited by the PIC to around 20mA (which is a good thing unless you like the smell of burning silicon).

In the worst case, with a typical red LED connected, the pin voltage will be in the neighborhood of 2V, which is low enough to be read by the PIC as a zero at least part of the time. This leads to a situation where if you were to execute a block of code like
HIGH PORTB.0
PAUSE 250
HIGH PORTB.1
PAUSE 250
HIGH PORTB.2
it's quite possible you will end up with only the LED on PORTB.2 turned on, since when the second HIGH statement is executed, pin B0 might be read as low and then get re-set to low, even though that clearly is not the intent of the code.

So what can you do? The simplest (and probably most correct) thing to do in this case is to simply add a resistor to limit the current through the LED external to the PIC. This means that the full 5V from the power supply shows up on the PIC pin, ensuring that the PIC will keep high the pins that are supposed to be high

This effect can also occur if there is a capacitive load on the pin, which can in some cases mean just excessively long wires, or a capacitor of course. The likelihood of this increases as the frequency of the signals gets higher.

This leads to another potential approach that I have used with good results (actually it's how the PIC running at 40MHz is operating with 32 channels of firmware PWM in City Streets, Northern Lights). This alternate approach is to leave all of the port pins set high (PORTB = %11111111), but to use the TRIS registers to turn the outputs on and off. In many cases, making a pin an input is effectively the same as driving it low, and this certainly works in the case of LEDs.

This means the above sequence of turning three LEDs on consecutively would look like this:
PORTB=%11111111
LOW TRISB.0 ' note that making TRIS low makes the pin an output,
' driving it high -- don't forget to invert your logic
PAUSE 250
LOW TRISB.1
PAUSE 250
LOW TRISB.2

The situation/solution is the same if you are coding in PICC or even PICASM. My understanding however, is that the AVR that is the core of the Arduino uses an internal shadow register that eliminates this problem, although I haven't checked it firsthand. You can also perform this function manually in the PIC by declaring a variable that acts as a stand-in for the PORT register. You then modify this and write the entire byte to the port manually, like this:
shadowB var byte
shadowB = %00000000

PORTB = shadowB
HIGH shadowB,0
PORTB = shadowB
PAUSE 250
HIGH shadowB,1
PORTB = shadowB
PAUSE 250
HIGH shadowB,2
PORTB = shadowB
PAUSE 250

Being the most complex, this is the solution I use least often. Typically I make sure my outputs are isolated with resistors and then use the TRIS method if I am doing something high speed, like PWM or capacitively loaded.

Hopefully this makes a little sense of some of those random problems that plague your breadboard from time to time.

October 4, 2006

Back to the Archives, pt. 1

This is an image I created last year in my first semester @ ITP. It started with a discussion with a friend around the question: If you could go back in time and remove one person from history, who would change things more than anyone else? He said Isaac Newton, which is a pretty difficult choice to argue against. While creating this image, however, I decided to pay tribute to one of the more unsung heroes of modern technology, the recently passed Jack Kilby, front and center holding a few examples of the early products of his work.

Kilby, who received his B.S. in Electrical Engineering from my alma mater, the University of Illinois, invented the concept and first example of the integrated circuit, that magical idea of forming many electrical devices in one block of substrate that has led to almost 50 years of unimaginable innovation. (Jack St. Clair Kilby Bio from Texas Instruments)



Circles

features:
Marie Curie

Albert Einstein

Robert Goddard

Jack Kilby

Isaac Newton

August 26, 2006

City Streets, Northern Lights

img5.jpg
We just launched a new website for my father and his artwork at ArtMagnitude.com. Our work was very well received during exhibition at ITP's Spring Show and Summer Gallery and we are now seeking opportunities for sale or further exhibition of the piece. For more information, contact ron@artmagnitude.com.

April 11, 2006

Northern Lights Demo Applet

For Living Art and Nature of Code, I am working on a simulation of the Northern Lights with Anne Hong for an art piece (introduced in this post) by my father, Ron Sears. I have mocked up software using Java and the Processing libraries to start experimenting with algorithms to control the light. The applet is based upon a simulation of 32 fixed color high-output LEDs arranged on 4 PCBs that will be mounted behind a large plexiglass lens inside a frosted streetlight globe (simulated with a gaussian blur in the applet), and uses a combination of trig functions with varying relative phase to approximate the dancing effect of the Northern Lights.
The code has been developed with portability to PIC C in mind, using lookups into a 1024 point quarter-wave 8-bit rectified sine table instead of real-time trig computation in order to save processor time with the intention that the simulation can run along with interleaved 32 channel PWM control on a single PIC18F4520 running at 40MHz.

View the applet.

NIME - Performance Plan


For my Chua performance I intend to use my analog chua circuit, with an X-Y interface made of slide potentiometers along with the variable inductor I have constructed previously. On the display will be the analog oscilloscope output, possibly processed with Max/Jitter.


Sonically, I envision the performance to start out very slowly, with solo Chua starting with quiet, simple, near-sinusoidal oscillations (near-circles on the display). Gradually the sound will get slightly more chaotic but still dry, and a simple electronic beat will enter. The Chua will stay dry for awhile, but as a bit of synth is added into the beat, effects will start to be added, opening up the stereo effect and adding a bit of delay. This will gradually build to a climax, which will be full on chaotic Chua with a bass enhancer shifting material down to the lower octaves and getting a very intense rumble in addition to the chaotic top end. At an appropriate moment, this will give way to dry simple near sinusoidal Chua with beats. The beat will stop, and then the Chua wave fades away.

April 1, 2006

Google Image Writer

Spells out a phrase using the most relevant images on the web (according to Google Images). You might be amused or you might learn a little something about the culture of the web.
Try it here or
View previous queries
Digg it.

March 28, 2006

Processing in Eclipse

Processing is great as a library but the development environment leaves a bit to be desired. Features like auto-complete, real-time error detection as you type, a fully featured debugger and the like can save immense amounts of time and frustration. For this, the free, open-source Eclipse can come to the rescue. With a bit of setup, you can be on your way to the best of both worlds in no time.

Setup

Environment

  • Auto-complete
  • Error detection
  • Error correction

Debugger

  • Debug Perspective
  • Breakpoint
  • Step Into/Over

Export

  • FatJar
  • HTML Example
  • Java Version Settings

CVS

  • Repository Info
  • Share Project
  • Download Project
  • Commit (Save) / Update (Load)

March 14, 2006

Chaos -- Distributed Computing

I just released my new distributed application for chaos research for my NIME musical instrument at http://grid.jamesnsears.com/

Even a low res scan of suspected areas of initial interest of the 6-dimensional parameter space involves some 546875000000000 data points, so download the app and start contributing to the future of chaos in music today.

Click here for more information on the Chua project as a whole.

February 25, 2006

Music is...

Music is a number made audible.
-Boethius

Thanks to Gideon and Jamie for these project references for NIME.

February 22, 2006

Attack!

3D life sim applet using rule based particle system to model carnivorous behavior. View the applet.

February 15, 2006

NIME - Concept Presentation

Controller for Chaotic Synthesizer and Effects

When/Why Chaos?

Original Project

Sound Design for Marisol

Simulation Applet

What's the Problem?

Portfolio Work

Chua Parameter Space (2D View)

Chua Parameter Space (3D View)

Effects

Time and/or Pitch Based

What's the Solution?

Analog or Digital?

Analog - Physical and/or Electronic Interfaces

Digital - Max, Java, Processing, C++ (VST), etc.?

Requirements

Many dimensional

High expressivity, at least in a few channels

Interface Approaches

Video Sensing

Hand Recognition

2 Hands * 3 Dimensions = 6D Control

Color Recognition

Use printed patterns and/or lights to control

Sensor-based Gesture Recognition

3D, Flight-sim like interface

Existing interfaces

Any ideas?

February 7, 2006

Attraction3D

Expanded last weeks Attraction applet into 3D. (view applet)

Finite State Machine

Pattern Generation
with Anne Hong
Double Helix based on two previous states, implemented in PIC with 5x5 LED Matrix. (simulation)

January 30, 2006

Living Art Instructions

Roll one die (if you roll a 6, then roll again)
- Take the corresponding word off the board.

Roll the other die (if you roll a 6 or the same number as you rolled before, then roll again)
- Take the corresponding word off the board. Then either put the two words back as they were, or exchange their positions.

Pass the action to the person sitting next to you.
OR
Declare the phrase completed.