LCD / TFT / OLED Displays : What works, What Doesn't

@peekay123, thanks for looking into this. Is there any possibility to get the clear function to go faster like 100ms? Or is the current type of setup maxed out already? I’d like to reduce the flickering if possible.

I have the same setup as you, just wondering?

@wesner0019, I tried several things including SPI DMA, which doesn’t seem to be ready for prime time, and could not improve on the speed. The best hope is SPI DMA but it did not work as expected so I will need to investigate.

1 Like

@peekay123, wondering if you’ve seen this library? may help with DMA mode?

http://dorkbotpdx.org/blog/paul/display_spi_optimization

@peekay123, any updates to SPI DMA? Anyway I can help out?

@wesner0019, I have too many balls in the air to work on this right now :cry:

@peekay123, understandable thanks for looking into it thus far

@peekay123, can you share the code that you have already tried? (if you still have it) I’d like to broaden my programming skills, even if the the code isnt working.

Thanks,

@wesner0019, I haven’t tried anything yet!

Sorry I thought you did from this post. If not all is good.

@wesner0019,
I tried several things including SPI DMA, which doesn’t seem to be
ready for prime time, and could not improve on the speed. The best hope
is SPI DMA but it did not work as expected so I will need to
investigate.”

@wesner0019, I just tried using the built-in SPI DMA functionality which did not work at all. There is really nothing to share though the latest firmware release should address the issues I was having.

cool thanks

1 Like

@peekay123, do you know if the SPI bus is not disabled prior to going into sleep mode, will this affect current consumption during sleep mode?

The reason I ask is that the Pixels library for the ILI9341 doesn’t seem to end the SPI bus through the SPI.end(); call.

@wesner0019, I believe all peripherals are disabled in deep sleep. SPI.end() simply releases the SPI peripheral and related resources.

1 Like

@peekay123,

I’m trying to limit power consumption when my system is sleeping and I found that the ILI9341 consumes about 9mA while it is put into sleep mode as below. I determined this by testing a sleep program and when I put the system into sleep mode, the current is 14.4mA, but when I do not initialize the ILI9341 and put the system into sleep mode the current it 5.4mA. Is it possible to de-initialize the ILI9341?

I’ve also tried to put the ILI9341 into deep standby mode as below, but get the same results with the higher current.

// puts display in/out of sleep mode
void Pixels::sleep(boolean s){
  chipSelect();
	writeCmd(s ? 0x10 : 0x11);
  chipDeselect();
	delay(120);
}
void Pixels::deepSleep(boolean a){
  if(a == true){
    chipSelect();
    writeCmd(0x28); //turn off display
    chipDeselect();
    chipSelect();
	  writeCmd(0xB7); //Entry mode set
    writeData(0x08); //set DSTB to high
    chipDeselect();
  } else{
    for(byte i = 1; i <= 2; i++){
      chipSelect();
      chipDeselect();
    }
    delay(2);
    for(byte i = 1; i <= 4; i++){
      chipSelect();
      chipDeselect();
    }
    init();
  }
}

@peekay123, found that the pixels library have been updated and that there is a pull request to have better SPI communication:

Dose this look like something that is easily ported for an electron? I’m starting work on a new model for our device using the Electron and I now need to add a SPI flash chip. So the below pull request will make this Library work with other SPI devices.

@wesner0019, I have logged an issue to add support for the Arduino SPI.beginTransaction() and SPI.endTransaction() functions in the Particle firmware. I don’t know when it will be added, however.

Thanks!