Interview with the Creator: gCore, the GUI Swiss Army Knife
We at GroupGets heard of the gCore over 8 months prior to the campaign launch, and even had a chance to showcase the prototype at the Design Automation Conference back in June 2022. At the time, it was primarily dedicated to be a display for Julio's earlier creation, the tCam-Mini.
As we explored manufacturing options during this limbo of shortage of parts and growing resource development, Julio continued to add-on features.
Specifications
- ESP32 CPU - Dual-core Xtensa® 32-bit LX6 with 16 MB Flash and 8 MB PSRAM.
- Display - 480 x 320 pixel TFT LCD with ILI9488 controller, FT6236 capacitive touchscreen and PWM-based backlight control. SPI-to-Parallel converter allows operation of the Display SPI peripheral at up to the maximum 80 MHz.
- EFM8 - Co-processor providing Real Time Clock (RTC) with alarm, power-management, internal voltage and current monitoring, and 4096 bytes of NVRAM with 1024 bytes flash backup.
- Micro-SD - Mass storage with high speed 4-bit data.
- Power - 3.7V Li-Ion/LiPo with power-path charger (separate charging and load circuits) and regulated 3.3V output.
- USB Interface - CP2102 USB UART with auto-programming (Reset/GPIO0 boot mode entry) control.
Board Information
Below is the full interview & abridged transcript:
Dan, can you provide a brief introduction about yourself?
Sure! I am a longtime electrical engineer scientist. I do a lot of embedded stuff and I am a big part of the maker movement and enjoy sharing my stuff on GitHub, and on my website. I love open source stuff and recently I've been working with GroupGets on the thermal imaging cameras, the “tCam-Mini.” And then hopefully now, “T-Cam.”
And now, you're working with us on the gCore?
I am a big fan of ESP-32. I've done a lot of work with it. I think it's a great microprocessor and module. And when I was designing, I wanted to always want to design a thermal imaging camera for myself. And I ultimately ended up using it and I built a board that had a display on it, and I call that board “gCore” for gadget core because I intended it to be like the base of a lot of portable, GUI or display oriented things, stuff that you would out on a battery that would have great graphics performance.
It has a LCD screen and then a bunch of stuff on the back and can be powered by a life battery as a usb-c port which lets you charge it and a little software into it. It can be programed in Arduino or the specified app and even micro python, so lots of flexibility there.
So the graphics performance, let me get the full frames per second out of the Lepton and super responsive user interface. So anyway, that's my basic intro that you saw.
So I got bit by the pandemic part shortage I've actually been working on, I guess I really was working on the thermal imaging cameras as an over COVID project. And so we got to tCam-Mini done and there was parts for at least do some builds now. But gCore did take a while longer and it sort of happened during the really thick of all that.
Finally, finally parts start flowing and we're now able to build the core.
The gCore was originally focused on the integration of the tCam-mini, but there's a lot more capabilities that it is able to produce. What made you want to expand the application of the gCore unit?
I've used a lot of dashboards over the years, and I put together a lot of systems and often I found like that that I would buy were aimed at really being as expensive as possible. And so I didn't have like they didn't have the features I wanted; they would have an upper limit because the LCD displays can generally not always run at high speeds. So, I wanted faster than that. So gCore has a special circuit which lets me drive the display at a much higher rate so I get better graphics.
A lot of dev boards don't have the way to easily turn on or off. They just plug the battery in and they're running. You're going to have to include a switch or something. And then like on my light pro systems, it's not good to run the light pro down too far. But you know, there's not generally no way like to automatically power the system off when the battery is low. Well, like that because as a complete soft power control press the button.
The power is on code running on the ESP-32 could decide to shut it off. There's another microprocessor in the core which will monitor the battery voltage and it will turn it off like the battery's critically low texture, light bulb battery. Now, the thing that I always found on these other boards was like, if they had LiPo batteries, they always on the load the circuitry of the board on the same output as the charger that the light bulb was on, which always made it hard for the charger to understand when the battery charging was done and always was putting some amount of charge in the battery, which is not good for the life of a micro battery. So the gCore has a full what's called a "power path charging circuit." So it will route power to the battery and raw power to the rest of the circuitry separately. And it can power the rest of the circuitry automatically off the battery when necessary. Like it does USB power and it can share. So it's a better charger than a lot of the systems.
And then I wanted like stuff like a dimmable backlight, so gCore has a way that you can say, hey, I want the bright by 50% brightness, or 100% brightness. And gCore has the ability to monitor the internal voltages to can see the battery voltages. You can put your speed voltages to see how much current because they seem to run, so you could estimate battery life, you can see how much charge is going into the battery.
gCore has a real time clock and that clock and turn it on so you can configure and power itself up at any time. When people can also do smart things like if it powers off, you can configure it so that when the batteries recharge, the power's back on or when charging starts, the power is back on.
So lots of sort of wanted I put into this board.
What I really wanted was like a platform that took care of all the sort of housekeeping stuff of making portable gadgets. So I didn't ever have to think about it again. It had software support. I could turn a library and, and, and it was like it had all these, just like you said, a Swiss Army knife.
What is your experience with LVGL (Light and Versatile Graphics Library)?
Well, I think, I think LVGL is a really amazing piece of software. It lets you create GUIs on embedded devices lots and not just the ESP-32, but lots of other microprocessors and a lot of screens. And it supports touchscreen input and keyboard. I mean, it's really a capable thing and it has evolved over the years so that you can now without a deal, make apps that run on embedded systems like something you would go deeper or maybe even something you'd put in a coffee machine or a printer or something that looks and behave a lot with the sophistication and polish of like a mobile app.
I think that the libraries and stuff like that involved with Arduino and stuff and a free library is fantastic, but it's hard sort of to make beautiful, sophisticated graphs of that and they obviously all fulfills that need. So I am a big fan of use it on a lot of my personal products I use and stuff I design for other people, commercial stuff and the people that video, the the guy at the main guy and a couple of the supported people, they're really responsive. They try to keep it up to date than they ever really vibrant online community. I'm a fan.
Resources
Documentation: https://github.com/danjulio/gCore/tree/main/Documentation
GitHub Repository: https://github.com/danjulio/gCore
TFT_eSPI - Arduino and PlatformIO IDE compatible TFT library: https://github.com/danjulio/TFT_eSPI
gCore_life - The game of Life on gCore: https://github.com/danjulio/gcore_life
gCore_lv_port_esp32 - LVGL v7 ESP32 demo ported to gCore: https://github.com/danjulio/gcore_lv_port_esp32
gCore Enclosures: https://github.com/danjulio/gCore/tree/main/Enclosures