O-Ring Plug

Posted on June 26th, 2009

Use an material for the o-ring which is compatible for both water and the type of oil you’re using.

one design I just ran across this morning on one of our exhibits (designed to hold a vacuum, but that’s just the inverse of what you want to do ūüėČ ):

A cap with a clearance fit into your tube, a plug with a gland for an o-ring, and use three screws to squeeze them together and expand the o-ring against the tube.

The 10 Commandments of Wireless Communications

Posted on February 18th, 2009

This is a repost from Mike Fahrion of BB-Electronics which has a great technical library.¬† I’m putting it up here because it’s so good, I’d hate for it to disappear off the web.

Follow these rules, and you’ll have happy Wireless.¬† Ignore them, and experience BER!

10 Commandments of Wireless Communications


Some sample code to ignore!

Posted on February 13th, 2009

/*Pier Piling Pivot Arduino control program
by Earl Stirling for the explOratorium
installed on Fort Mason Piers
version 0.813

/*This is a state machine.
This program counts on tight(ish) loops with no stalling.
I recommend using anything that stalls, the functions delay() or delayMicroseconds(),
they’re unnecessary, and you might miss a timeout



//These are the states that the machine can be in.
//Entries in this enum should match the state_table pointer.
curr_state, prev_state = WTG_FOR_BUTTONPRESS;

//This table contains a pointer to the function to call in each state.
//These must match the enums for curr_state
void (*state_table[curr_state_LIMIT])() =

//these constant defines are the correct place to change timeout values, pin values, etc.
#define KEEPUPTIME   120           //should be 120, change before deployment // timeout in seconds to keep the piling up
#define HOLDDOWNTIME 4         // time in seconds to keep the piling down before next ascent
#define MOVEMENTTIME 60        // time in seconds for maximum time to move the piling

#define BUTTONPINNUMBER     2  //the pin that the button is attached to
#define UPPERLIMITPINNUMBER 3  //the pin that the upper limit switch is attached to
#define LOWERLIMITPINNUMBER 4  //the pin that the lower limit switch is attached to
#define INSECTORPINNUMBER   5  //the pin for detecting that the mechanism is in normal operating range
#define RAISEMOTORPINNUMBER 6 //the pin for the relay to raise the piling
#define LOWERMOTORPINNUMBER 7 //the pin for the relay to lower the piling
//#define MOTORBRAKEPINNUMBER 8 //the pin for the relay to release the motor brake

#define ledPin  13  //the pin attached to the LED

long StartMovementTime;

int error_code, spinner = 0, thistime = 0;

//Limit switch values
enum {

//UI button value
enum {

//which motor contacts you’re calling
typedef enum {


//motor actions you’re calling for
#define OFF  0
#define ON   1

//Timer values (should make this an array of type timertypes)
//int UpCountdownTimerValue, HOLDDOWNTIMERValue, ReversalCounterValue;
//TimerState UpCountdownTimer, HoldDownTimer;

//Actions you can call for the Timers
typedef enum {
#define START 0
#define RESET 1
#define EXPIRE 2
#define CHECK 3

//enumeration of the types of timers
typedef enum {
#define HOLDDOWN 0
#define KEEPUP 1
#define MOVEMENT 2

//states in which the timers can exist
typedef enum {
#define EXPIRED 0
#define CURRENT 1

void setup()
Serial.begin(9600); //setup serial output port
//Send a string of CTRL-R’s to reset the LCD to 9600 baud
// for (int i=5000; i != 0 ; i–) {Serial.print(0x12,BYTE); };

// Initialize counters, flash LED’s, turn off outputs

//Initialize LCD display
//first set to 20 characters wide

//then set to 4 lines long

//clear display

//turn display on

//Set up splash screen for LCD
Serial.print(“Pier Piling Pivot”);
Serial.print(“version 0.81”);

//now save the current screen as the splash to the LCD’s NVRAM
Serial.print(“Starting setup¬†¬†¬†¬† “);



pinMode(ledPin, OUTPUT);

MotorContact (LOWER, OFF);
MotorContact (RAISE, OFF);

Serial.print(“Done with setup¬†¬†¬† “);

// * * Begin State Functions * *

void Down()
/* Piling is down, wait for the hold down timeout, then
transition to waiting for someone to press the button.*/

