Thursday, March 7, 2024

Rocker Bogey 6 Wheel Drive Mars Rover

 I had about eight wheels and matching motors around so I decided to make a six wheel drive Arduino controlled rover.  Then I discovered the rocker-bogie design that can handle really fough terrain.  So I 3D printed a design and modified it for a bigger platform for the electronics.

I have not figured out the front suspension yet and I would love to include one of my 3D prited Nerf guns in the design!





Wednesday, February 21, 2024

Peavey Combo 115 repairs

My brother bought me a Peaver Combo 115 for repair.  They used controls with plastic shafts that broke off. They upgraded the design to use controls with metal shafts but they are out of stock everywhere unless you want to pay a fortune for them.

Here is a picture of the controls with their values and part numbers next to them.  You can see the broken controls in the picture.


This shows what the insides of the amplifier looks like. All of this could be 1/4 the size if it was made today.

The only critical controls that were broken were the 50K linear tone controls. The crossover and compressor can be ignored or bypassed.

Here is a possible source of parts.  The needed parts will cost you over $50 with shipping and may not be in stock.


As a solution I purchased 10 x 50K pots with knobs on eBay.  Short wires have to be run from each control to the circuit board.  I have seen this kind of solution before.

 

Wednesday, February 7, 2024

WARNING - 5630 LED strip lights are burning out!

I have many 5630 LED strip lights that have burned out after only 2 months of use.  Here is what they look like now that they have been replaced:



I used these LED strips to replace the five foot flouresent light bulbs in a street sign.  Here are the bad LED's as they were starting to burn up.  By the time I replaced them many more had burned out.


Monday, February 5, 2024

Arduino Powered Colloidal Silver Maker with Nokia 5110

I saw that someone had copied my colloidal silver maker design and their design was trending at number one when you search for Arduino Colloidal Silver Maker.  So I thought I would improve my previous design to use a Nokia 5110 LCD in the design instead of the 1602 LCD.  This Nokia display gives five or six lines of display so you can see more information.

I use a computer power AC adapter to power the colloidal silver maker at about 19 VDC. Most people say that 18 to 20 volts is ideal for this application. 

This is a picture of the Nokia display.  I added the ability to see the current setting as it reduces every time the current exceeds 1ma.  What else do you think I should display on the LCD?


Adding the Nokia display is easy as it just plugs into the Arduino Uno except for jumpers to 3.3 volts and ground.  Voltage dropping resistors are not needed as the Nokia chip is 5 volt tolerant.  You can jumper the BL (backlight) to 3.3 volts or add a jumper or resistor right on the LCD.

The top view has not changed from the previous version.  There is a voltage divider so the arduino analog inputs would not be damaged and a L293 motor driver IC module.  The motor driver has its own internal 5 volt regulator.  Use a separate ground for the voltage divider to avoid motor noise.


Here is the code:

#include <Adafruit_GFX.h>

#include <Adafruit_PCD8544.h>

// Software SPI (slower updates, more flexible pin options):

// pin 7 - Serial clock out (SCLK)

// pin 6 - Serial data out (DIN)

// pin 5 - Data/Command select (D/C)

// pin 4 - LCD chip select (CS)

// pin 3 - LCD reset (RST)

Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

// Pins for Colloidal silver maker

int CS1=10;

int CS2=11;

// Pins for stirrer

int Stir=9;  // Moved to pin 9!

int Shutdown=0;

// Variables for time

int hours;

int minutes;

int seconds;

long hour = 3600000; // 3600000 milliseconds in an hour

long minute = 60000; // 60000 milliseconds in a minute

long second = 1000; // 1000 milliseconds in a second

float AN1=0.0; // Analog inut 1

float AN2=0.0;

float temp1=0.0;

float temp2=0.0;

float CUR=0.0;  // Current in ma

int CurSet=255; // Current Setting

void setup()   {

  display.begin();

  display.setContrast(60);  // Default is 50

  display.clearDisplay();   // clears the screen and buffer

  pinMode (CS1, OUTPUT);

  pinMode (CS2, OUTPUT);

  pinMode (Stir, OUTPUT);

}

