Volumetric Display Projects 200 Million Voxels Per Second

Over the last four years, [Will] and [Gav] have spent their time creating a huge, high-resolution 3D display. The’re just about done with their build, so they decided to offer it up to the Internet in the hopes of people creating new 3D content for their display. They call their project the HoloDome, and it’s the highest resolution volumetric display we’ve ever seen.

The HoloDome operates by spinning a translucent helix around its vertical axis at 20 rotations per second. A pico projector above the helix capable of projecting 1440 frames per second (an amazing device by itself) displays 72 ‘z-axis’ frames for each of the 60 ‘x and y frames’ per second. The result is a 3D display with a 480 * 320 * 72 voxel resolution capable of displaying 20 frames per second.

This isn’t the first time we’ve seen a swept helix used as a volumetric display, but it is by far the highest resolution display of its type in recent memory. [Gav] and [Will] have put their HoloDome up on the Australian crowd-funded site Pozible if you’d like to buy your own, but thankfully the guys have included enough detail on the main site to reconstruct this project.

Check out the video after the break to see the HoloDome in action.

Continue reading “Volumetric Display Projects 200 Million Voxels Per Second”

Homebrew FPGAs

Homebrew CPUs made out of logic chips are nothing new, but a homebrew FPGA is another matter entirely. [Joshua] sent in a project he whipped up where he made a single logic cell FPGA.

Despite how complicated and intimidating they are in practice, FPGAs are really very simple. They’re made of thousands of logic blocks capable of transmuting into AND, OR, NAND, and XOR logic gates. These logic blocks are all tied together, and with a somewhat complex hardware design language are capable of becoming a CPU, a micocontroller, or even a video card. Basically, programming a microcontroller tells a chip what to do, while programming an FPGA tells the chip what to be.

To build his single logic block FPGA, [Joshua] used a four-bit multiplexer to hard wire a truth table out of a 74HC174 D-type flip-flop. A bit of Arduino code changes the state of the pins connected to the multiplexer allows for any combination of TRUE and FALSE to be calculated for AND, NAND or XOR logic functions.

Yes, it’s only a single logic block for an FPGA, and if this build were expanded to even a few hundred cells it would be gargantuan. Still, there’s no better way to learn the ins and outs of abstract hardware, so we’ll gladly tip our hat to [Joshua] and his homebrew FPGA.

Reading Bare NAND Flash Chips With A Microcontroller

NAND flash, the same memory chips found in everything from USB thumb drives to very expensive solid state disk drives, are increasingly common. As they (partially) serve as the storage for cellphones, Wiis, routers and just about every piece of consumer electronic devices, you’re probably surrounded by dozens of NAND chips at any one time.

[Sprite_tm], hacker extraordinaire, put up a build a few years ago where he was able to read the contents of NAND Flash chips using a PC parallel port. It’s getting rather hard to find a parallel port on a PC anymore, so he updated his build to read Flash chips off of a USB port.

There are two main components of [Sprite_tm]’s build. First, to read the Flash chip, he needed a way to break out the pins on the very tiny TSOP48 package. [Sprite] found a neat little socket for these chips on eBay for about 10 Euros.

Communicating with the Flash chip via USB was a little harder. [Sprite] knew he needed USB 2.0, but not many microcontrollers have that implemented. Luckily, the FTDI FT2232H has USB 2.0, along with the very nice feature of being able to read data and address pins directly from the Flash chip. After a bit of soldering, [Sprite_tm] was left with the device seen above.

[Sprite_tm] found a nice library to bitbang the pins on the FTDI chip and request one page of memory from the Flash chip at a time. The device works as advertised, but it’s still a bit slow at 250 kBps. [Sprite] figures he can increase the speed of reading a Flash chip by requesting multiple pages at a time, but it’s still orders of magnitude faster than the old parallel port solution.

There’s a good bit of software [Sprite] posted to help him (and possibly others) read bare NAND flash chips via USB. This means if you have a broken USB Flash drive or SD card, it’s possible to desolder the chip and read it with your own controller. Interpreting the blocks of data recovered from a Flash drive as a file system is another story, but it’s still a fairly remarkable build.

Vending Machine Prototyping

[Vending Mexico] plans to design, build, and sell their of vending machines. You’ve got to start somewhere so they’ve built this prototype. It offers a range of vending features but was built with parts we’re used to seeing in hobby projects.

