Arduino-Based Lathe Tachometer

Want an electronic tachometer to display the RPM of a lathe or milling machine? If so, Elektor has the project for you.

The electronics tachometer design features an Arduino micro board and  a 0.96″ OLED display from Adafruit for instantaneous readout. The compact instrument also has a clock displaying the equipment running time.

Three Workspaces, Countless Projects

Clive “Max” Maxfield, who received his BSc in Control Engineering from Sheffield Hallam University in England in 1980, began his career designing CPUs for mainframe computers. But he has branched out far beyond that, becoming a prolific writer of engineering books, an EE Times editor, a blogger, and a designer of “interesting stuff,” from silicon chips to Steampunk “Display-O-Meters,” according to his website.

Max, who now lives in Huntsville, AL, recently shared with Circuit Cellar photos and descriptions of some of his ongoing projects and creative workspaces:

I would say that I have three personal workspaces. But before we talk about my workspaces, it might be appropriate to first mention two of my several projects, which vary from artistic to technological.

This is the future home of the Prognostication Engine.

This is the future home of the Prognostication Engine.

One of my projects that is currently in full swing is my Pedagogical and Phantasmagorical Inamorata Prognostication Engine. What do you mean “What’s that when it’s at home?” Isn’t it obvious?

Pedagogical = Educational
Phantasmagorical = It’s pretty darned fantastic
Inamorata = The woman with whom one is in love
Prognostication = Predicting the future
Engine = Machine

The Prognostication Engine is intended to help me predict my wife’s mood. Will the radiance of her smile fall upon me when I return home from work in the evening?

My Prognostication Engine is going to be housed in a beautiful wooden radio cabinet circa 1929. This is going to feature two brass control panels, both of which are going to be festooned with antique knobs and buttons and switches and analog meters (the ones with the black Bakelite bezels). I’m aiming at a Steampunk “look-and-feel” that would not look out of place in a Victorian setting.

One of the tricks I use when working on this type of project is to first create to-scale Visio drawings of all of the knobs, switches, meter, and so forth, and then I create a full-sized card-and-paper mockup as shown below. This makes it much easier to move things around and experiment with different placements so as to decide on the final layout.

The paper and card mockup of the Prognostication Engine's upper and low control panels

The paper and card mockup of the Prognostication Engine’s upper and low control panels

Observe the two small pink dots at the top and bottom of each of the vertically-oriented switches and on either side of the horizontally oriented switches and buttons; also the 16 pink dots around each of the five potentiometers. These are going to be faux mother-of-pearl dots, behind which will be tri-colored LEDs implemented using Adafruit’s individual Flora NeoPixels and NeoPixel Rings, respectively.

Everything is going to be controlled using an Arduino Mega microcontroller development board. Speaking of control, the potentiometers are going to be motorized, so that if an unauthorized operator tries to modify any of the settings, the other potentiometers will automatically change to compensate (later they will all surreptitiously return to their original settings).

Now observe the three black momentary push-buttons located on the lower panel, just under the modestly sized red button (do not press the red button). These equate to gifts of chocolates and flowers and hugs. Judicious use of these buttons increases the chances of happy times; overusing them, however, may trigger the “suspicion of wrongdoing” algorithm. In reality, there’s far too much “stuff” to go into here. Suffice it to say that the large meter in the top right-hand corner of the upper panel will reflect the full range of female emotion, from “Extremely Disgruntled” to “Fully Gruntled” (LOL).

Max has another project, dubbed “BADASS Display,” which was inspired by an item he saw in an electronics boutique-type store—a “really cool 9″ tall, cylindrical Bluetooth loudspeaker, whose outer surface was covered with tri-colored LEDs implementing a sort of spectrum analyzer display.”

While Max wasn’t interested in the $199.95 price, the “seed had been sown,” he says.

Thus was conceived my Bodacious Acoustic Diagnostic Astoundingly Superior Spectromatic (BADASS) display. First of all, I took a look around YouTube to get some ideas. It turns out that there are many different ways to present spectrographic data. For example, check out Gavin Curtis’ “My Big Blue 32 Band Audio Spectrum Analyzer Lady Gaga,”  RGB Styles’s “Coffee Table,” and Techmoan’s “Giant LED Graphic Music Display (DJ Spectrum Analyzer).”

