Wednesday, May 23, 2018

Rebuilding LAB Series LS800 Amplifier with a L-15 Amplifier

I am rebuilding another power amplifier.  This time I chose the L-15 amplifier because it fits in the heatsink.

The L 15 amplifier compared to the old circuit board for size.
 The amplifier totally dissembled into pieces.
 The back panel of the amplifier.
Here is the ebay ad for the replacement amplifier.
The L15 fits nicely in the heat sink
I am using 4 pin power connectors for 5.25 floppy drives for power and ground.  Red is positive, yellow is negative and black is ground.
Here is a picture of the old front panel.  I will replace it with two LM3915's.
This is the first test.  Power is at + and - 62 VDC.  Lots of gain, I had to turn the volume way down.  Still to go are the input jacks and volume controls.

I have been comparing some of the amplifiers that I have worked with:

L-10 Amplifier:
Size 200x41.5x?? mm
8 Ohm 100 Watts
4 Ohm 200 Watts
2 Ohm 350 Watts +-55VDC
Transistors 3 EA: A1943 C5200

L-15 Amplifier:
Size 150x40x?? mm
Size 5.9x1.57x??"
8 Ohm 150 Watts
4 Ohm 300 Watts
2 Ohm 600 Watts +-55VDC
Gain 36x
Transistors 3 EA: IRFP240/IRFP9240

L-20/28 Amplifier:
Size 110x65mm (L-20)
8 Ohm 200 Watts +-65V
4 Ohm 350 Watts +-60V
Gain 34x
Transistors 4 ea D1047 B817
Note: L-28 includes capacitors and speaker protection

PR-800 Amplifier:
Size 245x65x30mm (or 195x90 with 4 Capacitors)
Size 9.64x2.55x1.18"
8 Ohm 500 Watts +- 95VDC
4 Ohm 1000 Watts +-90VDC
2 Ohm 1000 Watts +-65VDC
Gain 40x
Transistors 4 ea TTA1943 TTC5200
Note: Includes Capacitors and Speaker protection
Note there are 2 sizes one with 2 capacitors and one with 4 capacitors.

NJW0281/NJW0302 450W+450W HIF
Size 259x73mm
8 Ohm
4 Ohm 450 Watts +-85VDC
Gain Very Low - needs preamplifier
Transistors 4 ea NJW0281/NJW0302

I think I can fit the PR-800 amplifier version with two filter capacitors so I will try to upgrade to that amplifier instead.  It is coming from China so it will take a while.  Please stay tuned. The PR-800 version is in another blog post.

I am rebuilding the VU meters.  I did purchase some LM3915 kits but they only have 10 LED's and I have 12 holes to fill.  I also used round LED's instead of the flat ones that came with the kit. But that version only has 10 LED's.  So I stripped a board from the amplifier bare and installed a LM3915 instead leaving room for more circuitry.
However the rebuilt VU meter was barely visible!  So I had to replace all of the LED's with newer brighter models.  Now to add the two top LED's.  I am planning on using a dual op amp for that job.


Saturday, May 5, 2018

Ford Taurus Passenger Blend Door Actuator

My wife's car had the heat stuck on for the passenger side only.  It was way too hot and it would not turn down.  The problem was a motorized door that was stuck.

Here is an excellent video on how to change the actuator.

I used my fingers to disconnect the electrical connector and that might be easier to do before the actuator is removed.  It is identical to the other connector to the right so you can see what your are feeling for.  Basically you push in a small tab in the center and pull up on the wires.

Here is an great picture of what to look for behind the glove box.

Source: http://www.taurusclub.com/forum/114-5th-6th-gen-maintenance-repair/244434-driver-side-blows-cold-passenger-side-blows-hot.html

This is how to test the heating and cooling system.
Turn the heating/cooling system off before you start.

