Posts from the ‘Multi-Touch’ Category

Subscribe

The next set of components I’d like to talk about work together as the “source” and “detector” for touch-based input collection. But before I get into the components themselves I’d like to talk a bit about how touch detection works on a DSI table. I shall do my best to keep this post a bit shorter than the last two!

DSI Explained

Diffused Surface Illumination (DSI) works, as many multi-touch technologies do, by utilizing an infrared (IR) light source and specially filtered cameras to detect “touches” on the table surface. How the light source is generated is one of the key factors that differentiate the various technologies used to build a table. Previously I had planned to use IR lasers to build an LLP table, but for most other builds (FTIR, Rear/Front DI, DSI) IR LEDs are typically used as the light source. Configuration of the LEDs will vary depending on the build type but for DSI you typically have a strip of LEDs that inject IR light into a specially made acrylic that reflects the light out of the top and bottom of the sheet. I have discussed this property before in an earlier post.

So, imagine if you will, that you can see IR light. If you were to lay down directly beneath an IR lit piece of specialty acrylic you would see a nice even illumination of the surface – it would “glow” with light. Since you are underneath the table you would only be seeing the light that was projected “downwards” from the surface of the table. The light that was reflected “upwards” would largely be invisible – or basically overwhelmed by the light shining directly downward. This is best illustrated with some pictures and since I don’t have my table up yet and I didn’t want to steal anyone else’s images I have made some of my own to simulate how this would all look.

So this is what the table would look like through our “infrared vision” eyes (Pretend you are an Elf, or Half-Elf) when viewed from beneath:

Table surface lit with infrared

If someone were to touch or place an object on the surface of the table some of the light that was shining upward and away from us would be reflected back down towards us. We would see this as a “brightening” of the area where the touch or object was placed. It might look something like this:

Table and a touch point before processing

Now, for us Elves, this point is easy to see, but it’s not so easy for a machine to see. It would be a lot better if we could process the image such that the “bright” points really stood out. Well we can. I’m going to horribly oversimplify the process but one of the key bits is called background subtraction. As you might guess from the name, this processing involves “removing” the static areas of the image. In our case this means we can “remove” the light exiting from the bottom of the table surface since it doesn’t really change very much. By removing it, the lighted area of the table pretty much becomes “black”. If we then collapse the image to pure black and white – literally just two colors, not shades of grey – then the entire area of our view becomes black. Now when we touch the surface the most intense areas of reflected light will become pure “white” and stand out clearly from the background. These white points can then be tracked as touches – shown below:

Touch detection after image processing

And there you have it. Once you can detect the touches you can send touch events, just like mouse events (click, double-click, move, etc.), to applications.

So to recap, DSI uses a combination of IR LEDs and a specially manufactured acrylic that redirects light injected from the edges out of the front and rear surfaces. Touches on the top of the surface reflect some of the IR light downwards causing a brightening of the touched areas that can be detected by Elfin eyes (or specially prepared cameras which I’ll get to shortly). Got it? Good.

Lighting the Acrylic

Since the acrylic used in a DSI setup must be lit from the edge most people build or buy an LED strip. In order to achieve the required brightness you might need hundreds of LEDs – so I wasn’t terribly motivated to build. Thankfully the folks over at Environmental Lights are kind enough to have already built a few strips just for this sort of thing. I ended up buying the High Brightness 5050 strip which provides

5 meters of invisible light!

5 meters of surface-mounted LED goodness. If you decide to go this route remember to also buy a PSU for the reel. Imagine how annoying it would be to get this lovely little number only to realize you can’t turn it on! You can bring your own PSU but make sure to adhere to the proper specs for voltage and current.

This light strip will be strung around the edge of the acrylic to provide the required illumination for touch detection. The LEDs in this strip produce light in the 850nm frequency range. This is important to know because you’ll want to make sure your cameras can receive light in that range. I can assure you that these LEDs are indeed bright. While I personally do have the eyes of an Elf, I took the chance to fire up the cameras and turn the reel on as-is, without un-spooling it. Let me assure you, the reel lit up like a supernova! Guess what else? It also heated up like a supernova! In hindsight I cannot believe the level of stupidity it took to do this. It was only a minute or so before I could smell a faint burning and when I picked up the reel it was… intensely hot. I quickly pulled the plug and threw it in front of a fan to cool. Thankfully no damage was done (except maybe a shortening of LED life?) or at least no damage I can see. Learn from these mistakes people. I do these kinds of things so that you don’t have to.