The one challenge they didn’t take on is the ability to identify coins and make change. You can see they’ve chosen to use a Coinco Guardian 6000 changer. But the custom circuit taps into the device, identifying how much money has been dropped in the slot, and controlling the coin dispenser to make change. Right now there is only one item to choose from; some packs of gum  stored in a cardboard partition with the typical metal corkscrew — driven by a servo motor — to dispense the product. Just below that partition there is a row of IR LEDs which have a complimentary set of IR phototransistors. The machine uses these to detect when product has dropped through. This way if your candy gets stuck you get your money back.

The user interface is shown off in the video after the break. It uses a set of seven segment displays for feedback. An arcade button is used to select the desired product. The video dialog is in Spanish but we had no trouble telling what is being shown off even though we don’t speak the language.

We can’t remember seeing other scratch built vending machine. It seems all of them have been hacks on older commercial vending hardware.

Continue reading “Vending Machine Prototyping”

Sculpting With LCD Pixels

Each one of the small squares in this sculpture is actually an LCD cell, and this is just the tip of the iceberg. What you see here is just a small portion of the sculpture that spans multiple floors of the atrium at the North Carolina Museum of Natural Sciences. It’s made up of multiple panels hosting a total of 3600 LCD cells. We first saw it way back in April, but now there is a ‘making of’ video which you can see embedded after the break.

The project took about 18 months to complete, starting with a 256 pixel prototype. That served as proof that the non-lit hardware would achieve the look they were going for. From there they designed the code which would generate patterns on the sculpture and used it to drive a digital model (we’d bet that was to get the go-ahead and funding). The fast-motion footage of the three-man assembly line formed when soldering up the circuits is fun to watch, the real nail-biting stuff comes when they start mounting the fragile panels in the space.

Continue reading “Sculpting With LCD Pixels”

Testing 30 Brands Of Batteries

Batteries come packaged in bright blister packs emblazoned with vague guarantees such as “45% more pictures” and “five times longer lasting.” During his internship at BitBox this summer, [Thomas] decided to put those statements to the test. He tested thirty brands of batteries on a homebrew rig to find the batteries with the most power and the most bang for your buck.

The hardware [Thomas] used an STM32 microcontroller to perform two different tests: a high drain and a low drain condition. For the high drain, 1000 mA were sucked out of the batteries until the voltage reached 0.8 V. For the low drain, 200 mA were used. Data including milliwatt-hours, milliamp-hours, joules, voltage, current, power, and effective load resistance were all logged for both conditions for all 30 batteries.

Generalizing the results for both low and high drain conditions, lithium batteries were better than alkaline, which were both better than zinc AA cells. Perhaps unsurprisingly, batteries marketed as ‘long life’ and ‘extended power’ were the worst batteries for the money, but a brand-name battery – the Kodak Xtralife cells – were actually the best value for the money.

Generating Random Numbers From White Noise

Even though rand() may be a good enough random number generator for making a video game, the patterns of random bits it spits out may not be sufficient for applications requiring truly random data. [Giorgio] built his own random number generator, and after many statistical tests it ended up being random enough for a few very complex calculations.

Previously, we saw [Giorgio] generate random numbers with a Chua circuit, but for all the complexity of building an electronic strange attractor there’s actually a much simpler source of random data: a white noise generator.

[Giorgio]’s random number generator for this project is just a pair of resistors, with an op-amp buffer, amplifier, and current switch to turn analog data into a digital output of random 1s and 0s. [Giorgio] sampled this data by plugging the digital out into one of the GPIO pins of a Raspberry Pi and recording the data with s small script.

To verify his sequence of bits was actually random, [Giorgio] performed a few tests on the data, some more reliable in determining randomness than others.

Because every project needs a few awesome visualizations, [Giorgio] plotted each sequence of bits as either a black or white pixel in a bitmap. The resulting image certainly looks like television static, so there are no obvious problems with the data.

[Giorgio] also performed an interesting Monte Carlo simulation with his megabytes of random data: By plotting points on a plane (with a range from 0,0 to 1,1), [Giorgio] can approximate the value of π by testing if a point is inside a circle with a radius of 1. The best approximation of pi using 10,000 points of random data came out to be 3.1436

Of course [Giorgio] put his random data through a few proper statistical tests such as rngtest and dieharder, passing all the tests of randomness with flying colors. An interesting build that shows a small glimpse of how hard generating really random numbers actually is.