Welcome to my musings on whatever topic catches my eye, plus stories, recipes, handyman tips, welding, photography, and what have you. Oh, and analog/digital hardware design, and software. Please comment on the blog post so everyone who visits can see your comments.

Year: 2011 (Page 1 of 2)

The Mystery of the Non-Waterproof Hot Glue Solved

Six years ago I had a bad experience with hot glue.  I expected it to be waterproof and it wasn’t.  I did an immersion test and within 3 days the glue turned into a whitish gelatin and fell off.  That’s barely water resistant and certainly not waterproof.

For waterproofing I usually lean towards silicone (RTV, silastic, aquarium cement).  It works well in every application I’ve ever used it on.  But hot glue is so convenient and sets so fast that I kept thinking about it and wishing I could use it.  A few weeks ago I decided to learn more about hot glue.

There are many different kinds of hot glues used in industry and most of them are available in standard 11mm sticks, but I would much prefer to use the common household clear bluish or yellowish stuff if possible.  The standard home-use glue is made from EVA (ethylene vinyl acetate) plus various additives to adjust its characteristics.  Nearly every article I read says that “hobby” hot glue is waterproof, and indeed, EVA is a waterproof thermoplastic.  This disagreement with my experience really got me studying.  Something is not adding up here.  I learned about all kinds of hot glues and their characteristics and just as I was getting ready to compose emails with specific questions to hot glue manufacturers, I ran across the answer.

What happened to me six years ago was a “materials compatibility problem”.  Six years ago, what I had done was to waterproof some electronics by building it inside of sealed PVC pipe.  The plan was to bring a couple of small insulated wires out through a small hole in the pipe and then seal it up by pumping hot glue into it.  This is the application that failed the immersion test.  Naturally I assumed it was the water that caused the failure, but it was not the water.  It was the PVC pipe material and especially the PVC insulation of the wires.  Actually, it was not the PVC itself but the pthallate plasticizer that’s mixed with the PVC to make it flexible and not brittle.  PVC wire insulation has an especially high amount of pthallate.  Pthallate attacks EVA and causes it to decompose, and that’s why my test failed.

Recently I’ve done more experiments with EVA hot glue.  Yes the material is waterproof.  I’ve had a glob of hot glue immersed in water for weeks and it’s  unaffected.  I did another experiment where I used EVA to hot glue polyurethane to painted ABS.  It sticks like a weld.  You have to destroy the pieces to get them apart and it’s unaffected by water.  So it all depends on materials compatibility.  I just wish I had known this sooner.

The IEC Power Cord Mystery

IEC Power Cord

The ubiquitous IEC power cord has been a part of everyone’s life for almost 30 years.  Nearly every device capable of running on different mains voltages and frequencies has one so the manufacturer can ship to different countries by simply changing the power cord to match the plug type used in that country.  Great idea.

Every device that needs an IEC cord comes with one from the manufacturer.  When a device is no longer wanted and we dispose of it, we always keep the cord “because it might come in handy”.  Thus, there should be an ever-increasing number of IEC power cords in the world.  There should be billions of them in existence.  After 30 years of this, even the most non-technical person should have at least 20 cords stashed in their closet.  Yet this is not the case.  When you need one, there’s none to be found.  Search the entire premises and there’s not one unused IEC cord.

How can this be?  I’ve never thrown one away in my life.  Do unused cords simply vanish?  Do they automatically return to the manufacturer to be shipped to someone else?  Do little gnomes steal them at night?  Where are all my cords?


Simplest Way to Play Raw PCM Audio on Ubuntu: libao

There are a zillion ways for a Linux programmer to play audio through the sound card.  This is the problem.  There are many layers to the audio system, many ways to go, and most of them are very complex because multimedia is very complex.

But what if you have the simplest of all cases where you have a buffer in memory containing raw PCM samples, ready to play, and you just want to pump the data out to the sound card and play it at a certain sample rate?  In many cases you’re looking at hundreds of lines of code, writing your own plugin, etc.

After two days of asking questions, Googling, and reading, I finally found what I was looking for.  Libao is part of the standard Ubuntu distribution and it does the job without writing tons of code.

I found a couple of examples but both had problems compiling cleanly.  After using Synaptic to install the libao development files the following will compile cleanly on Ubuntu 10.04 using the gcc command shown in the comments below:

  * ao_example.c  
  *   Written by Stan Seibert - July 2001  
  *   Modified slightly by Phil Landmeier - February 2011  
  * Legal Terms:  
  *   This source file is released into the public domain. It is  
  *   distributed without any warranty; without even the implied  
  *   warranty * of merchantability or fitness for a particular  
  *   purpose.  
  * Function:  
  *   This program opens the default driver and plays a 440 Hz tone for  
  *   one second.  
  * Compilation command line (for Linux systems):  
  *   gcc -lao -ldl -lm -o ao_example ao_example.c  
 #include <stdio.h>  
 #include <string.h>  
 #include <ao/ao.h>  
 #include <math.h>  
 #define BUF_SIZE 4096  
 int main(int argc, char **argv)  
     ao_device *device;  
     ao_sample_format format;  
     int default_driver;  
     char *buffer;  
     int buf_size;  
     int sample;  
     float freq = 440.0;  
     int i;  
     /* -- Initialize -- */  
     fprintf(stderr, "libao example programn");  
     /* -- Setup for default driver -- */  
     default_driver = ao_default_driver_id();  
     memset(&format, 0, sizeof(format));  
     format.bits = 16;  
     format.channels = 2;  
     format.rate = 44100;  
     format.byte_format = AO_FMT_LITTLE;  
     /* -- Open driver -- */  
     device = ao_open_live(default_driver, &format, NULL /* no options */);  
     if (device == NULL) {  
         fprintf(stderr, "Error opening device.n");  
         return 1;  
     /* -- Play some stuff -- */  
     buf_size = format.bits/8 * format.channels * format.rate;  
     buffer = calloc(buf_size,  
     for (i = 0; i < format.rate; i++) {  
         sample = (int)(0.75 * 32768.0 *  
             sin(2 * M_PI * freq * ((float) i/format.rate)));  
         /* Put the same stuff in left and right channel */  
         buffer[4*i] = buffer[4*i+2] = sample & 0xff;  
         buffer[4*i+1] = buffer[4*i+3] = (sample >> 8) & 0xff;  
     ao_play(device, buffer, buf_size);  
     /* -- Close and shutdown -- */  
  return (0);  

Major Flickr Accident

Photo sharing service Flickr accidentally deleted a user’s photos.  Five years and 4,000 photos are gone and there’s no recovery, no backups.  Read about it here:


If just the thought of this gives you a wave of nausea, there are solutions to the problem such as this one:


How about your Gmail account?  Google Docs?  I have 1,500 spreadsheets and 300 important documents plus miscellaneous stuff stored on Google Docs and can’t afford to lose them.  What about all your posts on Facebook?  A service like Backupify can give you a level of safety and control you don’t have now.

« Older posts

© 2024 Shuttersparks

Theme by Anders NorenUp ↑

Find me on Mastodon