A closer view of the LEDs

Do you See the Light!?

As Reverend Cleophus James once said to Jake and Elwood Blues – “Do you see the light?!?” Well, no, because it’s beyond the visible spectrum. But, with the right kind of camera you won’t have any problems. What kind of camera is the right kind? Well most modern digital camera sensors can pick up infrared and if you’ve ever seen One Night in Paris (harumph, harumph) then you know this to be true. Sony’s Night-Shot mode is a great example of this but in practice most cameras put in a filter to block IR light and most camcorders aren’t really well suited to building this kind of table. What we need is something that easily connects to a PC and can deliver streaming framerates of at least 30fps (and ideally something more like 60fps) at a decent resolution. It just so happens there’s a really economical choice that perfectly fits these requirements – the Sony PS3 Eye.

Capable of 640x480@60fps - Can you dig it?

Yeah that’s right. In fact the PS3 Eye will drive up to 60fps at 640×480 resolution over it’s USB interface when the proper drivers are installed. But in order to work for our purposes it requires some modifications. Namely removing the IR filter that prevents it from seeing anything outside the visible spectrum of light. There’s plenty of guides covering this on the net if you look around, but just like the LED strips there are people selling ready-to-go PS3 Eye cameras with the IR filter of your choice pre-installed. Some will even attach an m12 lens mount allowing you to choose from a variety of focal lengths from wide-angle to telephoto. I bought mine from Peau Productions. The m12 mounts also allow you control focus much better than the stock lens and focus has been found to be very important especially for fiducial recognition. Something else also matters for fiducial recognition – resolution.

Since I’m building a table with a wide aspect ratio (16:10) if I were to try and cover it with a single PS3 Eye (4:3) I’d end up giving up a good bit of resolution in the “vertical” dimension to cover the width of the table surface or I’d need to use a very wide-angle lens which tends to smear the image at the edges. Since I want as much resolution as possible this didn’t seem like a great option.

Two cameras are indeed better than one

Fortunately there is a very simple solution – buy more cameras. Recent updates to both the PS3 drivers and the camera processing software (more on that in later posts) allow for the outputs of multiple cameras to be combined into a single image. This is called “stitching”. In order to maximize the resolution of my captured images and give myself the best chance for reading small fiducials and possibly even barcodes I’ll be using a pair of cameras. At this point you begin to understand why having a fairly burly PC is required. If I am doing the math right (and I’m probably not) then for a single camera streaming a 2bpp (pure black and white) image there will be: 640*480*2bpp*60fps=36.8Mbps of data coming in. Add a second camera and you’re looking at almost 74Mbps. This doesn’t include any of the additional processing required for background removal and other image processing, blob detection and tracking, and object recognition. It should be noted that all of that processing needs to be completed in no more than 16.6ms per frame to maintain a 60fps framerate. Modern CPUs are pretty damn impressive, no?

Well, that covers pretty much all the raw components outside of the acrylic itself but I’m holding off on ordering that until I can get a mock-up assembled and verify all my measurements are correct. Next time up I’ll be assembling the PC, and the mock-up frame. Until then be happy that this post is about 900 words less than the previous one. I know I am.

Finally it’s time to talk about the projector. Why devote a whole post to this one component of the table? Because picking your projector is the single most maddening, difficult, and long lasting choice you will ever make about any part of your table build. The projector is forever, Bitch!

Why is the projector so damn hard to choose? Because many of the choices here will dictate entire sections of the rest of your build – overall table size, overall table height, bounce mirror(s), and camera placement to name a few. Why does the projector choice affect all of these items? Two words – Throw Ratio.

Throw Ratio

Simply put, the “throw” of a projector is a measure of the distance from the projector lens to the projection surface. It’s how far the image is being “thrown” onto the surface. The throw ratio of a projector is determined by taking the throw distance and dividing it by the projected image width. Projectors with large throw ratios will need to be further away from the screen to get a certain projected image size, projectors with small throw ratios (particularly those less than 1.0) are referred to as “short throw” or even “ultra short throw” and can often produce a 40-60″ diagonal image while being only 12-18″ away from the projection surface.

Why does it matter?