I decided that the first incarnation of my display would boast a 16 x 16 array of tri-colored LEDs. I decided to use Adafruit’s NeoPixel Strips. Once again, I started by creating a cardboard and paper mockup as shown below.

Cardboard and paper mockup of the BADASS Display

Cardboard and paper mockup of the BADASS Display

The NeoPixel strips I’m using have 30 pixels per meter. I’m mounting these vertically, which means the vertical separation between adjacent pixels is 33.33 mm. To provide some visual interest, I decided to make the horizontal spacing between columns 50 mm, which is 1.5 times the vertical spacing.

In the real version, the cardboard will be replaced by plywood stained to look like expensive old wood. Meanwhile, the main display panel and the smaller control panel will be formed from hardboard painted to look like antique brass. In front of each pixel will be a 1″-diameter brass bezel accompanied by a 1/2″-diameter clear Fresnel lens in the center. The hardboard panels are going to be attached to the plywood panel using brass acorn nuts. Once again, the finished unit is intended to have a Steampunk look and feel.

I’m planning on using an Arduino Mega microcontroller development board to drive the display itself. This will be accompanied by a chipKIT Max32 microcontroller board that will be used to process the stereo audio stream and extract the spectrum data.

Max’s three project work areas include his office, his kitchen table, and his garage:

I would say that my first personal workspace is the Pleasure Dome (my office). Why do I think of this as a personal workspace? Theoretically I work out of a home office. In reality, however, I prefer to rent a room in a building belonging to an engineering company called MaxVision (no relation).

When you cross the office threshold, you enter a small corner of “Max’s World” (where the colors are brighter, the butterflies are bigger, the birds sing sweeter, and the beer is plentiful and cold). One of the walls is lined with wooden bookshelves containing an eclectic mix of science books, technical books, comics, and science fiction and fantasy books and graphic novels.

