Sunday, November 9, 2008

Better men than I (aka, Tinct Lives!)

OcTinct in caseYes, it has been forever since I've posted. No, in that time, I have done nothing on the Tinct. For that matter, I've done no electronics at all - the contents of my workbench are buried in boxes from when I moved, which was in July. Luckily, however, there are better people than me out there, and their work on the Tinct has continued. Unsped has some great shots of an OcTinct all cased up, and I hear Devon has been doing some great stuff at NYC Resistor.

As for me, well, since I can't foresee being able to get back into things in the near future, consider me dropped back off the face of the planet (to use unsped's words) once again. With any luck I'll post again one day.

Read More...

Monday, March 24, 2008

Distinct Tincts

When I decided to go ahead and have my own PCBs made for what would become the Tinct I posted a request for people who would be willing to split the cost of fabrication with me. Two people - Brad Hill and Devon Jones - were brave (or foolish) enough to respond, despite having no reason to have any confidence that the design would work; without them, I probably wouldn't have proceeded because of cost. It's great having people with whom I can bounce ideas around, to whom I can complain when things aren't working, and to whom I can brag when things finally work.

I'm very pleased to report that, a mere week after I completed the first OcTinct, Devon has completed his. We decided to go with computer science-style numbering, so we're calling mine Tinct 0, and his is Tinct 1. Brad isn't slacking off, either, and has been working on a number of monome/Arduino crossover projects, which you can see pictures of on his Flickr page.

A few other quick Tinct updates: I'm pretty happy with the current version of the firmware, and have cleaned up and commented the code to make it usable by others. I'm willing to call this a "release candidate," whatever that means in this context. There are a few minor optimizations I want to try, but I have one that works without any known bugs. I rewrote the TinctSerial program; the serial performance of Processing sucked, so I rewrote it in Python (my first Python program ever). That solved all of my problems, although the current version is a processor hog. Devon taught me everything I know about Python (over IM, no less), so he's going to fix up the code. Finally, the controller board design is forthcoming. I just need to test my power supply circuitry to make sure it works, and then it's time to have the boards made. After that, all that's left to do is build a case!

Monday, March 17, 2008

The OcTinct is up and running!

OcTinct


The OcTinct, the 8x8 member of the Tinct family (a full-colour monome clone), is up and running! The colours don't show up nearly as well in my videos (if anyone knows how to fix that, please let me know):




Technical details after the jump.

Read More...

Wednesday, March 5, 2008

RGB monome clone update and rename: Tinct!


The gist: the video above is of the second version of my RGB monome clone. The reason is looks so much worse that the first version on video is because it is so bright that it saturates my camera's CCD; in reality, it looks much better than the original. It is fully compatible with monome programs and the colour can be changed on the fly via software. The project has been renamed "Tinct," the 4x4 version shown above is called TiniTinct, and that's how I'll refer to them from now on. Right now, production kits are looking unlikely, but I do have a couple of extra sets of the prototype boards if anyone is interested in them. For more details continue after the jump.

Read More...

Friday, February 29, 2008

Boards have arrived!

AVR ICSP breadboard adapters


Wednesday was board-day for me, as both my AVR ICSP breadboard adapter (ordered from BatchPCB) and my RGB button pad (ordered from Advanced Circuits) arrived. Much to my delight (and, to be honest, a little to my surprise), they both seem to work great. If you got in touch with me about the breadboard adapters, you'll be hearing from me soon; some are not spoken for, so if you'd like one, get in touch (jmg shift-2 upwardnotnorthward dot com). Expect a full post on the RGB pad once I've got it all up and running (right now I only have four RGB LEDs, so I'm waiting for more to arrive before I can fully build it).

Oh, and Advanced Circuits included a bag of microwave popcorn with my board order. Seriously.

RGB button pad custom PCB - unboxing photos

Wednesday, February 13, 2008

In the works: RGB monome-esque kit

Update: This kit probably isn't going to happen for various reasons. Read about it in this post.

