120x21 dot LED sign - Reverse engineering and improvement

Keep a log of a project build here. Be sure to include pictures and as much documentation as possible.

120x21 dot LED sign - Reverse engineering and improvement

Postby martinmunk » July 24th, 2012, 10:11 pm

Hey guys

I got a lot of help on this project at in the "general talk" part of the forum an realized it would fit in here more.

The first thread: http://forums.hackaday.com/viewtopic.php?f=2&t=2319

And i pic of the project in question:

Image

I have two goals in this project

1. Reverse engineer the controller board
2. Make a new controller board
(3. Learn ;) )

Any input and questions are appreciated!

I'll post below
martinmunk
 
Posts: 13
Joined: January 6th, 2012, 5:48 pm

Re: 120x21 dot LED sign - Reverse engineering and improvemen

Postby martinmunk » July 24th, 2012, 10:23 pm

Soo. First update goes:

k-ww tipped me off how to read the am27c256 EPROM chip on the controller and this post is about my try to this exact thing.

To read it i need a MCU with 15 adress lines and 8 data lines. For this i used a Atmel ATmega32 and my STK500 board.

Hooked-up it looks like this:

Image
Image

As of now my code is as follows

Code: Select all
#define F_CPU 3686400UL

#include <avr/io.h>
#include "uart.h"
#include <util/delay.h>

int main()
{
   char tegn = 0x00;
   uint16_t output = 0;
   
   //Init
   DDRA = 0xFF;
   DDRB = 0xFF;
   DDRC = 0x00;
   
   PORTA = 0x00;
   PORTB = 0x00;

   InitUART(9600, 8);
   
   
   while(1)
   {
      PORTA = output;
      PORTB = (output >> 8);
      if(output == 0b1000000000000000)  //I have to blocks of debug-code in here as the output to the serial line seems strange somehow.
      {
         SendChar('1');
         SendChar('5');
         SendChar('b');
         SendChar('i');
         SendChar('t');
      }
      if(output == 0b0000000000000000)
      {
         SendChar('1');
         SendChar('6');
         SendChar('b');
         SendChar('i');
         SendChar('t');
      }   
      output++;

      _delay_us(50);
      
      tegn = PINC;
      SendChar(tegn);
   }
}


Some of my problems with this is that it newer sends the "16bit" message and not always the "15bit" one :?

For further debugging i hooked up my Logic16 logic analyzer:
Image

And got this output:
Image

I'd really appreciate if you can help me figure out what is "off" here!
IE to me it seems that the IC is sent 0b10001100 at T=60ms but sends 0b01000010 (0x42) to the PC...
Note that the parallel data and the serial data is off by almost a whole data packet off course.

Anyway. Off to bed. I've been at work all night :shock:
martinmunk
 
Posts: 13
Joined: January 6th, 2012, 5:48 pm

Re: 120x21 dot LED sign - Reverse engineering and improvemen

Postby semicolo » July 25th, 2012, 7:55 pm

well the 5 first bytes received on your logic analyzer do spell '16bit'
0x31, 0x36, 0x62, 0x69, 0x74.
If the following bytes are always the same, your setup seems to be good enough to read the eprom.

Maybe you didn't set the serial port settings quite right on the pc when trying to receive the data?
User avatar
semicolo
 
Posts: 269
Joined: December 13th, 2011, 3:32 pm


Return to Project Logs

Who is online

Users browsing this forum: No registered users and 4 guests