Just another LCD question - 4x20 LCD is driving me crazy

Go To Last Post
35 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

I want to connect one 1x16 LCD, one 4x20 LCD and one D-flip-flop (74HC574) to an ATmega164P. All 3 parts share the same 8-bit data port (PORTB).

I'm already able to send data to the D-flip-flop and to the 1x16 LCD but the 4x20 LCD won't display anything - even when removing the D-flip-flop and the 1x16 LCD. If I increase the contrast to the maximum, only line 1 and 3 become dark - independant of initializing it as an 1-line or a 2-line display. So I guess initializing failes.

The ATmega164P is running with an 8MHz ceramic resonater, programming the CKDIV8 fuse didn't help, too.

I replaced the display with no success.

I connected the 4x20 LCD to an other device with an 2x16 LCD and it worked.

I'm running out of ideas. Surely, it must be something very simple and stupid what I'm doing wrong. Mabe you can take a close look at my code and point me to the right direction. Actually I'm not reading the busy flag, I've added a 2ms delay loop instead.
Many thanks!

Regards
Sebastian

Datasheets:
4x20 Display
1x16 Display
74HC574

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Is everything powered up when you are trsting this? You're not running the test of the 4x20 wuth the 2x16 un-powered, are you?
What is the state of the r/w line on the 2x16 when you're testing the 4x20?

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have completly removed the 1x16 LCD and the D-flip-flop just to ensure there is no other hardware connected to the data port which could cause trouble. Both LCDs share the sme IO for the RS and RW signals.

Regards
Sebastian

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

PD6 and PD7 are defined opposite of what the schematic shows.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Lines 1 and 3 showing black boxes (they are coming .... LOL ), means that the 4*20 is not properly initialized. Does it have two E-lines ?

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

curtvm wrote:
PD6 and PD7 are defined opposite of what the schematic shows.

Thanks, but actually I'm not controlling the contrst via PWM but with a 10k pot. However, I'll keep it in mind.

Regards
Sebastian

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Plons wrote:
Lines 1 and 3 showing black boxes (they are coming .... LOL ), means that the 4*20 is not properly initialized. Does it have two E-lines ?
Yes, the dark boxes have arrived. :shock:
The LCD has only 1 E-line.

Regards
Sebastian

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Yes, the dark boxes have arrived.
It's Svofski's signature line for years, .. it's such a funny expression.

I started reading the code you enclosed ... and then I knew it: I even put yellow notes in my LCD-boxes, since it's not the first time I have troubles with initialisation of LCD's:

"Use a pull down resistor on the E-line when connecting an LCD to an AVR"

And why ?
During power-on, the LCD sees E being high, and it's made low by the AVR AFTER its start-up-time. And that is too late. A 2k2 will do :)

Nard

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, here's another 'keep it in mind' item-

instruction = reverse_bit_order (instruction);
is in 'write_lcd_1x16_instruction' but not in 'write_lcd_4x20_instruction', but it appears the 1x16 is wrong if I read the schematic correctly (no reverse needed). But then why would the 1x16 work? (maybe the schematic is not correct, and the data lines ARE reversed which would explain things).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
And why ?
During power-on, the LCD sees E being high, and it's made low by the AVR AFTER its start-up-time. And that is too late. A 2k2 will do

But if you are doing a full start up procedure, this shouldn't matter. That is one of the reasons you send the initial code 3 times.

Regards,
Steve A.

The Board helps those that help themselves.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

A ratty E line can indeed cause a lot of problems. We have added a small cap at the LCD end to help in certain designs. But we've got dozens of production LCD apps of various brands and have never yet added a pull-down on E.

If anything, LCDs seem to be >>slow<< starting up, and the AVR is sitting there impatiently waiting for the LCD rather than the other way around.

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
... and have never yet added a pull-down on E.
Every day we get the oppertunity to learn something :)

Nard

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Why would I want to add parts if they are not needed?

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That resistor IS needed, but indeed, often not implemented.

The facts are simple: if the LCD has no /reset-line (which is common), and generates its own reset, then the AVR must have the ports initialized BEFORE the LCD comes out of reset-state. If the AVR hasn't initialized the ports yet, and the LCD is ready, it's a matter of guessing what the logic level E will be at that time. So it depends a lot on the setting of the SUT-fuses.
For me reason enough to add a pull-down.

Nard

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If things are as you say, then my apps would never work when I reset the AVR one or more times without resetting the LCD, right? Or, hold the AVR in reset for an arbitrarily long time when powering up. [This is fairly simple for me to do as I use the STK500 for ISP during development and nearly all apps can run with the ISP cable connected.]

