It’s an Upright Piano, It’s a Looper, It’s a Pi Project

We don’t really get out much, but we have noticed that there are brightly painted upright pianos in public places these days. Research indicates that these pianos are being placed by small, independent local organizations, most of which aim to spread the joy of music and encourage a sense of community.

[Sean and Mike] took this idea a couple of steps further with Quaver, their analog looping piano. Both of them are maker/musicians based in Lancaster, Pennsylvania, which happens to be a hot spot for public pianos. [Sean and Mike] often stop to play them and wanted a good way to capture their impromptu masterpieces. Quaver is an antique upright that has been modified to record, save, loop, and upload music to the internet. It does all of this through a simple and intuitive user interface and a Raspi 2. Quaver works a lot like a 4-track recorder, so up to four people can potentially contribute to a song.

The player sits down, cracks their knuckles, and presses our personal favorite part of the interface: the giant, irresistible record button. A friendly scrolling LED matrix display tells them to start playing. Once they are satisfied, they press the button again to stop the recording, and the notes they played immediately play back in a loop through a pair of salvaged Bose speakers from the 1980s. This is just the beginning of the fun as you play along with your looping recording, building up several voices worth of song!

Continue reading “It’s an Upright Piano, It’s a Looper, It’s a Pi Project”

Orange is the New ($15) Pi

When the Raspberry Pi came on the scene it was hard to imagine that you could get a fairly complete Linux system for such a low price. The Pi has gotten bigger, of course, but there are still a few things you miss when you try to put one into a project. Wifi, comes to mind, for example. The first thing you usually do is plug a Wifi dongle in, consuming one of the two USB ports.

The Orange Pi is a direct competitor and has a few variants. Originally, the board cost about $30 but sports WiFi, a 1.6 GHz processor, 8 GB of flash, and a SATA interface. There’s now a reduced version of the board for about $15 that deletes the flash and SATA along with the WiFi and one of the original’s 4 USB ports. Still, the Raspberry Pi doesn’t have built-in flash. And the $15 Orange Pi PC has the things you’d expect on a Pi (HDMI and Ethernet) along with other extras like an IR receiver and an on-board microphone. Not bad for $15 considering it has a quad-core processor, a GPU and 1GB of RAM. Continue reading “Orange is the New ($15) Pi”

Firmware Factory: Bit Fields vs Shift and Mask

Working with embedded systems usually involves writing code which will interface with hardware. This often means working on the register level. It doesn’t matter if we’re talking about a UART, an analog to digital converter, an LCD controller, or some other gizmo. Sooner or later, you’re going to have to break out the datasheets and figure out how to talk to an external device. To succeed at this you must become a master of bit manipulation.

Hardware designers don’t like wasting space, so modes, settings and other small pieces of information are often stored as packed bits. Our processors usually access things a byte (or a word) at a time, so what is the best way to handle this? Like so many other topics in software engineering, there are multiple ways to skin this cat. In C (and its derivatives) there are two major options: shift and mask, and bit fields.

Continue reading “Firmware Factory: Bit Fields vs Shift and Mask”

New Version of Raspberry Pi Thin Client

It is funny how many times you use your full-blown PC as a terminal to another computer (which is quite often not as capable as the terminal computer). If all you need is a remote display and keyboard, a Raspberry PI would be enough. One of the newer Pi 2 boards would be even better.

You could roll your own set of remote access software, but you don’t have to. [Gibbio] has already created a thin client image called RPiTC and recently released version 1.4. The build supports diverse remote protocols including Microsoft Remote Desktop, Citrix, VMWare, and even X3270.

It supports WiFi and VPN. We were a little disappointed that it didn’t seem to have any serial communication programs (in case we wanted to build one into an old TeleType case). Of course, it is just a Linux system so you can install anything you want or need.

Continue reading “New Version of Raspberry Pi Thin Client”

Combining Musical Hatred with Target Practice

Not everyone can agree on what good music is, but in some cases you’ll find that just about everyone can agree on what is awful. That’s what the people over at Neo-Pangea discovered when they were listening to Internet radio. When one of those terrible songs hits their collective eardrums, the group’s rage increases and they just need to skip the track.

This is how Engineers act if the song is super-awful
This is how Engineers act if the song is super-awful

Rather than use a web app or simple push button to do the trick, they turned the “skip” button into a NERF target. They call their creation the Boom Box Blaster and made a fantastic demo film video about it which is found after the break.

Inspired by a painting in the office, the target takes the form of a small hot air balloon. The target obviously needed some kind of sensor that can detect when it is hit by a NERF dart. The group tried several different sensor types, but eventually settled on a medium vibration sensor. This sensor is connected to an Arduino, which then communicates with a Raspberry Pi over a Serial connection. The Pi uses a Python script to monitor the Arduino’s vibration sensor. The system also includes some orange LEDs to simulate flames and a servo attached to the string which suspends the balloon from the ceiling. Whenever a hit is registered, the flames light up and the balloon raises into the air to indicate that the shot was on target.

Continue reading “Combining Musical Hatred with Target Practice”

Bread Online is a Bread Maker for the Internet of Things

An engineering student at the University of Western Macedonia has just added another appliance to the ever-growing list of Internet enabled things. [Panagiotis] decided to modify an off-the-shelf bread maker to enable remote control via the Internet.

[Panagiotis] had to remove pretty much all of the original control circuitry for this device. The original controller was replaced with an Arduino Uno R3 and an Ethernet shield. The temperature sensor also needed to be replaced, since [Panagiotis] could not find any official documentation describing the specifications of the original. Luckily, the heating element and mixer motor were able to be re-used.

A few holes were drilled into the case to make room for the Ethernet connector as well as a USB connector. Two relays were used to allow the Arduino to switch the heating element and mixer motor on and off. The front panel of the bread maker came with a simple LCD screen and a few control buttons. Rather than let those go to waste, they were also wired into the Arduino.

The Arduino bread maker can be controlled via a web site that runs on a separate server. The website is coded with PHP and runs on Apache. It has a simple interface that allows the user to specify several settings including how much bread is being cooked as well as the desired darkness of the bread. The user can then schedule the bread maker to start. Bread Online also comes with an “offline” mode so that it can be used locally without the need for a computer or web browser. Be sure to check out the video demonstration below. Continue reading “Bread Online is a Bread Maker for the Internet of Things”

Reverse Engineering how a USB Switch Switches

[Daniel] found himself with a need to connect a single USB device to two Linux servers. After searching around, he managed to find an inexpensive USB switch designed to do just that. He noticed that the product description mentioned nothing about Linux support, but he figured it couldn’t be that hard to make it work.

[Daniel] started by plugging the device into a Windows PC for testing. Windows detected the device and installed an HID driver automatically.  The next step was to install the control software on the Windows system. This provided [Daniel] with a tray icon and a “switch” function. Clicking this button disconnected the HID device from the Windows PC and connected the actual USB device on the other side of the USB switch. The second computer would now have access to the HID device instead.

[Daniel] fired up a program called SnoopyPro. This software is used to inspect USB traffic. [Daniel] noticed that a single message repeated itself until he pressed the “switch” button. At that time, a final message was sent and the HID device disconnected.

Now it was time to get cracking on Linux. [Daniel] hooked up the switch to a Linux system and configured a udev rule to ensure that it always showed up as /dev/usbswitch. He then wrote a python script to write the captured data to the usbswitch device. It was that simple. The device switched over as expected. So much for having no Linux support!