After talking with Brian, and obtaining his blessing (and advice), I've decided to invest the money to produce a custom PCB for an RGB button pad prototype. This design is completely different than my original, offering improved colour-depth and brightness: the pre-prototyping I've done blows the old one out of the water. I hope to have the design completed and the custom PCBs in-hand by the end of the month. What I'd like to do is order a medium-sized run of these boards so that I can split the development cost with like-minded hardware hackers. These would not be "plug and play" kits by any stretch of the imagination: these would require significant extra work to get them to do anything, and comfort working with electronics. The numbers will be kept small, so we can all easily communicate, and hence people who want to participate will need to be in touch with me first. This will be nothing like the monome kits, which are much more user friendly! You have been warned! If you fit this description, I need your feedback, so please read on and respond!

There are a few ways I could do this that I'm considering, each with their own advantages and disadvantages (both for me and for you). This would only be a board with the buttons and LEDs on it, as well as the circuitry to drive the LEDs. No logic would be on-board, that would have to be handled by an external microcontroller, most likely an Arduino (although your favourite board could work, too).

What I'm most likely to make first is a 4x4 button pad design to work with Sparkfun's buttons. It would include a small overhang to hold the circuitry to drive the LEDs, which would interface serially with whichever microcontroller platform you'd like. The serial interface would only control the LEDs; the buttons' wiring would be broken out to control however you like. All of the inputs and outputs will be neatly bundled together in a ribbon cable. Code and schematics for running it off of an Arduino (and possibly other platforms) would be made freely available. It would be possible to daisy-chain multiple 4x4 boards, but this would require more complicated off-board wiring. This kit would be the least expensive option, and also offers the most flexibility. The disadvantage would be that it would require the most outside wiring to get working, especially if you're planning on chaining multiple boards.

What I'd really like to make, personally, is an 8x8 button pad on a single baord, which would include a full serial interface for both the buttons and the LEDs, as well as power circuitry on-board (an 8x8 RGB pad uses a lot of current!). It is highly doubtful that I would do this initially for several reasons: for starters, it would be a much more complicated board for me to design and test. Perhaps more importantly, it would require me to invest in the professional edition of Eagle, which is an additional $600. That's money I need to put up initially, and it's money that would have to be factored into the cost of the boards for any other developers. So, unless feedback is overwhelmingly in favour of the 8x8 pad, this would most likely come later, if the interest existed.

Finally, there's the logic board. For now (and probably forever), this would be an Arduino. If you want to hook it up to something else, then by all means you could do so; if I hook it up to something else, I'll probably post code for it. For now, though, I'm developing on an Arduino and maybe AVR, so that's what I'll offer.

In terms of functionality, it will probably be possible to make this "monome-compatible," like my monomuino project. Of course, the colour functionality would not be accesible in this mode, you would have to pick the colour you wanted to display. I can't stress enough: if you want to build a monome, buy the kits from monome! This is for people interested in hardware tinkering. This device could also be controlled with a to-be-developed custom protocol which supports full colour, but in terms of software to utilize this, it would have to be custom written. Hopefully, if we get together a group of about a dozen people to do this, we'll be able to put together some neat stuff.

