A Home Audio Player for the Other 99%

This is Sony’s HAP-S1 High-Resolution Audio HDD Player. It’s beautiful to look at with superb audio specs, stores 500 GB of music internally, can be controlled via PC or mobile apps and can play music in a wide variety of formats: DSD, WAV, AIFF, WMA, FLAC, MP3, and AAC (and a few others).


But what if you don’t want to spend $1,000 for Sony’s solution, which is actually one of the more affordable on the market? Good news: there is a much cheaper alternative, that gives up almost none of the HAP-S1’s features, for less than a tenth of the price.

This is the HiFiBerry DAC+, a “shield” PC board that connects (no soldering or engineering expertise required!) to a Raspberry Pi single board computer. As the name suggests, this little board is a Digital-to-Analog Converter, that converts the digital audio processed through the


Raspberry Pi to an analog signal that you can send out through the stereo RCA jacks to y

our home audio amplifier (or amplified speakers, etc.).

The HiFiBerry DAC+ costs about USD $29 and is available directly from HifiBerry or other online retailers. It’s compatible with most of the Raspberry Pi models — the original, 2 and 3 series, and features a 192kHz/24bit Burr-Brown digital-to-analog converter (it’s a Texas Instruments made DAC chip that has been around for a while). While I can’t compare the specs of this DAC directly to what’s inside the Sony (and similar) audio players, I’ve got it connected to my home stereo system and, to me, it sounds great.

OK, so back to the original idea of this post: pair this DAC with a $35 Raspberry Pi series 2 or 3 and for less than $100 you have all the hardware needed to stream your digital music collection to your home stereo or amplified speakers. You’ll probably want a case to house everything. I 3-D printed this case (there are dozens of different designs available for free on ThingiVerse) or you can buy a plastic case on Amazon for around $15, or even a metal case from HiFiBerry for much more. IMG_0709

So all that’s missing is software. I’m using the excellent, open-source RuneAudio software running on a Raspberry Pi3. It’s amazing how much capability the Rune project developers have given their app, not the least of which is the ease of installation and use.

Installing the RuneAudio software involves nothing more than downloading the appropriate image for your hardware (Raspberry Pi3 in my case), writing the image to a microSD card, plugging the card into the RPi, connecting RCA audio out patch cables, power and an ethernet cable (you can also configure wifi connectivity, but it’s easier to set up the RuneAudio player with a wired network connection) and booting up the RPi. You’ll find a step-by-step tutorial on the RuneAudio web site.

The software supports a wide range of digital audio formats — FLAC, WAV, MP3, AAC and others, supporting steaming from a network storage device (my music collection is stored on a Western Digital My Cloud NAS), streaming from local storage (a USB drive plugged into the Raspberry Pi), and listening to Internet radio stations.

Setup and configuration is simple and everything “just works”, similar to Apple’s products long ago. The player software can be controlled via both PC and mobile web browsers, with Android and iOS apps on the development futures list.

All-in-all, a very cost-effective alternative to dedicated home media players.

Useful sites for terrain printing


I’ve come across a few websites that make it easy to generate 3D models from terrain. The best part is that you can get relatively high quality models from these sites for free.

CADMapper is fantastic for creating detailed models, down to the level of individual buildings, and is free for areas up to 1 square kilometer. The site also has whole-city models for over 200 cities worldwide. Want to print Paris? Buy a spool of filament and go for it!

For terrain models of much larger areas, I’ve tried all kinds of methods, including downloading GIS data from USGS and using software utilities to create .stl models. But none of these work as well for me as Terrain2STL. The model of San Diego county in Southern California was generated from this site.

A final site I’m aware of is Terrain Party. It’s less intuitive to use than the other sites, but is also free and can produce good results.

If anyone’s familiar with other utility sites for 3D printing, please let me know via comments.

DIY Air Quality Monitor


If you’re at all concerned about the quality of air you’re breathing, you might be interested in an air quality sensor. For example, the Awair 2nd Edition is available on Amazon for $173, has great reviews, and not only detects particulates, but also chemicals, carbon dioxide, and measures humidity and temperature. It also has Alexa integration and a companion mobile app.


For a lot less than this, if you’re willing to forgo some of the features, you can make your own sensor, like the one pictured above, for around $36. I’ve sourced the key components from Amazon, but that’s only because I’m lazy (and please note: these are not affiliate links; I’m not getting compensated for any of this). If you source from eBay or larger components retailers like Mouser, you might be able to bring the cost down a bit.

Here’s your shopping list:

  1. mini OLED display from Amazon for $7
  2. Arduino Uno from Amazon for $8.49
  3. Dust sensor module from Amazon for $19
  4. 9V battery connector from Amazon for $6 (pack of 5)

