Wednesday, February 27, 2013

Dual Color Cadaces modules to Arduino

I have obtained several dual color Cadaces modules. I will be selling them on eBay soon. Here is a sign in red:
Here it is again this time in green. The green is not as bright as the red.
Here it is with both colors alternating.  They do not work correctly because the Arduino serial out does not support sending both the red and green data using the same clock.  What happens is the right most part of the previous color is dragged through the background.
Here is a picture of the working sign.  It was taken with my phone camera so the quality is lacking.  I wrote my own version of the serial output to support different data for red and green to get it to work.


Here is a better picture of the working sign.

Here is an updated schematic with the addition of "GSD" or Green Serial Data.


Here is the dual color code, note that I replaced serialout with my own code to do the same job:


//****************************************************//
//  Name    : Color Cadaces Driver                          //
//  Author  : Bob Davis                               //
//  Date    : 23 February, 2013                       //
//  Version : 1.0                                     //
//****************************************************//
// Pins for the row drivers
int row1Pin = 1;
int row2Pin = 2;
int row3Pin = 3;
int rowEnable = 4;
int rclockPin = 5;
int clockPin = 6;
int dataPin = 7;
int gdataPin = 8;
// Set the pins to output to the sign
void setup() {
  pinMode(row1Pin, OUTPUT);
  pinMode(row2Pin, OUTPUT);
  pinMode(row3Pin, OUTPUT);
  pinMode(rowEnable, OUTPUT);
  pinMode(rclockPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(gdataPin, OUTPUT);
}

//=== Character Array ===
// Characters are A, B, C, etc.  Only upper case, no symbols. 
byte alphabets[][8] = {
  {0, 04, 10, 17, 17, 31, 17, 17}, //A
  {0, 30, 17, 17, 30, 17, 17, 30}, //B
  {0, 14, 17, 16, 16, 16, 17, 14}, //C
  {0, 28, 18, 17, 17, 17, 18, 28}, //D
  {0, 31, 16, 16, 31, 16, 16, 31}, //E
  {0, 31, 16, 16, 31, 16, 16, 16}, //F
  {0, 14, 17, 16, 16, 19, 17, 14}, //G
  {0, 17, 17, 17, 31, 17, 17, 17}, //H
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 07, 02, 02, 02, 02, 10, 14}, //J
  {0, 17, 18, 20, 24, 20, 18, 17}, //K
  {0, 16, 16, 16, 16, 16, 16, 31}, //L
  {0, 10, 21, 21, 21, 17, 17, 17}, //M
  {0, 17, 25, 25, 21, 19, 19, 17}, //N
  {0, 14, 17, 17, 17, 17, 17, 14}, //O
  {0, 30, 17, 17, 30, 16, 16, 16}, //P
  {0, 14, 17, 17, 17, 17, 19, 15}, //Q
  {0, 30, 17, 17, 30, 20, 18, 17}, //R
  {0, 14, 17, 16, 14, 01, 17, 14}, //S
  {0, 31, 04, 04, 04, 04, 04, 04}, //T
  {0, 17, 17, 17, 17, 17, 17, 14}, //U
  {0, 17, 17, 17, 10, 10, 10, 04}, //V
  {0, 17, 17, 17, 21, 21, 21, 10}, //W
  {0, 17, 17, 10, 04, 10, 17, 17}, //X
  {0, 17, 10, 10, 04, 04, 04, 04}, //Y
  {0, 31, 8, 04, 02, 04, 8, 31}, //Z
  {0, 0, 21, 14, 31, 14, 21, 0}, //*
};
byte bitmap[][8] = {  //red characters
  {0, 0,0,0,0,0,0,0},
  {0,  4, 10, 17, 17, 31, 17, 17}, //A
  {0, 30, 17, 17, 30, 20, 18, 17}, //R
  {0, 28, 18, 17, 17, 17, 18, 28}, //D
  {0, 0,0,0,0,0,0,0},
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 17, 25, 25, 21, 19, 19, 17}, //N
  {0, 14, 17, 17, 17, 17, 17, 14}, //O
  {0, 0,0,0,0,0,0,0},
  {0, 14, 17, 16, 14, 01, 17, 14}, //S
  {0, 0,0,0,0,0,0,0},
  {0, 14, 17, 16, 16, 19, 17, 14}, //G
  {0, 17, 25, 25, 21, 19, 19, 17}, //N
  {0, 0,0,0,0,0,0,0},
};
byte gbitmap[][8] = {  //green characters
  {0, 0,0,0,0,0,0,0},
  {0,  4, 10, 17, 17, 31, 17, 17}, //A
  {0, 30, 17, 17, 30, 20, 18, 17}, //R
  {0, 0,0,0,0,0,0,0},
  {0, 17, 17, 17, 17, 17, 17, 14}, //U
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 0,0,0,0,0,0,0},
  {0, 14, 17, 17, 17, 17, 17, 14}, //O
  {0, 0,0,0,0,0,0,0},
  {0, 14, 17, 16, 14, 01, 17, 14}, //S
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 0,0,0,0,0,0,0},
  {0, 17, 25, 25, 21, 19, 19, 17}, //N
  {0, 0,0,0,0,0,0,0},
};
void RunSign()
{
  for (int row = 7; row > 0; row--)
  {
    // turn off display
    digitalWrite(rowEnable, HIGH);
    digitalWrite(rclockPin, LOW);
    // send serial data to display 14 = number of characters
    for (int character = 0; character < 14; character++)
    {
      for (int shiftbit = 5; shiftbit > -1; shiftbit--){
    if bitRead(gbitmap[character][row],shiftbit) digitalWrite(gdataPin, HIGH); else digitalWrite(gdataPin, LOW);
    if bitRead(bitmap[character][row],shiftbit) digitalWrite(dataPin, HIGH); else digitalWrite(dataPin, LOW);
    digitalWrite(clockPin, HIGH); digitalWrite(clockPin, LOW);
      }
    }
    //latch the data
    digitalWrite(rclockPin, HIGH);
    // set up 74138 row sesection and turn display back on
    if bitRead(row,0) digitalWrite (row1Pin, HIGH); else digitalWrite(row1Pin, LOW); 
    if bitRead(row,1) digitalWrite (row2Pin, HIGH); else digitalWrite(row2Pin, LOW);
    if bitRead(row,2) digitalWrite (row3Pin, HIGH); else digitalWrite(row3Pin, LOW);
    digitalWrite(rowEnable, LOW);
    // Wait to see what we sent to the display ;
    delayMicroseconds(500);
  }


//=== L O O P ===
void loop() {
  RunSign();
}

Wednesday, February 20, 2013

Signature Electronic LED Sign to Arduino part 4

*** BREAKING NEWS!!! ***  The next batch of Cadaces modules are RED and GREEN in color.  This will require an updated adapter and updated software.  More to come as soon as I get it working!

Here are some additional pictures of the Arduino to Cadaces adapter.  Hopefully these are clear enough so you can make your own.  The two unused pins are for optional green LED's.


Several people have asked for a scrolling version of the software for the Cadaces modules to work with an Arduino processor.  So here it is:


//**************************************************************//
//  Name    : Scrolling Driver                                 //
//  Author  : Bob Davis                                         //
//  Date    : 2 January, 2013                                    //
//  Version : 1.0                                               //
//  Based on work of Hari Wiguna - http://g33k.blogspot.com/    //
//**************************************************************
// Pins for the row drivers, shift registers
int row1Pin = 1;
int row2Pin = 2;
int row3Pin = 3;
int rowEnable = 4;
int rclockPin = 5;
int clockPin = 6;
int dataPin = 7;

// Set the pins to output to the circuit
void setup() {
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(row1Pin, OUTPUT);
  pinMode(row2Pin, OUTPUT);
  pinMode(row3Pin, OUTPUT);
  pinMode(rowEnable, OUTPUT);
  pinMode(rclockPin, OUTPUT);
}

//=== B I T M A P ===
// Bits in this array represents one LED of the matrix
// 8 is number of rows, 10 is number of LED matrixes we have
byte bitmap[8][10]; 
// Change the 10 to however many matrices you want to use.
int numZones = sizeof(bitmap) / 8; 
// I will refer to each group of 8 columns as a Zone.
int maxZoneIndex = numZones-1;
int numCols = numZones * 8;

//=== F O N T ===
// Font courtesy of aspro648
// http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1203747843/22
// First char is @, next is A, B, etc.  Only upper case, no symbols.  
// The @ will display as space character.
byte alphabets[][5] = {
  {0,0,0,0,0},
  {31, 36, 68, 36, 31},
  {127, 73, 73, 73, 54},
  {62, 65, 65, 65, 34},
  {127, 65, 65, 34, 28},
  {127, 73, 73, 65, 65},
  {127, 72, 72, 72, 64},
  {62, 65, 65, 69, 38},
  {127, 8, 8, 8, 127},
  {0, 65, 127, 65, 0},
  {2, 1, 1, 1, 126},
  {127, 8, 20, 34, 65},
  {127, 1, 1, 1, 1},
  {127, 32, 16, 32, 127},
  {127, 32, 16, 8, 127},
  {62, 65, 65, 65, 62},
  {127, 72, 72, 72, 48},
  {62, 65, 69, 66, 61},
  {127, 72, 76, 74, 49},
  {50, 73, 73, 73, 38},
  {64, 64, 127, 64, 64},
  {126, 1, 1, 1, 126},
  {124, 2, 1, 2, 124},
  {126, 1, 6, 1, 126},
  {99, 20, 8, 20, 99},
  {96, 16, 15, 16, 96},
  {67, 69, 73, 81, 97},
};

//=== F U N C T I O N S ===
// This routine takes whatever is in the bitmap array and display it on the matrix
void RefreshDisplay()
{
  for (int row = 0; row < 8; row++) {
    //-- turn off the display --
    digitalWrite(rowEnable, HIGH); 
    //-- Shift out to each matrix (zone is 8 columns represented by one matrix)
    for (int zone = maxZoneIndex; zone >= 0; zone--) {
      shiftOut(dataPin, clockPin, MSBFIRST, bitmap[row][zone]);
    }
    digitalWrite(rclockPin, LOW); digitalWrite(rclockPin, HIGH);
    //-- turn the current row on --
    if bitRead(row,0) digitalWrite (row1Pin, HIGH); else digitalWrite(row1Pin, LOW);  
    if bitRead(row,1) digitalWrite (row2Pin, HIGH); else digitalWrite(row2Pin, LOW); 
    if bitRead(row,2) digitalWrite (row3Pin, HIGH); else digitalWrite(row3Pin, LOW);
    digitalWrite(rowEnable, LOW);
    //-- Wait a little bit to let humans see
    delayMicroseconds(500);
  }
}

// Converts row and colum to actual bitmap bit and turn it off/on
void Plot(int col, int row, bool isOn)
{
  int zone = col / 8;
  int colBitIndex = col % 8;
  byte colBit = 1 << colBitIndex;
  if (isOn)
    bitmap[row][zone] =  bitmap[row][zone] | colBit;
  else
    bitmap[row][zone] =  bitmap[row][zone] & (~colBit);
}

// Plot each character of the message, updated the display, shift bitmap left.
void AlphabetSoup()
{
  char msg[] = "ARDUINO LED SIGN";
//load in the characters
  for (int charIndex=(sizeof(msg)-1); charIndex >= 0 ; charIndex--)
  {
    int alphabetIndex = msg[charIndex] - '@';
    if (alphabetIndex < 0) alphabetIndex = 0;
    //-- Draw one character of the message --
    // Each character is only 5 columns wide
    for (int col = 5; col >= 0; col--)
    {
      for (int row = 0; row < 8; row++)
      {
        // Set the pixel to the alphabet for columns 0 thru 4
        bool isOn = 0;
        if (col<5) isOn = bitRead( alphabets[alphabetIndex][col], 7-row ) == 1;
        Plot( numCols-1, row, isOn); 
      }
      //-- The more times you repeat this loop, the slower we would scroll --
      for (int refreshCount=0; refreshCount < 50; refreshCount++)
        RefreshDisplay();
      //-- Shift the bitmap one column to left --
      for (int row=0; row<8; row++) //right shift
      {
        for (int zone=0; zone < numZones; zone++)
        {
          // This right shift would show a left scroll on display.
          bitmap[row][zone] = bitmap[row][zone] >> 1;  //right shift
          // Roll over lowest bit from the next zone as highest bit of this zone.
          if (zone < maxZoneIndex) bitWrite(bitmap[row][zone],7,bitRead(bitmap[row][zone+1], 0));
        }
      }
    }
  }
} 
//=== L O O P ===
void loop() {
  AlphabetSoup();
} 





Thursday, February 7, 2013

Going back to school at 56.

0n November 1 of 2012 I went to work as usual.  There was a strange announcement made for me to come to the main office area.  I hesitated for a second thinking to myself “Is this it?”  The request was so unusual that I could not help but think that I was about ready to be fired.  When I arrived I was escorted to the break area and it was totally empty. Then the new lady form HR showed up and she was very nervous.  By now I was sure that I knew what was about ready to happen.  I did what I had already done twice that day for two other people, I started reassuring her that everything was going to be alright, and there was no real problem.  Besides I was expecting this and I was ready to go.

I had worked there for 3 and ½ years.  There were currently about 35 employees and only 6 of them had been there longer than I had.  One of them was the boss’s wife.  It was the kind of place where you either move up to a better job elsewhere or you will get fired.  The president of the company regularly spied on everyone, reading their emails etc.  I even found a “keyboard logger” installed on my computer several times over the years.  I knew that you really had to “watch your back”. 

The same day that I lost my job I went looking for a new job and tried to apply for unemployment by visiting the “UI” (Unemployment Insurance) office.  I found out that you have to apply for unemployment on the Internet.  There are many pages of information that you have to fill out to apply.  I was turned down for unemployment three times.  The first time was because I was laid off on a Thursday.  Because I had “worked” 4 days that week I did not qualify for unemployment and I had to start the entire process all over again.  The next time I was denied benefits was because I was fired for “reasons other than lack of work”.  This time all I had to do was to appeal the decision and show that I was fired for no real reason at all.  Finally after a month of trying I was able to get unemployment.

Once on unemployment I was summoned to the unemployment office for counseling.  When I visited the unemployment office they said that there were several options available for me to pursue.  One of those options was to go back to school.  There was an underused $8000 grant available to go back to school.  This option even included an extension in the unemployment benefits.  The catch was that you had to take engineering classes to study for a degree in an engineering field.  Since I did not have a degree this sounded like a good option.  I did have 7 years of college level education, but none of the places where I had studied at offered a degree back when I went there.

I was told that I could take these classes at the local community college that was only about three blocks from my house.  I needed to sign up quickly as it was mid December.  There were three more problems I had to overcome.  One was that the actual engineering classes were at the main branch of the community college, over an hour drive away.  The next problem was that I had to take a test to get back into college, and the third problem was that it was now January; I would be starting in the second semester without taking the first semester classes that were a prerequisite.

I took the “Compass” test to test my ability in English and math.  It is taken on a computer.  The program seems to know how well you are doing and give you questions to find just where your abilities fall.  When I got to the math I knew I was in trouble. It only gave me a few math questions then it ended the test!  My test scores were 96 for reading, 95 for writing and 31 for math….  So I went to the library and read some books on calculus and retook the test a couple of weeks later.  This time I got a 75 in math so I would be able to start with college math and would not have to retake high school math all over.

The next problem was to get into the classes mid-term.  I had to contact the professor to talk with him to get permission to join the class, but he and almost everyone else was gone on Christmas vacation.  I tried calling and emailing the professor but did not get a response.  Someone finally gave me a form and told me to go to the first class a little early and talk with the professor there.  I did get an email response just hours before attending the class.  The professor thought I could handle it but by the time the class was over I was not very sure I could handle it!

The third problem was that the engineering classes were in Batavia, an hour drive away.  However the class scheduling was such that I could just go there on Monday and Wednesday and could attend two classes while I was there. 

It has now been almost a month and after the initial overload I am doing OK.  I am taking only 12 credits this semester and I would recommend anyone near my age should start with the minimum number of classes until they get used to college life.  Things have changed a lot since I was last taking college classes. 
 








Tuesday, January 29, 2013

Signature Electronic Sign to Arduino Part 3

Several people have asked for more information on the Arduino to Cadaces/Signature Electronics Sign interface. So I am posting a third time on the interface.

This is the schematic for a single line interface. It can run three cadaces modules, perhaps four. If you get garbage in your display, use shorter ribbon cables.This schematic is from the top side looking down at the adapter board.
This is a picture of the bottom of the interface board.
Here is a front view showing the adapter plugged into the left side of the Arduino.
This is a top view of the adapter board.
Here is the code for running two cadaces modules:
//****************************************************//
//  Name    : Cadaces Driver                          //
//  Author  : Bob Davis                               //
//  Date    : 4 January, 2013                         //
//  Version : 1.0                                     //
//****************************************************//
// Pins for the row drivers
int row1Pin = 1;
int row2Pin = 2;
int row3Pin = 3;
int rowEnable = 4;

// Pins for column shift registers
int rclockPin = 5;
int clockPin = 6;
int dataPin = 7;

// Set the pins to output to the sign
void setup() {
  pinMode(row1Pin, OUTPUT);
  pinMode(row2Pin, OUTPUT);
  pinMode(row3Pin, OUTPUT);
  pinMode(rowEnable, OUTPUT);
  pinMode(rclockPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

//=== Character Array ===
// Characters are A, B, C, etc.  Only upper case, no symbols.
byte alphabets[][8] = {
  {0, 04, 10, 17, 17, 31, 17, 17}, //A
  {0, 30, 17, 17, 30, 17, 17, 30}, //B
  {0, 14, 17, 16, 16, 16, 17, 14}, //C
  {0, 28, 18, 17, 17, 17, 18, 28}, //D
  {0, 31, 16, 16, 31, 16, 16, 31}, //E
  {0, 31, 16, 16, 31, 16, 16, 16}, //F
  {0, 14, 17, 16, 16, 19, 17, 14}, //G
  {0, 17, 17, 17, 31, 17, 17, 17}, //H
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 07, 02, 02, 02, 02, 10, 14}, //J
  {0, 17, 18, 20, 24, 20, 18, 17}, //K
  {0, 16, 16, 16, 16, 16, 16, 31}, //L
  {0, 10, 21, 21, 21, 17, 17, 17}, //M
  {0, 17, 25, 25, 21, 19, 19, 17}, //N
  {0, 14, 17, 17, 17, 17, 17, 14}, //O
  {0, 30, 17, 17, 30, 16, 16, 16}, //P
  {0, 14, 17, 17, 17, 17, 19, 15}, //Q
  {0, 30, 17, 17, 30, 20, 18, 17}, //R
  {0, 14, 17, 16, 14, 01, 17, 14}, //S
  {0, 31, 04, 04, 04, 04, 04, 04}, //T
  {0, 17, 17, 17, 17, 17, 17, 14}, //U
  {0, 17, 17, 17, 10, 10, 10, 04}, //V
  {0, 17, 17, 17, 21, 21, 21, 10}, //W
  {0, 17, 17, 10, 04, 10, 17, 17}, //X
  {0, 17, 10, 10, 04, 04, 04, 04}, //Y
  {0, 31, 8, 04, 02, 04, 8, 31}, //Z
};
byte bitmap[][8] = {
  {0, 0,0,0,0,0,0,0},
  {0, 0,0,0,0,0,0,0},
  {0,  4, 10, 17, 17, 31, 17, 17}, //A
  {0, 30, 17, 17, 30, 20, 18, 17}, //R
  {0, 28, 18, 17, 17, 17, 18, 28}, //D
  {0, 17, 17, 17, 17, 17, 17, 14}, //U
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 17, 25, 25, 21, 19, 19, 17}, //N
  {0, 14, 17, 17, 17, 17, 17, 14}, //O
  {0, 0,0,0,0,0,0,0},
  {0, 0,0,0,0,0,0,0},
};

void RunSign()
{
  for (int row = 7; row > 0; row--)
  {
    // turn off display
    digitalWrite(rowEnable, HIGH);
    // send serial data to display 10 = number of led arrays
    for (int character = 0; character < 11; character++)
    {
    shiftOut(dataPin, clockPin, MSBFIRST, bitmap[character][row]);
    }
    //latch the data
    digitalWrite(rclockPin, LOW); digitalWrite(rclockPin, HIGH);
    // set up 74138 row sesection and turn display back on
    digitalWrite(row1Pin, LOW);
    digitalWrite(row2Pin, LOW);
    digitalWrite(row3Pin, LOW);
    if (row==1 or row==3 or row==5 or row==7) digitalWrite (row1Pin, HIGH);
    if (row==2 or row==3 or row==6 or row==7) digitalWrite (row2Pin, HIGH);
    if (row >= 4) digitalWrite (row3Pin, HIGH);
    digitalWrite(rowEnable, LOW);
    // Wait to see what we sent to the display ;
    delayMicroseconds(500);
  }
}

//=== L O O P ===
void loop() {
  RunSign();


Tuesday, January 15, 2013

Acer Aspire 5560 repair

My brother sent me a dead Acer Aspire 5560 laptop.  I checked the power adapter and it had 19 volts.  I tried another adapter just in case, but it did not help either.  However after hearing that the problem is usually the AC adapter I bought another one on eBay and it fixed the laptop!

However the cooling fan in this laptop did need cleaning after only one year of use.  There is one trick in dissembling it.  Remove the CD rom drive, and reach inside to find a hole to push up on the keyboard.  Then push in the 4 catches located at the top of the keyboard.


This is the back side of the motherboard. You can see the three screws that hold the cooling fan together. Remove them and clean out the fan.

Monday, January 7, 2013

Signature Electronic Signs - convert to Arduino

I have removed three of the Cadaces modules and have written some new code to make them work.  Next is to hard wire the interface circuitry instead of using jumper wires.

Once the controller is wired up and the sign is put back together here is what it looks like.  The picture does not tell the whole story, the display blinks, and the more lines that are enabled the more it blinks.  I will have to work on improving the software to fix that problem.
Here is the new Arduino controller on the left compared to the old sign controller on the right:
Here is the Arduino Controller installed into the Signature Electronic Sign.  I goofed a little bit in the layout so that the ribbon cables must be flipped around backwards so that the stripe is to the right.
Here is the schematic diagram.  I wired it with point to point wiring, however a circuit board or wire wrap would have been easier to do.
Last of all here is the code for the sign.  It was written without scrolling and set up for up to four lines of text.  It still needs some work, like the ability to convert a line of text into an array of characters automatically.  I did that manually.

//****************************************************//
//  Name    : Cadaces Driver                          //
//  Author  : Bob Davis                               //
//  Date    : 4 January, 2013                         //
//  Version : 1.0                                     //
//****************************************************//
// Pins for the row drivers
int row1Pin = 1;
int row2Pin = 2;
int row3Pin = 3;
int rowEnable = 4;

// Pins for column shift registers
int rclockPin = 5;
int clockPin = 6;
int dataPin = 7;
int clockPin1 = 8;
int dataPin1 = 9;
int clockPin2 = 10;
int dataPin2 = 11;
int clockPin3 = 12;
int dataPin3 = 13;

// Set the pins to output to the sign
void setup() {
  pinMode(row1Pin, OUTPUT);
  pinMode(row2Pin, OUTPUT);
  pinMode(row3Pin, OUTPUT);
  pinMode(rowEnable, OUTPUT);
  pinMode(rclockPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin1, OUTPUT);
  pinMode(dataPin1, OUTPUT);
  pinMode(clockPin2, OUTPUT);
  pinMode(dataPin2, OUTPUT);
  pinMode(clockPin3, OUTPUT);
  pinMode(dataPin3, OUTPUT);
}

//=== Character Array ===
// Characters are A, B, C, etc.  Only upper case, no symbols. 
byte alphabets[][8] = {
  {0, 04, 10, 17, 17, 31, 17, 17}, //A
  {0, 30, 17, 17, 30, 17, 17, 30}, //B
  {0, 14, 17, 16, 16, 16, 17, 14}, //C
  {0, 28, 18, 17, 17, 17, 18, 28}, //D
  {0, 31, 16, 16, 31, 16, 16, 31}, //E
  {0, 31, 16, 16, 31, 16, 16, 16}, //F
  {0, 14, 17, 16, 16, 19, 17, 14}, //G
  {0, 17, 17, 17, 31, 17, 17, 17}, //H
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 07, 02, 02, 02, 02, 10, 14}, //J
  {0, 17, 18, 20, 24, 20, 18, 17}, //K
  {0, 16, 16, 16, 16, 16, 16, 31}, //L
  {0, 10, 21, 21, 21, 17, 17, 17}, //M
  {0, 17, 25, 25, 21, 19, 19, 17}, //N
  {0, 14, 17, 17, 17, 17, 17, 14}, //O
  {0, 30, 17, 17, 30, 16, 16, 16}, //P
  {0, 14, 17, 17, 17, 17, 19, 15}, //Q
  {0, 30, 17, 17, 30, 20, 18, 17}, //R
  {0, 14, 17, 16, 14, 01, 17, 14}, //S
  {0, 31, 04, 04, 04, 04, 04, 04}, //T
  {0, 17, 17, 17, 17, 17, 17, 14}, //U
  {0, 17, 17, 17, 10, 10, 10, 04}, //V
  {0, 17, 17, 17, 21, 21, 21, 10}, //W
  {0, 17, 17, 10, 04, 10, 17, 17}, //X
  {0, 17, 10, 10, 04, 04, 04, 04}, //Y
  {0, 31, 8, 04, 02, 04, 8, 31}, //Z
};
byte bitmap[][8] = {
  {0, 30, 17, 17, 30, 17, 17, 30}, //B
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 14, 17, 16, 16, 19, 17, 14}, //G
  {0, 0,0,0,0,0,0,0},
  {0,  4, 10, 17, 17, 31, 17, 17}, //A
  {0, 30, 17, 17, 30, 20, 18, 17}, //R
  {0, 28, 18, 17, 17, 17, 18, 28}, //D
  {0, 17, 17, 17, 17, 17, 17, 14}, //U
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 17, 25, 25, 21, 19, 19, 17}, //N
  {0, 14, 17, 17, 17, 17, 17, 14}, //O
  {0, 0,0,0,0,0,0,0},
  {0, 14, 17, 16, 14, 01, 17, 14}, //S
  {0, 14, 04, 04, 04, 04, 04, 14}, //I
  {0, 14, 17, 16, 16, 19, 17, 14}, //G
  {0, 17, 25, 25, 21, 19, 19, 17}, //N
  {0, 0,0,0,0,0,0,0},
};

