Resolving Eagle CAD dependency problems under Ubuntu

This is a short post which I’ve made to show you how to fix dependeny problems of Eagle CAD under a 64-bit Ubuntu distribution. The current installer (Eagle CAD 6.4) works quite well under a 32-bit Ubuntu 12.04, 12.10 and 13.04 distribution. The eagle binary is linked against 32-bit libraries, so installing “all possible” 32-bit libs might be a possible (but uncomfortable) solution. This can actually be done by installing two packages:

sudo apt-get install ia32-libs lib32z1

A nicer way would be installing only the required libraries. The installer does not help you finding missing dependencies, so you have to actually extract the eagle binary by hand to inspect it. This can be done by modifying the installer or even faster by extracting the compressed files out of the installation script. I’ve prepared a short (compact) video tutorial on of the actual process. It’s my first video tutorial so please be indulgent. ūüėČ

DeLonghi Coffee Machine Sound Modification

About a month ago I stumbled across¬†a thread¬†(in German) about improving the sound of DeLonghi ESAM coffee machines. It was said, that with rather few changes the sound profile of the machine can be significantly improved.¬†I’ve used a necessary complete overhaul of our DeLonghi Magnifica ESAM 4500 (Pronto Cappuchino) coffee machine to also add this modification…
…with more or less significant improvements.¬†Only two parts are necessary:

  • The ULKA EP5 pump was swapped for an¬†Innensys CP4/SP.
  • The DeLonghi pressure relief valve was¬†exchanged¬†by a Saeco membrane filter (sorry, no type/model number available).
The original DeLonghi pump.
The original DeLonghi pump.
The new parts installed in the DeLonghi ESAM 4500.
The new parts installed in the DeLonghi ESAM 4500.
The membrane filter and the pump (originally intended for Saeco coffee machines).
The membrane filter and the pump (originally intended for Saeco coffee machines).

The new pump and membrane filter both let the coffee machine sound much deeper and calmer. Although the new pump has about 20 W more ‘power’, it runs a bit slower (about five seconds for one cup of coffee, as shown in the figure with the acoustic profiles).

Comparison of the acoustic profile of the DeLonghi ESAM 4500 before and after the modification.
Comparison of the acoustic profile of the DeLonghi ESAM 4500 before and after the modification.

I’ve also made a video which shows (or should I say: plays ūüôā ) the before/after effect. The most significant change can be heard after the coffee was grounded, when it is actually poured into the cup.

Raspberry Pi Power Supply: Nokia AC-10 + AC-16 [Review]

The Raspberry Pi is shipped without a power supply — there is not even one specifically available for this board as far as I know. Any micro USB power supply with a least 700 mA should work. But I did not want to rely on no-name¬†products since the board should run continuously and the web is full of reports of counterfeits. So¬†I’m currently using a Nokia AC-16E power supply, bought directly from Amazon (not on the Marketplace). Additionally, I bought a Nokia AC-10E (more or less for free, as their combination allowed free shipping).¬†Based on the way the two Nokia supplies were packed and labelled (including safety marks and QR-Codes) I believe they should be genuine.

From left to right: OTB TR-005, Nokia AC-10E, Nokia AC-16E.

I tested the Nokia supplies and another (cheap/crappy?) one from OTB I already had lying around. Update: As requested in a comment, I have also added measurements of the on-board voltage between TP1 and TP2 (more information about these pins can be found here).

Power Supply Price (ca.) Output Voltage On-board Voltage
(standalone)
On-board Voltage
(attached devices)
OTB TR-005 3.- ‚ā¨ 5 V / 1,000 mA 4.90 V 4.78 V
Nokia AC-10E 7.- ‚ā¨ 5 V / 1,200 mA 4.88 V 4.82 V
Nokia AC-16E 13.- ‚ā¨ 5 V / 1,000 mA 4.75 V 4.66 V

All three of them were able to support the Raspberry Pi board with several connected USB devices (passive hub, keyboard, mouse, wireless adapter) and a connected monitor (HDMI). There wasn’t much difference between them, all three ‘consumed’ about 3.8 W (6.7 VA) on average (1 hour; varying workload) and I did not notice any glitches. Still, a power drop was noticable when comparing the on-board voltage with and without any attached devices (sd-card only).

With the Nokia AC-16E power supply, the voltage dropped below the recommended 4.75 V.

In conclusion: I think I will stick to the Nokia AC-16E, as I’m currently running my Raspberry Pi only with an attached wireless usb adapter.¬†If I notice any glitches, I can still switch over to the Nokia AC-10E power supply.¬†Something that looks beautiful is not necessarily always better… *sigh*

