Zooids — Swarm User Interface

What the heck is a Zooid? A Zooid is a small cylindrical robot, measuring 26 mm in diameter and 21 mm in height, weighting about 12g. Each robot is powered by a 100 mAh LiPo battery and uses motor driven wheels — and these things are snappy at a top speed of about 0.5m/s. Each Zooid is able to know if you touched it via capacitive touch sensing. It has wireless capabilities through an NRF24L01+ chip. So, what’s it for, you wonder…

zooids-swarm-robotics-thumbOne robot might not do much but the idea behind the Zooids is the introduction of swarm user interfaces, a new class of human-computer interfaces that involves multiple autonomous robots to handle both display and interaction. In a joint work between the Shape Lab at Stanford University (USA) and the Aviz team at Inria (France), researchers developed an open-source open-hardware platform for what they called “tabletop swarm interfaces”. The actual interface involves a swarm of Zooids, a radio base-station, a high-speed DLP structured light projector for optical tracking and a software framework for application development and control.

In the demonstration video we can see some examples of use of the Zooids. Could the resolution be measured as, erm, ZPI? Near the end of the demo we can see a new level of interactivity where the swarm quickly works together as a team and sort of fetch the user’s phone. Now, if they can be made to scour the house in search of our keys, that would be something…

Continue reading “Zooids — Swarm User Interface”

LTC4316 Is The I2C Babelfish

The LTC4316 is something special. It’s an I²C address translator that changes the address of a device that would otherwise conflict with another on the same I²C bus. Not a hack? Not so fast. Exactly how this chip does this trick is clever enough that I couldn’t resist giving it the post it rightfully deserves.

On-the-Fly Translation

What’s so special? This chip translates the address on-the-fly, making it transparent to the I²C protocol. Up until this point, our best bet for resolving address collisions was to put the clashing chip on a separate I²C bus that could be selectively enabled or disabled. In that department, there’s the PCA9543 and PCA9547 demultiplexers which we’ve seen before. Both of these devices essentially act like one-way check valves. To address any devices downstream, we must first address the multiplexer and select the corresponding bus. While these chips resolve our address collision problems, and while there’s technically a way to address a very large number of devices if we’re not time-constrained, the control logic needed to address various bus depths can get clunky for nested demultiplexers.

What’s so classy about the LTC4316 is that is preservers simplicity by keeping all devices on the same bus. It prevents us from having to write a complicated software routine to address various sections of a demultiplexed I²C bus. In a nutshell, by being protocol-transparent, the LTC4316 keeps our I²C master’s control logic simple.

How it Works

I mocked up a quick test setup to have a go at this chip in real life. Continue reading “LTC4316 Is The I2C Babelfish”

This 3D Printed Microscope Bends For 50nm Precision

Exploiting the flexibility of plastic, a group of researchers has created a 3D printable microscope with sub-micron accuracy. By bending the supports of the microscope stage, they can manipulate a sample with surprising precision. Coupled with commonly available M3 bolts and stepper motors with gear reduction, they have reported a precision of up to 50nm in translational movement. We’ve seen functionality derived from flexibility before but not at this scale. And while it’s not a scanning electron microscope, 50nm is the size of a small virus (no, not that kind of virus).

OpenFlexure has a viewing area of 8x8x4mm, which is impressive when the supports only flex 6°. But, if 256 mm3 isn’t enough for you, fret not: the designs are all Open Source and are modeled in OpenSCAD just begging for modification. With only one file for printing, no support material, a wonderful assembly guide and a focus on PLA and ABS, OpenFlexure is clearly designed for ease of manufacturing. Optics are equally interesting. Using a Raspberry Pi Camera Module with the lens reversed, they achieve a resolution where one pixel corresponds to 120nm.

The group hopes that their microscopes will reach low-resource parts of the world, and it seem that the design has already started to spread. If you’d like to make one for yourself, you can find all the necessary files up on GitHub.

Continue reading “This 3D Printed Microscope Bends For 50nm Precision”

Down And Dirty With Contact Cleaners

I had a friend who was an engineer for a small TV station. I visited him at work once, and despite the fact that he wouldn’t let me climb the 1,200′ antenna tower, I had a great time. I was working for a video production studio at the time, so there was a fair amount in common about our jobs. One of the regular chores we faced was cleaning the heads on tape machines. He had a 5-gallon pail of cleaning solution under his bench that he told me was Freon, which he swore by for head cleaning and general contact cleaning. He gave me some for my shop in a little jar.