void RunSign()
{
  for (int row = 7; row > 0; row--)
  {
    // turn off display
    digitalWrite(rowEnable, HIGH);
    // send serial data to display 15 = number of led arrays
    for (int character = 0; character < 16; character++)
    {
    shiftOut(dataPin, clockPin, MSBFIRST, bitmap[character][row]);
//    shiftOut(dataPin1, clockPin1, MSBFIRST, bitmap[character][row]);
//    shiftOut(dataPin2, clockPin2, MSBFIRST, bitmap[character][row]);
    shiftOut(dataPin3, clockPin3, MSBFIRST, bitmap[character][row]);
    }
    //latch the data
    digitalWrite(rclockPin, LOW); digitalWrite(rclockPin, HIGH);
    // set up 74138 row sesection and turn display back on
    digitalWrite(row1Pin, LOW); 
    digitalWrite(row2Pin, LOW); 
    digitalWrite(row3Pin, LOW); 
    if (row==1 or row==3 or row==5 or row==7) digitalWrite (row1Pin, HIGH); 
    if (row==2 or row==3 or row==6 or row==7) digitalWrite (row2Pin, HIGH); 
    if (row >= 4) digitalWrite (row3Pin, HIGH);
    digitalWrite(rowEnable, LOW);
    // Wait to see what we sent to the display ;
    delayMicroseconds(500);
  }


//=== L O O P ===
void loop() {
  RunSign();
}

Saturday, December 29, 2012

Signature Electronic Signs Inc repair

This post is continued here: http://www.bobdavis321.blogspot.com/2013/01/signature-electronic-signs-convert-to.html

There are several Signature Electronic LED Signs for sale on EBay. I bought one that did not work and to get it working I had to add a power cord, and connect the 5 volt power to the processor board in the upper left corner.
Here is the right side of the back where the 110 Volt power is connected.



These signs are made with Cadaces CDVO-1 boards strung together.  Each of those boards holds 8 of 8 by 5 LED arrays.  TPIC68595 serial shift registers drive the columns and a 74HCT138 drives the rows via some TIP127's.  There are 12 of these Cadaces CDVO-1 boards in the sign.

The controller card has two wires that connect it to the outside world. One is green one is blue.  I have traced them out to a "485" IC.  That IC is a RS422 communications chip, so likely the sign is communicated with via RS422.  You will need a Serial or USB to RS422 adapter to talk to the sign.

Here is what one of the Cadaces CDVO-1 boards looks like.

Here is the back side of the Cadaces CDVO-1 board.  I have metered out the pinout and hope to post that soon.  Then I can work on interfacing it to an Arduino or something like that.
Here is how the Cadaces board connects to the controller.
 Here is a size comparison between the new sign and the old Silent radio sign
The new sign is now working with the Arduino processor, but there is a bug when trying to run the entire sign.  Each sequential board displays the same thing as the previous board, it is just scrolled down one position.
 I am using the same software as with the Silent Radio sign, but with the register clock jumpered to the serial data clock, and the column selection code has been modified to work with the 74138.


Sunday, December 16, 2012

Poloroid TDA-03211 3211 32 LCD TV Repair Part 2

I recently had to re-repair the Poloroid TDA-03211 3211 32 LCD TV. This time one of the tiny blue capacitors in the red circled area had shorted and turned black.

I could not read what was written on those caps so I removed them and tested them. The two good ones were about 1 pf, or at the range limit of my capacitor meter. They appeared to be 3 KV caps. So I replace the fried one with a 1 pf 3Kv capacitor and the TV still did not work.

The problem was that I had soldered one capacitor in wrong.  Two of them are part of the protection circuit that detects any problems and shuts down the High Voltage.  They have to be replaced properly or the set will shut off after about 5 seconds.

Here is a better picture of the power supply:
 I circled the blue caps, the tan one is my replacement capacitor.  Notice the large red caps, they are 2.2 uF at 400 volt paper caps that replaced the old 4 uF electrolytic caps.

Friday, December 14, 2012

Dunlap Clarke Rebuild part 2

A while back I started rebuilding a Dunlap Clarke Amplifier.  This is an update to the rebuild project.  I stripped the cabinet almost completely bare, then cut holes in the sided for new heat sinks.  Next I drilled holes for the power transformer.
Next I installed the heat sinks with the new circuit board and wired everything up. The new power transformer is 50 volt center tapped at 8 amps.
 
So far all I have done is a hum test.  I connected speakers and tapped the input screws to produce a loud hum.  Next is to wire up the input jacks and level controls.

Saturday, November 17, 2012

Popout Vertical Menu for WordPress website using HTML and CSS

I designed a popout vertical menu for wordpress for a previous employer but they never liked it or used it.  So here it is for everyone to use!  It only uses CSS and HTML so it can be used anywhere!

To see it in action, select all of the code, cut and paste it into notepad.  Save it as "vertmenu.html" then find the file that you just saved and double click on it.

Here is a picture of it in action:
 

<style type="text/css">
#navigation {width: 180px; font-size: 1em; Font-family: arial;}
#navigation ul { margin: 0px;  padding: 0px; }
ul.top-level { background: #CCf; }
#navigation li { list-style: none; }
  ul.top-level li {
    border-bottom: #fff solid;
    border-top: #fff solid;
    border-width: 1px; 
  }
#navigation a {
  color: #000;
  cursor: pointer;
  display:block;
  height:25px;
  line-height: 25px;
  text-indent: 10px;     
  text-decoration:none;
  width:100%; 
  }
#navigation a:hover{ text-decoration:underline; }
#navigation li:hover {background: #DDF; position:top;  }
  ul.sub-level { display:none; width:600px; height:220px; }
  li:hover .sub-level {
    background: #EEF;
    border: #fff solid;
    border-width: 1px;
    display: block;
    position: absolute;
    left: 180px;
    top: 5px;   }
  ul.sub-level li {
    border: none;
    float:left;
    width:180px;
    }
  
#navigation .sub-level { background: #EEF; }
 /*IE RESET HELPER*/
 li:hover .sub-level .sub-level { display:none; }
 .sub-level li:hover .sub-level { display:block; }     

 
</style>

<div id="navigation">
<ul class="top-level">
<li>
<a href="http://www.gentech.com/about-gentech/" title="About us">About us</a>
<ul class="sub-level">
<li>
<a href="http://www.gentech.com/gentech-contact-information/" title="How to Contact GenTech ">Contact us</a>
</li>
<li>
<a href="http://www.gentech.com/gentech-catalog/" title="GenTech  Catalog">Our Catalog</a>
</li>
<li>
<a href="http://www.gentech.com/gentech-employment/" title="GenTech Employment"> Employment Openings</a>
</li>
<li>
<a href="http://www.gentech.com/gentech-financing/" title="GenTech Financing">Our Financing</a>
</li>
<li>
<a href="http://www.gentech.com/guide-to-mass-specs/" title="Compare Mass Spectrometer 
Features">Guide to MS</a>
</li>
<li>
<a href="http://www.gentech.com/gentech-history/" title="GenTech History">Our History</a>
</li>
<li class="cat-item cat-item-14">
<a href="http://www.gentech.com/gentech-terms/" title="GenTech Term and Conditions">Our Terms</a>
</li>
<li>
<a href="http://www.gentech.com/gentech-testimonials/" title="GenTech  

Testimonials">Customer Testimonials</a>
</li>
<li>
<a href="http://www.gentech.com/gentech-warranty/" title="GenTech  

Warranty">Our Warranty</a>
</li>
<li>
<a href="http://www.gentech.com/10-reasons-to-choose-gentech/" title="10 Reasons to Choose 
GenTech">Why Choose GenTech</a>
</li>
<li>
<a href="http://www.gentech.com/useful-links/" title="Useful Analytical Equipment 
Links">Useful Links</a>
</li>
</ul>
</li>
<li>
<a href="http://www.gentech.com/gc/" title="Used Gas Chromatography Equipment"> GC </a>
<ul class="sub-level">
 <li><a href="http://www.gentech.com/category/gc/agilenthp-gc/" title="Used Agilent/HP Gas 
Chromatography">Agilent/HP GC</a>
 </li>
 <li>
 <a href="http://www.gentech.com/category/gc/perkin-elmer-gc/" title="Used Perkin Elmer 
Gas Chromatography">Perkin Elmer GC</a>
 </li>
 <li><a href="http://www.gentech.com/category/gc/shimadzu-gc/" title="Used Shimadzu Gas 
Chromatography">Shimadzu GC</a>
 </li>
 <li><a href="http://www.gentech.com/category/gc/other-gc/" title="Other Gas 
Chromatography Instruments">Other GC</a>
 </li> 
 <li><a href="http://www.gentech.com/category/gc/gc-accessories/" title="Gas 
Chromatography Instrument Accessories">GC Accessories</a>
 </li>
 <li><a href="http://www.gentech.com/category/gc/gc-kits/" title="Gas Chromatography 
Installation Kits">GC Kits</a>
 </li>
 <li><a href="http://www.gentech.com/category/gc/gc-software/" title="Gas Chromatography 
Software">GC Software</a>
 </li>
</ul>
</li>
<li><a href="http://www.gentech.com/hplc/" title="Used HPLC Equipment">HPLC</a>
<ul class="sub-level">
 <li><a href="http://www.gentech.com/category/hplc/new-hplc-systems/" title="New HPLC 
Systems">New HPLC Systems</a>
 </li>
 <li><a href="http://www.gentech.com/category/hplc/agilenthp-hplc/" title="Used Agilent/HP 
HPLC Instruments">Agilent/HP HPLC</a>
 </li>
 <li><a href="http://www.gentech.com/category/hplc/perkin-elmer-hplc/" title="Used Perkin 
Elmer HPLC Instruments">Perkin Elmer HPLC</a>
 </li>
 <li><a href="http://www.gentech.com/category/hplc/shimadzu-hplc/" title="Used Shimadzu 

HPLC Instruments">Shimadzu HPLC</a>
 </li>
 <li><a href="http://www.gentech.com/category/hplc/waters-hplc/" title="Used Waters HPLC 
Instruments">Waters HPLC</a>
 </li>
 <li><a href="http://www.gentech.com/category/hplc/other-hplc/" title="Other HPLC 
Instruments">Other HPLC </a>
 </li>
 <li><a href="http://www.gentech.com/category/hplc/hplc-kits/" title="HPLC Instruments 
Installation Kits">HPLC Kits</a>
 </li>
 <li><a href="http://www.gentech.com/category/hplc/hplc-software/" title="HPLC Instrument 
Software">HPLC Software</a>
 </li>
</ul>
</li>
<li><a href="http://www.gentech.com/mass-spec/" title="Used Mass Spectrometer 
Equipment">Mass Spectrometer</a>
<ul class="sub-level">
 <li><a href="http://www.gentech.com/category/mass-spec/gcms-systems/" title="Used GC/MS 
Instruments">GC/MS Systems</a>
 </li>
 <li><a href="http://www.gentech.com/category/mass-spec/lcms-systems/" title="Used LC/MS 
Instruments">LC/MS Systems</a>
 </li>
 <li><a href="http://www.gentech.com/category/mass-spec/mass-spec-kits/" title="Mass Spec 
Instruments Installation Kits">Mass Spec Kits</a>
 </li>
 <li><a href="http://www.gentech.com/category/mass-spec/ms-accessories/" title="Mass Spec 
Instruments Accessories">MS Accessories</a>
 </li>
</ul>
</li>
<li><a href="http://www.gentech.com/aaicp/" title="Used AA/ICP Equipment">AA/ICP</a>
<ul class="sub-level">
 <li><a href="http://www.gentech.com/category/aa-icp/atomic-absorption/" title="Used AA 
Instruments">Atomic Absorption</a>
 </li>
 <li><a href="http://www.gentech.com/category/aa-icp/icp/" title="Used ICP 
Instruments">ICP Instruments</a>
 </li>
</ul>
</li>
<li><a href="http://www.gentech.com/miscellaneous/" title="Misc Analytical 
Instruments">Misc.</a>
<ul class="sub-level">
 <li><a href="http://www.gentech.com/category/misc/edwards-pumps/" title="New and Used 
Edwards Pumps">Edwards Pumps</a>
 </li>
 <li><a href="http://www.gentech.com/category/misc/other-instruments/" title="Other Used 
Instruments">Other Instruments</a>
 </li>
 <li><a href="http://www.gentech.com/category/misc/pfeiffer-pumps/" title="Used Pfeiffer 

Pumps">Pfeiffer Pumps</a>
 </li>
 <li><a href="http://www.gentech.com/category/misc/varian-pumps/" title="New Varian 
Pumps">Varian Pumps</a>
 </li>
</ul>
</li>
<li><a href="http://www.gentech.com/parts-department/" title="Analytical Instrument 
Parts">Parts Department</a>
<ul class="sub-level">
 <li><a href="http://www.gentech.com/category/parts-dept/finnigan-parts/" title="Thermo 
Finnigan Instrument Parts">Thermo Finnigan Parts</a>
 </li>
 <li><a href="http://www.gentech.com/category/parts-dept/hp-parts/" title="HP Instrument 
Parts">HP Instrument Parts</a>
 </li>
  <li> <a href="http://www.gentech.com/category/parts-dept/hp-parts/1100/" title="HP 1100 
HPLC Instrument Parts">&HP 1100 HPLC Parts</a> 
  </li>
  <li> <a href="http://www.gentech.com/category/parts-dept/hp-parts/5890/" title="HP 5890 
GC Instrument Parts">&HP 5890 GC Parts</a> 
  </li>
  <li> <a href="http://www.gentech.com/category/parts-dept/hp-parts/59715972/" title="HP 
5972 MS Instrument Parts">&HP 5970-72 MS Parts</a> 
  </li>
  <li> <a href="http://www.gentech.com/category/parts-dept/hp-parts/5973/" title="HP 5973 
MS Instrument Parts">&HP 5973 MS Parts</a> 
  </li>
  <li> <a href="http://www.gentech.com/category/parts-dept/hp-parts/6890/" title="HP 6890 
GC Instrument Parts">&HP 6890 GC Parts</a> 
  </li>
  <li> <a href="http://www.gentech.com/category/parts-dept/hp-parts/7673/" title="HP 7673 
Autosampler Parts">&HP 7673 AS Parts</a> 
  </li>
 <li><a href="http://www.gentech.com/category/parts-dept/other-parts/" title="Other 
Scientific Instrument Parts">Other Instrument </a>
 </li>
 <li><a href="http://www.gentech.com/category/parts-dept/perkin-elmer-parts/" 
title="Perkin Elmer Instrument Parts">Perkin Elmer </a>
 </li>
 <li><a href="http://www.gentech.com/category/parts-dept/pfeiffer-parts/" title="Pfeiffer 
Instrument Parts">Pfeiffer Parts</a>
 </li>
 <li><a href="http://www.gentech.com/category/parts-dept/tekmar-parts/" title="Tekmar 
Instrument Parts">Tekmar Instrument Parts</a>
 </li>
 <li><a href="http://www.gentech.com/category/parts-dept/varian-parts/" title="Varian 
Instrument Parts">Varian Instrument Parts</a>
 </li>
</ul>
</li>
<li><a href="http://www.gentech.com/services-overview/" title="Analytical Instrument 
Services">Services</a>
<ul class="sub-level">
 <li><a href="http://www.gentech.com/bench-repair/" title="Analytical Instrument 
Repair">Bench Repair</a>
 </li>
 <li><a href="http://www.gentech.com/installation/" title="Analytical Instrument 
Installation">Instrument Installation</a>
 </li>
 <li><a href="http://www.gentech.com/packing-instructions/" title="Instrument Packing 
Instructions">Packing Instructions</a>
 </li>
 <li><a href="http://www.gentech.com/request-service-form/" title="Request Instrument 
Service Form">Request Service Form</a>
 </li>
 <li><a href="http://www.gentech.com/service/" title="Instrument Service 
Information">Service Information</a>
 </li>
 <li><a href="http://www.gentech.com/shipping/" title="Analytical Instrument 
Shipping">Instrument Shipping</a>
 </li>
 <li><a href="http://www.gentech.com/circuit-board-repair" title="Analytical Circuit Board 
Repair">Circuit Board Repair</a>
 </li>
</ul>
</li>
</ul>
</div>

Thursday, November 8, 2012

New floor for a friend

Recently I installed a new floor for a friend.  It is the interlocking wood floor like what I did in my living room.  These came with a water seal and pad built in so installation was easier.  Here are some pictures of the resulting floor.



Samsung 42 inch Plasma TV Repair Model P4231


I picked up a 42 inch plasma TV for free a few months ago.  The owner was getting rid of it because it shuts off after a few hours.  It eventually got so bad that it acted up after just one hour.  So it was time to take it apart and fix it. Here it is with the covers removed.  You have to remove the base to remove the back cover.
Here is the power supply board. You will need to remove it for servicing. First check for any blown capacitors. Then turn it over and re-solder any connections that go to anything mounted on the heat sink or that looks at all worn.
 If all else fails add a cooling fan.  Mine has now been running over 4 hours after re-soldering the connections.

Monday, October 29, 2012

Compaq F700 repair

Recently I had the job of fixing a Compaq F700 that overheated and shut off after about 15 minutes of operation.  Needless to say the cooling fan was completely clogged with dust as can be seen in the picture below.

To get inside of this computer you need to find some hidden screws.  First you remove the panel above the keyboard, then the keyboard then the CD ROM drive.  There are three screws hidden above the CD ROM front edge.  Then there are three screws you must remove from the bottom, two are standoffs and one is above the hard drive.  I circled their locations in the picture below. 



There is another screw that can only be reached from above, once the CD ROM is removed.  There is a hole now available that goes down through where the CD drive had been to access a hidden screw down below.  You have to remove the screen and all the usual screws to finally get the top cover off the laptop.  Once you remove the main board the cooling fan screws are hidden under some black sticky plastic.  They are extra small and hard to remove.

Hurricane Sandy

As Hurricane Sandy approaches our coast I am compelled to think back over the last few years.  Somewhere on this blog I talked about how when Florida was promoting the gay lifestyle for two years in a row three hurricanes per year crossed through Florida, some hurricanes crossed more than once!  Then there was California voting in gay marriage and in one night 800 dry lightning strikes started almost 1000 forest fires.  Then last year New York adopted gay marriage and three hurricanes/tropical storms hit New York state in one year!

One tropical storm hitting in 20 years is more the normal for New York state.  Maybe only one in every 10 years, but last year 3 tropical storms hit NY in one year!  Is that supposed to be a coincidence?  Now we are bracing for tropical storm "Sandy".

This storm is just the beginning of the end.  I have seen visions of smoke rising out of many cities.  I have heard "this will happen here" when I see the unrest in the middle east.  I have had dreams where the government forces are attacking innocent civilians in the cities just like what has been going on in Syria and other countries.  This upcoming election is a loose-loose situation.  Either way we loose.  If one side does not win they claim they will start a second civil war.  If they do win they will finish off this country. 

We need to pray for a miracle!  We need a revival to save this country.  We have committed three major sins.  First there is the shedding of innocent blood - abortion.  Then there is promoting homosexuality in our schools and with the changing of the definition of marriage, this is the "abomination that brings desolation".  And last of all we have abandoned Israel, God's country and His people. 

Tuesday, October 16, 2012

12 Things to look for in a new web site



Here are twelve things to look for when you are creating or purchasing a new web site design.  These are some serious questions that you need to ask before investing in a new web site.

1. Does it use an industry standard platform such as Joomla or Wordpress or does it use some sort of “custom code”?  If it is not based on an industry standard platform, then how many bugs are hidden away in the “custom code” and how is the custom code going to be kept up to date?

2. Does it rely on Java and or on flash in order to work?  If so there are a lot of people that have those disabled or they do not work properly on their computers.  An animated jiff can usually do the same thing as flash without any of the risk.

3. Does it have a simple HTML/CSS based menu system that can be easily followed by and indexed by the search engines?  If the menu is hidden in flash it might as well not exist.

4. Does the web site submit a site map weekly to Google and to the other search engines?  That is the quickest way to get your web site indexed by the search engines.

5. Does it have titles on all of the pages, all of the links and on all of the pictures?  Titles are an easy and safe way to stuff keywords that are highly ranked by the search engines.

6. Does the home page have a clear purpose?  What do you do?  What makes your company better than the competitors?  If they have to search to see why your web site exists then it might as well not exist. 

7. Does the home page have a place to sign up?  It needs some sort of “Call to Action”? There has to be an easy way to sign up for web only specials, deals, monthly newsletters, etc.

8. Does the home page have social media links?  Follow us on Facebook, LinkedIn, and whatever other social sites that your company uses?  Can they “like” your company?

9. Is there a “about us” or “Contact us” with you physical address and phone number?  I almost always want to know where a company is physically located before I order anything from them.

10. Does it have an easy to find search function that returns relevant results?  I hate it when I have to use Google to search inside a web site for something that I know is hidden in there somewhere.

11. Does it support mobile browsers?  This usually requires that it detect a mobile device and then reformats the entire site to fit on the mobile device.

12. Does it use colors that make the text unreadable?  There needs to be lots of contrast between the background and the text.  For example green text on a blue background can be unreadable. 

Wednesday, October 10, 2012

New roof project

Well for months I debated between putting on a metal roof or using shingles.  Metal costs a tiny bit more but is many times faster to install.  Well the folks at 84 lumber had Architectural shingles on sale for $86 per 100 square feet.  That compares to about $105 everywhere else.

First I had to remove the flat roof over the deck and replace the last 1 to 2 feet as they had rotted out.  Then I put on a new roof using roll roofing.  Basically you nail down a 9 to 10 inch wide strip around the outside edges.  Then cover those strips with roof cement and then put the new roofing on using that cement, and nail down the top edge.  That way no nails are visible when it is done.  However it leaked the first time it rained because the cement was not dry yet in the seams.

Here is the roof when it was almost done. Note that I spilled a little roofing cement on the flat roof near the ladder.
Here is the new roof once it was done on the first side.  I also replaced the attic vents because 84 lumber had them for less than $10 each and the old ones were very rusty.  The vent pipe in the middle was spray painted after this picture was taken.
Next the car port roof needs replacing, it has always leaked.

Here are some "Before" pictures, first one of the main roof then one of the carport roof.


Sunday, September 16, 2012

47 inch Sony TV teardown

My neighbor was throwing out a huge TV because the screen was broken.  I told him that you can make money selling the parts on eBay.  He told me that I could do that, so I hauled it away.  The number of inverters inside of it really surprised me.  There are a total of 24 inverters in there.  Here is a picture of what the guts looked like.

By the way the circuit boards sold for about $50 and the base sold for an additional $30!

Tuesday, September 4, 2012

My latest book is on Kindle

My book "Creation is a Fact" is on Kindle!  You can find it at http://www.amazon.com/dp/B00937S4IQ

It has taken a lot of work and as I can see there is still a lot more work to to do.  The table of contents needs work, several things need fixing for the smaller page width, and there is another book to add to the bibliography called "Cryptozoology from A to Z"

Even as I was publishing the book the news came out that drilling at the Antarctic found proof that it was once a tropical paradise just like the North pole!  Remember that the south pole is much colder that the north pole.  How could it have once been part of a tropical paradise?  Only via the canopy theory as found in my book.

Why write another book on creation?  Because I want to answer the question of what God did on the eighth day.  God created everything in six days, then he rested.  Then what did He do? Many creationists seem to imply that He never woke up form his "nap".  I believe that God went back to creating.  I believe creation is part of God's nature.  That explains why stars and planets are still being created today.  God loves to create.  He loves to be creative in our lives as well!

I have also created an Amazon author page, it is at: www.amazon.com/author/bobdavis321

Wednesday, August 22, 2012

Removing AVG 2102

Is AVG 2012 a virus?

I had to remove AVG 2012 from a computer the other day.  First I tried "AddRemove" programs from the control panel but it did not work.  Then I tried CCleaner but it could not remove it.  I could not even manually shut AVG 2012 down from "Windows Task Manager".

Finally I restarted the computer in "safe mode" and located C:\Program Files\AVG and AVG2012.  I then deleted the entire directories.  When I restarted the computer and I ran CCleaner to fix all of the registry errors.  Next I installed "Microsoft Security essentials".  Now the computer runs much faster and uses a lot less memory. 

Wednesday, July 25, 2012

Why are there two bottles when it fits in one?

Have you noticed lately that you can but two bottles of medicine and then pour the second bottle into the first with room to spare?

I see it all the time, a big deal, two jars for the price of one. They are both less than half full! Why not sell just one FULL jar for the price of one, and save on the environment?

Friday, June 29, 2012

Quick fix for wet basement

How to quickly and cheaply fix a wet basement. Drill holes in the bottom of the cinder blocks and let the water out. Then fill the blocks with expanding foam. Each can can only do 3 or 4 blocks. As the foam expands it will push more water out of the blocks.

 I got this idea from a church that was being built. First they laid the blocks for the basement. Then they brought in a big truck and filled all of the cinder blocks with foam. If the blocks are filled with foam then the water cannot get into them.

 The many cans of expanding foam might be expensive, but it is far cheaper than digging up all around the foundation and re-coating the outside or digging up the floor and putting in a drainage system.

If you can get at the top of the blocks you can also fill them from the top too.  Do that in several layers of foam with time to harden in between the layers otherwise the weight of the foam will compact itself.  It still takes a lot of cans of foam to do this.  I am sure there must be a company out there that can fill the blocks with foam from a truck!

Wednesday, June 6, 2012

How to list all posts in WordPress

I recently had the need to list all posts on a WordPress web site.  After hours of playing around I found a great Plugin called "Get Post List With Thumbnails".  It did a great job of listing everything in the sidebar but the explanation on how to get it to show up in a page is a bit difficult to understand. 

To list everything in a page, create the page, then switch to HTML and put something like this into it - [gplt orient="h" imgo="false" ttgo="true" dtgo="false" dtfrm="1" categ="" postnr="200" linn="4" divwid="300" tbwid="100" tbhig="100" cp="1" cs="1" lwt="2" tte="" sptb="false" tgtb="false" ordm="DESC" ordf="ID" metk="" mett="" pgin="" ptype="post" dexcp="false" gptb="false"] 

That short code above will do 4 across by 50 top to bottom for a total of 200 posts.  It looks like this:
The short code is a bit difficult to figure out.  To get an idea of what the codes mean use the widget in a sidebar and the long version of the short codes will then show up.

Tuesday, May 22, 2012

How to locate infected computer with a UTM5 or UTM10

I have worked with a number of Firewalls over the years, but the Netgear UTM Series Firewalls are not easy to work with.  After several attempts to find what computer is trying to access an infected web site I made a printout so I could easily find my way there.

Select "Content Filter" set the date back one day and select "Download" to get a copy of the data. It opens with a spreadsheet and then you can look in there to see who the offending computer is.

Wednesday, May 9, 2012

Comparing Digital TV Antennas

I have tried two different antennas for Digital TV reception. One cost me only $2 at a yard sale. One was far superior in rejecting interference and in reducing the number of drop outs.

Would you believe that the older antenna in the bottom picture did a much better job of rejecting interference like that of a train going by and in reducing dropouts? The four "bow tie" design is by far the best antenna for modern digital TV reception. The other antenna designs like the one in the top picture feature VHF reception and that is only needed for FM radio these days. The older bow tie type of antennas are also not nearly as directional so you usually do not even need an antenna rotor to get a good picture. So save yourself some money and get one of the old antennas!