Thursday, April 23, 2015

Epson Powerlite 62C Repair

I recently purchased another pile of used projectors to repair and then send to Africa.  However three of them need more than just cleaning.  I have determined that the problem is in the optics.  Basically the blue LCD is about 30-50% shot.  There are lots of dark spots in a blue background.
The problem is that the LCD section is one unit otherwise I could swap the LCD's between the three projectors and hopefully get two of them to work.

I like the Epson LCD projectors because they are a lot more rugged that the Dell 2300MP DLP projectors.  However the LCD's have an air filter and if it gets clogged the projector overheats and damages the LCD's.  I showed how to replace the filter in a previous post.

Here is what the outside of them looks like.

Wednesday, April 15, 2015

RAWNY Mini Hamfest Buffalo NY

Once again this year I attended the mini Hamfest.  It is just for a couple hours in the evening but you get to talk to a lot of interesting people as well as sell and buy a lot of stuff.  I think I managed to leave with less stuff than what I came in with.

Here is a picture of my table.  I did not bring the bins from my shed this year.

Here is another table or two.

Here was some really nice radio's.  Sorry I chopped off the picture of the seller....

And here are some more tables of great stuff!

Thursday, April 9, 2015

Refurbishing Projectors for Africa.

I spent a weekend fixing 7 Dell 2300MP Projectors.  In every case the power supply was not working.  I replaced the same capacitor in all 7 projectors.  It is a 22uF at 50 volt cap.  I replaced it with a 22uF at 63 volt cap.  Out of the 7 projectors that fixed five of them.  One had some burnt parts in the power supply.

This is what my closet looks like.  The 2300MP's are on the right.

Here is a picture of how to bend the leads on the capacitor.

This picture shows where the capacitor goes.  It is not yet soldered in the picture.

 Here is a picture of a pile of projectors, I worked on them three or four at a time.

I had to glue some of the supporting posts in place.  The projectors had all been dropped, likely in shipping, and the posts that hold them together were loose.

Wednesday, March 18, 2015

Raspberry Pi and a DIY 4x4x4 LED cube

I have built a DIY 4x4x4 LED cube that I am testing with the Raspberry Pi.  It is up and working, I just need some code to make it do something that is "moving".  Pun intended.  It is only doing fixed patterns at this point.

Note that my design is quite different.  For one thing all 4 LED frames are easily removed for servicing.  So far I have had one bad LED and a soldering connection that needed fixing.  I also need to replace one LED that has a slightly different color.  It is the third one up from the bottom in the center.

My 4x4x4 LED cube is also designed to be expanded to 4x4x5 or 6 as adding them will not require any more IC's.  Also when you order LED's they come in bags of 100 so why not use all of them? There are currently two 74HC595's and a ULN2003 driving it.

I drilled a wood guide and rebuilt the arrays so they are right to left instead of front to back.  I also added the fifth row while I was at it.  I broke a couple of LED's in the process but it is up and running again.

Here is a picture of the LED test program running to make sure everything works.  I need to replace a bad LED and find a way to keep the LED arrays parallel to each other.  I might give in and add some wire braces across the top corners.  The braces could be un-soldered to work on the arrays if needed.

Here is the video on Youtube.

Friday, February 27, 2015

Running a 8x40 LED Array from the Raspberry Pi

I have been trying to run one of the 8x40 LED signs from a Raspberry Pi.  For some reason I am getting a lot of glitches.  I know the Raspberry Pi can cause glitches when the GUI is running, but this is different.  UPDATE - I fixed the glitch it was a bad ground on the ribbon cable.

This is what it looks like.  A glitch is happening over the letter "Y".
Here is a video showing the glitching.

Another problem is that I cannot figure out how to do what is called macro substitution in python.  As a result the code is a bit long.  If I could say "if red&row[shift]=1" I could eliminate several lines of code. UPDATE - I have a solution.  Make the letter arrays into one big array for each letter.  Then use "if red[shift+row*5]".  I have used that technique for working with some other devices.

Here is my code to make it work:
# LED 8x40 Dual Color array
# Uses individual letters strung together
import RPi.GPIO as GPIO
import time

GPIO.setup(17, GPIO.OUT) # Red Data
GPIO.setup(18, GPIO.OUT) # Green Data
GPIO.setup(27, GPIO.OUT) # Clock, 21 on older
GPIO.setup(22, GPIO.OUT) # Latch
GPIO.setup(23, GPIO.OUT) # Row Data 1
GPIO.setup(24, GPIO.OUT) # Row Data 2
GPIO.setup(25, GPIO.OUT) # Row Data 4
GPIO.setup(4, GPIO.OUT) # Row Enable

A1 =[0,0,0,0,0]
A2 =[0,0,1,0,0]
A3 =[0,1,0,1,0]
A4 =[1,0,0,0,1]
A5 =[1,1,1,1,1]
A6 =[1,0,0,0,1]
A7 =[1,0,0,0,1]
A8 =[1,0,0,0,1]

B1 =[0,0,0,0,0]
B2 =[1,1,1,1,0]
B3 =[1,0,0,0,1]
B4 =[1,0,0,0,1]
B5 =[1,1,1,1,0]
B6 =[1,0,0,0,1]
B7 =[1,0,0,0,1]
B8 =[1,1,1,1,0]

E1 =[0,0,0,0,0]
E2 =[1,1,1,1,1]
E3 =[1,0,0,0,0]
E4 =[1,0,0,0,0]
E5 =[1,1,1,1,0]
E6 =[1,0,0,0,0]
E7 =[1,0,0,0,0]
E8 =[1,1,1,1,1]

