Particle Argon Lcd

I tried all my might to make 16 x 2 I²C LCD work with Argon but it didn’t work at all. I saw that whenever I connect SDA pin of lcd to SDA pin on Argon the cloud gets disconnected from device. Could you please try to make above things possible. Also I want to read some data using webhook and display on lcd, I have some json data in form of a list is it possible to show it up on lcd.

Could you tell us which I2C display you are trying to use?

It is possible, but without seeing your code and knowing which exact display you are using and how you've wired it it's impossible to know what's wrong with your setup.

Check the product spec of the LCD - many of these are 5V devices and the argon is not …

/*
8-Feb-2015
Jim Brower
bulldoglowell@gmail.com
*/

#include <LiquidCrystal_I2C_Spark.h>

LiquidCrystal_I2C *lcd;

int lastSecond = 0;

void setup(void)
{
  Serial.begin(9600);
  lcd = new LiquidCrystal_I2C(0x27, 16, 2);
  lcd->init();
  lcd->backlight();
  lcd->clear();
  lcd->print("***Spark Time***");
}

void loop(void)
{
  if (Time.second() != lastSecond)
  {
    Serial.print(Time.timeStr());
    lcd->setCursor(0,1);
    lcd->print(Time.hour() < 10? "   0" : "    ");
    lcd->print(Time.hour());
    lcd->print(Time.minute() < 10? ":0": ":");
    lcd->print(Time.minute());
    lcd->print(Time.second() < 10? ":0": ":");
    lcd->print(Time.second());
    lastSecond = Time.second();
  }
}

I also tried with pin D2 and D3 because they are also I2C pins as documentation says but still I was unable to see any output. Contrast was also alright with my I2C 1602 lcd and was fully working with arduino uno. I am powering it up using Arduino 5v and two resistors of 4.7 ohms with SDA AND SCL pins, above pic. One more issue my particle rgb led was cyan but not responding to cloud but would respond as soon as I removed the lcd pin and resistors from SDA pin.

THIS LCD IS 5V - THE ARGON IS 3V3. You will destroy the argon! You need to either get a 3V3 LCD or use a level translator like this

2 Likes

As @shanevanj already said, you are running the risk that the pull-ups on the display may damage your GPIOs on the Argon as they are not 5V tolerant.

BTW, while you have some extra pull-ups on your breadboard, we cannot see what voltage they’d be pulling to since we can’t see anything (but the two resistors) connected to the right hand plus rail :wink:

You have probably saved the Argon because you don’t appear to have a common ground. The SDA and SCL need pull-up resistors to 3v3 on the Argon! Can’t see from the picture what your 4.7k resistors connect to?

Something like a 74HCT125 IC will do the level shift for you. It is a quad buffer.

1 Like

Sorry I sent the old photograpgh here’s the new one…

It seems you haven’t payed a lot of attention to the warnings about 5V, have you?
Your yellow wire is connected to the 5V output of the Arduino feeding 5V (via the pull-ups) to your I2C pins.
Congrats, you probably have some dead GPIOs now.

BTW, you still have no common GND

What should I do now?

Can anybody here tell me how to get an I2C 1602 lcd work with Argon. Please send a working circuit diagram and program for it.

@Vilaksh, did you understand what @ScruffR told you that chances are, you have damaged the I2C port on your Argon? If not, re-read this topic and do not continue until you do understand.

If you want to interface a 5V I2C display (like yours) to an Argon, you will need the following:

  1. A 5v-3.3v level shifter like the one recommended by @shanevanj:

The connection is as follows:

Boron    Arduino    Level Shifter    I2C Display
------------------------------------------------
3V3                      LV
GND                      GND
            5V           HV             Vcc
            GND          GND
GND         GND                         GND
SCA                      A1
SCL                      A2
                         B1             SCA
                         B2             SCL

You will not need I2C pull-up resistors if you use this board (it has them built in).

  1. If you power the display from a separate 5v source like an Arduino, you will need to connect the Arduino GND to the Argon GND.

You MUST have this in place BEFORE you apply power to your circuit.

1 Like

Thank you all for your guidance. I made it work. Luckily my argon pins were not damaged and I can work with it now.

Also I want to read some data using webhook and display on lcd, I have some json data from google sheets (using gsxtojson I made an integration) in form of a list is it possible to show it up on lcd. Any demo code for that.

If you want help - you need to also attempt a few things - we don’t do the work for you. So post some code.

Secondly don’t double post - its just wastes everyones time

4 Likes

Thridly - I may add - try to read, understand and apply the given advice.

You still haven’t resolved the 5V issue - the I2C board on the display has its own 5V pull-up resistors and you added another set of 3.3V pull-ups resulting in a level greater 3.3V on your GPIOs and also “back-feeding” into the 3.3V supply on the Argon.

3 Likes

I am not able to get you. Would you please explain me.

I’m not sure if there is a way to clarify this more than @peekay123 did but i’ll will try.
On the attached picture you have Pololu logic level shifter you just need to use for example L1->SCL L2->SDA on 3,3V site and H1-> SCL H2-> SDA on 5V site that’s it. And of course connect 3,3V to LV and 5V to HV and GND.

Got it. One more thing how to fix this error