The simplest way to get a projected image onto a tabletop surface is to simply aim the projector straight up at the bottom of the surface. There’s a catch with that though, what if you want the table surface to sit 25″ from the ground? Well, let’s say you have a projector that’s 10″ long from front to rear. If you take that projector and point it straight up at the bottom of the table the lens is probably going to be sitting about 12-13″ from the bottom of the surface (remember you need to leave room for the cables to go into the back so that the actual front to rear length of the projector is going to be closer to 12-13″ rather than the 10″ length of the projector itself) leaving you with 12-13″ of “throw” to the bottom of the tabletop. Let’s say you want a 45″ 16:10 diagonal image – to get that in this setup you’d need a projector with a throw ratio around 0.31 – 0.32. This is because a 45″ 16:10 image is about 38″ wide. 12″/38″ (Throw/Width) = 0.3157. This is a pretty short throw projector! Well that’s great you say, you know the throw ratio you need, now just go find a projector with that ratio and you’re done! Well, no, not exactly. You also need to worry about the offset of the projector.

Offset

The offset of a projector is a measure of the distance between a line shot straight out of the center of the lens and the actual bottom (or top if you’re talking ceiling mounted) of the projected image. This is really hard to show without an image so thankfully the nice people over at InFocus have gone and made one that I will now share with you here. That doc does a far better job explaining offset in a few pictures than I ever could in words. Here’s the important takeaway – a projector with a zero offset means the image is evenly split in height around the center of the lens. This would be great for just pointing it straight up – center it in the table and go. Only slightly less good than an offset of zero is any offset less than or up to 100. With an offset of 100 you just center the projector width-wise and place the center of the lens aligned to the bottom (or top) of the projection area and you’re good. This works because most tables have a lip of some kind typically a few inches wide and most projectors are only 3-4″ tall, so you can easily “hide” the 2″ or so the projector sticks out past the projection inside the table. Problems arise as the offset increases and in almost every case it will be greater than 100. This means if you just point the projector straight up the distance it has to be offset from the actual projection area gets larger and larger and soon the entire projector will need to be placed “outside” your table enclosure to get any kind of image within your desired projection area. Now we have two problems to deal with – throw, and offset – so how do you deal with them?

Mirrors

I’ve already spoken about mirrors in a previous post and I’m just too lazy to link to it here but you can find it if you poke around. Mirrors can do two things for you – increase your throw distance and/or correct for an offset angle. So great, just tear the bathroom mirror off the wall and you’re set, right? No, not at all really. Most of the mirrors we deal with in daily life are what’s called second surface mirrors. This means the actual reflective surface is placed behind some kind of clear protective layer – typically glass, but often times acrylic. The reflective layer is typically very thin and fragile so putting it behind something makes a lot of sense – it allows you to clean the mirror without rubbing off the very thing that makes it a mirror!

A problem arises though if you try to use a second surface mirror as a way to collapse a projector’s throw distance. You get ghosting. This is maybe best explained by thinking about the old rear view mirrors in cars (not the fancy electrochromic auto-dimming ones we have today) that had that little lever on the bottom for “night driving mode”. These mirrors worked by exploiting the fact that the front surface of the transparent layer of the mirror ALSO acts like a mirror it’s just way less good at reflecting (meaning it’s less bright) so you typically can’t see it. The fact that it’s less bright is a good thing for a rear view mirror but this effect – when sitting a few inches away from a 2500 lumen projector is pretty noticeable. So what you get is a reflected image from the rear of the mirror, and a second “ghost” reflection from the front of the mirror. There’s an easy (but not cheap) way to solve this and that’s to use a… wait for it… First surface mirror.

A first surface mirror, as the name would imply, moves the reflective layer up to the front of the mirror substrate. This way there can be only one (!!!) reflection since the image never passes through to the back of the substrate and is only reflected off the “first” surface. The problem with first surface mirrors is that they are really expensive and also really fragile in the sense that it’s easy to damage the reflective layer, not that they are more prone to breaking – thought hey do tend to be pretty thin. First surface mirrors are used a lot for guiding lasers and hence tend to require really strict optical properties which the dumb-ass like me who just wants to bounce a projected image around has to pay for. There are some cheaper variants around but quality really can vary so be sure of the product before you buy.