for (int i=(HOLDDOWNTIME – 1); i != 0 ; i–)
//move to 0,0

Serial.print(“Hold Down: “);
Serial.print(”¬†¬†¬†¬†¬† “);

void Error()
//digitalWrite (brake,LOW);

Serial.print(“Error “);Serial.print(error_code);Serial.print(”¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† “);
switch (error_code)
case 2 :¬†¬† lcd_cursor(4,1);Serial.print(“Movement Sector¬†¬†¬†¬† “); break;
case 1 : lcd_cursor(4,1);Serial.print(“Movement Timeout¬†¬†¬† “); break;

MotorContact (LOWER, OFF);
MotorContact (RAISE, OFF);
for (int i=error_code; i != 0 ; i–)
digitalWrite(ledPin, HIGH);   // sets the LED on
delay(1000);                  // waits for a second
digitalWrite(ledPin, LOW);    // sets the LED off
delay(1000);                  // waits for a second

void WtgForButtonpress()
/* Hang around waiting for some curious kid to press the button. */

if ((InSectorSensor == MADE) and (Button == PRESSED))
MotorContact (RAISE,ON);
StartMovementTime = millis();
//lcd_cursor(2,1);Serial.print(“Start Movement Time (sec)”);Serial.print(StartMovementTime/1000);
curr_state = ASCENDING;

void Ascending()
// When the piling reaches the top, stop raising it.

if ((curr_state != ERROR) and (UpperLimitSwitch == MADE))
curr_state = UP;

void Descending()
// When the piling reaches the bottom, stop lowering it.

if ((curr_state != ERROR) and (LowerLimitSwitch == MADE))
curr_state = DOWN;

void Up()
/* If the timer expires or the button is pressed, lower
the piling (check that lower switch isn’t hit) .*/

for (int i=(KEEPUPTIME – 1); i != 0 ; i–)
lcd_cursor(2,1);Serial.print(“Keep Up: “);
if (InSectorSensor == MADE)
MotorContact (LOWER,ON);
StartMovementTime = millis();
//lcd_cursor(2,1);Serial.print(“Start Movement Time (sec)”);Serial.print(StartMovementTime/1000);
curr_state = DESCENDING;

// * * End of State Functions * *

void poll()
thistime = (millis()/1000) % 4;
if (spinner != thistime)
spinner = thistime;
switch (spinner)
case 0:
case 1:
//print an Up arrow
case 2:
case 3:

if (prev_state != curr_state)
Serial.print(”¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† “);
prev_state = curr_state;

if (digitalRead(BUTTONPINNUMBER) == HIGH)
if (Button != PRESSED) {lcd_cursor(3,1);Serial.print(“Button is PRESSED¬†¬† “);}
Button = PRESSED;
if (Button != NOTPRESSED) {lcd_cursor(3,1);Serial.print(“Button is NOT-PRESSED¬†¬† “);}
//Serial.print(“Button is NOTPRESSED”);