P1 =[0,0,0,0,0]
P2 =[1,1,1,1,0]
P3 =[1,0,0,0,1]
P4 =[1,0,0,0,1]
P5 =[1,1,1,1,0]
P6 =[1,0,0,0,0]
P7 =[1,0,0,0,0]
P8 =[1,0,0,0,0]

R1 =[0,0,0,0,0]
R2 =[1,1,1,1,0]
R3 =[1,0,0,0,1]
R4 =[1,0,0,0,1]
R5 =[1,1,1,1,0]
R6 =[1,0,0,0,1]
R7 =[1,0,0,0,1]
R8 =[1,0,0,0,1]

S1 =[0,0,0,0,0]
S2 =[0,1,1,1,1]
S3 =[1,0,0,0,0]
S4 =[1,0,0,0,0]
S5 =[0,1,1,1,0]
S6 =[0,0,0,0,1]
S7 =[0,0,0,0,1]
S8 =[1,1,1,1,0]

Y1 =[0,0,0,0,0]
Y2 =[1,0,0,0,1]
Y3 =[1,0,0,0,1]
Y4 =[0,1,0,1,0]
Y5 =[0,0,1,0,0]
Y6 =[0,0,1,0,0]
Y7 =[0,0,1,0,0]
Y8 =[0,0,1,0,0]

# Z is used as a blank
Z1 =[0,0,0,0,0]
Z2 =[0,0,0,0,0]
Z3 =[0,0,0,0,0]
Z4 =[0,0,0,0,0]
Z5 =[0,0,0,0,0]
Z6 =[0,0,0,0,0]
Z7 =[0,0,0,0,0]
Z8 =[0,0,0,0,0]



# set up the loop
cycle= 0
while cycle < 1000:
  row = 0
  while row <9: 

    row = row+1
    # Send data to the shift registers
    shift = 39
    while shift >= 0:
        GPIO.output(17, GPIO.LOW)
        GPIO.output(18, GPIO.LOW)
        # determine if bit is set or clear data is NOT inverted
        if row==1:
          if Red1[shift] == 1: GPIO.output(17, GPIO.HIGH)
          if Green1[shift] == 1: GPIO.output(18, GPIO.HIGH)
        if row==2:
          if Red2[shift] == 1: GPIO.output(17, GPIO.HIGH)
          if Green2[shift] == 1: GPIO.output(18, GPIO.HIGH)
        if row==3:
          if Red3[shift] == 1: GPIO.output(17, GPIO.HIGH)
          if Green3[shift] == 1: GPIO.output(18, GPIO.HIGH)
        if row==4:
          if Red4[shift] == 1: GPIO.output(17, GPIO.HIGH)
          if Green4[shift] == 1: GPIO.output(18, GPIO.HIGH)
        if row==5:
          if Red5[shift] == 1: GPIO.output(17, GPIO.HIGH)
          if Green5[shift] == 1: GPIO.output(18, GPIO.HIGH)
        if row==6:
          if Red6[shift] == 1: GPIO.output(17, GPIO.HIGH)
          if Green6[shift] == 1: GPIO.output(18, GPIO.HIGH)
        if row==7:
          if Red7[shift] == 1: GPIO.output(17, GPIO.HIGH)
          if Green7[shift] == 1: GPIO.output(18, GPIO.HIGH)
        if row==8:
          if Red8[shift] == 1: GPIO.output(17, GPIO.HIGH)
          if Green8[shift] == 1: GPIO.output(18, GPIO.HIGH)
        # advance the clock
        GPIO.output(27, GPIO.HIGH); GPIO.output(27, GPIO.LOW)
    # select the row data is inverted
    GPIO.output(4, GPIO.HIGH) # Turn off display
    if row==2: GPIO.output(23, GPIO.LOW); GPIO.output(24, GPIO.HIGH); GPIO.output(25, GPIO.HIGH)
    if row==3: GPIO.output(23, GPIO.HIGH); GPIO.output(24, GPIO.LOW); GPIO.output(25, GPIO.HIGH)
    if row==4: GPIO.output(23, GPIO.LOW); GPIO.output(24, GPIO.LOW); GPIO.output(25, GPIO.HIGH)
    if row==5: GPIO.output(23, GPIO.HIGH); GPIO.output(24, GPIO.HIGH); GPIO.output(25, GPIO.LOW)
    if row==6: GPIO.output(23, GPIO.LOW); GPIO.output(24, GPIO.HIGH); GPIO.output(25, GPIO.LOW)
    if row==7: GPIO.output(23, GPIO.HIGH); GPIO.output(24, GPIO.LOW); GPIO.output(25, GPIO.LOW)
    if row==8: GPIO.output(23, GPIO.LOW); GPIO.output(24, GPIO.LOW); GPIO.output(25, GPIO.LOW)
    # latch and display the data
    GPIO.output(22, GPIO.LOW); GPIO.output(22, GPIO.HIGH)
    GPIO.output(4, GPIO.LOW) # Turn back on
    # time.sleep(.0005)


Wednesday, February 25, 2015

Raspberry Pi Projects - 8x8 RGB LED array

I have been working on a book of Raspberry Pi projects.  One of the projects is an 8x8 three color LED array.  I picked up some more of them on eBay lately and they had a different pin-out.

The MEU 8860 RGB pin-out as seen from above.  I use Dx for the rows as Rx is used for Red.

R1  R2  G2  R3  G3  R4  D2  D1  D3  G5  R6  G6  D5  R7  B8  R8

G1  B1  D7  B2  B3  D8  B4  G4  B5  R5  D4  B6  D6  B7  G7  G8

The bottom row is where the model number is stamped.

Here is a picture of one of the displays wired up and working.

Here is a video of another three color 8x8 LED array in operation.

Here is a video of an 8x15 dual color LED array in operation.