All that being said – for just futzing around and general “aiming” of your image a second surface mirror can and will work. I plan to do some rough planning and design with a cheap IKEA acrylic mirror before dropping the cash on a good first surface mirror. Yes there will be ghosting, but you can scratch and scrape that cheap mirror without much worry during the early stages of a build and not cry about wrecking it.

As you can guess – if the offset of my projector is too much (and I am confidant it will be) I plan to use a single mirror to adjust and bounce the image properly to my screen. There may be some challenges to this but hopefully less than the original two-mirror bounce I was planning on the previous table build. The more mirrors you add the harder it becomes to solve for the right angles at all points.

Are We Ready to Buy a Projector Yet?

Well, no. So we’re already worried about throw ratios, lens offset, mirrors and angles – what else can there be? In addition to those items you also need to decide on the projector brightness (which is further impacted by your choice of projection material, the thickness of your acrylic “sandwich”, the expected brightness of the area the table will be used in, etc.) which is measured in lumens, the resolution and aspect ratio of the projector, the actual projection technology (LCD, DLP), the cooling and airflow, the available inputs and outputs, and even the overall size and weight. And let’s not forget flat out COST too. Oh and then there’s optical zoom, lens shift, keystone correction, networked/serial/remote control options, and probably about 20 other potential pluses and minuses to consider. Now you begin to understand why this one piece of technology can be a f$%king nightmare to decide on.

Ok, Are We Ready to Buy One Now??

Yeah, sure. I’m sure you’re thinking, armed with all this knowledge, that I spent days upon days planning, searching, and optimizing every aspect of my projector choice… nope. Here’s the reality – you do need to be aware of all the factors involved in your choice but when it comes down to it, you’ll have a budget, and you’ll go to some of the big projector reseller sites on the net and you’ll filter on price, then you’ll filter a bit more, maybe for projectors with a short throw, and then projectors with the resolution you want, and then you’ll have like 5-6 choices. NONE of those choices will be the projector you want. The projector you WANT is going to start somewhere around 5x your budget and it will be 3x larger in size than your table design can accommodate. But you’ll have your 5-6 choices and now you need to start doing your homework. Pick the “best” of those choices. Hooray, you’re a winner!

The good news is that you are not the first person to try and build one of these tables and there are places you can go to see what projectors other people have used. The NUI Group forums are a great place to do this. However, if you are a dumb-ass like me you’ll avoid that completely and try a brand new, just released, totally untested projector. Which brings me to…

The Dell S300 Projector

FINALLY! This is what I bought.

Meet the S300

The Dell S300 is pretty damn new. It wasn’t even shipping from Dell when I ordered it but the specs all seem pretty good and the price was what made me willing to take the risk of buying it. The S300 is a short-throw, 1280×800 (16:10) DLP projector. It supports both digital and analog inputs as well as network and/or serial control. The light output can reach 2200 lumens and it even has support for 3D. Typically a short-throw projector with this resolution and feature set would cost over $1000, probably closer to $1500 (and many still do), but the S300 can be had for a mere $899! It’s almost enough to make you think that it’s LESS than $900!! Seriously though, $899 is not a bad price so I went for it.

The projector is both light and small which should help with placing it. The throw ratio is right around 0.51 meaning I can get a 45″ diagonal image (my desired size) with the projector only about 19-20″ from the screen. The catch here is that the smallest image the projector does is 44.6″ diagonal. Why is that bad? Because it’s really damn close to 45″ and if I’m off just a bit the projector won’t be able to focus the image. The throw distance between a 44.4″ image and a 45″ image is going to be a fraction of an inch but the complete and utter madness of wondering why the image is just never quite focused properly and tweaking it (accidentally moving the projector 1/8″) and then trying to re-focus and seeing the image too big… it’s going to suck.

How can you not be drawn in by the sumptuous curves of that lens?

The projector sports a pretty significant array of connections which I hope to use to control it from the PC. This way when you power on the PC it will them power on the projector, and when you shut it down, it’ll power it off. It’s a small thing but it’s a nice feature to have rather than trying to rig up some physical or purely electrical way to do the same thing.

In my rigorous and extensive testing (playing XBOX360 games through the HDMI port) the S300 looks and works quite well. I am able to get something around an 8′ – 10′ diagonal image with the projector around 3-4′ from the screen (wall). There is no tearing or ghosting that I have noticed (in both Left4Dead and Left4Dead 2) but that might be related to the fact that I’m just thrilled as hell to have an 8′ gaming screen.

