3
\$\begingroup\$

I managed to pick up two 16x64 unbranded LED matrix for next to nothing. My son has autism and absolutely loves LED scrolling signs so I thought it would be a nice project to build for him. They have USB and serial wires. USB only does power I think, but it also has a USB Mini B port on the side. Using that USB mini port I've managed to install the correct drivers and now windows recognises it as Prolific USB-to-Serial Comm Port.

I've tried monitoring the serial traffic on the port but nothing is being sent from the device. Am I right in guessing the reason I got them so cheap was that they came with no software and I'm SOL in trying to reprogram the text? Not sure what to try next as I'm only an amateur so any advice or guidance would be very welcome.

Here's some pictures of the device: https://i.sstatic.net/v27lY.jpg

Managed to get inside one of them, here's some pictures of that: https://i.sstatic.net/VKWHm.jpg

ISP Interface: https://i.sstatic.net/JZiy0.jpg

\$\endgroup\$
16
  • 1
    \$\begingroup\$ Welcome! Can I suggest you a) post some pictures of the back if there's any label of any kind? b) open it up and post some pictures of that. Without more information, there's nothing anyone can do but guess. \$\endgroup\$
    – jonathanjo
    Commented Oct 13, 2022 at 13:44
  • \$\begingroup\$ You probably got them cheap because they're designed for a specific system and nobody else wanted to try reverse-engineering them. Which is what you now have to do. They are probably meant to be connected to some controller that would send commands to them. If you are very lucky, you can type something like "help" or "?" and get a response. But you probably have to set the right baud rate. You could also try to find the software on the Internet if you know the sign's model number (it's not Prolific). \$\endgroup\$
    – user20574
    Commented Oct 13, 2022 at 13:57
  • \$\begingroup\$ @jonathanjo I've updated my question with some pictures of the back and both sides of the board if that would help at all \$\endgroup\$
    – d0little
    Commented Oct 13, 2022 at 14:02
  • \$\begingroup\$ @user253751 I thought that might be the case, just wanted to check in case there was a way to reverse engineer these things before I get rid of them \$\endgroup\$
    – d0little
    Commented Oct 13, 2022 at 14:03
  • \$\begingroup\$ A photo of the board can be seen from this DuckDuckGo Image Search. That was Alibaba but is since discontinued. Software must be out there somewhere. \$\endgroup\$
    – rdtsc
    Commented Oct 13, 2022 at 14:17

1 Answer 1

6
\$\begingroup\$

You did try just sending ASCII at lots of different baud rates, didn't you?

If you don't find existing software and want to drive it yourself ...

The board has

  • ATMega32 CPU -- flash programmable, extremely similar to ATMega328 in an Arduino
  • 16 x 64 LEDs
  • 10 x 74HC595 8-bit serial-in, parallel-out shift register-latches
  • 8 x FDS4952 twin p-type mosfets
  • 1 x can't-see-it Profilic USB-UART

From which it's almost certain:

  • 8 shift registers form 64 column drivers, ie one switch per column to connect a given LED to ground to light it.
  • 2 shift registers (U11, U12) feed the 16 p-mosfet (IC1-8) to drive the rows as "high side driver": ie, switches to +ve supply.

Board with pinouts: enter image description here

Inferred diagram:

enter image description here

The usual way is to enable one row at a time and the appropriate LEDs on that row.

If you find the front of the two chains of shift registers, unsolder them (from the CPU) and insert your own signals (at column and row in put in diagram), you could program any MCU to drive them. The obvious one would be an Arduino. But any method of driving the shift registers would work.

From the orientation of the chips, the most obvious chain would be:

  • Rows: U12.QH' feeds U11.SER
  • Columns: U1.QH' feeds U3.SER ... U7 U11 U14 U15 U16.

Update: near pin 1 of the CPU is an unpopulated 6-pin header J3. This is almost certainly an ICSP connector (normally on 2x3 header) whose pinout should be easy to work out as it's right next to the signals (MISO, MOSI, SCK, RESET). If so, it looks extremely likely you'd be able to reprogram the CPU on the board, to make this more of a software project than a hardware one. ICSP details at Section 3.1.3 of Atmel ISP User Guide. Most people don't use that hardware, they use another Arduino as the programmer.

From ISP Guide and CPU datasheets: enter image description here

This is my guess of how those signals appear on J3, but obviously needs verifying. GND and VCC are the easiest to find, of course. enter image description here

\$\endgroup\$
7
  • 1
    \$\begingroup\$ Thanks so much for the image that's a great help, I will try my best to follow your instruction, if not I may have to abandon these modules and go the MAX7219 route with led matrix, thanks again \$\endgroup\$
    – d0little
    Commented Oct 13, 2022 at 15:39
  • 1
    \$\begingroup\$ +1 for the epic pinout overlay! Love it \$\endgroup\$
    – akwky
    Commented Oct 14, 2022 at 8:16
  • 1
    \$\begingroup\$ @akwky It's a method I adopted for all reversing because it's quick: Pinouts screengrab from datasheets, paste into GIMP, threshold (no greys), image invert (white on black), colour->alpha (white on transparent), colourify (cyan on transparent). Paste into inkscape, pull till pins line up. Add a layer in partial transparency to darken original image. \$\endgroup\$
    – jonathanjo
    Commented Oct 14, 2022 at 8:43
  • 1
    \$\begingroup\$ On J3 it's hard to guess what happens under C14, but if it was me I'd put them in the straight order off the CPU, ie, J3.pin1 is GND, 2=VCC, rest as labelled in my image. I use LED + 3V battery + resistor to probe these kinds of things: keeps current low, also voltage. Some meters have 9V batteries, not good for CPUs if you get something wrong. \$\endgroup\$
    – jonathanjo
    Commented Oct 14, 2022 at 12:26
  • 2
    \$\begingroup\$ J3-pin2 looks like it has thermal reliefs to the GND plane, while pin1 appears to connect to C14 and then follow on to VCC on the micro. \$\endgroup\$
    – brhans
    Commented Oct 14, 2022 at 12:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.