LilyGoLib.cpp:129:27: error: 'init' is not a member of 'TouchDrvFT6X36'
Solving a new error building T-Watch-S3 PlatformIO job
The problem
I have a Lilygo T-Watch-S3 module. Building code using PlatformIO on VSCode was running merrily until today. I got a spurious error message I hadn’t seen before. No more magic elf file to load onto the watch. Same code as yesterday. It all built yesterday.
“LilyGoLib.cpp:129:27: error: ‘init’ is not a member of ‘TouchDrvFT6X36’”
I guess some library automatically updated as PlatformIO does things without asking. I can’t see where as the dates inside of the libraries are all from last year.
The solution
I commented out lines 129-135 in the file LilyGoLib.cpp. These are now:
log_println("Init Touch");
//res = TouchDrvFT6X36::init(Wire1, BOARD_TOUCH_SDA, BOARD_TOUCH_SCL);
//if (!res) {
// log_println("Failed to find FT6X36 - check your wiring!");
//} else {
// log_println("Initializing FT6X36 succeeded");
// interruptTrigger(); //enable Interrupt
//}
The job now builds and I have an elf.
Discussion
Using PlatformIO is great but like all automated build systems it does things behind the scenes. I’ll go back to using makefiles and the command line to build my jobs. It’s the only way to keep control over what’s happening. Convenience has a price!
If anybody reads this blog and knows what happened, please let me know.