This thing has enough inputs and outputs to make a porn starlet blush!

I’m not going to say that my “testing” hasn’t had any effect of delaying the build of the table. I’m just going to let you figure that out by yourself. Go ahead, figure it out, I’ll wait.

So why is this a really dumb thing to do? Because I still don’t know what the real offset of the projector is. It’s not really addressed in the manual and I have not yet tried to measure it out myself. Either way, while the throw really is short, it’s not so short that I can just stand it on end and have the image size I want within the table height that I want. So I will almost certainly have a mirror in play. But depending on the offset adding that mirror might be really easy, or it might be incredibly frustrating – I simply don’t know yet.

Poorly photographed and smudged with fingerprints

I might be the first person to try a table build with this projector so there’s no one else’s experience to draw from. There is no reference design for these tables. That’s part of the fun, but it’s also part of the risk. I may have dropped $900 on a projector that won’t actually do what I want/need it to do. I might get it aimed and bounced perfectly but find it’s not bright enough, or too bright. But this is what hacking things like this table is about – picking the best parts from what you can afford and then finding a solution to the engineering challenges that arise from those choices. I’m sure I can make this thing work, I just can’t tell you exactly how yet.

Next time I’ll cover some of the other parts I already have that are key to the working of the table. I’ll also try to make a post that’s less than 2500 words. Even I’m getting sick of reading this post at this point. Until next time…

I was hoping to cover the projector selection in the first of these deep dives but as luck would have it the photos I took of it came out poorly focused for some reason and I’ve already re-connected everything and just don’t feel like tearing it apart right now to get new pics. So for now I bring you “The PC”!

As stated before this is the heart of the system, it reads the camera images, detects touches, runs the applications (the whole point!), and sends the images to the projector. If you want a responsive table then it follows that you want a responsive PC running it. This isn’t the place to skimp or cut corners but that doesn’t mean you can’t shop smart. I’ll try to point out the places I went “high” and places I went “low” which might help you make some budget decisions for your own build. Strap-in cause this is likely to be a long post.

I should say that I had an initial goal of spending no more than $1200 for PC components. I ended up going over this amount. The total cost of the PC components with shipping was $1331.52. Some of that increase was due to cheaper components I wanted being out of stock and me being unwilling to wait for them but all in all I think I came pretty close to the target while still getting a lot for my money. Read on for a rundown of the component listing and some hopefully useful insight into the selection process. Component pricing can be found on the Cost Tally page here and linked to in the upper right corner of the blog.

CPU

Intel Core i7-860 Lynnfield 2.8GHz LGA 1156 95W Quad-Core Processor

This is certainly one of those points where you can make trade-offs to save money. I could have gone with an i5 and saved a little, I could have gone with a higher-end i7 and spent a little more. In the end I felt the best choice was somewhere in the mid-ground. I initially wanted to go with a higher-end i7 which would have been on the LGA 1366 socket (supporting 3 channels of RAM). While prices for the processors were only 10’s of dollars apart the implication of using the LGA 1366 socket would be felt in motherboard selection – LGA1366 motherboards are measurably more costly than LGA 1156 (2 channels of RAM). In this case I felt the drop in memory bandwidth would be acceptable and that overall performance would not be significantly impacted – at least not enough to justify the additional cost.

It's 4 cores in 1!

The Core i7-860 is a quad-core processor with hyper-threading so it shows up as 8-cores under the OS. I really wanted a quad-core in this instance because I plan to stitch two cameras together for touch detection and I want to keep things highly responsive. Having multiple cores means I can run the camera processing and the actual touch applications each on dedicated cores (I can script them to start with core affinity if need be) removing the bottleneck of multi-tasking on a single, or dual core CPU. I won’t cover the advanced functions and capabilities of the CPU like dynamic power management and turbo-boost (K.I.T.T.!) as those have already been well handled by far more reputable sources than I. Needless to say Intel has a winner with this CPU and now I do too.

Motherboard

ASUS P7P55D LGA 1156 Intel P55 ATX

I really like Asus motherboards. I’ve probably built over a dozen PCs (well over most likely, I stopped counting) and I do not think an Asus board has ever failed me – and trust me, many of the mobos along the way HAVE failed me. This board is one of an extensive family of LGA 1156 boards in the P7P55D line sporting a wide array of features.

One of about 10 variants of this motherboard

