I have become a fan of the Dell Inspiron 1501 and 1503 laptops. I first fixed up one for a friend. Then someone gave me one for free. I cleaned out the cooling fan and replaced the keyboard and now it is my main computer. Recently I purchased two Dell E1505 laptops for $40 each. Their hinges were completely broken and one of the screens was even damaged because of the hinge problem. You can buy a hinge/LCD bracket assembly on eBay, or you can fix it yourself.
To fix it yourself remove the rubber stops and the screws that are located behind them. Remove the front bezel. Optionally remove the plastic over that is at the top of the keyboard to expose the bottoms of the hinges. Remove the broken hinge mounts, you should now see what is in the picture below.
To modify it first use a 1/4 inch drill bit to remove any burs on the three holes that are behind each hinge mounting bracket, so that the bracket will now fit flush against the aluminum behind it. Then use a 5/64 inch drill bit to drill the top hole in the bracket right through the back cover. Next, from the back side, drill a 3/32 inch hole through the cover and the aluminum, but NOT into the hinge bracket. Next put a screw into the new hole and thread it into the hinge mounting bracket. Before tightening that screw, you can optionally put a drop of glue or epoxy behind the bracket and then quickly tighten the screw.
If everything goes well the bracket is now glued and screwed back into place. Do not use extra super glue, the fumes off it can glue everything together and even melt plastic nearby. A tiny drop is all that is needed. I have done this repair without using any glue and it works fine.
While you are in there be sure to take out the cooling fan and clean off the heat exchanger!
Wednesday, March 27, 2013
Thursday, March 7, 2013
Mini Cadaces 8 by 10 LED to Arduino
I have written some code to work with the small 8 by 10 LED array boards made by Cadaces/Signature Electronic signs. Here is a picture of one of them working:
Here is the code for the Arduino to make it work, the interface is that same as was used in previous posts.
//****************************************************//
// Name : 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, 17, 17, 17, 31, 17, 17, 17}, //H
};
byte gbitmap[][8] = { //green characters
{0, 14, 04, 04, 04, 04, 04, 14}, //I
{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 2 = number of characters
for (int character = 0; character < 2; character++)
{
for (int shiftbit = 5; shiftbit >=0; 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();
}
Here is the code for the Arduino to make it work, the interface is that same as was used in previous posts.
//****************************************************//
// Name : 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, 17, 17, 17, 31, 17, 17, 17}, //H
};
byte gbitmap[][8] = { //green characters
{0, 14, 04, 04, 04, 04, 04, 14}, //I
{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 2 = number of characters
for (int character = 0; character < 2; character++)
{
for (int shiftbit = 5; shiftbit >=0; 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();
}
Friday, March 1, 2013
Dunlap Clarke Rebuild part 3
A while back I rebuilt a Dunlap-Clark amplifier using some TDA7294 modules. I was disappointed with the anemic results of about 150 watts per channel. I searched eBay and found a pre-assembled circuit that claimed about 350 watts per channel. They advertise it as "1PC L20 350W Mono Audio Power Amplifier Kit AMP Board".
Here are the specifications:
You might note that the specifications are very poor translations. The big shock to me was the price, it was only $17.50 plus $7 shipping. That is less than the cost of two of the old TO-3 metal power transistors! The circuit board does not come with a heat sink, and the transistors certainly do not fit the old TO-3 power transistor holes. So I made a "heat sink adapter" out of a piece of aluminum.
Here is what it looks like mounted inside the Dunlap Clark Cabinet:I am still using the 50 volt center tapped power transformer although the board can use up to 62 volts center tapped.
Next I need to add a bridge rectifier and some filter caps so I can start testing it out.
I connected the power supply and it works. I am limited to about 150 watts by the 1 volt output of the signal generator program running on my laptop. That 1 volt input produces 25 volts peak to peak into 4 ohms with this setup.
Here are the specifications:
Power 200W (8R) 350W (4R) Voltage: DC + - 45V Rectified AC voltage range AC 12V to AC dual dual 32V; THD = 0.009% 1K HZ 50W 8R SR = 35V / US Noise 92DBU EIN = 114 DB Frequency Response 20-20KHZ + - 0.5 DB 34 times the voltage gain All resistors are 1% precision high precision resistors PCB size: 116MM * 72 MM*1.6MM All capacitors are imported original.
KEC original imported audio power tube. Promote the use of KEC B817 D1047 and Toshiba A1930 C5171 Package including: 1X L20 Mono Amplifier Board
You might note that the specifications are very poor translations. The big shock to me was the price, it was only $17.50 plus $7 shipping. That is less than the cost of two of the old TO-3 metal power transistors! The circuit board does not come with a heat sink, and the transistors certainly do not fit the old TO-3 power transistor holes. So I made a "heat sink adapter" out of a piece of aluminum.
Here is what it looks like mounted inside the Dunlap Clark Cabinet:I am still using the 50 volt center tapped power transformer although the board can use up to 62 volts center tapped.
Next I need to add a bridge rectifier and some filter caps so I can start testing it out.
I connected the power supply and it works. I am limited to about 150 watts by the 1 volt output of the signal generator program running on my laptop. That 1 volt input produces 25 volts peak to peak into 4 ohms with this setup.