m1cr0lab-espboy / ESPboy

ESPboy Handheld Driver
https://m1cr0lab-espboy.github.io/ESPboy
GNU General Public License v3.0
5 stars 0 forks source link

Homemade espboy doesn't display anything #1

Open 8Gilles8 opened 1 year ago

8Gilles8 commented 1 year ago

Hi Steph,

I made an espboy on a breadboard with a (clone ?) nodemcu module and this screen: https://boutique.semageek.com/fr/970-ecran-tft-144-avec-microsd-st7735r-3009794872432.html

I got the appstore v2 to work and every software that uses TFT_eSPI lib seems works fine too. But every time I try one of your creations, I get a white screen. I get the same thing if I try to compile a project using your ESPboy library in Arduino IDE.

A voltmeter shows the tft's CS pin is in high state (from the MCP23017's GPIO B0). As I think it has to be in a low state or the communication to work, I disconnected the CS pin from the MCP and manually connected it to GND instead. The voltmeter shows signs of activity on the MOSI pin.

From the discussion you had on LovyanGFX's github, I saw there was some problems with IRAM/PROGMEM, so I used "Byte/Word access to IRAM/PROGMEM", thinking the startup bitmap didn't show because Lovyan's lib couldn't access the bitmap's data. It didn't work.

I also tested a very simple project with those defines and includes:

#define LGFX_ESPBOY
#define LGFX_USE_V1
#include <LovyanGFX.hpp>
#include <LGFX_AUTODETECT.hpp>

and manually started a LGFX object, trying to fill a little rectangle on the screen, but it remained white. So it's not a problem with IRAM/PROGMEM.

The nodemcu uses a CH340 USB to serial chip (that's why I think it's not a genuine one). I got a bunch of them and I'd like to use it instead of buying a Wemos Lolin Mini D1.

The screen has an SD card slot, but the SD's CS pin is not connected (I tried once with some games from the appstore, but I also got a white screen. By disconnecting it, everything was back to normal).

Do you have any idea to help me get this to work ?

I plan on designing a PCB to fit the ESPboy in an old GBA casing. I would also like to add an SD card slot. I can't make the PCB if I'm not sure everything works fine on breadboard.

From your name and location, I think you speak french and so do I. I think it's better to use english so that other people might benefit from the discussion, but if we have to switch to french to make it easier, you know it's an option.

Thanks in advance.

Gilles

8Gilles8 commented 1 year ago

Hi,

I found something and I managed to get my screen to display correctly. I looked in LovyanGFX library in LGFX_AutoDetect_ESP8266.h from line 147 to 149

        id = p->readCommand(0x04, 0, 4);
// Serial.printf("read:%08x\r\n", id);
        if ((id & 0xFF) == 0x7C)

By activating Serial port and uncommenting line 148, I could see that the problem is that my screen gives an id of 00000000.

I can use your library as long as I bypass the if on line 149 in LovyanGFX. The problem is that I can't use your online flasher to flash precompiled programs. I can't use anything from appstore that works with LovyanGFX either. I'm looking for a way for my screen to send a correct id, but I don't know if it's possible.

I might try to buy another screen. Do you know where I can find one that works? I don't want to buy from aliexpress (I'm boycotting them since one of their seller sent me a watch's bracelet instead of the wifi usb stick I ordered and aliexpress denied my claim).

Thanks in advance.

Gilles