So what does this version do? Basically it uses Sharp’s GP2Y1010AU0F particulate sensor to measure dust and other stuff in the air, measured in micro-grams per cubic meter of air volume. You might be a bit skeptical about this (my picture shows nothing detected) but place this device on a carpet surface and stomp around it, and you’ll be surprised (or maybe grossed-out) by what the sensor measures. If you want to geek out the spec sheet for the module has all kinds of detail about how it works, including a reference guide for what constitutes “excellent” (0-35 μg/m^3) and “average” (35-75 μg/m^3) air quality.

OK, so how do you build one?  Easy:

1. Source the parts above. I didn’t mention wires for connecting the components, but these are super cheap and you don’t have to use prototyping connectors; you can also solder the connections if you want.

2. Wire everything up.  The OLED display connections are: SDA->A4, SCL->A5, GND->GND, VCC->5V.  The sensor module comes with a connector with 4 leads: yellow wire-> D7, blue wire->A0, black wire->GND, red wire->5V.

3. Load the sketch onto the Arduino Uno. I’ve saved the sketch file (.ino) and the two .stl files here.

4. 3D print the base and display holder. I tried to make this a single object file, but both pieces print better for me (Ender 3) as separate pieces. I super-glued the display bracket to the main base.


That’s it! Breathe easy.



3D-Printed Art

This is a 3D-printed piece of art, a “Voronoi” lamp designed by Nik Markellov. Nik has generously made his design available for free on Thingiverse.com. I’ve extended his design by adding a set of three Arduino-controlled RGB LEDs to create a changing color pattern. Here’s what the completed lamp looks like.


Creating the LED assembly isn’t difficult, but you’ll need to have some experience using a fine-tipped soldering iron. Just a few parts are needed for this: I used an Arduino Nano, three LEDs, and nine 270 ohm resistors. That’s it! I ordered common anode LEDs from Amazon, but you can use either a common anode or cathode type, the only difference is whether you connect the LEDs to +5V or ground on the Arduino. As an aside, you choose the correct value resistor depending on the “forward voltage” specification of the LEDs you’re using and the voltage of your power supply (+5V DC in the case of this project using an Arduino). Here’s a good article if you want to learn more.


Start this project by soldering a common +5V rail to the corresponding pin on the Arduino Nano. In this picture, it’s the bare copper wire attached on the Nano on the left.

Next, separate the 5V pin from the three Red, Green and Blue pins on the RGB LEDs. Usually, the 5V (or ground, depending on the type of the LED) pin is identified by being a little longer than the other three leads.

Solder the 270 ohm resistors to each of the Red, Green and Blue leads, and solder wires to to the other ends of the resistors so that the three LEDs are at different heights above the Arduino Nano. This vertically “staggers” the three LEDs as you’ll see in the completed design.


I connected the first LED (the highest position LED) red lead to pin 4, the green lead to pin 5 and the blue lead to pin 6 of the Arduino. Repeat this pattern for the second and third LEDs, using Arduino pins 7, 8, and 9 for the 2nd (middle height) LED and pins 10, 11 and 12 for the 3rd LED.


With the LED array assembled, transfer the sketch below to your Arduino and install the assembly in the square cavity open at the base of the lamp. This code will cycle the color of each LED. You can increase the value of the delay() function call at the bottom of the loop() method if you want to slow down the color transitions.

// define pinouts
const int LED1redPin = 4;
const int LED1greenPin = 5;
const int LED1bluePin = 6;

const int LED2redPin = 7;
const int LED2greenPin = 8;
const int LED2bluePin = 9;

const int LED3redPin = 10;
const int LED3greenPin = 11;
const int LED3bluePin = 12;

void setup() 
      // Start off with the LED off.

void loop() 
     unsigned int rgbColour[3];

     // Start off with red.
     rgbColour[0] = 255;
     rgbColour[1] = 0;
     rgbColour[2] = 0;

     // Choose the colours to increment and decrement.
     for (int decColour = 0; decColour < 3; decColour += 1) 
            int incColour = decColour == 2 ? 0 : decColour + 1;

            // cross-fade the two colours.
           for(int i = 0; i < 255; i += 1) 
                   rgbColour[decColour] -= 1;
                   rgbColour[incColour] += 1;

                   setColourRgb(rgbColour[0], rgbColour[1], rgbColour[2]);


void setColourRgb(unsigned int red, unsigned int green, unsigned int blue) 
        analogWrite(LED1redPin, red);
        analogWrite(LED1greenPin, green);
        analogWrite(LED1bluePin, blue);

        analogWrite(LED2redPin, blue);
        analogWrite(LED2greenPin, red);
        analogWrite(LED2bluePin, green);

        analogWrite(LED3redPin, green);
        analogWrite(LED3greenPin, blue);
        analogWrite(LED3bluePin, red);


Chemistry You Won’t Hate

I don’t remember much of my High School chemistry. I do remember being bored, not seeing much application for what I was supposed to be learning. I had a change of heart in 2010, when Apple introduced the first iPad and I stumbled across Theodore Gray’s superb Elements app.