I never knew for sure if that stuff was Freon, but it was the mid-80s, shortly before CFCs were banned, so it might have been. All I know is that I’ve never found its equal for cleaning electronics gear. With that in mind, I thought I’d look at contact cleaners that are in use today, what’s really going on when you clean contacts, and why contacts even need cleaning in the first place.

Continue reading “Down And Dirty With Contact Cleaners”

Sega Genesis Chiptunes Player Uses Original Chips

If you were a child of the late 1980s or early 1990s, the chances are you’ll be in either the Super Nintendo or the Sega Genesis/Mega Drive camp. Other 16-bit games consoles existed, but these were the ones that mattered! The extra power of the Nintendo’s souped-up 16-bit 6502 derivative or the Sega’s 68000 delivered a gaming experience that, while it might not have been quite what you’d have found in arcades of the day, was at least close enough that you could pretend it was.

The distinctive sound of consoles from that era has gained a significant following in the chiptunes community, with an active scene composing fresh pieces, and creating projects working with them. One such project is [jarek319]’s Sega Genesis native hardware chiptune synthesiser, in which music stored as VGM files on a MicroSD card are parsed by an ATSAMD21G18 processor and sent to a YM2612 and an SN76489 as you’d have found in the original console. The audio output matches the original circuit to replicate the classic sound as closely as possible, and there is even some talk about adding MIDI functionality for this hardware.

The software is provided, though he admits there is still a little way to go on some functions. The MIDI support is not yet present, though he’s prepared to work on it if there was enough interest. You really should hare this in action, there is a video which we’ve placed below the break. Continue reading “Sega Genesis Chiptunes Player Uses Original Chips”

An 840 Segment Display

A while back, [limpfish] bought a few four-digit seven-segment displays from a seller on eBay. A month or two later, thirty displays ended up in [limpfish]’s mailbox. Instead of using the one or two displays he thought he ordered, [limpfish] decided to do something very cool with these bits of seven-segment displays. He’s controlling all of them at once.

[limpfish]’s usual method of controlling a lot of LEDs is the MAX7219 LED driver. This chip can easily — and cheaply — control eight common cathode seven segment displays. There’s a problem with this plan, though: the LEDs received from eBay are common anode. That’s actually not a problem, because with a little effort and even more thinking [limpfish] got these displays to work with the MAX7219 driver chip.

With chips in hand, [limpfish] designed a small breakout board for the MAX7219 and two common anode 4×7 segment displays. These displays can be daisy chained, and connecting them all together results in a very weird but very cool visualization.

[limpfish] is treating this display as a bitmap display, which means it’s demo time. You can check out a 1337 01d skool demo playing on this 840-segment display in the video below.

Continue reading “An 840 Segment Display”

A Multicore ZX Spectrum

From the blog of [telmomoya] we found his latest project: a hardware based multicore solution for a ZX Spectrum Emulator. It’s not the first time we feature one of his builds, last year we was working on a ARM Dual-Core Commodore C64. Luckily for Speccy fans, it seems a ZX Spectrum project was just unavoidable.

At its heart is the EduCIAA NXP Board, a Dual Core (M4 & M0) 32-bit microcontroller, based on the NXP LPC4337. It’s an Argentinan-designed microcontroller board, born from an Argentinian academic and industry joint venture. [telmomoya] took advantage of  the multicore architecture by running the ZX Spectrum emulator on M4 core and generating the VGA signals with M0 core. This guarantees that the VGA generation, which is rather time-sensitive, remains isolated from emulation and any task running on other core. The VGA sync is via polling and using DMA GPIO the RGB signals can be up to 256 colors. To store the 48 kb VGA frames one AHB32 and one AHB16 memory IC are used.

On the software side, [telmomoya] adopted Aspectrum, a ZX Spectrum Emulator fully written in C, modified to his needs. Overall, the project faced many challenges and issues, like COLOR VGA generation (with GPIO DMA), TFT SPI low fps, Inter Process Communications and bus sharing.

Can you try to name all the games in the demonstration video?

Continue reading “A Multicore ZX Spectrum”