Simple explanation
Have you ever thought about designing a game console yourself? The purpose of this thing is to develop VGA output. At present, VGA display has been successfully implemented, and other content is up to you.
It provides four types of components, buzzer, direction keys and AB, as well as a VGA output interface. There is also an OLED interface, which can be installed depending on the situation.
It adopts extremely advanced Type-C, onboard CH340C, and is directly controlled by the serial port.
You can use ESP32-Wroom and ESP32-Solo. In fact, the difference between the two is not really that big. Of course, scheduling will be easier if there are multiple cores.
How to use and develop
How to use this module? It's actually very simple, just plug in the electricity
The display effect is as follows, it looks pretty good, right?
Of course, for simple use, you need Arduino IDE and post some commonly used add-on board addresses.
http://dan.drown.org/stm32duino/package_STM32duino_index.json
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
https://dl.espressif.com/dl/package_esp32_index. json
https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
The library I use to drive VGA is bitluni's ESP32Lib. Its compilation speed is fast and it is more refined than FABGL.
Pin definitions for all components
VRED 2
VGREEN 15
VBLUE 19
VHSYNC 17
VVSYNC 4
UP 26
DOWN 32
LEFT 14
RIGHT 14
A 33
B 25
START 34
SELECT 35
BUZZER 5
test code
Run the VGA just now to display HelloWorld
#include <ESP32Lib.h>
#include <Ressources/Font6x8.h>
//pin configuration
const int redPin = 2;
const int greenPin = 15;
const int bluePin = 19;
const int hsyncPin = 17;
const int vsyncPin = 4;
//VGA Device
VGA3Bit vga;
void setup()
{
//initializing vga at the specified pins
vga.init(vga.MODE320x240, redPin, greenPin, bluePin, hsyncPin, vsyncPin);
//selecting the font
vga.setFont(Font6x8);
//displaying the text
vga .println("Hello World!");
Serial.println("System Online");
}
void loop()
{
delay(10);
}
You can learn and develop more by yourself
All reference designs on this site are sourced from major semiconductor manufacturers or collected online for learning and research. The copyright belongs to the semiconductor manufacturer or the original author. If you believe that the reference design of this site infringes upon your relevant rights and interests, please send us a rights notice. As a neutral platform service provider, we will take measures to delete the relevant content in accordance with relevant laws after receiving the relevant notice from the rights holder. Please send relevant notifications to email: bbs_service@eeworld.com.cn.
It is your responsibility to test the circuit yourself and determine its suitability for you. EEWorld will not be liable for direct, indirect, special, incidental, consequential or punitive damages arising from any cause or anything connected to any reference design used.
Supported by EEWorld Datasheet