Forum >FireBeetle Covers ePaper Black&White only works in Arduino IDE and not in PlatformIO
FireBeetle Covers ePaper Black&White only works in Arduino IDE and not in PlatformIO

I work on a project with a Firebeetle ESP32 and the E-Ink display in PlatformIO and somehow the display renders objects and lines but not text when I compile the example code from https://wiki.dfrobot.com/FireBeetle_Cov ... 1#target_4 in PlatformIO. When I compile the same code in Arduino IDE shapes, lines AND TEXT get displayed as it should. I've included the same libraries. The output from PlatformIO is as follows:
Code: Select all
The code looks as follows:> Executing task: C:\Users\User\.platformio\penv\Scripts\platformio.exe run --target upload < Processing firebeetle32 (platform: espressif32; board: firebeetle32; framework: arduino) ---------------------------------------------------------------------------------------------------------------------------------------------------- Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/firebeetle32.html PLATFORM: Espressif 32 1.12.1 > FireBeetle-ESP32 HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa) PACKAGES: - framework-arduinoespressif32 3.10004.200129 (1.0.4) - tool-esptoolpy 1.20600.0 (2.6.0) - tool-mkspiffs 2.230.0 (2.30) - toolchain-xtensa32 2.50200.80 (5.2.0) LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 29 compatible libraries Scanning dependencies... Dependency Graph |-- <Tiny BME280> 1.0.2 | |-- <SPI> 1.0 | |-- <Wire> 1.0.1 |-- <DFRobot_ePaper-master> | |-- <DFRobot_Display-master> | | |-- <SPI> 1.0 | | |-- <Wire> 1.0.1 | |-- <Wire> 1.0.1 | |-- <SPI> 1.0 Building in release mode Compiling .pio\build\firebeetle32\src\main.cpp.o src\main.cpp: In function 'void setup()': src\main.cpp:25:39: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] epaper.disString(0,0,1,"SPI",BLACK); ^ src\main.cpp:73:43: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] epaper.disString(215,12, 2,"pic",BLACK); ^ src\main.cpp:74:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] epaper.disString(215,78, 2,"shape",BLACK); ^ Linking .pio\build\firebeetle32\firmware.elf Building .pio\build\firebeetle32\firmware.bin Retrieving maximum program size .pio\build\firebeetle32\firmware.elf Checking size .pio\build\firebeetle32\firmware.elf Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" RAM: [ ] 5.0% (used 16260 bytes from 327680 bytes) Flash: [== ] 18.5% (used 242647 bytes from 1310720 bytes) esptool.py v2.6 Configuring upload protocol... AVAILABLE: esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa CURRENT: upload_protocol = esptool Looking for upload port... Use manually specified: COM9 Uploading .pio\build\firebeetle32\firmware.bin esptool.py v2.6 Serial port COM9 Connecting.... Chip is ESP32D0WDQ5 (revision 1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None MAC: c8:2b:96:99:5f:18 Uploading stub... Running stub... Stub running... Changing baud rate to 460800 Changed. Configuring flash size... Auto-detected Flash size: 16MB Flash params set to 0x0240 Compressed 15872 bytes to 10319... Writing at 0x00001000... (100 %) Wrote 15872 bytes (10319 compressed) at 0x00001000 in 0.2 seconds (effective 533.5 kbit/s)... Hash of data verified. Compressed 3072 bytes to 128... Writing at 0x00008000... (100 %) Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 4093.7 kbit/s)... Hash of data verified. Compressed 8192 bytes to 47... Writing at 0x0000e000... (100 %) Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 16440.1 kbit/s)... Hash of data verified. Compressed 242768 bytes to 125066... Writing at 0x00010000... (12 %) Writing at 0x00014000... (25 %) Writing at 0x00018000... (37 %) Writing at 0x0001c000... (50 %) Writing at 0x00020000... (62 %) Writing at 0x00024000... (75 %) Writing at 0x00028000... (87 %) Writing at 0x0002c000... (100 %) Wrote 242768 bytes (125066 compressed) at 0x00010000 in 2.9 seconds (effective 679.3 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin... =========================================================== [SUCCESS] Took 18.04 seconds ===========================================================
Code: Select all
Here is a look at my platformio.ini flie:
#include "Arduino.h" #include "DFRobot_IL3895_SPI.h" DFRobot_IL3895_SPI epaper; #define D3 26 #define D6 10 #define D8 5 #define D7 13 #define EPAPER_CS D3 #define Font_CS D6 #define EPAPER_DC D8 #define EPAPER_BUSY D7 void setup(void) { Serial.begin(115200); epaper.begin(EPAPER_CS, Font_CS, EPAPER_DC, EPAPER_BUSY); //Select the corresponding pins epaper.fillScreen(WHITE);//Clear the screen and display white epaper.flush(FULL); //Refresh screen display /*Displays a string, black font*/ epaper.disString(0,0,1,"SPI",BLACK); epaper.flush(PART); /*Let me draw a red dot*/ for(uint8_t x=12,y=12; y<110; y+=3) { epaper.drawPixel(x,y,BLACK); } epaper.flush(PART); /*Draw two lines*/ epaper.drawLine(24,12, 36,110,BLACK); epaper.drawLine(36,12, 24,110,BLACK); epaper.flush(PART); /*Draw a red rectangle*/ epaper.drawRect(48,12, 40,98,BLACK); epaper.flush(PART); /*Fill a rectangle with black*/ epaper.fillRect(55,19, 26,84,BLACK); epaper.flush(PART); /*Draw a hollow circle*/ epaper.drawCircle(122,37, 25,BLACK); epaper.flush(PART); /*Draw a solid circle*/ epaper.fillCircle(122,37, 18,BLACK); epaper.flush(PART); /*Draw a rounded rectangle*/ epaper.drawRoundRect(97,67, 50,43, 10,BLACK); epaper.flush(PART); /*Fill in a rounded rectangle*/ epaper.fillRoundRect(102,72, 40,33, 8,BLACK); epaper.flush(PART); /*Draw a triangle*/ epaper.drawTriangle(180,12, 155,110, 205,110,BLACK); epaper.flush(PART); /*Fill in a triangle*/ epaper.fillTriangle(180,23, 162,105, 198,105,BLACK); epaper.flush(PART); /*Prompt characters*/ epaper.disString(215,12, 2,"pic",BLACK); epaper.disString(215,78, 2,"shape",BLACK); epaper.flush(PART); } void loop(void) { delay(8000); }
Code: Select all
Any ideas why the text gets only rendered when compiled with Arduino IDE and not in PlatformIO; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:firebeetle32] platform = espressif32 board = firebeetle32 framework = arduino upload_port = COM9 monitor_port = COM9 monitor_speed = 115200 lib_deps = Tiny BME280
2020-06-26 13:25:43 Thanks Christophe and Nana
The commenting of the "supportChineseFont();" line does the trick for me since I don't plan on using chinese font any time soon
. Thanks for sharing your insights with me.
oli.gafner28
The commenting of the "supportChineseFont();" line does the trick for me since I don't plan on using chinese font any time soon


