posted by ultra (ultra)
on 24.09.2007 13:56
In case anyone is following the gradual progress of the monome-inspired
Stribe...

A power-supply mixup fried most of the led driver ICs in the new
protoype last week, but I manage to limp along with a few busted chips
and by the end of the weekend actually have independent cursors
working:

http://www.youtube.com/watch?v=pCqXm04-0L8
posted by tehn (tehn)
on 24.09.2007 16:29
good work. i'd really be curious to see the wiring/circuit boards behind 
all those led banks!
posted by kevin (kevin)
on 24.09.2007 18:24
mega bummer about the power supply. it's looking beautiful though.

when you're done are you going to post all of the info needed so that i 
can build my own? =)
posted by ultra (ultra)
on 24.09.2007 18:49
Yes, schematics, firmware, patches, etc will all be available.  I will 
also have leftover parts and extra circuit boards for sale.  I might 
even make a kit if I can refine the design enough.  I'd love it if other 
people helped me write some cool software for it and/or figure out how 
to use it alongside a monome.

I'll post the latest circuit board designs this evening when I get home. 
I made a couple of mistakes with the driver board but so far have been 
able to work around them and will make a much improved design for the 
2nd pass.  I'd also like to redesign it to only require a 2-layer board 
- the 4-layer boards are expensive.

There's one big conceptual goof that requires a sort of lame software 
workaround.  In short, row 8 is at the top of each 8x8 matrix, but 
matrix 1 is at the top of the grid (a grid is 8 8x8 matrices stacked on 
top of each other - the Stribe has 2 of these) so counting goes 2 
directions.  Doh.  I made a nice array called flip[] to solve the 
problem e.g. matrix=flip[matrix];  that allows me to keep the code 
semi-tidy and logical.  And if I solve the problem in hardware later I 
won't need to completely re-write the firmware.

Hopefully my replacement MAX7221s will show up soon so I can light up 
the whole board.  I'll use the correct power supply this time.

posted by bolig (bolig)
on 24.09.2007 19:18
hey ultra have you gotten your 4051's up and running? i have been trying 
to get potentiometer box rolling for the last few days using simple 
multiplexing stuff but straight my code skills aren't good enough.

any examples somewhere you could point me to?

the arduino forum thread is here: 
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1189189043/30

thanks
posted by ultra (ultra)
on 24.09.2007 19:30
I side-stepped the 4051/multiplexing issue myself by upgrading to the 
Wiring board, which has 8 DACs instead of the Arduino's 6.  So I haven't 
tackled this, yet.

Update: I took a quick look at the thread.  I think you will get it if 
you just keep working at it.  beginSerial was a valid Arduino command at 
one point: http://www.arduino.cc/en/Reference/BeginSerial - but maybe it 
has been deprecated?  I found much of the example code does not work in 
the latest Arduino builds due to minor syntax changes here and there - 
you have to hunt each one down it is a little frustrating.

I would try to follow this as closely as possible:

http://www.arduino.cc/playground/Learning/4051

It's unfortunate the diagram is so small and blurry....

I had the same issue with the bootloader not working because the 2 pins 
marked TX/RX are also used for serial communication.  Very frustrating 
because if they're being used for something else the bootloader doesn't 
work.  In practice you would have to disconnect those 2 pins every time 
you upload a new firmware.  So use 2 different pins.  The Wiring board 
is much better behaved and doesn't have this issue.

It looks like you are getting some good help there but I have found the 
Arduino forum to be a little slow especially when you're really in the 
thick of it and when you get really bogged everyone seems to evaporate. 
I think it is really just a subjective feeling.  To me this is usually a 
sign that I am thinking too hard or rushing ahead without full 
understanding and need to back up a couple of steps and then I figure 
out why my questions were dumb and no-one answered.

This is usually when I go look at other resources on the web and/or take 
another read thru the datasheet.

Hm, this video is intriguing: http://www.youtube.com/watch?v=jTG7KT3G7b0 
follow the link to the website... you will be intrigued but it's hard to 
find the hard info.

Oh, and check this: http://forum.monome.org/topic/989#7139  frogstar 
seemed to get it working and maybe can help?
posted by ultra (ultra)
on 24.09.2007 22:55
kevin wrote:

> when you're done are you going to post all of the info needed so that i 
> can build my own? =)

tehn wrote:

> curious to see the wiring/circuit boards behind all those led banks!

Here's the layout of the LED board, where all the 10-segment bargraphs 
are:

http://soundwidgets.com/misc/xenome_led_board_m1.pdf

this is what it looks like in real life:

http://www.soundwidgets.com/uploaded_images/IMG_3932-722192.jpg

this gets sandwiched with this board:

http://soundwidgets.com/misc/xenome_driver_board_m6.pdf

which looks like this:

http://www.soundwidgets.com/uploaded_images/IMG_3984-781356.jpg
http://www.soundwidgets.com/uploaded_images/IMG_3980-733967.jpg

There is a male and female header that runs the entire perimeter of both 
boards and connects everything together:

http://www.soundwidgets.com/uploaded_images/IMG_3934-783721.jpg

This has turned out to be surprisingly robust as I have opened and 
closed this thing 100 times while debugging and it's holding-up pretty 
good.  I have the female headers on the top (led) board and the male 
headers on the bottom.  I had actually planned the other way but when I 
got the led board I realized I made the holes around the border too 
small so they would only accept the smaller pins of the female header. 
It was good that I learned this before ordering the driver board as I 
was able to make some last-minute changes.

I'm now about to build a second version of the bottom board as I screwed 
up the holes for the 20-pin connector (installed it on the wrong side 
then tried to get it out again) in the first one.  So now everything is 
wired 1-to-1 by hand onto little the tiny pads and the joints are 
brittle and keep snapping as I wrestle this thing around.  It'll be nice 
to just have the ribbon cable there and know the connections are secure.

expressPCB sends you 2 (min order) of each board for a reason I guess. 
The boards are really nice.  They aren't solder-masked, all the traces 
are exposed, so you have to be extra careful soldering, esp with how 
close some of my traces are.  But they are made of stuff that melts at 
fairly low temperature and kinda oozes out to create a little automatic 
border between each solder joint, which is awesome.  They seem very well 
made - I made some dang-close traces in my quite complicated design but 
so far I haven't had a single short that wasn't my own fault.

If you have expressPCB software (free download) and want to mess around 
here's the source files:

http://soundwidgets.com/misc/xenome_driver_board_M6.pcb
http://soundwidgets.com/misc/xenome_led_board_M1.pcb

Note the second board is 4-layer - the +'s and -'s indicate whether that 
hole connects to the ground or power layer.  I want to redesign this one 
as a 2-layer board.  Also I accidentally overlapped the 2nd resistor 
hole with one of the IC leg holes so that's a known issue.  I want to 
add an electrolytic cap to each IC circuit, plus move the 8 3-hole 
connections for the touchstrips more towards the edge of the board 
(3-pin headers in there now need to be angled out to meet the strip 
connectors).  And there are quite a few close traces and "flying 
walenda" traces that wrap around stuff awkwardly that I'd like to 
eliminate.
posted by longjohns (longjohns)
on 25.09.2007 01:30
pretty impr3ssive! :)

apparently, I'm not allowed to post the word impr3ssive, as it's spam

but I still think your project is cool
posted by ultra (ultra)
on 25.09.2007 12:12
Okay, now 1/2 of it's actually working: 
http://www.youtube.com/watch?v=u1wpTZNGz3M

Sorry for the bad sound and programming but there it is.

I don't show the test pattern but note that I am able to light 1/2 of 
this thing up w/ USB power e.g. 512 leds at once!  And that's while 
plugged into a USB hub.  I changed all the ISET resistors to 47k which 
lowered the overall brightness a little but still plenty bright.  When I 
add the other half I will probably start to draw more than 500mA and 
will need to add a power adaptor.  I'm going to try a 5V 2A wall-wart 
first.

HowEVER, if I write programs that never use more than 1/2 leds on at 
once, e.g. optimized to a 512 led maximum resolution, theoretically I 
could run both grids off USB power no problem.  I'll need to do some 
measurements and see whether each matrix adds to the requirement or 
whether it fluctuates with each led / row going on and off.  It would be 
cool to keep this wall-wart-free like the 40h.  I may however be drawing 
more than 500mA... hm now that it works maybe I should try not to blow 
it up again.  I do have a Variac...