if (UpperLimitSwitch != MADE) {lcd_cursor(3,1);Serial.print(“Upper Limit MADE¬†¬†¬† “);}
UpperLimitSwitch = MADE;
else {
if (UpperLimitSwitch != NOTMADE) {lcd_cursor(3,1);Serial.print(“Upper Limit NOT-MADE¬†¬†¬† “);}
UpperLimitSwitch = NOTMADE;
//Serial.print(“UpperLimitSwitch is NOTMADE”);

if (LowerLimitSwitch != MADE) {lcd_cursor(3,1);Serial.print(“Lower Limit MADE¬†¬†¬† “);}
LowerLimitSwitch = MADE;
else {
if (LowerLimitSwitch != NOTMADE) {lcd_cursor(3,1);Serial.print(“Lower Limit NOT-MADE¬†¬†¬† “);}
LowerLimitSwitch = NOTMADE;
//Serial.print(“LowerLimitSwitch is NOTMADE”);

//Serial.print(“insectorpinnumber is “);Serial.print(digitalRead(INSECTORPINNUMBER));
if (InSectorSensor != MADE) {lcd_cursor(3,1);Serial.print(“In Sector MADE¬†¬†¬†¬†¬† “);}
InSectorSensor = MADE;
if (InSectorSensor != NOTMADE) {lcd_cursor(3,1);Serial.print(“In Sector NOTMADE¬†¬† “);}
InSectorSensor = NOTMADE;

//** Begin Service Functions & Procedures**

//function call to twiddle the contacts
void MotorContact (int contact, int action)
//Serial.print(“Setting Motor Contact “); Serial.print(contact);
if (action == ON)
{//digitalWrite (brake,HIGH);
digitalWrite (contact,HIGH);
//Serial.print(” HIGH”);
{//digitalWrite (brake,LOW);
digitalWrite (contact,LOW);
//Serial.print(” LOW”);

void MovementErrorCheck()
/*function call to check for errors while moving
will change state to ERROR if there is a movement error,
and throw a code to serial output */
if (((millis()-StartMovementTime)/1000) > MOVEMENTTIME)
curr_state = ERROR;
error_code = 1;
lcd_cursor(2,1);Serial.print(“Err Movement Timeout”);
if (InSectorSensor == NOTMADE)
curr_state = ERROR;
error_code = 2;
lcd_cursor(2,1);Serial.print(“Err Out of Range¬†¬†¬† “);

void lcd_cursor(int row, int column)
int cursor_position, offset;

switch (row)
case 1:
offset = 0;
case 2:
offset = 64;
case 3:
offset = 20;
case 4:
offset = 84;



// * * Main Loop (“Booooorrrrring!!!!”) * *
void loop()
//lcd_cursor(1,1);Serial.print(“Starting loop¬†¬†¬†¬†¬†¬† “);
/* The heart of the state machine is this one loop.  The function
corresponding to the current state is called once per iteration. */
while (1)

Giant Vertical Turning Lathe

Posted on June 3rd, 2008

Schiess VTl

I’ve been working on a giant VTL with Peter Luka. It’s a pretty impressive machine. Made by Schiess in 1953 Germany, it weighs 45,000 pounds, has a 2 meter wide chuck and an 80 inch throw.

Since it’s a vertical lathe, everything is sideways. The chuck is actually a turntable, and the tail stock is above. The design is pretty impressive, typically German.

To be fixed: replace contactors, get the crossbeam clamp working again (it has it’s own motor and gearbox) rewind a bunch of the motors (they’re old, and a bit stressed running at 480V/60 Hz instead of the designed 380V/50 Hz). They might get new variable frequency drives so they can not only run at their intended voltage, frequency, but they you’d be able to control the motor speeds.

See it all here

The Electromagnetic Spectrum

Posted on June 6th, 2007

a handy reference:

Sometimes I try to picture what everything would look like if the whole spectrum were compressed into the visible spectrum.  Also sometimes I try to picture your sister naked.

Information and Entropy from MIT

Posted on June 4th, 2007

The Morse telegraph. (Image courtesy of the U.S. National Library of Medicine.)

I’ve been studying a lot of information and coding theory lately for work and personal research, especially computational thermodynamics, and its relationship to other sciences. I’ve been reading the coding and information theory and thermodynamics of computing sections of Feynman Lectures on Computation, a great intro. Another deep resource I recently found is an MIT Open Courseware class Information and Entropy. It’s a unique coverage of (what shouldn’t be such an) esoteric topic: (more…)

Redndant Engineeringing take 2 (and 2.50)

Posted on May 29th, 2007

To the optimist, the glass is half full. To the pessimist, the glass is half empty. To the engineer, the glass is twice as large as necessary.

Take 2.50: To the engineer, the capacity of the container has been over designed by a factor of approximately 1.905 assuming a 5% volume for the sloshing safety factor.

From Varmint Al’s Engineering Pages

Scott Adams chimed in on this in Take 1

TCMP: Trans-Consciousness Messaging Protocol

Posted on May 29th, 2007

A big obstacle in experimenting with the mind's dream-simulation-engine is holding onto the details as you wake up.  With TCMP you can bring back any information you want.


“It’s a good thing I put half my water in a redundant glass.”

Posted on May 29th, 2007

Engineers are neither optimists nor pessimists:


Information Theory, Inference, and Learning Algorithms

Posted on May 27th, 2007

© Bang ! Engineering • Powered by Wordpress • Using the Swiss Cool theme.
  • windows live messenger downloaden kostenlos
  • new songs downloaden
  • windows 7 programma's downloaden
  • nfs pro street downloaden
  • treiber downloaden chip
  • gratis rollercoaster 3 downloaden
  • photoshop 6 gratis downloaden
  • adobe 5 downloaden
  • qr reader downloaden
  • app world downloaden voor je blackberry
  • gta 4 game downloaden
  • flash player videos downloaden 2012
  • spotnet downloaden mislukt
  • waar wii games downloaden
  • downloaden mislukt met spotnet
  • films downloaden kazaa
  • foto downloaden van website
  • divx 7.1 kostenlos downloaden
  • apps op computer downloaden
  • divx downloaden
  • games 4 free downloads
  • java downloaden voor iphone
  • deutsche alben downloaden
  • spiele kostenlos downloaden f√ľr touch handys
  • demolition company simulator downloaden
  • silverlight downloaden ipod
  • muziek downloaden via je blackberry
  • silverlight plugin downloaden google chrome
  • losse nummers downloaden vuze
  • gratis downloaden het kuikentje piep
  • nieuwste msn downloaden for mac
  • nieuwste versie firefox downloaden
  • bs player downloaden
  • firmware downloaden ipod
  • alte xampp version downloaden
  • online films downloaden voor ipod
  • blackberry app world downloaden for pc
  • online downloaden musik
  • apps downloaden htc touch pro 2
  • skype downloaden app
  • doom 3 kostenlos downloaden vollversion
  • lego creator kostenlos downloaden
  • gratis wordfeud downloaden voor laptop
  • logo facebook downloaden
  • videos downloaden tools
  • leren downloaden uit nieuwsgroepen
  • dinosaurus geluiden downloaden
  • downloaden mit jdownloader illegal
  • laatste flash player downloaden
  • lieder von cro downloaden
  • windows movie maker downloaden kostenlos
  • van nieuwsgroepen downloaden met android
  • muziek mixer downloaden gratis
  • jurassic park film downloaden
  • spelletjes downloaden windows
  • safari internet downloaden gratis
  • spiele kostenlos downloaden ipod touch
  • teamviewer vollversion downloaden
  • musik downloaden via cydia
  • gratis pdf suite downloaden
  • bluetooth downloaden kostenlos deutsch
  • java downloaden android
  • skype downloaden op mobiel
  • bearshare lite downloaden
  • microsoft word kostenlos downloaden 2010 chip
  • gratis downloads euro truck
  • diablo 2 kostenlos downloaden vollversion
  • itunes downloaden oude versie
  • dungeons patch 1.1 downloaden
  • dj programma gratis downloaden beginner
  • dragonball online downloaden chip
  • monkey quest downloaden
  • gratis frostwire downloaden voor mac
  • server pack 2 vista downloaden
  • filme gratis downloaden deutsch legal
  • powerpoint downloaden microsoft gratis
  • gratis spelletjes downloaden nokia c3
  • 2808022193
  • pokemon spiele kostenlos downloaden pc
  • geluid van youtube downloaden mac
  • musik gratis downloaden cydia
  • hoe downloaden whatsapp
  • gratis downloaden halo
  • nds emulator zum downloaden
  • ios 5 downloaden ipod touch 3g
  • 7239551720
  • rollercoaster tycoon 1 demo downloaden
  • album kostenlos downloaden ohne anmeldung
  • lego star wars downloaden pc
  • apps android downloaden lukt niet
  • internet explorer 10 downloaden windows 7
  • photoshop 6 kostenlos downloaden
  • volledige versie photoshop downloaden
  • whatsapp downloaden for android
  • fifa 08 demo downloaden
  • pci treiber downloaden
  • hp software kostenlos downloaden
  • minecraft 1.9 pre 4 downloaden
  • hoe lang duurt downloaden film itunes
  • kostenlos teamspeak 3 downloaden deutsch
  • windows video maker downloaden xp
  • word 10 downloaden
  • games downloaden samsung star qwerty
  • messenger discovery downloaden gratis
  • ipod 4.0 software downloaden
  • loft nl downloaden gratis
  • pdf bestand downloaden gratis
  • downloaden roms ds
  • online gratis album downloaden
  • downloaden muziek gratis
  • musik alben downloaden gratis
  • windows voor psp downloaden
  • evaluatieversie office 2010 downloaden
  • 1708406422
  • jailbreak apps downloaden ipad
  • photoscape kostenlos downloaden deutsch mac
  • installous apps downloaden geht nicht mehr
  • nieuwste films downloaden met ondertiteling gratis
  • 7995710463
  • downloaden samsung chat 335
  • windows live downloaden 9.0
  • album top 100 downloaden
  • lg pc suite downloaden kp500
  • kan service pack 2 niet downloaden
  • nieuwste update ps3 downloaden
  • msn 10 downloaden nederlands gratis
  • wii backup manager download
  • windows live messenger downloaden 9
  • app world downloaden blackberry gratis
  • counter strike kostenlos downloaden windows 7
  • gothic spiel kostenlos downloaden
  • ego shooter legal downloaden
  • 8590591385
  • picasa heel album downloaden
  • gratis gta 3 download
  • kostenlos windows 7 spiele downloaden
  • dj programma gratis downloaden for mac
  • google earth downloaden mislukt
  • msn messenger downloaden 9.0 gratis
  • youtube filmpjes downloaden xp
  • downloaden itunes zonder creditcard
  • java update kostenlos downloaden
  • super mario kostenlos downloaden f√ľr handy
  • downloaden vista
  • flash player downloaden ipad
  • hoe ps3 games downloaden
  • whatsapp downloaden voor iphone 3
  • opera browser downloaden nederlands
  • ziggo gratis films downloaden
  • ds spellen downloaden gratis
  • blackberry 9300 apps downloaden
  • gratis nintendo spelletjes downloaden r4
  • youtube songs downloaden wie
  • publisher downloaden product key
  • firefox downloaden gratis
  • internet radio downloaden
  • gta 5 spelletjes downloaden
  • vista business downloads
  • metin2 teamspeak downloads
  • 8866541466
  • problemen downloaden nieuwsgroepen
  • icq downloaden chip
  • market app downloaden android
  • 3549125782
  • star wars battlefront 1 downloaden free
  • fifa 12 downloaden kostenlos
  • photoshop downloaden cs3
  • ebook downloaden tablet
  • word feud downloaden windows phone
  • hardlopen met evy downloaden mp3
  • gratis vuze plus download
  • downloaden van youtube uitleg
  • ipod spiele kostenlos downloaden nano
  • 4297287890
  • liedjes downloaden gratis mp3 van youtube
  • minecraft mods downloaden 1.2.4
  • firefox xp kostenlos downloaden
  • sims 2 sim downloaden
  • pdf adobe reader downloaden gratis
  • wii games downloaden wbfs
  • downloaden spellen voor nintendo ds
  • pokemon downloaden android
  • minecraft kostenlos vollversion downloaden deutsch
  • minecraft forum downloaden
  • muziek downloaden mp3 gratis
  • icq 7.6 kostenlos downloaden deutsch
  • gratis downloaden truck simulator
  • messenger download 8 gratis
  • updates downloaden mislukt
  • tdu patch downloaden
  • kan itunes niet downloaden op pc
  • installous kann nicht downloaden
  • downloaden microsoft word 2010 gratis
  • gro√üe datei downloaden test
  • 289990320
  • copilot maps downloaden
  • album downloaden gratis
  • kostenlos counter strike downloaden deutsch
  • lieder downloaden iphone
  • hypercam 2 kostenlos downloaden deutsch
  • silkroad online kostenlos downloaden
  • zip file gratis downloaden
  • formel 1 spiel kostenlos downloaden vollversion
  • website sjablonen downloaden
  • fout bij downloaden ios 5.1.1
  • zylom games player downloaden
  • radio fx gratis downloaden
  • musik downloaden von myvideo
  • quicktime filme downloaden
  • itunes ipod downloaden
  • rtl gemist downloaden silverlight
  • muziek downloaden albums gratis
  • jurassic park trespasser downloaden
  • podcast downloaden mp3
  • beyonce halo kostenlos downloaden
  • editor emacs downloaden
  • nieuwsgroepen downloaden uitleg
  • es datei explorer downloaden
  • cartrek 200 software downloaden
  • mit realplayer downloaden illegal
  • nzb bestanden downloaden met spotnet
  • gratis windows xp downloaden nederlands
  • tablet spiele kostenlos downloaden
  • google chrome downloaden windows 7
  • gratis nero 10 downloaden voor vista
  • office 2007 evaluatieversie downloaden
  • ziggo mail downloaden
  • acrobat reader 8 downloaden
  • flikken game 1 downloaden
  • microsoft visual basic downloaden
  • opera neueste version downloaden
  • msn downloaden 2012 nl
  • 4995418920
  • msn hack programm downloaden
  • gratis nieuwste albums downloaden
  • pokemon fire red downloaden voor pc
  • kan niet downloaden windows vista
  • internet valt uit downloaden
  • antivir deutsch kostenlos downloaden
  • publisher downloaden
  • liedjes downloaden via link youtube
  • super mario kostenlos downloaden f√ľr mac
  • kostenlos downloaden lieder
  • gratis muziek downloaden linux
  • kostenlos downloaden adobe flash player
  • youtube video downloaden hoe
  • whatsapp downloaden zonder blackberry id
  • downloaden stop the time main street
  • liedjes downloaden voor android
  • download microsoft essentials
  • ebooks downloaden voor tablet
  • films downloaden spotnet mac
  • itunes 9 downloaden mac
  • gratis spelletjes downloaden computer
  • gratis films downloaden 2012
  • spiele downloaden samsung wave 723
  • winrar voor xp downloaden
  • movie maker downloaden voor xp
  • jailbreak spellen downloaden
  • gratis firmware download
  • alle dragon ball z folgen downloaden
  • windows media player downloaden voor mac
  • 360 graden foto downloaden
  • downloads blackberry desktop software
  • youtube downloaden lukt niet
  • whatsapp downloaden oude versie
  • android market downloaden htc
  • windows 7 downloaden installieren
  • msn 7.0 downloaden gratis nederlands
  • msn messenger mac downloaden gratis
  • geogebra kostenlos downloaden deutsch
  • ios 4.3.3 jailbreak downloads
  • heroes seizoen 1 downloaden
  • ganzen youtube kanal downloaden
  • n95 update downloaden
  • music editor kostenlos downloaden deutsch
  • liedjes downloaden voor mp3
  • videos downloaden kostenlos von youtube
  • van youtube downloaden mac
  • apps die niet downloaden
  • naruto downloaden deutsch
  • tomtom downloaden na jailbreak
  • mit handy videos downloaden
  • farmer spiele kostenlos downloaden freeware
  • avast downloaden kostenlos
  • excel nieuwe versie downloaden
  • oude safari downloaden
  • nfs world gratis downloaden
  • kostenlos spiel downloaden handy
  • messenger downloaden gratis 2011 nederlands
  • age of empires downloaden chip
  • waarom samsung kies downloaden
  • gratis kook spelletjes downloaden
  • nederlandse hoorspel downloaden
  • hitzone 58 downloaden gratis
  • music downloaden mobile
  • gmail notifier downloaden
  • skype free downloads blackberry
  • √§ltere java version downloaden
  • waar illegaal ebooks downloaden nederlands
  • video uitzending gemist downloaden
  • msn voor tablet downloaden
  • mozilla firefox 6.0 downloaden
  • gratis minecraft 1.1 download
  • blackberry app world downloaden 8520