Here's what I'd like to hear from you:
  • Which kit(s) would you be interested in? How many?
  • The LEDs I like are from superbrightLEDs.com, and are much more expensive than ones you can find on Ebay, but much higher quality. If I bought a bulk order of those, and sold them at around cost (that's the discounted bulk cost, not the individual LED cost at superbrightLEDs), would you buy them bundled with the kit? (This would add ~$20 to a 4x4 kit, and ~$80 to an 8x8).
  • Similarly, would you want the Sparkfun buttons bundled with the kit? This would save you shipping from Sparkfun.
  • Can I contact you in the future with questions about the kit, and/or with announcements about the kits' availability?
  • Any other questions or comments you might have
If you email me (at jmg -atsign- upwardnotnorthward -dot- com), I will not give your information out to anybody under any circumstances. I will contact you precisely once, to let you know that the boards are available, unless you explicitly give me permission to contact you more, or ask that I not contact you at all.

If you don't trust me with your email address, and never want to hear from me, then simply leave your thoughts in the comments below. That's cool, too.

Monday, February 11, 2008

AVR ICSP 6-pin breadboard adapter

AVR ICSP (6 pin) breadboard adapter

Update: the boards have arrived. If you're interested in getting one, please email me at jmg (shift-2) upwardnotnorthward (period) com.

I think I'm really starting to get the hang of EAGLE CAD; not only is it no longer frustrating, I now really enjoy designing boards in it.

I've been teaching myself about directly programming AVR chips (stay posted for an article on that), and since I'm too stubborn (and cheap) to pay for a development board, I built and have been using an Evil Mad Scientist Labs-style minimalist target board. It works great, but the problem is you more-or-less need a different board for every different type of chip you want to program, plus, you need to shuttle the chip back and forth from the breadboard to the programmer. It would be great to be able to program the chip in-breadboard, by the dual-row header pin won't allow that. You can run wires directly from your programmer to the breadboard, but that's a little messy. So, I decided to make a simple breadboard adapter for the ICSP header.

This has been done before, but I really don't like dealing with perfboard, and I was itching to try having a PCB manufactured, so I designed the adapter and ordered a bunch up from Sparkfun's BatchPCB service. My design is set up so that the Vcc and GND connect directly into the bus lines of the breadboard to save two wires later on. I ordered a bunch of extras, so if anyone out there is interested in one, drop me an email and we'll work something out (assuming they work properly when they arrive).

Tuesday, February 5, 2008

Announcing: Arduino serial communications class at The Hacktory!

I'm very pleased to announce that I will be teaching Advanced Physical Computing Experiments, a course about serial communications with Arduino, at The Hacktory in Philadelphia! The course is design as a natural follow-up to their highly successful introductory Arduino classes: whereas that class deals with how to set up the Arduino and use it to control simple components, this course will deal with controller more complicated, "smarter" components, as well as talking with other devices like computers.

I've mentioned before that one of the things that terrified me when I was starting out was the prospect of reading integrated circuit datasheets and figuring out how to interact with them. Now that I've gotten the hang of it, I'm amazed at the huge range of chips on the market, and how easy it is to interface with the vast majority of them once you know a few basics. It really has the potential to transform your projects, and I'm really excited about sharing this knowledge.

So what are you waiting for? Go sign up!

Monday, February 4, 2008

Brief updates: RGB monome-clone v0.2 status, learning Eagle, inspiration's lousy timing, etc.

A brief update for any subscribers I might have picked up:

As I mentioned in the original post, I've got a design in my head for a revised RGB button pad that will be much brighter and have a much wider range of colour. I'm going to need to design my own PCBs for it so I've been learning Eagle, because I can't get the open source KiCad running satisfactorily on OS X. It was tough at first, but Tod gave me some great advice that helped get my head in the right place:
One of the problems you'll encounter when first starting to use Eagle is that it may look like a GUI program, but you have to throw out anything people have learned about GUIs for the last 15 years.
I also found Tangent's tutorials to be incredibly helpful, more-so than any written tutorial I found (the rest of his site is pretty great, too). Now that I'm getting the hang of it I'm really starting to love Eagle and have essentially decided it's worth the investment. I'm going to do a bit more breadboard prototyping before I buy the full version and design the PCB, so if any open-source evangelists want to switch me over to a free solution, you've got about a week to convince me!

I ordered 100 cheap common anode RGB LEDs from Ebay today. I figure if they're as good as the ones from superbrightleds.com then I've saved a tonne of money, and if they're not I can always get the more expensive ones once I'm done prototyping. A couple hours after ordering them I came up with a revised design that uses fewer components, less power, has a much simpler PCB, and, of course, requires common cathode LEDs. Just my luck. Still, I'm not positive which design will work better, so I'll probably just get some common cathodes as well and develop them both in parallel. Expect the first Rev. 2 write-up in the next week or two.

I'm expecting a shipment of components soon which should get me started on a lot of smaller things I've wanted to do for a while, which will also hopefully end up posted here. One of them is going to be a guide for transitioning from Arduino to AVR, using all open-source hardware and software. Hopefully this can help other people making the plunge as I am.

I've got a couple of other things in the works that I'm keeping under wraps for the time being. One of them should be announced in the next couple of days, and I'm very excited about it. The other is a new project, but I have no idea if it will work. I'm going to wait until I've got a working circuit before I post it, but if it does work, I think a lot of people will be interested in it. Keep watching the blog for updates.

Tuesday, January 29, 2008

monomuino: an Arduino-based monome compatible


I believe this is the first monome-compatible based on an Arduino (and possibly the first monome-compatible device, period). I call it the monomuino. I considered calling it a minimonome, since it is only 4x4, but I wanted to get some Arduino reference in there; as much fun as minimonomuino is to say, it's a bit of a mouthful. If I make a larger version, maybe I'll rename it. I'm pleased that, like the name of the original, there is a minimalist mathematical inspiration behind the term.


In an earlier post I presented a project that used the monome form-factor with the RGB colour blending in each button. That project, however, didn't communicate with a host computer, and had all of its software on the Arduino. This device uses the monome256 protocol to interact with MonomeSerial. The video above shows it pretending to be (one quadrant of) a monome sixty-four, interacting with several of the MaxMSP patches from the monome base collection. (Apologies as always for the lousy video quality!)

For information on how it works, read on.

Read More...

Sunday, January 27, 2008

Electronics shopping list, part II: Components

In part I I discussed the tools that one starting to play around with electronics should pick up - well, mostly I pointed out already existing lists of equipment, but who's counting. In this article I want to talk about the fun stuff: components.

One thing I wanted to get right off the bat was a big pile of parts, both so that I'd have a variety of things to play around with, and so that I wouldn't be missing any common parts when I needed to build something. I knew what various components did - resistors, capacitors, diodes, transistors - I just had no idea what values and types I would need and what I wouldn't. I was surprised at how little information I found on the subject, and that there didn't seem to be any good "starter packs" available (more on that later). I put together a list from this thread on the Arduino forums, along with Tom Igoe's books (Physical Computing and Making Things Talk, and a few other sources. Read on to see what I found.


Read More...

Sunday, January 20, 2008

January Make:Philly meeting

Yesterday's Make:Philly meeting - my first - was amazing! I'm so enthusiastic about it, it's almost embarrassing. It was quite literally several of my geek dreams come true, right down to going out for Pho afterwards. From 2600 sweatshirts to missing digits, the crowd made me feel like I was in a Douglas Coupland novel.

Don Miller's (aka NO CARRIER) talk was fantastic, and made me want to go home and tear apart my old NES to see for myself everything he had discussed. I definitely envision some future projects being inspired by that.

I was thrilled by the reception my button pad received. After the talk ended, people immediately approached me to ask about it, and I had a crowd for the rest of the evening. It was incredibly flattering.

Afterwards, a bunch of us went out, and I got to talk more with the folks who put the whole event together, who are also some of the minds behind The Hacktory. I can't wait to get involved in some more of their events, and hopefully I won't have to wait until next month's meeting to do so. I just wish I lived closer to the city, but it's definitely worth the drive.

Even my iPod seemed to pick up on the mood. For the drive back, shuffle started me off with some Stereolab before moving in to an hour long mix by The Kleptones: retro-futurism followed by creative repurposing. A fitting end to a great afternoon.

Saturday, January 19, 2008

My first project: Full-colour RGB monome clone (Trinome?)


Here it is, the first project that I designed and executed on my own. I'm thinking of calling it the Trinome, but that's still up in the air. Here it is running a simple demo program:



The monome is a gorgeous, minimalist, open-source light-and-button pad used primarily by musicians as a controller. The folks over at SparkFun Electronics, inspired by the monome, released their own button pads and circuit boards, only they designed theirs to be able to hold RGB LEDs. They made this nifty Tetris game with their parts. Looking at it, though, I noticed something: they only seemed to use a limited palette, in particular, they only appeared to have red, green, blue, cyan, magenta, yellow, and white, corresponding to channels being fully on or fully off. I wanted to see if I could get colour mixing, wherein channels were on partially in order to blend colours smoothly.

Read on for more details, videos, and instructions on how to build one.

Read More...

Thursday, January 17, 2008

A guide to connectors

As someone who has just recently been sifting through Digikey listings trying to figure out which header pins to buy, Alterscapes' connectors  blog post has impecable timing. In addition to his own information, he also points out this useful article from a pinball repair site.

Wednesday, January 16, 2008

Electronics shopping list, part I: Tools

As I have mentioned before, and will surely mention again, ladyada's site (and corresponding store) were instrumental in getting me started. In particular, her library section is worth repeated visits.

The purchase that got me started in all this was her Arduino Starter Pack. At the same time that I bought that, I knew I'd need to buy myself a set of electrical engineering tools (since the last time I'd ever set eyes on a soldering iron was about ten years ago). Luckily, ladyada has though of that. Her aforementioned library has a great electronic equiptment list with parts categorized, priced, and colour-coded by how essential they are. But she takes it one step further with her kits list, which lists a full set of equipment in three different price brackets, along with links to the items at Jameco and Elexp, two different retailers. I quite literally went down the basic list, clicked on all of the links to Elexp (which is cheaper), and bought them all.