You can spend as much or as little as you want on the various models, but I chose to stick with the base model. This is a case where my CPU choice allowed me to save money on this item. Even in base trim this is a solid Core i5/i7 mobo. All I really cared about is that it had an x16 PCIe slot, plenty of USB, and at least one firewire port. Everything else is going to be pretty much standard these days – embedded 1Gb NIC, SATA 3Gbs, onboard audio, etc. My only complaint is that I would have liked the physical size of the board to be a bit smaller but it shouldn’t end up being a huge issue going forward. Not much more to say here other than go team Asus!

Memory

Corsair XMS3 8GB (4 x 2GB) 240-Pin DDR3 SDRAM DDR3 1600

Four sticks of 1600Mhz Dynamite!

I wanted to have plenty of RAM for this build. If I had gone with an LGA 1366 CPU I’d have gone with 6GB of RAM (3x2GB) but since I went with the dual-channel LGA 1156 I decided that 4GB wasn’t enough and went up to 8GB. I did buy the fastest memory the motherboard would support – 1600Mhz – to insure I got the most out of both channels. RAM prices have surged up recently so going for 8GB was a costly move but I think it will be rewarded in practice when running the multiple applications and services required for doing multi-touch systems.

Video Card

Ahhh yes, the video card. This is the place where you truly can spend as much as you want – but probably don’t need to spend a whole lot. The recent models from both AMD/ATI and nVidia pack amazing amounts of graphical processing power into amazingly cheap cards.

Fear the "Rod"!

Right now AMD/ATI is on top for price/performance so I knew that’s where I was going to start looking. I wanted DirectX 11 support (don’t ask why, I just did) and I wanted an HDMI port since I knew my projector was going to have one (the only digital port on it). Performance-wise I knew I didn’t need the top-end but I wanted something capable that didn’t make huge sacrifices to meet a price point. After doing a bit of homework I decided the Radeon 5770 was a good choice. I chose an Asus implementation of the card mostly because of the huge callout on the packaging detailing the large weight of the card’s “Copper Rod” – any card that goes swinging it’s big rod around at all the other cards is the one for me. Needless to say the card has been fully inserted into it’s “slot” on the motherboard. Plus it’s 11% “cooler”… than something. So if the other 5770 cards are cool, this one goes to 11.

The 5770 is clocked at 850Mhz and sports 800 stream processors, the 1GB of RAM runs at an effective clock rate of 1200Mhz. Most of the specs are similar to the MUCH higher priced 5870 except the stream processors are cut in half. My feeling is that the extra processing power will not be missed as the table is only running at 1280×800 resolution. This card can drive even the most modern and demanding video games at 60-90fps at 1920×1280 with all the goodies turned on. I just intend to move a few 3D objects around and probably won’t even be doing multi-texturing or tessellation. It does support video acceleration which is important and will probably be the most utilized feature on the card. Bottom line – 70-80% of the performance of more expensive cards (in my use case) for less than half the price.

Storage

Mushkin Enhanced Io 64GB 2.5″ 64GB SATA II MLC SSD

It’s important to keep in mind that this is a task-focused machine. It’s not going to be my general purpose PC, it’s meant to do a few things well. In light of that I wasn’t looking for tons of storage. I have no plans to store a video library or my MP3 collection on here. I just want an OS, and a few core applications and most importantly I want them to load FAST.

230MB/s Read, 160MB/s Write. 100% Delicious

This meant getting a Solid State Disk (SSD). SSD’s are certainly the future of storage (or at least some form of hybrid of SSD and spinning rust will be) and typically blow any mechanical drive out of the water when it comes to sustained read/write speeds, seek times (approaching 0ms), and IOPS. But there’s a catch – SSDs are expensive, really expensive. Again this is where being willing to accept some limitations will pay off – break the mindset that you need 5TB of storage in your PC, if all you need is an OS and a handful of supporting apps even 20GB can be enough space. I know this because at work we do far more, with far less space on a daily basis and somehow we run a $60B company with it.

