Scoreboard progress
It’s been a few weeks since I’ve gotten 4 MAX6953 chips (for free…Thanks Maxim!). I won’t get into the details of the chip, you can read about it here. Now that the hustle and bustle of the holidays are over I finally got to concentrate on getting them to work with the Propeller. I have to say, it was quite the learning experience. It really brought home the fact that I remember jack squat about what I ‘learned’ in a beginning electronics AP class my senior year in high school (6 years ago…wow I’m getting old).
My first attempt was rather boring and actually sad. First of all I had a hard time getting everything hooked up. For some reason I just couldn’t understand the schematic on the Maxim site. After hooking everything up the same way about 30 different times I realized that I was trying to communicate with it via a serial interface. The chip only supports the SPI interface. After sorting that out and figuring out what to send to the chip I ended up with the following video.
While the blinking might look cool, it’s not supposed to do that. From what I found out is that the power was dropping too much to keep it on. So, after much frustration I added a 47uF capacitor and walla! Well, almost. The problem with the row of LEDs staying on no matter what was due to the intensity setting being set to 15. Ten prooved to be more than bright enough. Now everything works like a charm…
Muuuch better. The first shape is a heart. I was testing out the custom fonts feature this chip has. The second A-Z run is showing the intensity setting.
Here’s a picture of the setup. It looks far more complex than it really is. I’m attempting to learn EAGLE so hopefully you’ll give me a few days to get the schematic up. I’m tired of messing around with EAGLE right now. So enjoy an awesome photoshop of a schematic instead.
The code to accomplish this is actually really easy. Of course, I say this now that I’ve figured it out. Below is an excerpt of how the ‘demo’ works.
tempa :=$41 ' Start with A
repeat tempa from $41 to $5A ' Cycle A-Z
m.WriteChar(tempa) ' Send it to the max
WaitCnt(clkfreq/2+cnt) ' delay
cognew(Flex,@PWMCog) ' start the intensity setting in a new cog
tempa:=$41 ' Start with A
repeat tempa from $41 to $5A ' Cycle A-Z
m.WriteChar(tempa) ' Send it to the max
WaitCnt(clkfreq/2+cnt) ' delay
Looks simple, right? That’s because I wrote a new ‘object’, making communicating with the chip so much more easy.
PUB WriteChar(char)
i.Start
Write($A0) ' Write operation
Write(GetDeviceAddr) ' digit to write to
Write(char) ' character to write
i.Stop
So you might be thinking this is real great and all but what the heck is this for? Good question, I’m glad you asked. What I’m working on is the scoreboard for the pinball machine. Instead of using the traditional DMD I want to use LEDs. It’s definatly a much bigger challenge than a DMD. Although, once I reveal the machine design it should make a bit more sense of why I chose LEDs.
As always, I welcome any suggestions on how I can improve my blog posts. Especially technical posts such as this one.