The self-test can be initiated after cycling the ignition switch from OFF to ON.
For the self-test, press the OFF and DEFROST buttons together and release them.
Then press the AUTO button - ALL within 2 seconds.
The display will show a moving bar-graph icon for 20 seconds.
If diagnostic codes are present, they will be displayed.
My codes were "12 42" and "22 67"
When done press any button to exit.
Wait 30 seconds to turn the key off for the computer to re-calibrate.

Here is a picture looking into the glove box area.

This picture is going in a little closer.  I moved the white wire harness down out of the way.

Here is the tool setup I used to get to the back screw.  I had to purchase a 1/4 inch universal joint for $5 that you cannot see in the picture.

Here is what is inside of the actuator.  You can test the motor with a 9 volt battery.  The two connections to the motor are on the right side (back) of the motor.  My motor turned a couple of times and stopped.  I thought maybe the mechanics were stopping it, but no it was the motor itself.
***UPDATE ***  A year later I had the same problem again!!  This time I cut away the wiring cover above the actuator with a razor knife.  Then I used wire cutters to cut the plastic next to the wire so as to not cut the wires.  Then I drilled a tiny hole and put a 2 inch deck screw into the black part of the actuator so that it can be locked in place on either hot or cold depending on the time of year.



Tuesday, April 17, 2018

Audio Centron RMA-1600 Audio Amplifier rebuild

I have been rebuilding aa Audio Centron power amplifier.  The TO-3 transistors were bad and it was cheaper to replace all of the "guts".  The power supply is positive and negative 80 volts.  So I searched eBay for a amplifier board that can handle that voltage.  This is what I found:

1PC NJW0281/NJW0302 450W+450W HIFI Stereo Amplifier Board Assembled AMP Board

Description :

This is completed board.You don't need solder it.
4 Pair MJW0281/MJW0203 for one channel.
so one board has 1 6pcs transistors.
Power supply: DC 45V to 85V
Power: 2X450W (-85V @ 4 Ohms)
PCB size: 259 * 73MM

However if I was to do it over I would use a PR-800 amplifier board.

Here are some picture of the amplifier rebuild.  We used an old heatsink and tapped the necessary holes in it.  The heatsink is upside down while we connect the wires to it.  The power and speaker posts fit the connector pins from an ATX power supply.






Here are some more pictures showing the progress.  We are now testing it at low levels.  The input jacks go through the front volume controls to the amplifier inputs.  The front panel is now powered via a 1K 10 Watt resistor.  The signal inputs to the front panel go through 33K resistors to the speaker outputs.


Its nearing completion with the installation of a speaker protection relay board.  That required that a 12 volt transformer be added next to the main power transformer.




Friday, April 13, 2018

Air Hogs battle Tracker Hacked

I bought an Air Hogs "Battle Tracker" Nerf Missile launcher hoping to put on my Devastator tank.  It is obviously way too big for that!  However I still hope to interface it to an Arduino or Raspberry Pi and add the ability to track targets perhaps by Infrared.
Air Hogs Battle Tracker
The wired interface appears to be a voltage divider so each button returns a voltage.

Power and ground to the control panel is 3 volts (could be a low battery).  The normal return voltage on the two data lines is 1 volts.  
Pressing the "Fire" button changed PB1 to 2 volts.
Pressing "UP" and "Down" changes PB1 to 1.2 and 1.3 volts
Pressing "Right" and "Left" changes PB2 to 1.2 and 1.3 Volts.

Here is the control circuit board.  I am working on the schematic.

Here is the schematic diagram.  The resistors were measured in circuit so they are off a little bit.  The 51K resistors are labeled "513" as in 51K.  The "22K" resistors are 20K not 22K.  The values must be correct for everything to work.

I rebuilt a LH1500 solid state relay board to interface to the Nerf missile launcher.  I used this same board years ago to control a phone to light message waiting lights....

