blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi,
Ik heb bij een bestelling een leuke microcontroler(dat hoop ik
) mee bestelt waar ik wel een aardige toepassing voor denk te hebben.
Ik heb er al flink mee geworsteld om hem aan het werk te krijgen.
Uit he doosje ziet er al wat software in die drie kleuren plaatjes laat zien en de USB spanning aangeven.
Nadat ik de Arduino IDE had voorzien van een extra URL voor wat driver, er zit alleen een RP2040 chip op mijn versie, en het geheel had ge-upgrade,
Kon ik de LED laten knipperen na dat ik het pin nummertje waaraan de LED hangt had aangpast,
mooi dat deel werkt werkt dus ik na communiceren een een datalijn laten omklappen.
Het display is trouwens een: 1.14 Inch ST7789 IPS Display met een resulotie van 135x240
Het doel is natuurlijk het display dat ook op het printje zit goed te kunnen aansturen, en dat is bijna altijd een probleem.
Vooral omdat er bij deze print geen simpele documentatie beschikbaar is.
Zelfs de "Hallo Wereld" testjes was te veel werkt, terwijl ik denk, laat de basis zien,
geeft eeen stukje code desnoods met vier regels tekst in een andere kleur en dan alle voorbeelden van wat de comby controler en display allemaal kan.
Net nog een uurtje wezen uitzoeken of ik een zinnige configuratie bij elkaar kon krijgen, nop...
Eerst wat plaatje dan wat linkjes naar de software die ik zou moeten gebruiken om het display werkend te krijgen.
.
Om het printje goed te laten zien is het display overbelicht.
.
En bij deze foto is het display redelijk en de print te donker, het zij zo...
.
OK ik kan een LED laten knipperen maar met geen mogelijkheid iets op het display krijgen...
Wat ik wel heb uitgevonden is dat in dit pad:
C:\Users\MooiNiet\Documents\Arduino\LILYGO-T-display-RP2040-main\firmware
Er deze file staat: firmware.uf2
Als ik op het printje twee drukknopjes tegelijk indruk, presenteerd dit printje zich als een usb stick en als ik de firmware.uf2 file hier op plaats,
dan werkt het printje weer zoals ik hem uit het doosje gehaald heb met kleurige plaatjes en de USB spanning in verschillende kleurtjes weergegeven.
In die zelfde directory staat ook deze firmware.ino file.
Deze levert gezellig een erg grote hoeveelheid errors als ik hem draai in de IDE.
Als laatste staat er ook nog deze file: picoImage.h
Wat volgens mij een plaatjes file is.
Hieronder de link naar de website van de fabrikant van dit printje:
https://github.com/Xinyuan-LilyGO/LILYGO-T-display-RP2040
Afhankelijk wat ik aanpas krijg ik dus grote hoeveelheden fouten, er wordt gevraagt om deze file: Setup135_ST7789.h
Welke ik in het mapje waar ook de *.ino file staat plaats.
Er komen nu hij dit bestadn kan vinden zoveel fouten voorbij dat ik denk dater wel wat meer niet klopt.
Is er een mogelijkheid om de firmware.uf2 uit elkaar te trekken om te zien wat er echt nodig is om het display te laten werken?
Iemand van jullie ervaring met dit display zodat ik in de goede richting kan worden geduuwd?
Dank en groet,
Bram
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Een binary decompileren, dat is in theorie mogelijk maar vereist meer kennis dan wat jij nu hebt. Er wordt namelijk "functie 1235435" aangeroepen, dan moet je naar de code daarvoor gaan kijken hoeveel argumenten die functie heeft en aan de assembly of context van argumenten die de aaroeper doorgeeft gaan lopen bedenken welke functie dat kan zijn geweest. ... Niet te doen.
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi rew, 
Dan zal ik het printje maar weer in het doosje doen om het voorlopig te vergeten.
Ik denk dat ik rond de drie uur ben bezich geweest het display werkend te krijgen,
niet zo vreemd dat ik over het algemeen niet zo blij ben met de gene die de software samenstellen/schrijven.
Kijk jullie alleen maar eens naar de library: TFT_eSPI
Waarom zo'n chaos?, het lapt nog net niet je ramen en zet het water op voor een koppie thee.
Zoveel display typen zitten er in en dan mag je ook nog allerlij configuratie files gaan aanpassen
en dit dan weer samen met verwijzingen naar bestanden die in het pakket niet aanwezig zijn, toppy! zeg ik dan,
alleen jammer dat ik geen glazen bol heb om te kijken hoe de fabrikant dit samen met de Library maker het bedoeld heeft.
rew, Ik geloof je direct dat ik het de-compilen niet leuk ga vinden 
Het doosje is nu opgeborgen bij de microcontrolers die "lastig" zijn en bij de volgende opruimbeurd naar het grijze archief, hoppa!
Groet,
Bram
Blijkbaar moet je in de volgende library file nog een aanpassing doen (commentaar //Select verwijderen bij deze regel):
include <TFT_eSPI.h> //Select #include <User_Setups/Setup135_ST7789.h> // Setup file for ESP8266 and ST7789 135 x 240 TFT
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Heb je deze al geprobeerd?
https://www.instructables.com/LilyGo-T-Display-RP2040-Tutorial-Install…
(/ook/ in het spaans).
hardbass
PE2BAS
Ik snap je frustratie volledig!
Ooit wel eens een schermpje gekocht waarbij de configuratie afhankelijk was van de kleur tabje op het beschermfolietje. Zie hier wat ik bedoel, dit schermpje heeft een groene 'tab'
https://github.com/adafruit/Adafruit-ST7735-Library/issues/33
De ellende is dat ook echt alles goed moet staan en dat het wel of niet werkt. Als het een beetje zou werken weet je in ieder geval dat je in de goede richting bent.
Vandaar:
Bij het kopen van bordjes op ali, check altijd of er kant-en-klare voorbeeld projecten zijn. Als dat er niet is, beter een ander bordje kopen.
Oh, ik zie nu in je link dat er wel examples zijn. Heb je deze al geprobeerd?
https://github.com/Xinyuan-LilyGO/LILYGO-T-display-RP2040/tree/main/ex…
Voordat hij bij het afval gaat, ik verwacht dat je die code er zo in kan prutten en dat het direct werkt.
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi,
Dank weer voor de input.
Het plaatsen van de *.uf2 file via de "USB Modus" had ik in het weekeinde al uitgevoerd.
Het printje heb ik gekocht via Tinytronics en deze heeft een link op de product pagina staan, die hardbass als tweede link geeft.
Dus ik ga er vanuit dat dit de goede is.
Het probleem is dat ik de driver voor het video niet aan het werk krijg, die *.uf2 file dumpen is geen probleem.
Iets is mij nog niet duidelijk.
De firmware.uf2 die ik plaats via de USB functie, is dat nu de ge-compileerde code uit b.v. de Arduino IDE?
Als ik het LED knipper programma heb geladen is er in de USB modes geen firmware.uf2 file meer aawezig.
Zo gauw ik de firmware.uf2 file in de USB modes upload draait weer het ge-instaleerde programma.
Maar ook de LED blijft knipperen?
Shit, staandaard hebben ze de LED ook laten knipperen op de zelfde frequentie als het knipper voorbeeld...
Mijn eigen knipper voor beeld heb ik op 10Hz gezet en dat wordt dus gewist als ik de firmware.uf2 upload.
Mooi, ik kan razendsnel firmware.uf2 files in het ding proppen, maar ik zou graag een werkende display driver hebben.
Net weer een uurtje bezig geweest, het ligt aan mij 
Nu aan het werk anders kan ik binnenkort geen niet werkende displays meer kopen *grin*
Later zal ik wat laten zien van de error codes en vertellen wat ik reeds geprobeerd heb.
Dank en groet,
Bram
hardbass
PE2BAS
Je kan ook de INO en de H bestanden downloaden, in een mapje stoppen en dan het INO bestand openen. Dan kan je de code uploaden en daarna naar hartelust aanpassen.
Die uf2 is inderdaad het gecompileerde project.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op 17 juli 2023 10:14:30 schreef blackdog:
De firmware.uf2 die ik plaats via de USB functie, is dat nu de ge-compileerde code uit b.v. de Arduino IDE?
Jep. De microcontroller heeft een ingewikkeldere "bootloader" dan de meeste microcontrollers. Vroeger, ESP32 kon je serieel code er in duwen. Later kwamen Cpus met USB en konden ze Device Firmware Update protocol draaien. (speciaal bedoeld om "simpel" te zijn.
Maar de RP2040 doet dus een (vrijwel lege!) USB disk na (in de bootcode in ROM!) en als je dan een UF2 file er opzet, dan volgt ie de hints in het eerste blok, en programmeert de rest in z'n flash! (die hints kunnen ook zeggen: "niet aan het begin".
Als ik het LED knipper programma heb geladen is er in de USB modes geen firmware.uf2 file meer aawezig.
Zo gauw ik de firmware.uf2 file in de USB modes upload draait weer het ge-instaleerde programma.
Maar ook de LED blijft knipperen?
Als je naar bootloader mode gaat vanuit je code, zou je kunnen opgeven dat ie een led moet/mag knipperen in bootloader mode. Maar als je het met de knopjes doet, zal dat wel niet. Hij knippert niet, todat je een knipper-firmware er op hebt gezet.
Als ie in bootloader mode zit, kan je ook met een 'picotool' iets meer doen dan alleen firmware er op zetten. Bijvoorbeeld: Welke binary zit er in, maar ook: "download deze binary en ga NIET meteen door met het uitvoeren van dat programma.
Ik heb zelf een driver voor dit display geport van arduino naar STM32 en later "door" naar de RP2040.
Hi Blackdog,
Heb hier toevallig ook zo'n board liggen, gewoon op de plank en
niet in het halfronde archief ofzo, het display werkt zonder problemen.
Ik gebruik TFT_eSPI 2.5.0 en voor zover ik kan zien heb ik alleen
de volgende aanpassingen gedaan:
in file User_Setup_Select.h:
line 30 : //#include <User_Setup.h>
line 117: #include<User_Setups/Setup137_LilyGo_TDisplay_RP2040.h>
Dus inderdaad Setup137 en niet Setup135 zoals hierboven ook al is opgemerkt!
Bij het compileren krijg ik warnings over een missende TOUCH_CS pin,
dat klopt natuurlijk en is verder geen probleem.
Misschien helpt dit een beetje...
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi Batakker,
Jw opmerking heeft geholpen, maar ik heb nog niet alles zeker in mijn hoofd zitten.
Ik had de regels al gevonden die je aangaf maar het gaf me zekerheid nog wat meer te experimenteren.
Het makkelijkste om ondanks de error codes toch iets te proberen was de tekst "Bat Voltage" aan te passen naar wat onzin...
En dat werkte!
Hoe de plaatjes worden getoond begrijp ik weinig van, in de code worden ze op deze manier net als de batterij spanning aangeroepen om op beeld geplaats te worden.
case 1:
tft.pushImage(0, 0, 240, 135, Lilygo1);
break;
case 2:
tft.pushImage(0, 0, 240, 135, Lilygo2);
break;
case 3:
tft.fillScreen(TFT_BLACK);
tft.setCursor(0, 0);
tft.setTextColor(random(TFT_WHITE));
tft.printf("Banaan Voltage :%3.2fV", 2 * adc_read() * conversion_factor);
break;
default:
select = 0;
break;
}
Lilygo1 en Lilygo2 kan ik echter nergens terug vinden.
Ik heb het vermoede dat deze plaatjes in het volgende bestand zitten gebakken: #include "picoImage.h"
Maar zoals het hoort, hierbij het stukje testcode waarbij ik de de tekst voor de battrij een beetje heb aangepast.
Ook de regel bovenin is niet nodig, voorlopig alleen de aanpassing die Batakker aan gaf.
Deze: //Select #include <User_Setups/Setup135_ST7789.h>
#include <TFT_eSPI.h>
#include "picoImage.h"
#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "hardware/adc.h"
#define TFT_MISO -1
#define TFT_MOSI 3
#define TFT_SCLK 2
#define TFT_CS 5 // Chip select control pin
#define TFT_DC 1 // Data Command control pin
#define TFT_RST 0 // Reset pin (could connect to RST pin) */
#define TFT_BL 4
#define PWR_ON 22
#define BOTTON1 6
#define BOTTON2 7
#define RedLED 25
#define BatVol 26
#define dark() \
for (int i = 0xff; i > 0; i--) \
{ \
delay(5); \
analogWrite(TFT_BL, i); \
} \
digitalWrite(RedLED, !digitalRead(RedLED));
#define light() \
for (int i = 0; i < 0xff; i++) \
{ \
delay(5); \
analogWrite(TFT_BL, i); \
} \
digitalWrite(RedLED, !digitalRead(RedLED));
TFT_eSPI tft = TFT_eSPI();
const float conversion_factor = 3.3f / (1 << 12);
void setup()
{
pinMode(PWR_ON, OUTPUT);
digitalWrite(PWR_ON, 1);
pinMode(BatVol, INPUT);
pinMode(TFT_BL, OUTPUT);
pinMode(RedLED, OUTPUT);
digitalWrite(TFT_BL, 0);
analogWrite(TFT_BL, 0);
Serial.begin(115200);
adc_init();
adc_gpio_init(26);
adc_select_input(0);
tft.init();
tft.setRotation(3);
tft.setTextSize(2);
tft.setSwapBytes(true);
tft.pushImage(0, 0, 240, 135, pico);
light();
Serial.println("Hello Pico");
}
void loop()
{
static uint8_t select;
dark();
select += 1;
switch (select)
{
case 1:
tft.pushImage(0, 0, 240, 135, Lilygo1);
break;
case 2:
tft.pushImage(0, 0, 240, 135, Lilygo2);
break;
case 3:
tft.fillScreen(TFT_BLACK);
tft.setCursor(0, 0);
tft.setTextColor(random(TFT_WHITE));
tft.printf("CO Hulp! :%3.2fV", 2 * adc_read() * conversion_factor);
break;
default:
select = 0;
break;
}
light();
}
En dan krijg ik deze regels als opmerkingen en error maar er wordt wel ge-uploaded en het werkt.
In file included from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:117,
from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:68,
from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1:
C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setups/Setup137_LilyGo_TDisplay_RP2040.h:12: warning: "TFT_CS" redefined
12 | #define TFT_CS 5 // Chip Select pin
|
In file included from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:30,
from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:68,
from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1:
C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:169: note: this is the location of the previous definition
169 | #define TFT_CS PIN_D8 // Chip select control pin D8
|
In file included from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:117,
from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:68,
from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1:
C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setups/Setup137_LilyGo_TDisplay_RP2040.h:13: warning: "TFT_DC" redefined
13 | #define TFT_DC 1 // Data Command control pin
|
In file included from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:30,
from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:68,
from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1:
C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:170: note: this is the location of the previous definition
170 | #define TFT_DC PIN_D3 // Data Command control pin
|
In file included from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:117,
from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:68,
from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1:
C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setups/Setup137_LilyGo_TDisplay_RP2040.h:14: warning: "TFT_RST" redefined
14 | #define TFT_RST 0 // Reset pin
|
In file included from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:30,
from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:68,
from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1:
C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:171: note: this is the location of the previous definition
171 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)
|
In file included from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:117,
from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:68,
from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1:
C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setups/Setup137_LilyGo_TDisplay_RP2040.h:31: warning: "SPI_FREQUENCY" redefined
31 | #define SPI_FREQUENCY 40000000
|
In file included from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:30,
from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:68,
from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1:
C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup.h:357: note: this is the location of the previous definition
357 | #define SPI_FREQUENCY 27000000
|
In file included from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1:
C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:955:8: warning: #warning >>>>------>> TOUCH_CS pin not defined, TFT_eSPI touch functions will not be available! [-Wcpp]
955 | #warning >>>>------>> TOUCH_CS pin not defined, TFT_eSPI touch functions will not be available!
| ^~~~~~~
De schets gebruikt 300212 bytes (14%) programma-opslagruimte. Maximum is 2093056 bytes.
Globale variabelen gebruiken 11192 bytes (4%) van het dynamisch geheugen. Resteren 250952 bytes voor lokale variabelen. Maximum is 262144 bytes.
Resetting COM6
Converting to uf2, output size: 637440, start address: 0x2000
Scanning for RP2040 devices
Flashing E: (RPI-RP2)
Wrote 637440 bytes to E:/NEW.UF2
Plaatje
Ik ga een nieuwe install doen op mijn werk laptop betreffende dit printje en kijk dan of met de aanpassingen van Batakker ik het in 1x werkend kan krijgen.
Trouwens, dit printje lag nog niet in het ronde archief, ik bedoelde als ik geen info zou kunnen vinden hij daar uiteindelijk wel terrecht zou komen. 
Ik hou jullie op de hoogte.
Dank en groet,
Bram
Errors zie ik niet, dan zou er ook niet ge-upload worden.
Warnings wel, die kun je wegwerken door in User_Setup_Select.h de regel #include <User_Setup.h> uit te commentarieren.
Deze moet weg omdat we Setup137_LilyGo_TDisplay_RP2040.h willen gebruiken.
Is bij mij regel 30, even // er voor zetten en klaar is Blackdog.
Blijft de warning van de TOUCH pin over, dat klopt want we hebben helemaal geen touch screen dus dat is geen probleem.
Simpel nietwaar, succes!
Roches
Domoticz en ESP8266, goede combo!!!
De clou zit hem in dit stukje code...
void setup()
{
pinMode(PWR_ON, OUTPUT); <<<<<<
digitalWrite(PWR_ON, 1); <<<<<< Haal deze regels weg en je ziet niks meer.
pinMode(BatVol, INPUT);
pinMode(TFT_BL, OUTPUT);
pinMode(RedLED, OUTPUT);
digitalWrite(TFT_BL, 0);
analogWrite(TFT_BL, 0);
Serial.begin(115200);
adc_init();
adc_gpio_init(26);
adc_select_input(0);
tft.init();
tft.setRotation(3);
tft.setTextSize(2);
tft.setSwapBytes(true);
tft.pushImage(0, 0, 240, 135, pico);
light();
Serial.println("Hello Pico");
}
Je moet dus eerst PIN 22 hoog maken anders doet het display helemaal niks.
Ik kreeg eerst ook geen beeld, maar pas nadat ik PIN 22 hoog had gemaakt wel.
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi Roches, 
Ik ga het een en ander nog proberen op een andere computer.
Ik was vanochtend al begonnenmet de software instalaltie op mijn werklaptop, maar moestweg voor een storing.
Morgen neem ik jouw opmerkingen ook mee bij het testen.
Dank,
Bram
Roches
Domoticz en ESP8266, goede combo!!!
Nog een foutje in de driver gevonden.
File ST7789_Init.h in ../Arduino/libraries/TFT_eSPI/TFT_Drivers
ze hebben pinMode en digitalWrite omgedraaid, dat werkt niet...
Regel 126 en 127 omdraaien backlight control.
De hele sectie moet er zo uit zien... vanaf regel 125
#ifdef TFT_BL
// Turn on the back-light LED
pinMode(TFT_BL, OUTPUT);
digitalWrite(TFT_BL, HIGH);
#endifHet liefst zou ik ook in deze file de PIN 22 hoog maken, dan ben je er in één keer vanaf...
[edit]
HEB IK GEDAAN...
Deze regels heb ik direct onder de eerste comment-sectie gezet in de file, vanaf regel 7.
// Turn display-controller ON
pinMode(22, OUTPUT);
digitalWrite(22, HIGH);
delay(5);
Nu werkt TFT.init(); zoals het hoort te werken.
Nu werken alle voorbeeldprogramma's ook.
Roches
Domoticz en ESP8266, goede combo!!!
File ST7789_Init.h in ../Arduino/libraries/TFT_eSPI/TFT_Drivers
Ik heb voor iedereen dan maar ff de file toegevoegd, dan kunnen jullie die ook gebruiken voor jullie display.
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Kan deze aanpassing niet beter door Bodmer zelf gebeuren? Bij elke update zijn de wijzigingen weer nodig.
Op 17 juli 2023 20:34:21 schreef blackdog:
Hi Batakker,Jw opmerking heeft geholpen, maar ik heb nog niet alles zeker in mijn hoofd zitten.
Ik had de regels al gevonden die je aangaf maar het gaf me zekerheid nog wat meer te experimenteren.
Het makkelijkste om ondanks de error codes toch iets te proberen was de tekst "Bat Voltage" aan te passen naar wat onzin...
En dat werkte!Hoe de plaatjes worden getoond begrijp ik weinig van, in de code worden ze op deze manier net als de batterij spanning aangeroepen om op beeld geplaats te worden.
case 1: tft.pushImage(0, 0, 240, 135, Lilygo1); break; case 2: tft.pushImage(0, 0, 240, 135, Lilygo2); break; case 3: tft.fillScreen(TFT_BLACK); tft.setCursor(0, 0); tft.setTextColor(random(TFT_WHITE)); tft.printf("Banaan Voltage :%3.2fV", 2 * adc_read() * conversion_factor); break; default: select = 0; break; }Lilygo1 en Lilygo2 kan ik echter nergens terug vinden.
Ik heb het vermoede dat deze plaatjes in het volgende bestand zitten gebakken: #include "picoImage.h"
Maar zoals het hoort, hierbij het stukje testcode waarbij ik de de tekst voor de battrij een beetje heb aangepast.
Ook de regel bovenin is niet nodig, voorlopig alleen de aanpassing die Batakker aan gaf.Deze: //Select #include <User_Setups/Setup135_ST7789.h>
#include <TFT_eSPI.h> #include "picoImage.h" #include <stdio.h> #include "pico/stdlib.h" #include "hardware/gpio.h" #include "hardware/adc.h" #define TFT_MISO -1 #define TFT_MOSI 3 #define TFT_SCLK 2 #define TFT_CS 5 // Chip select control pin #define TFT_DC 1 // Data Command control pin #define TFT_RST 0 // Reset pin (could connect to RST pin) */ #define TFT_BL 4 [...]En dan krijg ik deze regels als opmerkingen en error maar er wordt wel ge-uploaded en het werkt.
In file included from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setup_Select.h:117, from C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/TFT_eSPI.h:68, from C:\Users\oprutte\AppData\Local\Temp\arduino_modified_sketch_790747\firmware.ino:1: C:\Users\oprutte\Documents\Arduino\libraries\TFT_eSPI/User_Setups/Setup137_LilyGo_TDisplay_RP2040.h:12: warning: "TFT_CS" redefined 12 | #define TFT_CS 5 // Chip Select pin | [...]Plaatje
[afbeelding][...]
Trouwens, dit printje lag nog niet in het ronde archief, ik bedoelde als ik geen info zou kunnen vinden hij daar uiteindelijk wel terrecht zou komen.
Ik hou jullie op de hoogte.Dank en groet,
Bram
De definitie van de pinnen doe je normaal in de juiste setup file. Dan krijg je ook de 'redefined' waarschuwingen niet meer. Het handigste is uiteraard om de standaard settings te gebruiken als dit kan. Elke update ben je de wijzigingen weer kwijt. Ik zet tegenwoordig de correcte settings van het project in commentaar bovenaan de pagina met verwijzing naar de correcte setup file. Voorbeeld:
/*
Gebruikte TFT-eSPI instellingen
// See SetupX_Template.h for all options available
#define USER_SETUP_ID 1
#define ILI9341_DRIVER
#define TFT_CS 27 // Chip select control pin D8
#define TFT_DC 14 // Data Command control pin
#define TFT_RST 25 // Reset pin (could connect to NodeMCU RST, see next line)
//#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V
#define TOUCH_CS -1
//#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
//#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
//#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
//#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
//#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.
//#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
//#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT
// #define SPI_FREQUENCY 27000000
#define SPI_FREQUENCY 50000000
// #define SPI_FREQUENCY 80000000
#define SPI_READ_FREQUENCY 20000000
//#define SPI_TOUCH_FREQUENCY 2500000
// #define SUPPORT_TRANSACTIONS
*/Niet te snel alles horizontaal klasseren. Het is in deze of het werkt of het doet het niet. Het zal alleen werken als alles 100% OK is. Een verkeerde pin, een verkeerde frequentie, verkeerde processor gekozen, .... er hoeft maar 1 zaak niet correct te zijn en het werkt niet. Honderden schakelingen werden al gemaakt met dezelfde onderdelen. De kans dat het niet kan werken is heel klein.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik zat te overwegen om er ook 1 te kopen, maar nog niet besloten om het ook daadwerkelijk te doen.... Kijk ik om me heen ligt er een T-DISPLAY op m'n bureau. Had ik eerder al een gekocht....
Maar helaas dat is een -S3 en niet de RP2040. Ik ga gewoon ook zo'n '2040 kopen. ... done... onderweg.
Goed gevonden die foutjes in de driver!
Rijst de vraag waarom de firmware van LILYGO en mijn eigen applicatie (afgeleid van die firmware) daar dan geen last van heeft?
Men heeft dat als volgt "opgelost" in firmware.ino:
line 17: #define PWR_ON 22
line 42: void setup()
line 43: {
line 44: pinMode(PWR_ON, OUTPUT);
line 45: digitalWrite(PWR_ON, 1);
.
.
Werkt natuurlijk wel maar verdient bepaald geen schoonheidsprijs.
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi,
Ik ben er nog en wil ook verder met de gegevesn die jullie laten zien en dank voor het uitzoekwerk.
Ben alleen een beetje te druk met van allles en weinig tijd deze week voor hobby.
Een deel staat wel al op mijn werk laptop en dan wordt de volgende stap implementeren wat jullie hier hebben geschreven en dan zoals al werd aangegeven
wat documentatie maken zodat ik het ook over een half jaar nog kan toepassen. 
Wordt vervolgt.
Oja lijkt me een leuk display voor op mijn LAB spannings referentie past net in de inschuif unit.
Groet,
Bram
Roches
Domoticz en ESP8266, goede combo!!!
Op 20 juli 2023 13:37:57 schreef buckfast_beekeeper:
Kan deze aanpassing niet beter door Bodmer zelf gebeuren? Bij elke update zijn de wijzigingen weer nodig.
Ja, maar voor de snelle fix voor jullie heb ik het ff hier geplaatst.
Ik zal de fix ook even doorgeven op GitHub.
[Bericht gewijzigd door Roches op (23%)]
Roches
Domoticz en ESP8266, goede combo!!!
Reactie Bodmer van GitHub...
Het blijkt dat PIN 22 hoog maken voor de display-controller alleen voor dit specifieke board nodig is, dus dit zul je toch in je eigen sketch moeten opnemen.
hardbass
PE2BAS
Blijkbaar heeft jouw printje een IO waarmee de power van het display te schakelen is. Dat is geen onderdeel van de library aangezien die alleen maar verantwoordelijk is voor het interfacen met de ST7789. Die IO poort waarmee de power wordt geschakeld is iets van lilygo en heeft verder niets met het scherm te maken. Ik snap wel dat hij dat niet toevoegt in de library aangezien het daar niet thuis hoort.
Wat hij voorstelt, is dat je die power zelf schakelt voordat je de library initialiseert. Dat lijkt me zelf ook de betere keuze.
Dit is het desbetreffende issue:
https://github.com/Bodmer/TFT_eSPI/issues/2752