Mushkin may not be a well known name to some of you, but they are probably best known for their enthusiast RAM – before there was Patriot, OCZ, and Corsair, there was Mushkin. If you wanted to overclock your old BX440-based motherboard (PII-PIII era legendary chipset) and you wanted it stable you bought Mushkin RAM. Mushkin’s tech support would actually HELP you overclock where others would void your warranty. They replaced RAM that didn’t overclock well, and one time when I had a bad DIMM before replacing it the tech asked “Is your PC ok?” – he was actually concerned that the RAM may have damaged the other components. This made me a rabid Mushkin fan back in the day. That being said – Mushkin wasn’t my first choice for this SSD :) Not because of anything they did wrong, just because of cost. But after cycling through two other models that both went out of stock before I could order I settled on this drive from Mushkin. It’s basically using the same stock build as all other Indilinx barefoot controller drives and I expect similar performance and reliability. It does support the TRIM command under Windows 7 which was another requirement.

In practice the thing is fast – apps launch instantly, seriously. It’s also F’in TINY and totally silent (obviously) which is a little odd at first. Another benefit of SSDs is that they are mostly immune to mechanical shock – vibration/bumps/drops don’t affect them like standard hard disks – I figured this was a desirable trait in a table that might get nudged, kicked, and moved around alot.

PSU

CORSAIR CMPSU-650HX 650W ATX12V v2.2

I knew early on that I wanted a modular PSU to reduce cable clutter as much as possible on the build. I also knew this would increase the cost but it’s a worthwhile tradeoff and some of the previous decisions had freed up enough savings to compensate for it (mostly).

It's totally modular and it's a PSU!

I had used Corsair modular PSUs for a number of previous builds and have been very happy with them. They use flat, black ribbon-type cabling that makes for neat and tidy routing and a clean appearance. I was looking for something in the 500-550W range and for whatever reason I just couldn’t find a Corsair model in that range that also had modular cabling – despite knowing that I owned one previously (suppose I could have cannibalized it). Anyway I ended up getting a 650W variant of their HX line. Yes it cost more money and yes between this and the SSD I blew my budget – but not all that bad. I don’t intend to put the PC portion of the table into a “case” in the traditional sense so mounting the PSU should be interesting. I’d like to have the exhaust fan exit through the table shell but if that doesn’t work I can always duct to it.

OS

Microsoft Windows 7 Home Premium 64-bit

While Windows XP is certainly an option for a table build, in order to utilize all the RAM I had bought I’d have needed the 64-bit version of it and the 64-bit version of XP was never fully baked in my mind. That left Vista, or Windows 7.

Windows 7 - Hey, at least it's not Vista!

Windows 7 actually has native support for multi-touch input and I want to play with it at some point but most importantly it’s a fairly solid OS with good 64-bit support and is also SSD aware (they do require some special handling). There really was only one option here and I do believe (mostly) in the fact that you should be buying an actual OS license for any PC you build. I also believe you should hit up your niece, nephew, or cousin who’s still in college to hit the college book store and buy you the academic version that’s 50% less than what you’d pay online or at retail – but hey, at least you’re still buying it (that works for Office and Photoshop too BTW). NewEgg sells an OEM version of Win7 and that’s what I went for. No real surprises or wisdom here.

So What’s Missing?

Well, a case for one. But as I stated previously I don’t intend to case this build. I have an old case with a removable motherboard tray and I plan to utilize that as the base of the build. I’ll have pics of that up before too long.

Also, there’s no optical storage. I have about 30 CD/DVD drives to choose from, I’m just going to reuse one. In practice I don’t even know that the table needs one, but it might be nice to have. Even a USB device is an option here for when it’s needed.

I didn’t add a sound card because, for the tasks I plan to do, the integrated audio chipset will do just fine.

I also plan to add a bluetooth radio, RFID reader, 20,000-in-1 media reader (or whatever they’re up to now), and possibly a barcode scanner at a later point. For now I just want to touch the stupid thing and make waves in water or draw bad finger art. Once I have that mastered I’ll move on to device integration and proximity awareness.

For the last build I did a run-down of the overall parts list (found here) and for the new build I think it’ll be valuable to do the same as there are a few key differences. I think it might be surprising to see just how many off-the-shelf parts can be used in these builds. Future posts will go into greater detail on some of these items – particularly the computer and the projector.

Going from “top to bottom” the parts list for a DSI-based table goes like this:

Projection layer/Touch surface – sits on top of everything and allows a projected image to be displayed

DSI material – Some form of “end lighted” acrylic – it goes by various brand names (Endlighten being the most well known) but all exhibit the property that light entering from the edges of the material will be directed/reflected out of the face(s) of the material