2020-06-14 01:28:30 Hello,
I have exactly the same problem with PlateformIO, the texts are not displayed. Same configuration as Oli and same sources. I found a solution by commenting the line "supportChinesFont ()" on the class DFRobot_IL3895_SPI :: disStringIL3895SPI
void DFRobot_IL3895_SPI::disStringIL3895SPI(uint8_t x, uint8_t y, uint8_t size, char *ch, uint8_t color)
{
DFR_W21_CS_1;
GT30L_setCSPin(DFR_GT30_CS);
setTextSize(size);
//supportChineseFont();
setTextColor(color);
setCursor(x,y);
print(ch);
}
Christophe
cnale
I have exactly the same problem with PlateformIO, the texts are not displayed. Same configuration as Oli and same sources. I found a solution by commenting the line "supportChinesFont ()" on the class DFRobot_IL3895_SPI :: disStringIL3895SPI
void DFRobot_IL3895_SPI::disStringIL3895SPI(uint8_t x, uint8_t y, uint8_t size, char *ch, uint8_t color)
{
DFR_W21_CS_1;
GT30L_setCSPin(DFR_GT30_CS);
setTextSize(size);
//supportChineseFont();
setTextColor(color);
setCursor(x,y);
print(ch);
}
Christophe

2020-06-04 11:37:45 Thanks for the Help, let me know when you find something. Looks like the libraries are not the same somehow...
oli.gafner28
