I just created a driver for NuttX to use JLX1602G-390 display.
This display is based on Siatronix ST7032i the I2C version.
First you need to wire it connecting an external capacitor and a resistor as explained on this schematic:
I am using the STM32F4Discovery board with this display connecting pins PB6 to SCL and PB9 to SDA. These pins are configured to enable an internal pull-up resistor, but case your microcontroller doesn’t have it, you need to connect external pull-up 4k7 resistors to SCL and SDA pins.
After configuring the NuttX to use this display, you can execute the slcd command from NuttShell:
Opening /dev/disp0 for read/write access
rows: 2 columns: 16 nbars: 0
max contrast: 0 max brightness: 1
0000: 1b5b46 .[F
Set brightness to 1
Print [Hello World NuttX]
0000: 48656c6c6f20576f726c64204e757474 58 Hello World Nutt X
After implementing the MLX90614 driver for NuttX I noticed that although the write command to change the device I2C address in the EEPROM was reporting success, after the power cycle the new address was not working. Worst: even the previous address was not working.
Basically the device appears damaged and didn’t respond to any I2C command.
Then doing my research I discovered a Melexis document about SMBus communication: