[Ken Shirriff] Demystifies BeagleBone I/O

If you have ever spent a while delving into the bare metal of talking to the I/O pins on a contemporary microprocessor or microcontroller you will know that it is not always an exercise for the faint-hearted. A host of different functions can be multiplexed behind a physical pin, and once you are looking at the hardware through the cloak of an operating system your careful timing can be derailed in an instant. For these reasons most of us will take advantage of other people’s work and use the abstraction provided by a library or a virtual filesystem path.

If you have ever been curious enough to peer under the hood of your board’s I/O then you may find [Ken Shirriff]’s latest blog post in which he explores the software stack behind the pins on a BeagleBone Black to be of interest. Though its specifics are those of one device, the points it makes have relevance to many other similar boards.

He first takes a look at the simplest way to access a Beagle Bone’s I/O lines, through virtual filesystem paths. He then explains why relying so heavily on the operating system in this way causes significant timing issues, and goes on to explore the physical registers that lie behind the pins. He then discusses the multiplexing of different pin functions before explaining the role of the Linux device tree in keeping operating system in touch with hardware.

For some Hackaday readers this will all be old news, but it’s safe to say that many users of boards like the BeagleBone Black will never have taken a look beyond the safely abstracted ways to use the I/O pins. This piece should therefore provide an interesting education to the chip-hardware novice, and should probably still contain a few nuggets for more advanced users.

We’ve seen a lot of [Ken]’s work here at Hackaday over the years, mostly in the field of reverse engineering. A few picks are his explanation of the TL431 voltage reference, a complete examination of the 741 op-amp, and his reverse engineering of the 1970s Sinclair Scientific calculator.

We appreciate [Fustini]’s tip on this story.

BeagleBone Black image: BeagleBoard.org Foundation [CC BY-SA 3.0], via Wikimedia Commons.

Toy Piano Gets Synth Overhaul

The Peanuts cartoon character Schroeder liked to bang out Beethoven a toy piano. Now, thanks to this hack from [Liam Lacey], Schroeder can switch to Skrillex. That’s because [Liam] built a polyphonic synth into a toy piano. It’s an impressive build that retains the look and feel of the piano, right down to a laser-etched top panel with knobs that match the glossy black styling.

The brains of the synthesizer is a Beaglebone Black using the Maximillian synthesis library. To capture the key presses, he used Velostat, a pressure-sensitive material that changes resistance under pressure. This is probably the only toy piano in the world with fully polyphonic velocity and aftertouch. The build also includes MIDI support, with two ports on the back. [Liam]’s build log is full of more details than we can even summarize here.

This beautiful build won [Liam] first place in the Element 14 Music Tech competition, and it is a well-deserved prize for a clean and elegant way to update a vintage piano.

Continue reading “Toy Piano Gets Synth Overhaul”

Save a Spaceship with Spacehack!

York Hackspace needed a demonstration piece to grace their stand at Maker Faires and similar events. Their solution was Spacehack, a multi-player control console based starship emergency simulator game. Each Spacehack player has console with a selection of displays, switches, dials, and levers. Players must operate their controls in response to a series of sometimes confusing commands the game supplies them from their fellow crew members. Each wrong move brings the disaster-prone ship closer to destruction, and the aim is to keep it spaceworthy for as long as possible. The result is an engaging and addictive draw for the hackspace.

Behind the brilliantly designed consoles, silver ducting and pyramidal hub box the game relies on a Raspberry Pi acting as a server and a Beaglebone Black for each player. All resources can be found on York Hackspace’s GitHub repository. The hackspace has a selection of videos on the Spacehack website, the one below the break shows the game as well as a montage of its construction. Continue reading “Save a Spaceship with Spacehack!”

Bela: Real-Time BeagleBone Audio/Analog Cape

Bela is a cape for the BeagleBone Black that’s aimed at artists and musicians. Actually, the cape is much less than half of the story — the rest is in some clever software and a real-time Linux distribution. But we’re getting ahead of ourselves. Let’s talk hardware first.

First off, the cape has stereo input and output as well as two amplified speaker outs. It can do all of your audio stuff. It also has two banks of analogue inputs and outputs, each capable of handling eight signals. In our opinion, this is where the Bela is cool. In particular, the analog outputs are not Arduino-style “analog outputs” where it’s actually a digital output on which you can do PWM to fake an analog signal. These are eight 16-bit outputs from an AD5668 DAC which means that you can use the voltages directly, without filtering.

Then there’s the real trick. All of these input and output peripherals are hooked up to the BeagleBone’s Programmable Realtime Units (PRUs) — a hardware subsystem that’s independent of the CPU but can work along with it. The PRU is interfaced with the real-time Linux core to give you sub-microsecond response in your application. This is a big deal because a lot of other audio-processing systems have latencies that get into the tens of milliseconds or worse, where it starts to be perceptible as a slight lag by humans.

