7-Segment displays quit working suddenly

Get help and insight.
JonW
Site Admin
Posts: 1726
Joined: Sun Jul 18, 2010 7:51 am
Bot?: No
Location: Huntington Beach, CA
Contact:

Re: 7-Segment displays quit working suddenly

Post by JonW »

Oakbarn - the fact that yours worked on the short cable, then crapped out on the longer one and now doesn't work on the short cable tells me that you've got something going on in your setup that is probably blowing something on the BCS.
User avatar
oakbarn
Posts: 846
Joined: Thu Jan 05, 2012 2:28 pm
Bot?: No
Location: Texas
Contact:

Re: 7-Segment displays quit working suddenly

Post by oakbarn »

The longest cable I tried was short, I cut one of the cable that interconnect two displays in half. Never tried a long cable. It failed BEFORE I tried to hook it up to an extender and longer. The cable was about 9 inches.
User avatar
oakbarn
Posts: 846
Joined: Thu Jan 05, 2012 2:28 pm
Bot?: No
Location: Texas
Contact:

Re: 7-Segment displays quit working suddenly

Post by oakbarn »

oakbarn wrote:I have tried 5 inches and about a foot but nothing works. I even broke out a brand new 7 segment display that has never been used. I have tried about every combination possible. I was going to hook up the I2C extenders but it quit before I could even test them.
As you can see, i had a 5 inch cable and then about a foot. I went and measured and it was just 9 inches. It worked then quit.
JonW
Site Admin
Posts: 1726
Joined: Sun Jul 18, 2010 7:51 am
Bot?: No
Location: Huntington Beach, CA
Contact:

Re: 7-Segment displays quit working suddenly

Post by JonW »

oakbarn wrote:
oakbarn wrote:I have tried 5 inches and about a foot but nothing works. I even broke out a brand new 7 segment display that has never been used. I have tried about every combination possible. I was going to hook up the I2C extenders but it quit before I could even test them.
As you can see, i had a 5 inch cable and then about a foot. I went and measured and it was just 9 inches. It worked then quit.
I don't know what more to offer. At this point you've tried 3 different BCS's and had problems with all of them. Yes, SSGROSS is also having issues, but it's impossible to say if your two problems are related. There are many people here using these LCD's without issue, so it's really impossible to determine where your problem lies.

About the only thing I can offer is that if you want to send me any of the equipment, I can test it against known working units to try to determine where the problem lies.
ssgross
Posts: 29
Joined: Tue Nov 05, 2013 9:14 am
Bot?: No

Re: 7-Segment displays quit working suddenly

Post by ssgross »

I am using an arduino uno to troubleshoot.
First, I used my multimeter to verify the voltages/wiring for 12v power, as well as the ground terminal on the RS485 terminal block (see my first pic in previous post for my wiring, which was proven to work just fine before things kapooted).
Below is the code for scanning if the displays can be found.
If you don't have an lcd, then just comment out (//) the begining of each line that begins with lcd.*

Code: Select all

//sniffing for working i2c devices.
//SCL connected to A5 (arduino uno)
//SDA connected to A4
//Gnd on RS485 connected to Gnd on arduino
//if you wired the BCS correctly, then
//SCL is connected to exp0 and
//SDA is connected to exp1



// include the display library
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //define pins for display

#include <Wire.h> //library for i2c

int debug = 2; //toggle debug message mode


void setup(){
Serial.begin(9600); //initialize serial comm at 9600 bits per second 
Serial.println("Powering On...");
lcd.print("Powering On...");

 

delay(1000);

lcd.clear(); //clear the lcd display

Serial.println("Starting I2C Scanner");
lcd.print("Starting I2C Scanner");
Wire.begin();


} //end setup function

void loop(){
  
   byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
  lcd.clear();
  lcd.print("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 167; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    //Serial.print("Checking for device at 0x"); //uncomment to see/check the addresses being scanned
    //Serial.println(address,HEX);
    error = Wire.endTransmission();
    
    
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
      lcd.clear();
      lcd.setCursor(0,1);
      lcd.print("Found 0x");
      lcd.setCursor(8,1);
      lcd.print(address,HEX);
      delay(3000);
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknow error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
      lcd.clear();
      lcd.setCursor(0,1);
      lcd.print("Error 0x");
      lcd.setCursor(8,1);
      lcd.print(address,HEX);
      delay(3000);
    }    
  }
  if (nDevices == 0)
    {Serial.println("No I2C devices found\n");
    lcd.clear();
    lcd.print("No I2C devices.");
    }
  else
    {Serial.println("done\n");
    lcd.setCursor(1,1);
    lcd.print("done");
    delay(3000);
    }
 
  delay(5000);           // wait 5 seconds for next scan
  
}