Thoughts?
posted by tehn (tehn)
on 25.09.2007 12:23
really nice work. it's great to see the circuit boards (i know those 
were probably expensive!) and how far it's come along since the 
beginning.
posted by pat-stormont (pat-stormont)
on 25.09.2007 13:35
wow, that's going to be awesome when it's fully working.

are you thinking of releasing it as a kit, or something?
posted by ultra (ultra)
on 25.09.2007 14:04
Yeah, a kit might be the way to go.  Lots of work to do refining the 
design, though.  I am definitely going to have to re-design the driver 
board.  I also thought of a version with 1/2 the MAX7221's and just 
double up the cursors (the way they are in the demo).  In the current 
design I can control each narrow column of leds independedntly, e.g. 
display 8 stereo channels (the software is just dumbed-down to get 
going).  But simplifying it to have 8 mono displays cuts the cost and 
complexity (and power requirements).

As tehn mentioned, the boards are expensive, and so are the led drivers 
and touchstrips, but economies of scale (e.g. ordering a whole bunch) 
can bring the price down significantly.  Also, if I design the 
touchstrips as one custom part (e.g. a sticker with 8 strips built-in 
and one connector) and order that in some bulk, that can save a lot 
right there.

I also don't like the idea of requiring a Wiring or Arduino board, I'd 
prefer to design my own logic/controller board.
posted by jonbro (jonbro)
on 25.09.2007 14:16
where did you source your 7221 from? I got a few samples from maxim, but 
I don't know how often they will let me do that.
posted by tehn (tehn)
on 25.09.2007 16:32
digikey carries maxim chips.

i'd definitely design your own logic board, though at the same time 
arduino boards are super cheap and realiable. if you create a simple 
header that the thing just latches onto it'd be actually a very nice 
solution.
posted by ultra (ultra)
on 25.09.2007 17:01
I think the limit for samples from MAXIM is once per month per item.  I 
found a good source for cheap parts called futurlec.com - the packages 
come from Thailand though so I'm not 100% sure how that stacks up in 
terms of supporting mistreatment of workers et al.  When / if I do make 
kits I hope to source all the parts semi-locally and stick to RoHs 
compliant / green parts - a la monome.

Being able to just push an Arduino or Wiring board onto headers on the 
driver board sure would save a lot of grief.  Instant USB port, power, 
bootloader, etc.  With Arduino I will have to figure out how to 
multiplex the inputs (w/ 4051 or similar) since it has only 6 ADCs. I've 
been looking at the various Arduino clones but none have 8 ADCs.

I still have to see if I can get the other half of this thing running 
and also write some Max programs that don't sound like a scary movie.
posted by pat-stormont (pat-stormont)
on 26.09.2007 03:22
Futerlec source from all over asia, and they distribute from a few major 
offices around SE asia and Australia. So your parts could have come from 
anywhere.

Is there much of a choice when getting electronic components these days? 
nearly every component i've bought over the past few years has come from 
china, malaysia, phillipines or somewhere similar.

From my experience in international trade, companies that make products 
like semi-conductors generally have better working conditions than other 
industries like clothing. Some of the factories i've been to in china 
are run very well. Hell, I worked in worse factories when i was a dodgy 
backpacker living in the UK back in 2000.

Get in touch with the components brand, maybe they can shed some light 
on workers conditions. I know a lot of these big companies actually 
pressure the factories into minimum wages and conditions for the 
workers. Admittedly a lot of this is just lip service, but there are 
some factories who take it seriously. The company i work for has ceased 
business with factories after seeing their poor conditions for factory 
workers, no matter the price advantage. Now we don't do business until 
we've done a visit to the factory. Even so it's almost impossible to 
completely ascertain how the workers are treated.

And while not entirely the case, generally factories that are based in 
major cities treat their workers better, because there is a lot of 
competition for labor, and people have more choice about employment.

Sorry, kinda got a bit off topic there.
posted by tehn (tehn)
on 26.09.2007 11:34
pat, i completely agree.

on a severely smaller scale, we toured our pcb assembler's facilities a 
few weeks ago in rural PA, and beyond being incredibly informative it 
was really very fun.