However when I tapped into the control board two resistors were destroyed.  R33 and R34 are gone.  I need to come up with a better way to interface to the control board.
I have added a 4 pin connector to the control board.  That way I can plug in the control board or the remote control circuit.  I am also rebuilding an iRobot vacuum cleaner to be the wheels for this project.
Air Hogs on iRobot Vacuum cleaner
I plan on butting a Raspberry Pi or Arduino on the red shelf with the batteries and controllers.  Here is the video of it finally working after about 2 months of experimenting.



Friday, March 30, 2018

Dream Cheeky USB Nerf Missile Launcher to Arduino with Bluetooth and Android

I recently purchased two defective Dream Cheeky USB Foam Missile Launchers.  I wanted to add one to my Devastator tank (See other blog posts).  So far I have rebuilt one of them.  The turret did not rotate and it did not fire correctly.  The other one only fires from one position and the turret does not move up and down.

Here is a picture of the finished project:


There are two USB missile launcher designs.  One has a rotating missile holder for four missiles.  The other design holds three missiles and fires them without rotating.

On the first USB launcher the rotation issue worked when I connected a battery to the motor so the issue was in the electronics.  The firing issue was related to some teeth missing form a gear.  I fixed that by re-positioning the gear.  Note that to dissemble the top assembly there are two screws on the left side, one is hidden behind some green tape and the other is only half hidden behind the tape.

Here is a picture of all of the guts opened up except for the top.

Here is the wiring color code.  Note that there are several wires having the same color as other wires.

4 Position USB Missile Launcher wiring color codes:

Top Part:
Fire motor; Red, Orange (Red is +)
Fire switch; Green, Green

Bottom Assembly:
Rotate motor; Yellow, Green
Rotate Switch; 2x Yellow, 2x Orange
Height Motor; White, Blue
Height switch; Black, Red, Brown

3 Position USB Missile Launcher wiring color codes:

Fire Motor; Red, Light Brown (Red is +)
Rotate Motor; Red, Yellow
Rotate Switch; White Green, White Purple
Height Motor; Red, Dark Brown

Here is the control circuit of the 3 position launcher.  The up/down motor is connected in the bottom left area without any glue on it.

BTW the problem with the height motor not working is that the driver transistors only deliver about 3.5 volts.  Use a 9 volt battery to run it up and down a few times and then reconnect it to the USB interface and it will work normally.

Next I will connect a motor controller and an Arduino to obtain working serial control of the launcher.  I used a L298 motor control for the turret and a TIP120 for the fire function.  The USB power was not sufficient for the fire motor so I used a 9V battery.  That was because of a problem with a broken gear and has been fixed.

Here is the first test video.  I need to get the right kind of missiles!

It is now attached to the Devastator tank, here is that video.

Here is a video of the tank with the three missile launcher attached.


Friday, March 9, 2018

Devastator Tank Mobile Robot Platform for Arduino or Raspberry Pi

I am building a "Devastator Tank Mobile Robot Platform" kit from dfrobot.  I bought it through robotshop_inc on eBay.  The hardware took only one hour to assemble.  The manual has lots of pictures to make assembling it easy.  Each type of screw has a bag with its part number on it.  The only tool I wish I had is the tiny wrench for the lock nuts.  You can use needle nose pliers but a wrench would be much easier to use.




Now for the electronics.  I don't have a schematic yet but here is what the wiring looks like so far.  I am using dual color LEDs for the headlights.  Three color LED's would be better as they can do white as well as colors like red for stop.

I am using a L298 motor controller.  To the left of the Arduino there is the power strip off a small breadboard to connect all of the power and grounds together.  Not visible in the back there is a two line LCD and in the front there is an ultrasonic distance detector.


Here is the first video of it running.

Here is a second video with headlights and servo.  Next to get a Nerf launcher on there.


Friday, March 2, 2018

Arduino UNO Running 12 WS2812 LED Strips with a BIGGER Font