The downside of this custom analog and audio I/O is that it’s not yet supported by kernel drivers, and you’ll need to use their “Heavy Audio Tools” which compiles Pd programs into C code, which can then drive the PRUs. Of course, you can write directly for the PRUs yourself as well. If you just want to play MP3s, get something you have a bunch of simpler, better options. If you need to do responsive real-time audio installations, Bela is a way to go.

The project is open-source, but we had to do a bunch of digging to find what we were looking for. The hardware is in zip files here, and you’ll find the software here. The demo projects look/sound pretty cool and their Kickstarter is long over-funded, so we’re interested to see what folks make with these.

BlinkenBone Meets The PiDP8

Years ago when the old mainframes made their way out of labs and into the waiting arms of storage closets and surplus stores, a lot got lost. The interesting bits – core memory boards and the like – were cool enough to be saved. Some iconic parts – blinkenlight panels – were stashed away by techs with a respect for our computing history.

For the last few years, [Jörg] has been making these blinkenlight panels work again with his BlinkenBone project. His work turns a BeagleBone into a control box for old console computers, simulating the old CPUs and circuits, allowing them to work like they did thirty years ago, just without the hundreds of pounds of steel and kilowatts of power. Now, [Jörg] has turned to a much smaller and newer blinkenlight panel, the PiDP-8.

The PiDP-8 is a modern, miniaturized reproduction of the classic PDP 8/I, crafted by [Oscar Vermeulen]. We’ve seen [Oscar]’s PiDP a few times over the last year, including a talk [Oscar] gave at last year’s Hackaday Supercon. Having a simulated interface to a replica computer may seem ridiculous, but it’s a great test case for the interface should any older and rarer blnkenlight panels come out of the woodwork.

Aquire Awesome Audio for BeagleBone

[Henrik Langer] put his powerful audio acquisition and output board up on Hackaday.io, and we thought we’d point it out to you. It’s one of those projects that used to be pro audio just a few years back, but is doable (and affordable) DIY today: dual stereo inputs and four(!) stereo outputs, all sampled at 24 bits and up to 192 kHz. It’s configured as a BeagleBone cape, and comes with a customized Linux distribution for the ‘Bone.

What would you do with such a thing? It’s essentially a recording studio in your pocket, with a computer attached. The video (linked below the break) demonstrates using the device as a real-time stereo delay effect unit, but that’s only making use of one channel. Between effects, recording, and then all sorts of much-better-than-CD quality sound synthesis and playback possibilities, it’s an open-ended audio playground.

And all that from what is essentially a (very well-done) breakout board for a fancy DAC/ADC chip from Analog Devices: the AD1938. We’d love to have one of these on our desktop. Check out [Henrik]’s GitHub for the PCB and build instructions and BOM and everything else you’d need to get started. Very nice job!

Continue reading “Aquire Awesome Audio for BeagleBone”

Introducing the BeagleBone Blue

The BeagleBone is a board that doesn’t get a lot of attention in a world of $5 Raspberry Pis, $8 single board computers based on router chipsets, and a dizzying array of Kickstarter projects promising Android and Linux on tiny credit card-sized single board computers. That doesn’t mean the BeagleBone still isn’t evolving, as evidenced by the recent announcement of the BeagleBone Blue.

The BeagleBone Blue is the latest board in the BeagleBone family, introduced last week at CES. The Blue is the result of a collaboration between UCSD Engineering and TI, and with that comes a BeagleBone built for one specific purpose: robotics and autonomous vehicles. With a suite of sensors very useful for robotics and a supported software stack ideal for robots and drones, the BeagleBone Blue is the perfect board for all kinds of robots.

On board the BeagleBone Blue is a 2 cell LiPo charger with cell balancing and a 6-16 V charger input. The board also comes with eight 6V servo outputs, four DC motor outputs and inputs for four quadrature encoders. Sensors include a nine axis IMU and barometer. Unlike all previous BeagleBones, the BeagleBone Blue also comes with wireless networking: 802.11bgn, Bluetooth 4.0 and BLE. USB 2.0 client and host ports are also included.

Like all of the recent BeagleBoards, including the recently released BeagleBone Green, the Blue uses the same AM3358 1 GHz ARM Cortex 8 CPU, features 512 MB of DDR3 RAM, 4GB of on board Flash, and features the main selling point of the BeagleBoard, two 32-bit programmable real-time units (PRUs) running at 200 MHz. The PRUs are what give the BeagleBone the ability to blink pins and control peripherals faster than any other single board Linux computer, and are extremely useful in robotics, the Blue’s target use.

Right now, the BeagleBone Blue isn’t available, although we do know you’ll be able to buy one this summer. Information on pricing and availability – as well as a few demos – will come in February.