Infrared (IR) light source – In the case of a DSI build this typically means some kind of string of IR LEDs. I’ll be looking at a 5M reel of LEDs – totally beats making it yourself. This reel of LEDs will be wrapped around the edge of the DSI material.

Mirrors – used to extend the throw length of the projector or to alter the path of it’s projection cone – might or might not need one of these in this build

Projector – Magic image making machine!! Too much to talk about here, look for a future post.

Camera(s) – These need to be filtered to pass only IR light, and more specifically only a certain frequency of IR light typically either 780nm or 850nm though sometimes higher frequencies are used.

Computer – The heart of the system – performance matters.

Framing and other construction materials – I’m still hoping to use T-slot aluminum extrusions for this but I’ll probably get some 1×1’s to build a mock-up design first

So what matters here? What’s different from the last build? Mostly the first 3 items.

First off, the projection layer – DSI materials are transparent, otherwise it’d be hard to get any of that light sent in from the edges out the faces, so they require a separate projection layer to show an image. This should sit on top of the DSI layer to keep the projected image as close as possible to the users fingers. This avoids the strange sensation of feeling “separated” from the interface and the frustration of having an “offset” between where touches are registered and where they appear to be displayed. This sensation is more exaggerated the greater the viewing angle gets. All this means is that this layer should be as thin as possible. Typical thicknesses are 3mm-5mm.

Next the DSI layer – This is the key to making the whole system work and is the defining trait of this kind of multi-touch build. I’ve covered it’s properties several times already so I’ll skip that for now. What’s important to note here is that this layer is the load-bearing part of the tabletop itself – it’s thick. It needs to be, so that you can get a lot of light into it from the sides which will come from…

Infrared LEDs – The lighting is now LED-based rather than laser-based. This is safer, first off, but it is more costly. This whole setup is more costly though so you’re either bought into that or not. You can certainly save some cash by buying a lot of high-powered IR LEDs and wiring them all up yourself but unless you’re really good at that kind of thing (I’m passably good but I’m also really lazy) it’s probably worth it to just buy something ready made that you know will work. A key difference is that rather than having a light plane above the table surface (where the LLP gets it’s name) the light plane technically IS the table and the IR is directly injected into it. You can make an LED Light Plane table (LED-LP) that works much like the LLP tables but my take on those are that you get the worst of both worlds – the cost of a DSI or FTIR table (lots of LEDs), and no fiducial recognition.

So that’s what I need to buy, well, technically I’ve already bought a good bit of it and that’s what I’ll talk about next time. I’m going to cover the major components and the thought process that went into buying them.

There are several core technologies available to build a multi-touch device – Frustrated Total Internal Reflection (FTIR), Diffused Illumination (DI), Laser Light Plane (LLP), and Diffused Surface Illumination (DSI) are among the most popular.

Previously I had intended to build my table based upon LLP technology as this was the most cost effective of the solutions and despite requiring a little extra TLC and setup provided very strong illumination and finger tracking. However, there are a few downsides to the technology, not the least of which is the chance of blinding yourself (no, really) with a powerful laser that doesn’t emit any visible light. This means you won’t realize you’re in trouble until it’s probably too late. The warning “Do not stare into laser with remaining eye” is ever so relevant here. If you’re careful you have nothing to fear but this is a concern. Another is that there’s no really good way to do fiducial (object) tracking with LLP. Some ideas were put forward but most are experimental and there is little software support for such a setup. Since I wanted to be able to track fiducials this was a negative, but I figured I’d get the table built first and then deal with this shortcoming later on.

Well, as my previous post pointed out, I’m starting a new build and with that new start comes a new technology choice as the basis for the build – DSI.

DSI utilizes a special acrylic with tiny micro-mirrors embedded throughout the entire surface that cause light injected into the edges of the material to be redirected out of the front and rear faces of the material. A simple writeup of the technology can be found on the NUI Group Wiki here. As you would expect a material that exhibits these kinds of properties doesn’t come cheap which is what put it out of reach on my previous build. With a larger budget this time around DSI has become a viable option. Given proper infrared illumination DSI provides solid finger tracking without the occlusion concerns of LLP and, most important of all, DSI provides a good basis for fiducial recognition and tracking.

Once I get a bit more design work out of the way I’ll be ordering the materials for this part (the actual surface of the table) – but for now I still have a PC to finish building and a projector to play with.