I have modified my LED sign setup once again.  I now have an Arduino UNO Running 12 WS2812 LED Strips with a BIGGER Font.  The 12x8 font had to be typed in manually as I could not find one that suited me.  To get 12 lines running from a UNO I used both the "B" and "D" ports or D0 to D11 data pins.  The uppercase fonts only use 10X8 as the lower two rows are for lower case letters that extend below the line.

This is what the sign looks like in multi-color mode.

Here is the Video:


I can also do graphics on the LED sign.  This is a picture of the logo that I uploaded as a BMP to the sign for display.  I was looking for something with lots of color and with a black background.  White backgrounds do not work very well as the white light blinds you!  To display graphics I had to write a routine to rotate the bytes from horizontal to vertical orientation.  Then I added an offset to make it scroll up.  I should mention that this is running in 8 data line mode, the right side loops back to the next 8 rows on the left side to get up to 16 lines to display.


This is the video on YouTube.



Here are a couple of still shots of the sign displaying graphics.



Thursday, February 15, 2018

Interactive Arduino Uno Ethernet Shield Program

I have developed a Interactive Arduino UNO Ethernet Shield demo program.  It requires lots of memory.  It was a offshoot while I was developing a Ethernet based method of updating my LED signs. However the UNO suffers from a memory shortage just running this demo program!  This is what the screen looks like.  You cannot change D10-D13 because they are used by the Ethernet card.


Here is the video:

I have finally found an easy way to post code on blogger!  Thanks to "http://codeformatter.blogspot.com/" the code can be easily formatted.

 // Arduino Ethernet Interactive with table  
 // By bob Davis  
 // Based on code from Rui Santos  
  
 #include <Ethernet.h>  
 int led1 = 2;  
 int led2 = 3;  
 int led3 = 4;  
 int led4 = 5;  
 int led5 = 6;  
 int led6 = 7;  
 int din1 = 8;  
 int din2 = 9;  
 int din3 = 10;  
 int din4 = 11;  
 int din5 = 12;  
 int din6 = 13;  
 int data1 = 0;  
 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  //physical mac address  
 byte ip[] = { 192, 168, 1, 21 };           // ip in network  
 EthernetServer server(80);               //server port     
 String readString;  
 void setup() {  
  // Open serial communications and wait for port to open:  
  pinMode(led1, OUTPUT);  
  pinMode(led2, OUTPUT);  
  pinMode(led3, OUTPUT);  
  pinMode(led4, OUTPUT);   
  pinMode(led5, OUTPUT);  
  pinMode(led6, OUTPUT);  
  pinMode(din1, INPUT);  
  pinMode(din2, INPUT);  
  // start the Ethernet connection and the server:  
  Ethernet.begin(mac, ip);  
  server.begin();  
 }  
 void loop() {  
  // Create a client connection  
  EthernetClient client = server.available();  
  if (client) {  
   while (client.connected()) {    
    if (client.available()) {  
     char c = client.read();  
     //read char by char HTTP request  
     if (readString.length() < 100) {  
      //store characters to string  
      readString += c;  
      } //if HTTP request has ended  
      if (c == '\n') {       
       client.println("HTTP/1.1 200 OK"); //send new page  
       client.println("Content-Type: text/html");  
       client.println("Refresh: 2"); // refresh every second   
       client.println();     
       client.println("<HTML><BODY>");  
       client.println("<style>table, th, td {padding: 3px; border: 1px solid black;</style>");  
       client.println("<table width=350><tr>");  
       client.println("<th colspan=6>Digital Outputs</th>");  
       client.println("</tr><tr>");  
       client.println("<th>D2</th><th>D3</th>");  
       client.println("<th>D4</th><th>D5</th>");  
       client.println("<th>D6</th><th>D7</th>");  
       client.println("</tr><tr>");  
       client.println("<td><a href=\"/?button1on\"\">Turn On</a></td>");  
       client.println("<td><a href=\"/?button2on\"\">Turn On</a></td>");  
       client.println("<td><a href=\"/?button3on\"\">Turn On</a></td>");  
       client.println("<td><a href=\"/?button4on\"\">Turn On</a></td>");  
       client.println("<td><a href=\"/?button5on\"\">Turn On</a></td>");  
       client.println("<td><a href=\"/?button6on\"\">Turn On</a></td>");  
       client.println("</tr><tr>");  
       client.println("<td><a href=\"/?button1off\"\">Turn Off</a></td>");    
       client.println("<td><a href=\"/?button2off\"\">Turn Off</a></td>");   
       client.println("<td><a href=\"/?button3off\"\">Turn Off</a></td>");    
       client.println("<td><a href=\"/?button4off\"\">Turn Off</a></td>");   
       client.println("<td><a href=\"/?button5off\"\">Turn Off</a></td>");   
       client.println("<td><a href=\"/?button6off\"\">Turn Off</a></td>");   
       client.println("</tr><tr>");  
       client.println("<th colspan=6>Digital Inputs</th>");  
       client.println("</tr><tr>");  
       client.println("<th>D8</th><th>D9</th>");  
       client.println("<th>D10</th><th>D11</th>");  
       client.println("<th>D12</th><th>D13</th>");  
       client.println("</tr><tr>");   
       client.println("<td align='center'>");  
       data1=digitalRead(din1);  
       client.println(data1);  
       client.println("</td>");    
       client.println("<td align='center'>");  
       data1=digitalRead(din2);  
       client.println(data1);  
       client.println("</td>");    
       client.println("</tr><tr>");  
       client.println("<th colspan=6>Analog Inputs</th>");  
       client.println("</tr><tr>");  
       client.println("<th>A0</th><th>A1</th>");  
       client.println("<th>A2</th><th>A3</th>");  
       client.println("<th>A4</th><th>A5</th>");  
       client.println("</tr><tr>");  
       for (int aChannel = 0; aChannel < 6; aChannel++) {  
        int sensorReading = analogRead(aChannel);  
        client.println(" <td align='center'> ");  
        client.println(sensorReading);  
        client.println("</td>");  
      }  
      client.println("</table></BODY></HTML>");  
       delay(1);  
       //stopping client  
       client.stop();  
       //controls the Arduino if you press the buttons  
       if (readString.indexOf("?button1on") >0){ digitalWrite(led1, HIGH); }  
       if (readString.indexOf("?button1off") >0){ digitalWrite(led1, LOW); }  
       if (readString.indexOf("?button2on") >0){ digitalWrite(led2, HIGH); }  
       if (readString.indexOf("?button2off") >0){ digitalWrite(led2, LOW); }  
       if (readString.indexOf("?button3on") >0){ digitalWrite(led3, HIGH); }  
       if (readString.indexOf("?button3off") >0){ digitalWrite(led3, LOW); }  
       if (readString.indexOf("?button4on") >0){ digitalWrite(led4, HIGH); }  
       if (readString.indexOf("?button4off") >0){ digitalWrite(led4, LOW); }  
       if (readString.indexOf("?button5on") >0){ digitalWrite(led5, HIGH); }  
       if (readString.indexOf("?button5off") >0){ digitalWrite(led5, LOW); }  
       if (readString.indexOf("?button6on") >0){ digitalWrite(led6, HIGH); }  
       if (readString.indexOf("?button6off") >0){ digitalWrite(led6, LOW); }  
       //clearing string for next read  
       readString="";   
      }  
     }  
   }  
 }  
 }  

Sunday, February 11, 2018

Chevy HHR Failure to Start or Start then Stall Problem

This fall my HHR started having issues with starting.  By Christmas time it no longer started.  At one point I spent over 30 minutes trying to start it.  When it started there was a multicolored puddle of gas under the tailpipe.  It always smelled of too much gas.  I changed the spark plugs and the old plugs were covered in black from too much gas.

