Sparkfun 7-seg display problem

I've sent a description of this problem to Sparkfun but I'm hoping someone here might have some insight.

I am using a blue 7-seg serial display, and I am having a problem.

I use this display to show temp readings (digits) and that works fine. I am using 9600 baud (default) over a SOFTWARE serial port called "display."

However, in certain cases I want to show some letter characters. I have never been able to get the display to work properly with letters. I get what first appeared to be garbage on the screen. But now I have deduced that it is receiving my commands properly, but not lighting up all the proper segments.

As part of my debugging, I have a push button on an Arduino, and when this button is pushed I will reset the display and send AAAA.

display.print(0x76,BYTE); //reset display.print("A"); display.print("A"); display.print("A"); display.print("A"); delay(6000); //wait

After the delay, the screen resumes displaying the proper temperature. (This part works properly).

I can push the button over and over, and I notice that instead of getting AAAA I will get some subset of AAAA. I may, for instance get one or two complete A's but the other A's will have only some of their segments lit up. So what appeared to be garbage to me initially is actually an "A" with missing segments. Each time I push the button, the incomplete "A's" are in different places. I never get four A's. Once I got two A's but usually I only get one, with the other characters being "broken A's."

So, my suspicion is that the display is properly receiving my 4 Bytes of data, but that it isn't properly displaying the characters on the screen.

Again, with digits (numbers), it's always dead on accurate.

Any ideas? I was wondering if maybe slowing down the baud rate would help (it's at the default 9600 now). I tried this but couldn't get it to work at any speed other than 9600. Could there be some noise in my system that is confusing the processor inside the display? I do have a 10K pull down resistor on the data line, which I added thinking that there was some noise on that line. But again, displaying digits (numbers) has always worked properly and adding the pull-down R did not change anything.

Thank you!

A picture will be helpful in diagnostics.

The display shows hexadecimal, not ascii. Use display.print(0x0A, BYTE) and not displayPrint("A").

See: http://www.sparkfun.com/datasheets/Components/LED/SFE-0012-DS-7segmentSerial-v3.pdf

There's a "getting started with Sparkfun 4x 7segment display modules" at...

http://www.arunet.co.uk/tkboyd/ec/ec1led4x7ser.htm

... assuming you're using Sparkfun COM-09764 or similar. (The 09765, 09766 and 09767 are similar devices in other colors.)

I will add a pic here asap. However, I have also used display.print(0x0A, BYTE) with the same results.

As far as I understand (and as confirmed by Sparkfun), display.print("A") is also valid. Anyway, I don't think the formatting here is the problem.

Pics to follow.

Here is the display showing my temp readings normally (sensor 1 shows 23 C and sensor 2 shows 23 C). Note, I never have any problems sending commands for the temps. It always shows the temps properly.

When I command the sensor to display any characters, I get mixed results. In this case I am commanding four A’s. I get an A or two, but the other A’s have missing segments.

temps.jpg

As.jpg

You could try a short delay between the reset of the display and the sending of the A's. Perhaps the display is unstable just after the reset.

That is a good suggestion. But I already tried that. What's strange is that in some cases the first byte is read properly (immediately after the reset), but then one of the subsequent bytes is not.

Sparkfun recommends trying a hardware port instead of SW port, as well as monitoring the serial line using Arduino's serial monitor. I haven't gotten to that yet.

tkbyd: There's a "getting started with Sparkfun 4x 7segment display modules" at...

http://www.arunet.co.uk/tkboyd/ec/ec1led4x7ser.htm

... assuming you're using Sparkfun COM-09764 or similar. (The 09765, 09766 and 09767 are similar devices in other colors.)

I'm having issues with that code sheepdog...

My display is now dim and the display is gibberish on my display....

Perhaps I am missing something with your tutorial?

ldavisfl et al,

these units are used successfully as part of the SPI tutorial at http://tronixstuff.wordpress.com/2011/05/13/tutorial-arduino-and-the-spi-bus/

It includes a video of it displaying various letters and numbers.