void loop() {

  display.setTextSize(1);

  display.setTextColor(BLACK);

  // Reverse current every 30 minutes

  if (Shutdown==0){

    analogWrite(Stir, 128); // 1/2 supply voltage

    if (minutes<30){

      analogWrite(CS1, 0);

      analogWrite(CS2, CurSet);    }

    else{

      analogWrite(CS2, 0);

      analogWrite(CS1, CurSet);    }

  }

  else{

    analogWrite(CS1, 0);

    analogWrite(CS2, 0); 

    analogWrite(Stir, 0);     }

  temp1=analogRead(A1);

  AN1=((temp1*5.0)/1024.0)*4.0;

  temp2=analogRead(A2);

  AN2=((temp2*5.0)/1024.0)*4.0;

  CUR=abs(AN1-AN2);

  if (CUR > 1.0) {CurSet--;} // Reduce PWM

  display.clearDisplay();

  display.setCursor(0,0);

  display.print("V1:");

  display.print(AN1);  // Analog 1

  display.setCursor(0,10);

  display.print("V2:");

  display.print(AN2);  // Analog 2

  display.setCursor(0,20);

  display.print("Cur:");

  display.print(CUR);  // Current

  display.setCursor(0,30);

  display.print("CurSet:");

  display.print(CurSet);  // Current Setting

  // print the number of seconds since reset:

  long timeNow = millis();

  hours = (timeNow) / hour;             

  minutes = ((timeNow) % hour) / minute ;

  seconds = (((timeNow) % hour) % minute) / second;

  display.setCursor(0, 40);

  display.print("Time:");

  display.print(hours);

  display.print(":");

  display.print(minutes);

  display.print(":");

  display.print(seconds);

  display.display();

  if (hours>3){ // Time under 4 hours

    Shutdown=1;

    }

  if (CUR>2.0){ // Current under 2ma

    Shutdown=1;

    }

  delay(500);

}

There was an error in the connections to the L293 motor driver in my earlier version.  The VIN of 19-20 volts goes to pin 8.  Also the stirrer has been moved to D9 as the Nokia LCD needs D3.


Saturday, February 3, 2024

The Capacitor Disaster is back!

 About 20 years ago the market was flooded with faulty capacitors.  This is happening once again.  Three times within one week I had to fix things with bad capacitors.

The first one is a ONN Roku TV model 100012589.  The symptom was that ths screen goes blank but the sound keeps working.  When I removed the cover I could see the bulging leaking capacitors.


The next one is a internet repater.  It worked great for about 6 months then the power light became dim and it emitted a buzzing sound. I used two capacitors to fix this in the hopes that it would last longer this time.



The third one was a 5 volt power supply AC adapter.  I did not take any pictures.  Is anyone else seeing thes bad capacitors all too commonly once again?



Tuesday, January 16, 2024

EcoQuest Fresh Air II air purifier repair 2

I found myself once again doing some EcoQuest Fresh Air II air purifier repairs.  One of ours quit making ozone.  I opened it up but could not find the problem.  After looking at it several times and getting ready to salvage parts and toss it, I then discovered that R11 was toast.  Checking the FET, a 10N20L showed that it was shorted!

I disconnected the 10N20L by clipping the leads and it was still shorted.  R11 was toast and there was no way to find out its value.  Unfortunatly I threw out my spare board! Oops.


I could not find a 10N20 but did find a IRF630 that has similar specs and used that.  The drain is connected by the case but the replacement will not solder to the board so you will need to run a small jumper wire.  A 4.7 ohm one watt resistor will work for R11 as it was a currwent limiter resistor (I think).


  So it has been up and running for a couple of hours now with no problems.  

Friday, December 29, 2023

Blowby before+after treating with CRC and Seafoam.

I seem to have found a fix for my Equinox burning so much oil.  I did a video showing the blow-by before and after treating with CRC GDI Intake Valve cleaner and Seafoam. I added a can of seafoam to less that 1/4 tank of gas - thats twice the recomended mixture. When I was done with both things there was black suit on the pavement near the exhaust pipe. Blowby was reduced dramatically. Before the paper would float an inch above the oil fill opening after treating the paper covered it with no problem.

 

I had been using cat cleaners with every fill up for years!  Sometimes it would work but it was perhaps counterproductive.  With all the blowby the catcleaner would get into the oil and thin it out.  Then more oil would get burnt and dumped into the catalytic converter.  So I fianlly found a way to treat the problem at the source. 

I think the CRC cleaner might get to the rings as well.  However there was some brown foam coming out of the port where I was spraying the Seafoam into.


 Here is before and after readings on the lower O2 sensor. 



The O2 sensor did go back to spikeing after driving for a while but the check engine light is still off.

Wednesday, December 20, 2023

Using LED's to replace the flourescent bulbs in a street sign

UPDATE: the 5630 LED's are burning out after only two months of operation!

I have been using LED strips to replace the flourescent bulbs in a street sign.  My first attempts was to wrap the LED strips around the dead light bulbs.  That did not work that well.  My next attempt is to make a signboard and cover it with eight LED strips on each side.This will require 12 volts at 20 amps to run it! I switched the power to wire nuts and 12 volt 10 amp power supplies after this picture was taken. The barrel connectors in the picture got really hot.


This is the sign with the old LED strips wrapped around the bulbs.


This is the LED's that I am using in the new sign lighting panel.


WARNING!  The finished product was Light Blue in color, not white as was expected.  I am not sure what caused that as there are multiple power supplies involved.  However my pictures show it as whte.