works like a charm, and my displays are found at 0x2A, 0x2B, 0x2C and 0x2D as they should be.

Next post will be trying to send data to them, and light up the displays via the arduino.
ssgross
Posts: 29
Joined: Tue Nov 05, 2013 9:14 am
Bot?: No

Re: 7-Segment displays quit working suddenly

Post by ssgross »

Below is the code (found with my excellent google-fu) I have used to send data to the displays from the arduino.
change the line
#define DISPLAY_ADDRESS1 0x2A
to check the others.

Code: Select all

/*
11-2-2012
Spark Fun Electronics
Nathan Seidle
This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
Serial7Segment is an open source seven segment display.
This is example code that shows how to send data over I2C to the display.
Note: This code expects the display to be listening at the default I2C address. If your display is not at 0x71, you can
do a software or hardware reset. See the Wiki for more info:
http://github.com/sparkfun/Serial7SegmentDisplay/wiki/Special-Commands
To get this code to work, attached an Serial7Segment to an Arduino Uno using the following pins:
A5 to SCL
A4 to SDA
VIN to PWR
GND to GND
*/
#include <Wire.h>
#define DISPLAY_ADDRESS1 0x2A //This is the default address of the OpenSegment with both solder jumpers open
int cycles = 0;
void setup()
{
Wire.begin(); //Join the bus as master
Serial.begin(9600); //Start serial communication at 9600 for debug statements
Serial.println("OpenSegment Example Code");
//Send the reset command to the display - this forces the cursor to return to the beginning of the display
Wire.beginTransmission(DISPLAY_ADDRESS1);
Wire.write('v');
Wire.endTransmission();
}
void loop()
{
cycles++; //Counting cycles! Yay!
Serial.print("Cycle: ");
Serial.println(cycles);
i2cSendValue(cycles); //Send the four characters to the display
delay(1); //If we remove the slow debug statements, we need a very small delay to prevent flickering
}
//Given a number, i2cSendValue chops up an integer into four values and sends them out over I2C
void i2cSendValue(int tempCycles)
{
Wire.beginTransmission(DISPLAY_ADDRESS1); // transmit to device #1
Wire.write(tempCycles / 1000); //Send the left most digit
tempCycles %= 1000; //Now remove the left most digit from the number we want to display
Wire.write(tempCycles / 100);
tempCycles %= 100;
Wire.write(tempCycles / 10);
tempCycles %= 10;
Wire.write(tempCycles); //Send the right most digit
Wire.endTransmission(); //Stop I2C transmission
}
The displays do not show anything.
Curiously, however, the debug light on the display stops flashing! indicating that is it successfully receiving data!
I suspect that the displays require the data to be formatted in a certain way, other than that for the display the code was written for.
I will have to email oscsys about this, I suppose, unless anyone else here wouldn't mind modifying it.
Now, on to use the arduino to see what data the BCS is sending. Stay tuned...
ssgross
Posts: 29
Joined: Tue Nov 05, 2013 9:14 am
Bot?: No

Re: 7-Segment displays quit working suddenly

Post by ssgross »

I can't get the arduino to receive anything from the bcs. However, i am not comfortable that the arduino code is doing what I want it to. Anyone know how to get arduino to dump everything it "hears" on i2c?

Nonetheless, when the BCS is connected properly the debug light on the dispalys flash, indicating no data received. When the arduino sends any data, the debug light shines steady and bright indicating data received (even though the data is meaningless to the display, it does show it receives it).

Until I have more information, I suspect the i2c bus on the BCS is bricked. everything else on it works just fine.

Another curiosity: when I use the multimeter - EXP0 to BCS ground, it reads .74 volts, and EXP1 to ground reads .05 volts. I don't know what this means, other than that there is a trickle of current at those ports. will email tech@embeddedcc.com. Hopefully they have another idea.

Is it possible to send the BCS in for repairs?
ssgross
Posts: 29
Joined: Tue Nov 05, 2013 9:14 am
Bot?: No

Re: 7-Segment displays quit working suddenly

Post by ssgross »

been waiting almost a month now to hear back from ecc...will try formal written correspondence next.
JonW
Site Admin
Posts: 1726
Joined: Sun Jul 18, 2010 7:51 am
Bot?: No
Location: Huntington Beach, CA
Contact:

Re: 7-Segment displays quit working suddenly

Post by JonW »

Did you call them? They do answer the phone.
ssgross
Posts: 29
Joined: Tue Nov 05, 2013 9:14 am
Bot?: No

Re: 7-Segment displays quit working suddenly

Post by ssgross »

My google-fu concludedes they don't want to be called, as does their "Contact Page".
contact.png
contact.png (137.37 KiB) Viewed 5781 times
I am willing to be wrong if anyone from ECC or otherwise wouldn't mind posting the phone number.
Post Reply