As mentioned above, the triple-send should restart the LCD no mater what the state unless it is totally scrambled. If otherwise, I'd certainly have gotten more than one "bug report" from the thousands of AVR+LCD units in the field. And I haven't.

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Many thanks for all your support!
Sorry, for my late response. Unfortunately I was told to do something else first at work. I'll take a close look at your suggestions tommorrow.

Quote:
Well, here's another 'keep it in mind' item-

instruction = reverse_bit_order (instruction);
is in 'write_lcd_1x16_instruction' but not in 'write_lcd_4x20_instruction', but it appears the 1x16 is wrong if I read the schematic correctly (no reverse needed). But then why would the 1x16 work? (maybe the schematic is not correct, and the data lines ARE reversed which would explain things).

The reverse_bit_order call is because I have accidentally wired the 1x16 LCD in reversed order (only data lines). I had no time yet to correct that - adding the reverse_bit_order call is only a quick and dirty solution. I'll correct that later. However, the 4x20 LCD should be wired correctly but I'll recheck it tommorrow.

So tommorrow I'll
1. set the AVR fuses to the shortest start-up time and configure the E-line as early as possible
2. if 1. doesn't help, I'll add a pulldown resistor to the E-line
3. if 1. and 2. doesn't help, I'll add a small cap to the E-line
4. ????? (Other suggestions?)

Lee, what is a small cap??? Maybe 100pF or ...?

Regards
Sebastian

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Whatever it takes to clean up a ratty signal on the 'scope. Sometimes the 'scope probe capacitance is enough.l then, you either ship a 'scope attached to each unit, or add a few pF about the probe capacitance. ;)

I'd look at your init sequence. As mentioned, the LCD should not be sensitive to E wiggles at power up, as the repeated mode-select should do the job.

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
If things are as you say, then my apps would never work when I reset the AVR one or more times without resetting the LCD, right?
No, that's not what I said nor stated, nor insinuated. I can think of many ways it *can* work fine without the pull-down resistor. Once the LCD is initialized correctly, it no longer matters. Once the LCD is screwed up, re-initialization doesn't help anymore. (at least that is what I found using 4-bit mode)

I posted here my suggestion in the hope that it would help Sebastian (OP) to keep his sanity ;) And I am willing to explain why I think that a pulldown is necessary.

So Lee, instead of trying to convince me that I am wrong, why not try to see the validity of what I say? Wouldn't that be more benefitial ? That is at least the way I look at your suggestions. F.i.:

Quote:
If anything, LCDs seem to be >>slow<< starting up, and the AVR is sitting there impatiently waiting for the LCD rather than the other way around.

True. So init the ports (DDRs) of the AVR ASAP, to ensure stable control-signals to the LCD, then do some windowcleaning or other household-tasks, and THEN intialise the LCD.

To Sebastian: looks like a good action-plan. No need to fill in option 4 yet: we'll probably not need it.

Nard

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
So Lee, instead of trying to convince me that I am wrong, why not try to see the validity of what I say? Wouldn't that be more benefitial ?

That only works if what you say is actually valid. Both Lee and I think that it is not valid. As long as you wait long enough for the LCD to be stable, then set the AVR ports, then run a full initialization routine, there shouldn't be any problem.

The only possible problem is that the LCD has gotten what it thinks is the first half of a command. But this is the very reason that the initialization starts with 3 function set commands. If it is in 4 bit mode, the first will clear any previous half of a command.

Regards,
Steve A.

The Board helps those that help themselves.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've tested you're suggestions so far without luck. So unfortunately I arrived at option 4.

1. Fuses set to fastest start-up sequence, brownout level set to 2.7V. Simulator says the E-line is initialized 35µs after reset. My power supply rises very slooow, thus the E-line is now initialised while the LCD is in reset.

2. and 3. I have tested with a 2k2 pulldown and a 47pF cap. Later I'll get a scope to check if the E-line is noisy.

I use an USB plug as power supply. A FT232R chip enables power to a DC-DC converter by controlling a P-channel FET. The DC-DC converter provides isolated power supply for the remaining circuit. The AVR talks with the FTDI chip via opto couplers (works well). I guess it takes more than 20ms until the isolated power supply becomes higher than 4.5V. Do you think the power supply could cause the trouble?

To initialize the LCD I follow the recommanded procedure by the manufactor: INITIALIZATION.PDF
The corresponding c-code is:

#define CLEAR_DISPLAY		0x01
#define RETURN_HOME			0x02
#define SHIFT_RIGHT_MODE	0x06
#define SHIFT_LEFT_MODE		0x04
#define DISPLAY_OFF			0x08
#define NO_CURSOR			0x0C
#define CURSOR_ON			0x0E
#define BLINKING_CURSOR		0x0F
#define DISPLAY_SHIFT_RIGHT	0x1C
#define DISPLAY_SHIFT_LEFT	0x18
#define CURSOR_SHIFT_RIGHT	0x14
#define CURSOR_SHIFT_LEFT	0x10
#define LCD_8BIT_MODE		0x38


void init_lcd_4x20 (void)
{
	// Clear LCD Control Pins
	set_low (LCD_RS);
	set_low (LCD_RW);
	set_low (LCD_4x20_E);
	
	// Set Data Direction Of LCD Control Pins To Output
    configure_as_output (LCD_RS);
    configure_as_output (LCD_RW);
    configure_as_output (LCD_4x20_E);
    
    configure_as_output (LCD_4x20_Vo);
    set_low (LCD_4x20_Vo);

    _delay_ms (35);
    
    write_lcd_4x20_instruction (0x30);
    _delay_ms (5);
    
    write_lcd_4x20_instruction (0x30);
    _delay_ms (0.2);
    
    write_lcd_4x20_instruction (LCD_8BIT_MODE);
    wait_while_lcd_4x20_is_busy();
    
    write_lcd_4x20_instruction (LCD_8BIT_MODE);
    wait_while_lcd_4x20_is_busy();
    
    write_lcd_4x20_instruction (DISPLAY_OFF);
    wait_while_lcd_4x20_is_busy();
    
    write_lcd_4x20_instruction (CLEAR_DISPLAY);
    wait_while_lcd_4x20_is_busy();
    
	write_lcd_4x20_instruction (SHIFT_RIGHT_MODE);
    wait_while_lcd_4x20_is_busy();
    
	write_lcd_4x20_instruction (BLINKING_CURSOR);
    wait_while_lcd_4x20_is_busy();
}


int main (void)
{
    init();
    lcd_4x20_puts ("0123456789ABCDEF");
    while (1);

    return 0;
}

Actually the wait_while_lcd_4x20_is_busy() function is just a simple _delay_ms(2) call.

The dark boxes are still there and stealing my sanity. I always laughed about Svofski's signature ... until know. Dark boxes are NOT funny! :evil:

Regards
Sebastian

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I tested the E-line with a scope. I used the following code to toggle the E-pin:

configureas_output (LCD_4x20_E);
configureas_output (DATA_BUS_0);

while (1)
{
    toggle (LCD_4x20_E);
    toggle (DATA_BUS_0);
}

Below are the corresponding screeshots of the E-line.
Do you think the E-line is too noisy?

Regards
Sebastian

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hmmm. Pitty we have to go to option 4 and up.

@Sebastian: If you use a supply-voltage of 5V, use a brownout of 4.3V, not 2.7V. And since it's rising slow, the delay _delay_ms (35); is IMO too short. The slow rising PS-voltage may cause the LCD to go nuts. I suggest to try SW-LCD-combination with the DC-DC-converter out, and a labsupply instead.

@Lee and Steve: do I understand correctly that you say that you can re-initialize a LCD once it has gone nuts ? I tried that the latest time I encountered a not-so-willingly-LCD: I called the init_lcd routine (Bascom) once more in the main program, in an attempt to get it initialized correctly. It didn't work.
I have a question: if the LCD *thinks* it's in 4-bit mode (undefined control-lines during power-up), and SW sends 8-bit commands, or vice-versa, do you think that you can get the LCD accepting the commands the SW sends ?

Nard

Edit: the scope-pictures. That's ringing, an old friend. Problem is that these pictures don't tell a lot, as the length of the groundlead, and the point where you connect it on the board have a huge influence. And *if* these are the E-signal in real, the ringing is within noisemargin of a CMOS device.

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

do I understand correctly that you say that you can re-initialize a LCD once it has gone nuts ?

Yes.
Quote:

if the LCD *thinks* it's in 4-bit mode (undefined control-lines during power-up), and SW sends 8-bit commands, or vice-versa, do you think that you can get the LCD accepting the commands the SW sends ?

I don't think that - I know that. The init sequence always starts with three times the high nibble of the Function Set instruction, with specific timing requirements. As in these Function Set instructions only the high nibble is significant, you can send it even if you only wired DB4..7 for a 4-bit interface.

After that the LCD is in 8-bit mode and is ready for the rest of the init sequence, which might put it in 4-bit mode.

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks Johan.

Quote:
Every day we get the oppertunity to learn something.
Who said that ? :)