Another issue is that the LED strips are falling down!  I had glued then with E6000 glue in at least three places (Each end and in the middle) but that and the adhesive that came on them were not sufficient!


Bad news: After only two months many of the LED's have burned out!  It cannot be the power suppy as there are two of them from different companies.


Wireless Bridge CPE for a Link to another building

 I just installed a wireless bridge for a link to another building.  The distance was about 3/4 of a mile.  The results were excellent!  I had no knowledge of how to do this other than using repeaters to pick up internet from a house or two away.  This time I needed to reach a building that was a few blocks away.  

I used google maps to see if there was a straight shot between the locations.  Then I went up on the roofs but could not see all the way to the other end from either direction.  There was nothing visible in the way.  It was a narrow shot as some pine trees surrounded my house but there was a gap in just the right direction.  

I bought a model that has lots of LED's on the side to be able to troubleshoot any issues.  I installed the "A" unit on the roof of my house.  Then the "B" unit (You can change A to B with a switch) was installed on the building.  I was amazed at the results the signal level was 100%!  But there was no internet at the receiving end.  The issue turned out to be that I had two internet cables at my house with a union in the middle and lost a connection somewhere.  Switching to 100 foot exterior grade cables at both ends resolved that issue.

Here is the ad for the bridge on eBay:


This is the receiving unit.  I made a PVC rooftop mounting bracket to hold it on the peak of a roof.


This is the transmitting unit on the roof of my house.


Thursday, December 14, 2023

Another amplifer rebuild with a TDA7394 Power Amplifier board

Once again I am rebuilding another amplifer this time with a TDA7394 Power Amplifier board.  I picked up theis fried amplifier at a Hmfest from a friend for like $10 for the poweer transformer.  I tested the output transistors and all but one were shorted.  So I decided to rebuild it with a dual TDA7394 amplifier board for $22 on eBay.  The power transformer is 60 VCT so the rectified power is + and - 42 volts DC.  That is a little high for the IC but within its specs.  It should deliver 100 watts per channel into 8 ohms without any problems.

Here is the old circuit board.  The preamp seemed OK so I decided to try to save it.

So I cut the old circuit board in half with a hand saw.


This is the new power amplifier board, it is a lot smaller than what it replaced.


This is the new heatsink to go with the IC based power amplifier.


Here is the finished amplifier.  All it is missing is the power on LED and a shielded audio cable from the preamp output to the RCA jacks on the back panel.  The preamp had a slight buzz in it, I don't know why.  Perhaps better shielded audio cables would help.

Tuesday, November 28, 2023

Converting RGB controller to ESP8266 WLED Ws2812 Controller.

I am converting an old RGB controller to an ESP8266 WLED WS2812 Controller.  I removed the power transistors and cut the runs for the pull up resistors (Just to the left of the large pads where the power transistors were).  I tapped into the 5V buss at the top and the ground was available on a pin on the power transistors as marked in the picture.  D1 D2 D3 go to the large solder pads where the power transistors were mountd. I should have used resistors for the D1-D3 lines.


Here is the completed modification.  I see I need to redo the soldering conection and use some smaller heatshrink.  It needs to be relabeled as well.


These are some of my LED panels.  In the back is a 72x32 array then a 72x16 then a 72x16 and then a slightly smaller 68x16 array. In the front is a 64x32 display unng 16x16 LED arrays.  I have two more of the 72x16 arrays that are not in the picture.


Wednesday, November 1, 2023

MLX90640 and ESP32 Thermal Imaging Camera with 2.8" TFT SPI

I decided to update my old thermal imaging camera.  Back in 2020 I had built a AMG8833 based camera.  Its resolution was only 8x8 pixels.  The MLX90640 is 32x24 pixels, that is a huge improvement for about $40.  I was hoping that I could just unplug the one sensor and plug in the new one.  Things are never that simple!  

This is a picture of the completed project.  The camera does not do a good job.  I tried multiple cameras and they all fail to show the varying shades of colors!  BTW that is me holding the camera.




This is a picture from the blog post about the AMG8833:


For several hours I tried to get the module to work.  When using a I2C scanner I got various responses back for several addresses.  Eventually I discovered that if I powered down then up the module I would get the correct I2C address aback (0x033) but it still would not work with the Adafruit MLX90640_Simpletest example program. Then I realized that the module I have has an extra IC on it. I had ordered a MLX90640 module on eBay for a little over $40.  Eventually I discovered that on the back it says GY-MCU90640 and looked up the manual for that module.
The manual is as clear as mud.  However I was able to guess that I needed to jumper the two solder pads together to get the I2C mode to work properly. Without that jumper it is configured for serial communication.

I could not get the sparkfun MLX90640 library to load or run.  That was desired to be able to use some software already available on the web. So I was stuck with the Adafruit library that was easily installed within the Arduino IDE.  But I had to write my own interface for the LCD screen.  Then I added the screen support to the simpletest program instead of sending the results to the serial port.  Make sure you also install the ILI9341 driver within the Arduino IDE.