The reason I'm posting this on its own and not just as a quick link someplace else is that I wish I had sprung for some of the "medium" components rather than just the basic stuff. First of all, if you're planning on doing any soldering at all, definitely don't get the cheapest soldering iron. Do yourself a favour and for the $45 Weller WLC100, or, if you can swing it, the $100 Weller WES51. You're also really going to want the Panavise Jr. if you're doing anything with circuit boards (and you will be). At $3 a pop, getting a couple extra sets of helping hands is also a good idea (don't bother with the magnifying glass, at least not on extras). Other than that, I wholeheartedly recommend the "basic" kit. At first I thought I should've paid a few bucks extra for the fancier wire strippers, but I've found the cheap ones work just fine.

One thing that ladyada's lists don't mention is solderless breadboards. These will be your best friend when playing with and prototyping circuits. Right now I only have a couple, but I plan on stocking up soon, so that I don't need to break down one project to build another. The best source I've found is here, where they have free shipping over $25. I'm planning on picking up a bunch of their 830-point boards and a couple of 400-point boards to push myself into free shipping territory.

That's about it for tools and equipment. In part II I'll talk about building a small and simple parts library that will give you plenty of components to play with, along with things you'll want and need for building your first few projects.

Tuesday, January 15, 2008

Introduction: the makings of an electronics dilettante