Update [2014-11]: I’ve in the mean time switched to the Nokia AC-10E supply which seems to be more stable. Also I am running a second Raspberry Pi B+ now with a¬†2 A power supply.

WordPress “twenty twelve” and Rich Snippets Testing Tool

While playing around with my Google+ profile I noticed a posting about Google Authorship, i.e. linking postings from various web sites to your profile. Search results show your profile photo, if activated. This was nothing new for me. But nonetheless I tested the mentioned Google Rich Snippets Testing Tool with my web site and it threw the following error message multiple times:

Rich Snippets Error Missing required field "updated"

I quickly found out that the culprit was my theme “twenty twelve”. Its predecessor “twenty eleven” also led to this error messages, but other themes didn’t. So I dug myself into the PHP code (Appearance -> Editor) and narrowed it down to a single class definition in functions.php (ca. line 326) that had to be changed from “entry-date” to “updated”:

$date = sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time class="updated" datetime="%3$s" pubdate>%4$s</time></a>',

I have not checked what the difference between “entry-date” and “updated” is, but I have not yet observed any negative consequences; so I will stick to the change. The code in the “twenty eleven” theme looks similar, so if you want to adapt it search for “entry-date” (only one occurrence) in the functions.php file.

Stellaris LaunchPad LM4F120 unboxing

I was lucky to be in the first group of people to receive two TI Stellaris Launchpad LM4F120 Evaluation Kits. Hurray! ūüôā

I bought both kits for 9,98 US $¬†directly from TI. Here some photos from the unboxing. I will update this post as soon as I get a development environment up and running. For everyone who can’t wait: there is a nice “Getting Started”¬†page from TI with video tutorials and tons of information.

P.S. I like the comment of the Stellaris MCU Team in the box: “Happy Coding!” ūüėČ

My new Raspberry Pi

I just received my Raspberry Pi board from Farnell (element14). It’s the new Model B, Revision 2.0. ūüôā¬†I originally wanted to use the board as a cheap always-running gateway. But the more I’m playing around with it, the more I enjoy its multimedia capabilities.

By the way, I’ve attached the Raspberry Pi to a power meter. According to it, the board consumes 3.1 Watt when idling and 3.4 Watt when compiling code or installing new packages. The attached mouse, keyboard and the network cable connection (wireless connection is planned) also drain some power. When being shut down, it still consumes 1.0 Watt (which might be due to the cheap USB power supply).

Exposing a Chip on Board (COB)

In a previous post I had described my efforts to build (or should I say extract) a DCF77 clock radio receiver from an old radio clock. The remaining part of the board has undergone another surgery to take a look at the chip on board (COB) technology (German Wikipedia entry). The process of removing the covering epoxy resin with a scalpel was rather destructing, but I did not want to use aggressive chemicals. As a result, the bonding wires (between the silicon chip and the conductor tracks) were destroyed.

The following video shows the process of removing the epoxy resin using a scalpel and a heat gun (fired up to 200¬įC). The whole process took about 10 Minutes. The last minute of the video also shows some close-ups done with a cheap webcam, which was modified for magnification.

I also added some close-up pictures of the exposed silicon die, taken with my DSLR and a reverse-mounted lens.

Homemade DCF77 receiver [FAIL]

A few weeks ago our old clock radio broke. Out of curiosity I’ve disassembled it: I wanted to remove the DCF77¬†clock radio signal receiver. Unfortunately, the clock contained a single board, but the receiver part was clearly distinguishable from the rest.

The circuit board of my broken clock radio. The radio signal receiver is marked with a yellow frame.

For fun, I cut out the relevant part of the board and replaced/refreshed the solder joints. I also added four connections for 1.5 Volt (power supply), the clock signal and a power-on line. (At least I think that’s what the last two lines should be).

My low cost self made DCF77 clock signal receiver.

I have not yet managed to get a stable time signal.¬†On my digital storage oscilloscope I get occasional spikes with a distance of one second (what you would expect), but only a few of them and then nothing… The problem is probably the correct initialization of the chip under the black blob (a so called chip-on-board, by the way). Maybe, I also damaged a part of the receiver while cutting out the board, or when resoldering the two joints on the¬†77.5 kHz antenna.

Update: Well, after playing a bit more with the receiver I’m pretty sure I damaged it while cutting it out. I used common initialization sequences and did not manage to get it work. Too bad…

Logitech M705: How to fix a defective mouse button

After cleaning and reassembling...

I’m a big fan of Logitech mice, or at least was until a few days ago. My wireless Logitech M705 started to behave¬†strangely: Pressing down the left mouse button resulted in multiple clicks (i.e. double-clicking) and dragging became impossible due to random interruptions when holding down the button.

Without a warranty (which had expired three months ago) I did not feel guilty when opening the mouse to look for the cause. The culprit was quickly found: the microswitch of the left mouse button. Luckily, I had spare microswitches as I’m currently playing around with the optical sensors from other spare/defective mice. I will cover this in another post.¬†To come to the point: after replacing the microswitch, the mouse works again as usual. I’ve made a few photos (a picture is worth a thousand words ūüėČ ) to help others during disassembly of the housing. Screws are marked red, and I have also marked (in yellow) two tiny springs that can easily be lost.

This fix has a bad aftertaste: at least in Germany, there is much talk about “planned obsolescence”, and I’m wondering if Logitech (and other manufacturers) use cheap microswitches that only survive a certain number of clicks. Especially after my mouse showed the previously mentioned defect so soon after the expiry of the warranty… On the other hand Logitech kept its promise regarding the battery life – I’m still using the first set.

Update (2014-11-22):¬†Just as¬†a brief clarification, after I got some feedback on the M705. (Apparently several users have had similar experiences.) Logitech uses Omron switches that actually seem to be pretty good. So I want to point to posts from Kogos and Ralf ¬†below: First you should try what is recommended in a Logitech forum post. After that you might¬†try resoldering the joints. If that doesn’t help an exchange might be the best option…

HowTo: Running Eagle CAD 6.2 on Ubuntu 12.04/12.10/13.04

Update: Eagle CAD version 6.4 is available which runs fine on Ubuntu 12.04., Ubuntu 12.10 and Ubuntu 13.04. I’ve made a small tutorial on how to fix possible dependency problems with this new version.

Ubuntu 12.04 only provides an older version of Eagle CAD, version 5.12.0 to be exact. A newer version 6.2 (32 bit) is available for download, but the installation fails due to the lack of a 32 bit libpng-1.4 library:

error while loading shared libraries: libpng14.so.14: cannot open shared object file: No such file or directory.

Luckily, I found a detailed post at raek’s blog¬†which covers older Ubuntu versions. Great parts of the following instruction were taken from this post and adapted for Ubuntu 12.04. Thanks!

First of all you need to install some packages to build the missing png library. Open a terminal window and enter on a 32 bit Ubuntu 12.04:

sudo apt-get install build-essential perl
sudo apt-get install zlib1g zlib1g-dev

On a 64 bit Ubuntu 12.04:

sudo apt-get install build-essential perl gcc-multilib
sudo apt-get install ia32-libs lib32z1 lib32z1-dev

Then you need to fetch the libpng source code and the Eagle CAD 6.2 installer, either with “wget” (as I have done it) or directly from the respective webpages.¬†A current version of Eagle CAD is available for download here:¬†http://www.cadsoftusa.com/download-eagle/
libpng 1.4 can be found on this page: http://www.libpng.org/pub/png/libpng.html
I will use the “/tmp/libpng-eagle” directory for building the library:

mkdir /tmp/libpng-eagle
cd /tmp/libpng-eagle
wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng14/libpng-1.4.12.tar.gz
tar xvfz libpng-1.4.12.tar.gz
cd libpng-1.4.12/
./configure --prefix=/tmp/libpng-eagle/install CFLAGS=-m32
make check
make install

At this point I assume that your Eagle CAD¬†installation will be located at “/home/$USER/eagle-6.2.0“.¬†If not, simply adjust the location in the text below:

cd /tmp/libpng-eagle/install/lib/
mkdir -p /home/$USER/eagle-6.2.0/lib
cp -a libpng14.so* /home/$USER/eagle-6.2.0/lib/

Now the installer should run…

export LD_LIBRARY_PATH=/home/$USER/eagle-6.2.0/lib/
cd /tmp/libpng-eagle/
wget ftp://ftp.cadsoft.de/eagle/program/6.2/eagle-lin-6.2.0.run
chmod 755 eagle-lin-6.2.0.run
./eagle-lin-6.2.0.run

After the installation finishes, Eagle CAD will still not run unless you tell it where to find the png library we have just created. The easiest way to do this is by creating an executable start-up shell script (e.g. /home/$USER/eagle-6.2.0/eagle.sh) which contains the following commands:

#!/bin/sh
export LD_LIBRARY_PATH=/home/$USER/eagle-6.2.0/lib
/home/$USER/eagle-6.2.0/bin/eagle

Additionally, you could create a Unity/Gnome menu entry, for example “/home/$USER/.local/share/applications/eagle.desktop
(do not forget to adapt the $USER):

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/home/$USER/eagle-6.2.0/bin/eagleicon50.png
Name=Eagle
Exec=/home/$USER/eagle-6.2.0/eagle.sh
Comment=Eagle CAD

Update: A friend told me that the installation procedure also works with Ubuntu 11.10.