Connections:
LCD:
26=C/D
18=SCK
19=MISO
23=MOSI
5=CS0
3.3V=VCC,RES,LED (Jumpered on display)
GND=GND

MLX90640
22=SCL
21=SDA
3.3V=VIN
GND=GND

Here is my code:

#include <Adafruit_MLX90640.h>

#include "Adafruit_GFX.h"

#include "Adafruit_ILI9341.h"

#include "SPI.h"

#define PRINT_ASCIIART

// Use the default pins for all but:

#define TFT_CS    5 

#define TFT_DC   26


Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

Adafruit_MLX90640 mlx;

float frame[32*24]; // buffer for full frame of temperatures

int r,g,b;


void setup() {

  Serial.begin(115200);

  delay(100);

  if (! mlx.begin(MLX90640_I2CADDR_DEFAULT, &Wire)) {

    Serial.println("MLX90640 not found!");

    while (1) delay(10);

  }

  Serial.println("Found Adafruit MLX90640");

  Serial.print("Serial number: ");

  Serial.print(mlx.serialNumber[0], HEX);

  Serial.print(mlx.serialNumber[1], HEX);

  Serial.println(mlx.serialNumber[2], HEX);

  

  mlx.setMode(MLX90640_CHESS);

  mlx.setResolution(MLX90640_ADC_18BIT);

  mlx.setRefreshRate(MLX90640_2_HZ);


  // Screen setup       

  tft.begin();

  tft.setRotation(3);

  tft.fillScreen(ILI9341_BLACK);

  tft.setTextSize(2);

}


void loop() {

  if (mlx.getFrame(frame) != 0) {

    Serial.println("Failed");

    return;  }

    // determine the ranges

    int maxt=0;

    int mint=255;

    for (uint8_t h = 0; h < 24; h++) {

      for (uint8_t w = 0; w < 32; w++) {

        int t = frame[h*32 + w];             

        if (t > maxt) maxt=t ;

        if (t < mint) mint=t ;

      }

    }

    tft.setCursor(0, 210);

    tft.print("IR Camera Max Temp: "); 

    tft.fillRect(230, 210, 32, 16, ILI9341_BLACK );

    tft.setCursor(230, 210);

    tft.print(maxt);

    // drawing the picture

    for (uint8_t h = 0; h < 24; h++) {

      for (uint8_t w = 0; w < 32; w++) {

        int t = frame[h*32 + w]; 

        r=0; g=0; b=0;

        int t2= map(t, mint, maxt, 0, 255);

        if (t2 > 70) r = t2+120;

        if (r > 255) r=255;

        if (t2 > 130) g = t2; // Highlight higher temps

        if (t2 < 70) b = 255-t2; // More blue=colder

        tft.fillRect(w * 8, h * 8, 8, 8, tft.color565(r, g, b));

      }

    }

}

Here are several views of the completed wiring if you need something to compare yours to.







Thursday, October 12, 2023

64 x 72 LED wall with ESP32 and WS2812B

I have been making LED signs for many years.  This blog testifies to that.  However I thought I would take my latest design to the next level and run four of the 16 x 72 LED pannels.  When I first started I was using an Arduino UNO in parallel mode using my own code.  Then I reconfigured to zigzag format and use used customized code.  Now I am using WLED on an ESP32.  What I want to do is set up four outputs so I can run four panels and update them from my cell phone.  


I have WLED working using a single output pin but its limited to 2048 LED's.  That is the picture on the right.  On the left is my four output adapter with a level shifter as well.  


When I first tried the level shifter I could not even communicate with the ESP32!  I thought I had fried it but when I went back to the one pin version it still worked!  I am adding a filter capacitor to see if the fixes the issue.  The filter capacitor did not help, so I am running the LED strips off the ESP32 pins via a 220 ohm resistor.  So far no problems! The issue was that IO12 must be tied low during boot so do not use it for LED strips!


This is a sample of scrolling text using WLED.  I want two lines of stationary text so I may have to do some custom code to get it to work.


I have a total of six of the 16 x 72 panels so I might eventually add two more panels to the processor.


Here is the first video:


Here is a picture of six panels all working off one ESP32 processor.


Here is the schematic of what I am making to drive the panels.


This is an 8 channel version I am working on:


I have been working on making the panels into a "cityscape" After getting WLED to work on my PC then getting WLED pixel art converter to work. Then getting the two to work together on a PC I have createed a "Cityscape" panel. It took a lot of work to get this far. The biggest trick was finding the IP of the panel on the phone under config, wifi, client IP: 10.0.0.11, then going to that IP on the desktop and putting it into pixel art converter. I think if I zoom in the buildings would become clearer.