Welcome to the Pleasure Dome (Max's office)

Welcome to the Pleasure Dome (Max’s office)

My office is also the repository for all of the antique knobs and switches and analog meters and large vacuum tubes and such that I collect on my travels for use in my projects. Also, I can store (and present) larger objects in the bay outside my office.

My second personal workspace is the kitchen table in the breakfast nook at our home. This is where I tend to implement the electronics portions of my projects. At the far end of the table in the image below we see the jig I constructed to hold the two brass control panels for my Inamorata Prognostication Engine project. On the floor in the right-hand side of the image is the tool box that contains my electronics tools including screwdrivers, snip, and suchlike. It also contains my test equipment in the form of a cheap-and-cheerful multimeter from Amazon, along with an iPad-based oscilloscope and an iPad-based logic analyzer, both from Oscium.

Max's kitchen table

Max’s kitchen table

Observe the plastic storage box on the nearside of the table. I have a separate storage box for each of my projects. Anything associated with a project that’s currently under construction is stored in that project’s box, including any notes I’ve made, any electronic components and their datasheets, and any mechanical parts such as nuts and bolts.

I tend to gather everything associated with a particular function or sub-unit together into smaller boxes or plastic Ziploc bags. In the case of my motorized potentiometers, for example, I have the potentiometers along with the appropriate nuts, washers, antique knobs and suchlike all gathered together. I cannot tell you how much time and frustration a bit of organization like this saves you in the long run. It also make it much easier to pack everything up when my wife, Gina, informs me that she needs the table cleared.

Below we see another view of the test jig I constructed to hold the two brass panels for the Prognostication Engine. Creating this jig only took an hour or so, but it makes life so much easier with regard to assembling the electronics and accessing everything while I’m in the prototyping and software experimentation phase of the project.

The test jig for the Prognostication Engine on the kitchen table

The test jig for the Prognostication Engine on the kitchen table

Max’s third personal workspace is his garage. When his family’s three vehicles are parked inside, his projects are packed away in a corner, including tools and tiles for a mosaic he is creating that will feature ceramic tiles fired in his recently purchased kiln.

Everything tucked away

Everything tucked away

The shelves covered in plastic sheet to the right are where I place my freshly-rolled clay tiles to gradually dry without cracking. The low-down rolling cabinet in the foreground contains all of my handheld ceramic equipment (shapers and scrapers and rolling pins whatnot) along with general protective gear like face masks and safety goggles. Each of the plastic boxes on top of this cabinet is associated with a currently in-progress project. Behind this cabinet is a red rolling tool cabinet, which contains any smaller power tools, clamps, screwdrivers, wrenches and spanners, and also my soldering station and magnifying lens with helping hands and suchlike. To the right of that tool cabinet is a door (not visible in this picture) to a built-in closet, where I keep my larger power tools such as a diamond saw, desktop grinder, router, and so forth.

On the weekends, Max’s garage space opens up as his stepson drives out in his truck and Max’s wife leaves for her real estate agent’s job. “As soon as she has left, I leap into action,” Max says. “I roll out my tool boxes, set up a folding table and chair, and start work on whatever it is I’m currently working on.”

Another little corner of Max's garage work area

Another little corner of Max’s garage work area

As he works on projects in his garage, Max says he is “happily listening to stuff like Led Zeppelin, Genesis, Pink Floyd, Yes, Supertramp, Gentle Giant, The Moody Blues…”

The image below shows a close-up of the current state-of-play with regard to my BADASS Display. A week ago, I routed out the areas in the big plywood panel that will accommodate the hardboard display and control panels. In this image, I’m poised to mark out the hardboard panels and start drilling the mounting holes along with the 256 holes for the tri-state LEDs.

The BADASS Display

The BADASS Display

What can I say? Working on my hobby projects is a great way to wind down after a hard day at work, and being in any of my three personal workspaces makes me happy.

Max poised to give a presentation at the EELive! Conference in San Jose, CA, earlier this year

Max poised to give a presentation at the EELive! Conference in San Jose, CA, earlier this year

Editor’s Note: To find out more about Clive “Max” Maxfield, read his 2013 interview in Circuit Cellar. You can follow Max on Twitter @MaxMaxfield.

Raspberry Pi-Based Network Monitoring Device

In 2012, Al Anderson, IT director at Salish Kootenai College in Pablo, MT, and his team wired the dorms and student housing units at the small tribal college with fiber and outdoor CAT 5 cable to provide reliable Internet service to students. “Our prior setup was wireless and did not provide very good service,” Anderson says.

The 25 housing units, each with a small unmanaged Ethernet switch, were daisy chained in several different paths. Anderson needed a way to monitor the links from the system’s Simple Network Management Protocol (SNMP) network monitoring software, Help/Systems’s InterMapper. He also wanted to ensure the switches installed inside the sun-exposed utility boxes wouldn’t get too hot.

The Raspberry Pi is a small SBC based on an ARM processor. Its many I/O ports make it very useful for embedded devices that need a little more power than the typical 8-bit microcontroller.

Photo 1: The Raspberry Pi is a small SBC based on an ARM processor. Its many I/O ports make it very useful for embedded devices that need a little more power than the typical 8-bit microcontroller.

His Raspberry Pi-based solution is the subject of an article appearing in Circuit Cellar’s April issue. “We chose the Raspberry Pi because it was less expensive, we had several on hand, and I wanted to see what I could do with it,” Anderson says (see Photo 1).

The article walks readers through each phase of the project:

“I installed a Debian Linux distro, added an I2C TMP102 temperature sensor from SparkFun Electronics, wrote a small Python program to get the temperature via I2C and convert it to Fahrenheit, installed an SNMP server on Linux, added a custom SNMP rule to display the temperature from the script, and finally wrote a custom SNMP MIB to access the temperature information as a string and integer.”

Setting up the SBC and Linux was simple, Anderson says. “The prototype Raspberry Pi has now been running since September 2012 without any problems,” he says in his article. “It has been interesting to see how the temperature fluctuates with the time of day and the level of network activity. As budget and time permit, we will be installing more of these onto our network.”

In the following excerpt, Anderson discusses the project’s design, implementation, and OS installation and configuration. For more details on a project inspired, in part, by the desire to see what a low-cost SBC can do, read Anderson’s full article in the April issue.

Figure 1 shows the overall system design. The TMP102 is connected to the Raspberry Pi via I2C. The Raspberry Pi is connected to the network via its Ethernet port. The monitoring system uses TCP/IP over the Ethernet network to query the Raspberry Pi via SNMP. The system is encased in a small acrylic Adafruit Industries case, which we used because it is inexpensive and easy to customize for the sensor.

The system is designed around the Raspberry Pi SBC. The Raspberry Pi uses the I2C protocol to query the Texas Instruments TMP102 temperature sensor. The Raspberry Pi is queried via SNMP.

Figure 1: The system is designed around the Raspberry Pi SBC. The Raspberry Pi uses the I2C protocol to query the Texas Instruments TMP102 temperature sensor. The Raspberry Pi is queried via SNMP.

Our first step was to set up the Raspberry Pi. We started by installing the OS and the various software packages needed. Next, we wrote the Python script that queries the I2C temperature sensor. Then we configured the SNMP daemon to run the Python script when it is queried. With all that in place, we then set up the SNMP monitoring software that is configured with a custom MIB and a timed query. Finally, we modified the Raspberry Pi case to expose the temperature sensor to the air and installed the device in its permanent location.

The Raspberry Pi requires a Linux OS compiled to run on an ARM processor, which is the brain of the device, to be installed on an SD card. It does not have a hard drive. Setting up the SD card is straightforward, but you cannot simply copy the files onto the card. The OS has to be copied in such a way that the SD card has a boot sector and the Linux partitioning and file structure is properly maintained. Linux and Mac OS X users can use the dd command line utility to copy from the OS’s ISO image. Windows users can use a utility (e.g., Win32DiskImager) to accomplish the same thing. A couple of other utilities can be used to copy the OS onto the SD card, but I prefer using the command line.

A Debian-based distribution of Linux seems to be the most commonly used Linux distribution on the Raspberry Pi, with the Raspbian “wheezy” as the recommended distribution. However, for this project I chose Adafruit Learning Systems’s Occidentalis V0.2 Linux distribution because it had several hardware-hacker features rolled into the distribution, including the kernel modules for the temperature sensor. This saved me some work getting those installed and debugged.

Before you can copy the OS to the SD card, you need to download the ISO image. The Resources section of this article lists several sources including a link to the Adafruit Linux distribution. Once you have an ISO image downloaded, you can copy it to the SD card. The Resources section also includes a link to an Embedded Linux Wiki webpage, “RPi Easy SD Card Setup,” which details this copying process for several OSes.

The quick and dirty instructions are to somehow get the SD card hooked up to your computer, either using a built-in SD reader or a peripheral card reader. I used a USB attached reader. Then you need to format the card. The best format is FAT32, since it will get reformatted by the copy command anyway. Next, use your chosen method to copy the OS onto the card. On Linux or Mac OS X, the command:

dd bs=4M if=~/linux_distro.img of=/dev/sdd

will properly copy the OS onto the SD card.

You will need to change two important things in this command for your system. First, the
if parameter, which is the name the in file (i.e., your ISO image) needs to match the file you downloaded. Second, the of device (i.e., the out file or our SD drive in this case) needs to match the SD card. Everything, including devices, is a file in Linux, in case you are wondering why your SD drive is considered a file. We will see this again in a bit with the I2C device. You can toast your hard drive if you put the wrong device path in here. If you are unsure about this, you may want to use a GUI utility so you don’t overwrite your hard drive.

Once the OS is copied onto the SD card, it is time to boot up the Raspberry Pi. A default username and password are available from wherever you download the OS. With our OS, the defaults are “pi” and “raspberry.” Make it your first mission to change that password and maybe even add a new account if your project is going to be in production.

Another thing you may have to change is the IP address configuration on the Ethernet interface. By default, these distributions use DHCP to obtain an address. Unless you have a need otherwise, it is best to leave that be. If you need to use a static IP address, I have included a link in the Resources section with instructions on how to do this in Linux.

To access your Raspberry Pi, hook up a local keyboard and monitor to get to a command line. Once you have the network running and you know the IP address, you can use the SSH utility to gain access via the network.

To get SNMP working on the Raspberry Pi, you need to install two Debian packages: snmpd and snmp. The snmpd package is the actual SNMP server software that will enable other devices to query for SNMP on this device. The second package, snmp, is the client. It is nice to have this installed for local troubleshooting.

We used the Debian package manager, apt-get, to install these packages. The commands also must be run as the root or superuser.

The sudo apt-get install snmpd command installs the snmpd software. The sudo part runs the apt-get command as the superuser. The install and snmpd parts of the command are the arguments for the apt-get command.

Next we issued the
sudo apt-get install snmp command, which installed the SNMP client. Issue the ps -ax | grep snmpd command to see if the snmpd daemon is running after the install. You should see something like this:

1444 ? S 14:22 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/

If you do not see a line similar to this, you can issue the sudo /etc/init.d/snmpd command start to start the service. Once it is running, it is time to turn your attention to the Python script that reads the temperature sensor. Configure the SNMP daemon after you get the Python script running.

The Raspberry Pi’s final installation is shown. The clear acrylic case can be seen along with the Texas Instruments TMP102 temperature sensor, which is glued below the air hole drilled into the case. We used a modified ribbon cable to connect the various TMP102 pins to the Raspberry Pi.

The Raspberry Pi’s final installation is shown. The clear acrylic case can be seen along with the Texas Instruments TMP102 temperature sensor, which is glued below the air hole drilled into the case. We used a modified ribbon cable to connect the various TMP102 pins to the Raspberry Pi.

The Adafruit Learning System Releases Bluetooth HID Keyboard Controller

Bluefruit2Adafruit’s Bluefruit EZ-Key enables you to create a wireless Bluetooth keyboard controller in an hour. The module acts as a Bluetooth keyboard and is compatible with any Bluetooth-capable device (e.g., Mac, Windows, Linux, iOS, and Android).

You simply power the Bluefruit EZ-Key with 3 to 16 VDC and pair it to a computer, tablet, or smartphone. You can then connect buttons from the 12 input pins. When a button is pressed, it sends a keypress to the computer. The module has been preprogrammed to send the four arrow keys, return, space, “w,” “a,” “s,” “d,” “1,” and “2” by default. Advanced users can use a Future Technology Devices International (FTDI) chip or other serial console cable to reprogram the module’s keys for a human interface device (HID) key report.

BluefruitEach Bluefruit EZ-Key has a unique identifier. More than one module can be paired to a single device. The FCC- and CE-certified, RoHS-compliant modules integrate easily into your project.

Pricing for the Bluefruit EZ-Key begins at $19.95. For more information, visit The Adafruit Learning System. Bluefruit EZ-Key tutorials are also available.

High-Tech Halloween

Still contemplating Halloween ideas? Do you have a costume yet? Is your house trick-or-treat ready? Perhaps some of these high-tech costumes and decorations will help get you in the spirit.

Recent Circuit Cellar interviewee Jeremy Blum designed a creative and high-tech costume that includes 12 individually addressable LEDs, an Adafruit microcontroller, and 3-D printing.


Custom animatronic skull


Animatronic talking raven

Looking for Halloween decoration inspiration? Peter Montgomery designed some programmable servo animation controllers built around a Freescale Semiconductor 68HC11 microcontroller and a Parallax SX28 configurable controller.

Peter’s Windows-based plastic skull is animated with RC servos controlled via a custom system. It moves at 24 or 30 frames per second over a custom RS-485 network.
This animatronic talking raven features a machined aluminum armature and moves via RC servos. The servos are controlled by a custom system using Windows and embedded controllers.

Peter’s Halloween projects were originally featured in “Servo Animation Controller” (Circuit Cellar 188, 2006). He displays the Halloween projects every year.

Feeling inspired? Share your tech-based Halloween projects with us.