The HHR would sometimes start, and if I pumped the gas it would eventually sustain.  Eventually I discovered that if I floored the gas pedal before starting it it would usually start.  Through research I discovered that flooring the gas pedal should shut off all gas to the motor!  Eventually the check engine light came on.  Here are the codes and what they meant.

The codes are:
P0300 Engine Misfire Detected
P0107 Manifold Absolute Pressure (MAP) Sensor
P0122/P0123/P0223 Throttle Position (TP) Sensor.
P0171 System too Lean

The auto store wanted over $250 in parts.  I bought the MAP sensor on eBay for $10 and the Throttle body form the 1490 motors (an auto salvage place) for $40.  The exact same codes came back on again.  I was getting really frustrated.  Then I got thinking, how could so many sensors be so wrong?  So I decided to replace the motor ground wire.  When I looked at the old wire one end seemed loose.  I puled on it and the wire came right out!  After close examination I determined that the wire was never crimped into the connector.


Here is the new crimped and soldered triple ground wire.  It runs from the right side of the motor to the right strut tower.


This is a close up of the bolt on the cam cover that the ground wire is connected to.


Now I just touch the key for a fraction of a second and the car starts right up!



Monday, January 29, 2018

Arduino WS2812 144 LED per Meter sign

I am building a third sign that has 144LED per meter or 1/4 inch LED spacing.  The first tests indicate lots of bad connections.  The issue is likely in the LED strips being shipped wrapped on a spool that is too small.

In this first picture the middle row quits about 3/4 the way across the sign.  One of the pixels in the "U" is red but that is hard to tell in the picture.

In this next picture the bottom right corner LED is out.  The third row down is a different shade of blue but you cannot see that in the picture.

here is the video of the first test.  Some of the issues went away during the video indicating they are caused by bad connections.


When I tried to run all 16 rows by wrapping the top 8 rows back to the bottom 8 rows this is what I got.  Only 3 of the bottom 8 rows came to life.

I finally was able to fix all of the bad connections.  I even replaced some of the strips to get it to work.  There is a yellow LED that is red in the picture.

This picture shows that there are still some bad connections!!  After fixing many many of them!


Wednesday, January 17, 2018

Audio Spectrum Analyzer with Arduino UNO+MSGEQ7+WS2812 LED Strips Part 2

I have improved the Audio Spectrum Analyzer.  By increasing the number of MSGEQ7's and offsetting them I now have 21 frequencies per channel.  In order to display all of them the sign had to be turned sideways.

This first version supports 8 LED strips:


This second version supports two sets of 8 LED strips for a total of 16 strips.


I can even do an oscilloscope on the WS2812 LED sign.


This is the schematic of the foreign made MSGEQ7 shield that I used.  Then I made my own shield that is offset to add the additional frequencies.

Friday, January 5, 2018

Even More Arduino Uno With WS2812 LED Strips and Arrays

I have also made a larger higher density LED sign.  It features 90 LED's per row and 16 columns.  That is 1440 LED's.  It is running from an Arduino UNO.  Last night with some adjustments to the timing I was able to get it to work.

The software now supports a different color for each letter as in this picture.

Here is the shades of color test, it supports 256 shades of each color.

Here is a video of it displaying text and running the color test and fireworks effect.



Later on I was able to get the sign to scroll.


Now it can be programmed from a cellphone via bluetooth!


Now you can change the color from the phone.


Monday, January 1, 2018

More Arduino Uno With WS2812 LED Strips and Arrays

I have been continuing to do things with an Arduino UNO and addressable LED's.  I think my next book will be called "Arduino Addressable LED Projects".  I would prefer to keep the title to three words and "Addressable" is a long word.  Another option is "Arduino LED Strip Projects".  What do you think is the best title?

Currently I am experimenting with an 8x32 array.  Internally it is wired as 8 LED segments with a zigzag wiring so each column is reversed.

Here is my worm video that shows how it is wired internally:

Here is some text being displayed on it.

I have improved the software even more!  It now supports 256 shades of each color and a color for each letter.