Still leaves Sebastian going mad. What can be the cause for *his* troubles ?

Nard

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
@Sebastian: If you use a supply-voltage of 5V, use a brownout of 4.3V, not 2.7V. And since it's rising slow, the delay _delay_ms (35); is IMO too short. The slow rising PS-voltage may cause the LCD to go nuts. I suggest to try SW-LCD-combination with the DC-DC-converter out, and a labsupply instead.
I used the brownout of 2.7V to ensure that the E-line is set low before the LCD leaves reset state. I tested my code with the CKDIV8 fuse programmed and unprogrammed. With the fuse programmed the delay increases to 280ms. That should be enough. I checked power-up with a scope. It takes 18ms until I see perfectly 5V. It's a clean ramp.

The datsheet of the DC-DC converter contains no information what will happen if I connect an external power supply to the output. I won't risk to damage the converter. The circuit is already placed in a box. It's not so easy to remove the converter.

I have a PoScope (8MHz logic analyzer) and checked the initialization of the LCD. I had to slow down the communication speed and decrease the delays between each instruction to get all instructions on the screen. As you can see in the attached picture I send 8 instructions to the LCD with the RS and RW lines set low:
1. 0x30
2. 0x30
3. 0x38
4. 0x38
5. 0x08
6. 0x01
7. 0x06
8. 0x0F

I got the feeling that I have somehow killed my LCD and the dark boxes are here to stay.

Regards
Sebastian

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Nard, here is a more detailed explaination to the reset behaviour of a LCD.

Regards
Sebastian

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I won't risk to damage the converter.
Of course not ! 20 ms is quite good.
Quote:
1. 0x30
2. 0x30
3. 0x38
4. 0x38
5. 0x08
6. 0x01
7. 0x06
8. 0x0F
You need to send 3 times 0x30, don't you ?
Quote:
I got the feeling that I have somehow killed my LCD and the dark boxes are here to stay.
That could be the case as well .... :(

Nard

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sebastian wrote:

Quote:
Nard, here is a more detailed explaination to the reset behaviour of a LCD.
Thanks. That confirms what Lee, Steve and Johan said.

I will eat some dust as punishment.

After that, I will remove the pull-down and see if I can convince my OLED that it MUST obey a re-initialization. Resistance is futile.

Nard

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
You need to send 3 times 0x30, don't you ?
It makes no difference. However, the 1x16 LCD works with sending 2 times 0x30.

Regards
Sebastian

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
However, the 1x16 LCD works with sending 2 times 0x30.
If it initializes properly upon /reset (as in the link you sent), then 2 times might be sufficient. Maybe the 4*20 doesn't, and needs the full treatment.

Nard

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Surely, it must be something very simple and stupid what I'm doing wrong.
And here is the evidence (see attached picture).

The right connector is from the working 1x16 LCD and the left connector from the evil 4x20 LCD. Both connectors should be equal but if you take a close look you'll see that they're not. I had the data lines soldered wrong:
LCD D0 to AVR D1
LCD D1 to AVR D2
LCD D2 to AVR D3
...
LCD D7 to GND

I asked an other student to take the time to take a close look at my problem. And then, after 15 minutes, we had nailed it down.

That's what happens when you brood about the same problem day by day.

Many thanks for all your great support. Especially to you Nard, for staying curious and your heads up.

Regards
Sebastian

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Good to hear it's solved.
Many of us will nod .... it's a good plan to ask a collegue to take a look, as he/she has a fresh look, instead of pre-occupied eyes/mind. Been there too ...

Nard

A GIF is worth a thousend words   They are called Rosa, Sylvia, Tricia, and Ulyana. You can find them https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

I asked an other student to take the time to take a close look at my problem. And then, after 15 minutes, we had nailed it down.

Take that with you as an experience worth a small fortune. I can not count the times that I've aksed a colleague to take a look at my code. In maybe half of the cases only briefing the colleague about the problem at hand solves it. It's a matter of getting out of the whell tracks youre running around in.

Having a small ego and not being prestigous helps to... :D

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

JohanEkdahl wrote:
In maybe half of the cases only briefing the colleague about the problem at hand solves it.

Where I work, the act of quietly sitting listening to someone explain their problem is called "Being a tree". As Johan mentions - half the time, the tree doesn't even need to speak to 'solve' the problem.

Nigel Batten
www.batsocks.co.uk

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sometimes the "tree" can be AVRfreaks. ;) When preparing a post on a problem, and organizing the symptoms and what was attempted and the results, nearly always makeing a complete post and "touching all the bases" results in the cause becoming apparent.

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.