I’m trying to use a S7S as a display for a countdown timer. I have it connected to UNOR3, both at 5V. (I tried using I2C, but it kept dropping messages, so I switched to SPI.). I have only SCK and SDI connected, and a 10K pullup on SS. I am running this on a breadboard setup, and am keeping the wires as short as possible
It kept acting flaky, so I decided to use the sample code from the Sparkfun S7S documentation. I used the code verbatim, and still get strange behavior. It appears to be either adding a byte or dropping a byte, and I haven’t figured out what makes it do one or the other. It may have to do with warming up. The following table shows what is sent and what is displayed:
| Column 1 | Column 2 | Column 3 | Column 4 |
|---|---|---|---|
| -HI- | HI-_ | -HI- | |
| I-__ | 0HI- | ||
| ___0 | __0_ | __00 | |
| ___1 | _10_ | ___1 | |
| ___2 | 21__ | _201 | |
| ___3 | 2__3 | __30 | |
| ___4 | __43 | 0__4 |
(In the above I used underline where a blank really appears.)
The first column is what is being sent, which I have verified using println(). Note that in the second column the displayed data is rotating to the left, as if a character is being dropped. (Indeed, when it is in this mode I can add code to print a single character before the four in the display function, and this character is not displayed and the rest of the data is not rotated.). In the third column the displayed data is rotating to the right, as if a character (sometimes 0, at other times a blank) is being added. The sample sketch never does a “position cursor” command but expects 4 characters to be sent each time. It is semi-random where the cursor starts out. Also, the “set brightness” command sometimes takes and sometimes doesn’t.
I see this same behavior whether I am running the S7S with power from the UNOR3, or with both running off an external supply. I have verified with current-sense resistors that the S7S uses only about 50ma.
I’m not sure where to go from here. Should I scrap the S7S? Should I try to re-flash it? Is it worth putting a logic analyzer on it? I have a Pro Mini that I could try, but it refused to work with I2C, so I’m skeptical of it.