Somehow, from reading about the elements I got the desire to start collecting them. eBay was my starting point, and lots of online sellers make obtaining samples of the more common elements almost trivial.

Then I ran across Luciteria. I warn you now: this site is dangerous, a risk to your free time and to your budget! They don’t just sell random lumps of raw materials; instead, Rasiel & co. are devoted to presenting the elements as attractively as possible. RhodiumWhere else can you find a perfect cube of rhodium for $2,800? Almost all of the more collectible elements are available for sale here, in a variety of forms, including perfect little 10mm cubes. There are elements here that you expect wouldn’t expect to find in this form, like arsenic, iridium, thallium, and uranium(!). Not all are as expensive as the platinum metals; in fact, you’ll find some bargains on this site.

With the clear plastic periodic table available on this site as a starting point, I began collecting as many of the elements in the form of 10mm cubes as I could. When I ran out of relatively affordable elements in this form, I got creative and started casting much smaller quantities into clear resin cubes. By doing this, you can significantly reduce the cost of building out your collection.

Elements Collection September 2018

Finally, you’ll reach a point where displaying the more reactive or toxic elements in clear resin isn’t feasible. There is at least one seller on eBay who can create sealed vials containing these elements in a size that fits the Luciteria display case perfectly. Contact him via his eBay store for more details.

Most importantly, have a healthy sense of respect for the elements. Avoiding accidents means having to learn about each element, and that’s most of the fun of collecting them.

A Cinema In Your Pocket (Almost)

This is the Nebula Capsule portable projector, made by Anker under their “Nebula” brand name. Confusing naming aside, this is a fantastic little gadget. It’s almost exactly the size of a soda can, projects a bright image up to 100″ diagonal and unlike many mini projectors, has very good image color quality.

I haven’t found too many competing products at the same price and feature level as this projector. Sony’s MP-CD1 is probably the most direct competitor, and no doubt features Sony’s typically excellent quality at a comparable price, but spec-for-spec (more on that later) the MP-CD1 doesn’t quite match up to the Capsule. Sure, there are plentyIMG_2426 of cheap LCD projectors on eBay, but none of them (that I can find) combine a higher-quality LCD projector with a good, built-in speaker and a full operating system (Android OS, in this case) built into the projector.

This last point is key: this little projector supports Android Apps, meaning you can stream content from Netflix, Amazon Prime Video, Sling TV, YouTube and a bunch of other media providers directly from the Capsule, over a wifi connection, without any other hardware. I find this feature incredibly useful. Besides streaming from built-in apps, you can also project directly from an HDMI source, such as a DVD/BluRay player, project videos off a USB drive, or project video directly from your iOS or Android device. I’ve tried all of these options, and they all work equally well.

Here are some key specs:

  • Supports all of these video formats: H.264 BP/MP/HP – up to 1080p MPEG-4 SP/ASP – up to 1080p DivX 4x/5x/6x –up to 1080p H.263 P0 – WVGA VP8 – 1080p (HEVC) H.265 MP 8-bit – up to 1080p.
  • Resolution: 854 x 480 pixels. More about this in a bit.
  • Battery life: 4 hours.
  • Fan noise: <30dB. It’s quiet enough for me, especially since the 5W speakers produce plenty of volume. But you can definitely hear the fan with the volume turned down.
  • Automatic keystone correction as you tilt the projector forwards and backwards.
  • IR Remote Control included. Anker makes a free “Capsule Control” app for smartphones and tablets that makes controller the projector (especially entering text) much easier.
  • Brightness: 100 ANSI lumens. In a dark room, the picture is plenty bright and the color quality is excellent. In a brightly lit room, the image will be washed out.
  • Weight :14.8 oz

OK, so about the display resolution. 480 pixels vertical resolution is only “standard” definition and gives the impression that you’ll see a grainy image. In practice, I don’t find the image quality to be an issue at all. At normal viewing distances, the image quality to me is excellent. I only find this lower resolution output to be an issue when I’m using the Capsule as a desktop display, and I’m entering or reading text (e.g. entering login credentials for a streaming app). I would never try to use this as a desktop computer display.


Finally, a tip: the Capsule comes with a customized version of Google’s Play Store that isn’t very complete. If you contact Anker support (support@seenebula.com) they will send you instructions and an unlock code for a beta firmware update that includes the full Google Play store. I’ve done this and it works great.

UPDATE: Anker has just announced a Kickstarter campaign (this product was introduced via Kickstarter) for a new Capsule II product, that will offer a brighter, 720p High-Definition display. You should be able to pick up the current model at a discount and in fact Anker’s eBay store is selling  refurbished units for $280 before a 10% discount. You might be able to get an even better price by applying other eBay coupons.

UPDATE #2: Here’s a “maker” tie-in for this product: I’ve designed an easy-to-print stand for the Capsule that lets you project onto your ceiling. Great for bedtime or watching while lying down on the sofa, etc. Get it on Thingiverse here.