Hello,
just trying to make this code work
nothing on the scope on pin 2 and 3,
even if the adress is wrong, I should get data on the sda line and clock on the scl
(also tried adding 2x10k res between 5V and sda/scl, and also tried another arduino micro)
#include "LiquidCrystal_I2C.h"
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup() {
lcd.begin(16, 2);
lcd.backlight();
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("test");
}
I really dont get it
this should work
regards
~~Don't you need a Wire.begin() in setup? ~~ I guess not.
Are you sure that the LCD to I2C expander pin mapping is the same as the constructor?
The hd44780 library will auto detect the I2C address and pin mapping.
groundFungus:
Don't you need a Wire.begin() in setup?
Are you sure that the LCD to I2C expander pin mapping is the same as the constructor?
The hd44780 library will auto detect the I2C address and pin mapping.
the code works perfectly fine on an arduino pro mini
the whole idea behind LiquidCrystal_I2C is to deal with low level "wire.h" calls 
I assumed it should at least produce pulses on pin 2 and 3 of the arduino micro
I dug out my Leonardo. Burnt the bootloader (cos I had been doing something else with the hardware).
Your program ran just fine on a backpack 16x2.
The obvious thing is to test your LCD on another Arduino e.g. regular Uno
There is not much that can go wrong with a soldered backpack on a soldered 16x2.
The four wires go to SCL, SDA, 5V, 0V on your Leonardo / Pro_Micro. Make sure that your jumper wires are good. Dupont cables are far more reliable than the "Chinese male-male jumpers"
A pack of female-female Dupont cables are worth the investment. You can change sex with the square pins from some male header strip.
David.
on the scope nothing comes out ...Flat line on SDA / SCL (probes straight on the arduino pins)
tried on 2 separate arduino micros...Wtf ???
anyway... thanks for the effort, appreciate a lot,... I'll check that again tomorrow 
Unless you are looking at the wrong pins for the i2c signals or the processor is broken,
you should see something on SDA and SCL.
But if the address is wrong, it won't be much.
I'd run the I2CexpDiag sketch that comes with the the hd44780 library.
It will do some diagnostics and report any issues it sees.
--- bill
bperrybap:
Unless you are looking at the wrong pins for the i2c signals or the processor is broken,
you should see something on SDA and SCL.
But if the address is wrong, it won't be much.
I'd run the I2CexpDiag sketch that comes with the the hd44780 library.
It will do some diagnostics and report any issues it sees.
--- bill
cool I'll check this out
well on the micro, it's supposed to be pin 2 and 3, unless both arduino are broken....
Go on. SDA, SCL should be clearly marked on your board. Or it is marked as D2, D3.
It is unlikely that they are the physical 2nd, 3rd pins on the pcb.
My Leonardo has the pin names printed on the pcb.
David.
********************************************************************
Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.0.1
--------------------------------------------------------------------
Reported Arduino Revision: 1.8.7
F_CPU: 16000000
--------------------------------------------------------------------
SDA: digital pin: 2
SCL: digital pin: 3
--------------------------------------------------------------------
Checking for required external I2C pull-up on SDA - YES
Checking for required external I2C pull-up on SCL - YES
--------------------------------------------------------------------
Scanning i2c bus for devices..
nothing happens on pin 2/3 ...wtf
Wire.endTransmission() never returns
Ichanged the Wire.h to this library
but yet nothing works, it does not find any device
hard to believe I2C is not working on two separate device (one official and one chinese clone)

I would imagine that any healthy Pro Micro should work. Ok, it is printed "2" and "3" and not SDA, SDC
Only you know whether you have released smoke or not. Try blinking an LED on 2, 3.
David.
just tried with a 3rd arduino micro
the're gotta be something wrong with the compiler
the last version of the ide cannot even start normaly , I had to use the debugmode icon
Something is wrong with the I2CexpDiag output.
You are missing the message about checking for shorts on i2c signals.
This line is missing:
Checking for I2C pins shorted together -
Did you install the library using the IDE library manager and picking version 1.0.1?
--- bill
david_prentice:
I would imagine that any healthy Pro Micro should work.
I use an arduino micro, not an arduino pro micro (IDE : Arduino Genuino/Micro)
I use IDE 1.8.7
phil123456:
Wire.endTransmission() never returns
Ichanged the Wire.h to this library
GitHub - steamfire/WSWireLib: Arduino Wire Library modified to add timeouts to the freeze-prone TWI while() loops
but yet nothing works, it does not find any device
hard to believe I2C is not working on two separate device (one official and one chinese clone)
Whoa.... you changed out the Wire library?
Before you start changing Wire libraries, stick with the bundled version of the Wire library until things are working
as the bundled version does work with the hd44780 library.
--- bill
bperrybap:
Did you install the library using the IDE library manager and picking version 1.0.1?
I2CexpDiag was not part of the library, I found it somewhere else
I usualy copy the files in my project folder (I downloaded I2CexpDiag master in this case)
in case I am on another PC or the library gets updated and would keep my projects from working
or sometimes I just uninstall the IDE, I dont want to reinstall all libraries
[edit:just went to library manager, it cant even download it's json, that arduino IDE version is just garbage...I only get troubles since I installed it]
anyway, no matter what I try, nothing on the scope, this just cannot be...
I'll install the library the right way, just in case
http://blob:https://imgur.com/8ea4dc1b-4ab7-472c-8f4c-f05cc5c2bb04
I now downloaded the library v1.0.1 manualy and it just does not work anymore
Wire.endTransmission freezes again
********************************************************************
Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.0.1
--------------------------------------------------------------------
Reported Arduino Revision: 1.8.7
F_CPU: 16000000
--------------------------------------------------------------------
SDA: digital pin: 2
SCL: digital pin: 3
--------------------------------------------------------------------
Checking for required external I2C pull-up on SDA - YES
Checking for required external I2C pull-up on SCL - YES
--------------------------------------------------------------------
Scanning i2c bus for devices..
beginTransmission
this post explains the issue :
http://forum.arduino.cc/index.php?topic=124286.0
"There is a problem with the stock I2C library that a mis-transmission may cause it to hang. This will generally happen on the Wire.endTransmission() line which is the one which actually sends the data."
Ok, so the Genuino Micro has D2,D3 printed on the pcb.
I suggest that you re-install the whole Arduino IDE
Delete any libraries that you have installed in random locations.
Start IDE. Run Library Manager. Install libraries properly.
There is nothing wrong with doing everything "your own way".
Just don't expect it to work.
David.
ok finaly got it to "work" I see sda and scl
probably an issue with my pcb although I had the same with the arduino as standalone...helped to replace the "for" by a "while(1)" so the i2c probing keeps running
phil123456:
I2CexpDiag was not part of the library,
Yes it is. It has been part of every single version of the hd44780 library package.
I found it somewhere else
Using files that are not from the official source is not a good idea.
Clearly it is not the correct one as it is not printing out the i2c signal short test information.
I usualy copy the files in my project folder (I downloaded I2CexpDiag master in this case)
in case I am on another PC or the library gets updated and would keep my projects from working
or sometimes I just uninstall the IDE, I dont want to reinstall all libraries
You are way overthinking this.
Use the IDE library manager. You simply search for the library, click on it, and the IDE downloads it and installs it properly.
The 3rd party libraries are installed in the users sketchbook area, this is independent of the IDE and its bundled libraries.
I have more than 20 different versions of the IDE installed (for testing) and they can all share/use the same hd44780 library.
--- bill