I recently assemble the ICE TUBE clock and the second digit is dimmer than the other digits. Any help would be appreciated.
Also while in the menu some digits appear more dim than others... Dont know if that is also related or not.
Thanks.
Moderators: adafruit_support_bill, adafruit
wbp wrote:Is this the last digit only? I think I have just discovered a fix for this... Do you have the ability to reprogram your clock?
William
uint8_t currdigit = 0; // which digit we are currently multiplexing
uint8_t lastdigit = DISPLAYSIZE-1; // last digit before starting over
volatile uint8_t ldbb = 0; // Last Digit Brightness Boost// This changes and updates the display
// We use the digit/segment table to determine which
// pins on the MAX6921 to turn on
//void setdisplay(uint8_t digit, uint8_t segments) { // wbp
void setdisplay(uint8_t digit) {
if (digit > lastdigit)
digit = lastdigit; // hack to display last digit twice
uint8_t segments = display[digit];
uint32_t d = 0; // we only need 20 bits but 32 will do
uint8_t i;
// Set the digit selection pin
d |= _BV(pgm_read_byte(digittable_p + digit));
// Set the individual segments for this digit
for (i=0; i<8; i++) {
if (segments & _BV(i)) {
t = 1;
t <<= pgm_read_byte(segmenttable_p + i);
d |= t;
}
}
// Shift the data out to the display
vfd_send(d);
} // Cycle through each digit in the display
// Set the current display's segments
setdisplay(currdigit);
// and go to the next
currdigit++;
// currdigit is allowed to go past the end of display bytes.
// setdisplay will limit the max index value
// this has the effect of displaying the last digit multiple times
if (currdigit > lastdigit+ldbb) // hack to display last digit twice - wbp
currdigit = 0; // start over with first digit if (currdigit > DISPLAYSIZE) // hack to display last digit twice - wbp if (currdigit > DISPLAYSIZE+1) // hack to display last digit twice - wbpkinderwood wrote:wbp,
I just tried the firmware you uploaded and it does seem to help the last digit brightness problem on my tube. The last digit is quite a bit dimmer than the others though. Is there any way to increase the brightness further by display the digit more than two times? Such as changing
- Code: Select all
if (currdigit > DISPLAYSIZE) // hack to display last digit twice - wbp
to
- Code: Select all
if (currdigit > DISPLAYSIZE+1) // hack to display last digit twice - wbp
Any advice would be appreciated, thanks!
wbp wrote:neutron spin - I don't understand the negativity - what's wrong with messing with the code if it works? And it does... All we're doing is changing the duration of the last digit. In fact some of us have been discussing a way to set the display times on a digit by digit basis, not all that hard and could be a nice way to even out an uneven tube.
kinderwood - your change would increase the display time of the last digit by 50%, so try it and let us know what happens.
William
Users browsing this forum: No registered users and 1 guest