Comments: Using the Serial 7-Segment Display
Looking for answers to technical questions?
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
If you've found an issue with this tutorial content, please send us your feedback!
-------------------- Tech Support Tips/Troubleshooting/Common Issues --------------------
Default Firmware
If you are having issues uploading the default firmware try using the older version of the firmware branched here => [ https://github.com/sparkfun/Serial7SegmentDisplay/tree/v3.1_live/firmware/Serial%207-Segment%20Display/Serial_7_Segment_Display_Firmware ]. This is the same firmware that is used in our production department.
Microcontroller Sending Commands Too Fast to Serial 7-Segment Display
If you have issues using the serial enabled 7-segment display where the LEDs flicker and display random numbers, it could be the way that you wrote your code. There was one case that I encountered where this happened after using a sequence of commands to clearing the screen, setting the mode, setting the brightness, and adjusting the cursor.
Testing with a 5V RedBoard, the major issues that seemed to be fixed was removing the clearDisplay() function and adding a delay between setting the brightness and your cursor position. The flickering may be due to clearing the screen and writing back on the screen in your main function. By avoiding the clear screen function every time my main function looped back, the serial enabled 7-segment displayed the counter better. By adding a 1ms delay, the serial enabled 7-segment stopped displaying random numbers and flickering. It's possible that the serial enabled 7-segment display does not have enough time to set the brightness for the entire display. Adding the delay probably helped in completing the function before moving onto the next command.
Arduino Compile Issues w/ "0"
If you are trying to send a special command and a data byte of 0, the compiler won't like:
It will output an error similar to this:
The value 0x00 is not specifically defined so it could be a char(NULL), int, or a byte. The compiler doesn't understand what you are referring to. To work around this, try saving the byte into a defined variable and using it with the Serial.write() function similar to this:
Default I2C Address on Other Microcontrollers
The Arduino I2C library uses 7-bit addressing [ https://www.arduino.cc/en/reference/wire ]. I believe the library ignores the last bit because there is a function for reading or writing. Other development boards outside of the Arduino ecosystem may require different addressing techniques. This was stated briefly in the I2C example code:
Additional Tutorials and Examples
For an example using the serial 7-segment display with Raspberry Pi, I2C, and Python, check out this tutorial => http://www.derekscholten.com/2013/09/02/raspberry-pi-sparkfun-7-segment-display-clock/.
For an example using the 7-segment serial display with Raspberry Pi, I2C, and MatLab support package, check here => https://www.mathworks.com/examples/matlab/4551-controlling-a-4-digit-7-segment-display-using-i2c.
I can’t find the SoftwareSerial.h library in the Arduino 2.03 IDE. Where can I get it from to run the basic serial sketch?
Using this board with MKR 1010 is pretty simple. Just connect TX on MKR to RX of the display in addition to Vcc and GND. Then open Serial1 and simply write your data.