Ever since I was a very young I've loved the idea of computers interacting with the real world. I distinctly remember my excitement when my father got his first car with an onboard computer (and even more vividly remember my subsequent disappointment that all it did was show the temperature and calculate the remaining distance on the current tank of gas; it wasn't the capabilities that disappointed me, but rather the lack of interactivity).

I didn't know it at the time, but what I wanted to learn about were microcontrollers. I learned to computer program very young, and have been ever since, but always wanted to make my programs do something in the physical world, not just in the digital world. Still, for whatever reasons - difficulty, cost, laziness - I didn't learn how to work with microcontrollers or electronics.

Finally, about a month ago, I finally decided to do it. Make magazine and the DIY movement had inspired me to build things more myself, and when I saw the Arduino starter pack on one of the Make magazine gift guides, I went for it.

I'm amazed at how much I've learned since then. There's a wealth of knowledge out there, and I highly recommend looking at the Arduino tutorials (and everything else!) at ladyada.net. The PDF files from the Bionic Arduino course are also great. There are also some great books on the subject. I highly recommend Tim Igoe's Physical Computing (which doesn't deal directly with Arduino, but the theory is great) and Making Things Talk. (If you have to get just one, get Physical Computing.)

Still, there were many times where it took a lot of Google searching, and often some trial and error, to figure something out. I'm hoping to document my successes (and failures) here in the expectation that other people might have the same questions I did, and hopefully I can fill some of the gaps that I've found.