So – some people dont use Windows and cant use the Espressif Flash Download Tool to flash RunCPM on the TTGO VGA32.

For these people (and also Mac-Users could use the Mac-Version of eesptool) here are some short instructions how to flash the RunCPM Binary to your TTG VGA32 😉

Mac-Users, Linux AMD64 and Windows 64Bit could get the esptool-archive binary at
https://github.com/espressif/esptool/releases

You need a esptool-version >= v3.1
Unfortunately actual distributions like armbian only do get v2.5.1 while using „apt install esptools“ 😦

To get a actual version 4.2 (at this time) of the esptools we could use this way:

cd /home/guido
git clone https://github.com/espressif/esptool.git esptool

(does clone the github-repository in /home/guido/esptool/)

Because the esptool is using python-serial it has mostly to be installed like:

for Python 3.x use:
apt install python3-serial

When inserting the TTGO VGA32 via USB cable your dmesg should show something like this:
[ 150.833231] cp210x 8-1:1.0: cp210x converter detected
[ 150.838286] usb 8-1: cp210x converter now attached to ttyUSB0

Then we have to change to the directory, where we extracted the Binary-version of RunCPM for the TTGO VGA32:
cd /home/guido/vga32

Here we have to enter a VERY LONG command (like the Arduino IDE does when flashing RunCPM)

Firstly I will show the whole command in some shorter lines for better reading and then you will see the command in one line for copying 🙂

Here the parts:

python3 /home/guido/esptool/esptool.py
--chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset
--after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect
0xe000 ./boot_app0_0xe000.bin
0x1000 ./RunCPM_VGA32_v5_7_11072022_bootloader_0x1000.bin
0x10000 ./RunCPM_VGA32_v5_7_11072022_ino_0x10000.bin
0x8000 ./RunCPM_VGA32_v5_7_11072022_partitions_0x8000.bin

and here the whole command in one line:
python3 /home/guido/esptool/esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 ./boot_app0_0xe000.bin 0x1000 ./RunCPM_VGA32_v5_7_11072022_bootloader_0x1000.bin 0x10000 ./RunCPM_VGA32_v5_7_11072022_ino_0x10000.bin 0x8000 ./RunCPM_VGA32_v5_7_11072022_partitions_0x8000.bin

When everything is/has working fine/well you should get the following output from the esptool:

Output while flashing RunCPM with the esptool


Using esptool.exe with Windows:

At the github-release-page for esptool there is also a 64bit Windows-version of the esptool
(V4.1 at this time) which can be used like the Linux-version (and you ddidnt have to install python nor python-serial to use it 😉 )

The command is like on Linux, but you have to declare the serial port in the Windows-way rather like on Linux.
This means the option –port /dev/ttyUSB0 does transform in –port com9 (if you VGA32 uses COM9).

The complete command is (if you got esptool.exe and the .bin’s in one directory):
esptool.exe --chip esp32 --port com9 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 ./0xe000.bin 0x1000 ./0x1000.bin 0x10000 ./0x10000.bin 0x8000 ./0x8000.bin

using esptool.exe to flash the VGA32-Binary

Flash-commandlines for the Olimex-ESP32-SBC-FabGL version
(with the right .bin-Files also useable with the VGA32):

# ===========================================================================================
on Windows (Credits to Arduino-IDE-Output ;) )
# ===========================================================================================

\esp32\tools\esptool_py\4.5.1/esptool.exe 
--chip esp32 --port COM23 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio 
--flash_freq 80m --flash_size 4MB 

0xe000 boot_app0_0xe000.bin 
0x1000 bootloader_qio_80m_0x1000.bin 
0x8000 RunCPM_VGA32_v6_1_VGA8_Olimex_27072023_0x8000.bin 
0x10000 RunCPM_VGA32_v6_1_VGA8_Olimex_27072023_0x10000.bin

# ===========================================================================================
on Linux (Credits to Mikael Bonner ;) )
# ===========================================================================================

python3 /home/pi/esptool/esptool.py --chip esp32 --port /dev/ttyACM0 --baud 921600 --before default_reset
--after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect
0xe000 ./boot_app0_0xe000.bin 
0x1000 ./bootloader_qio_80m_0x1000.bin 
0x8000 ./RunCPM_VGA32_v6_1_VGA8_Olimex_27072023_0x8000.bin 
0x10000 ./RunCPM_VGA32_v6_1_VGA8_Olimex_27072023_0x10000.bin

# ===========================================================================================
on macOS (Credits to Fred Smith ;) )
# ===========================================================================================
Start with
% brew install esptool
# ===========================================================================================
% esptool.py --chip esp32 --port /dev/cu.usbserial-1420 --baud 115200 --before default_reset 
--after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 
0xe000 boot_app0_0xe000.bin 
0x1000 bootloader_qio_80m_0x1000.bin 
0x8000 RunCPM_VGA32_v6_1_VGA8_Olimex_27072023_0x8000.bin 
0x10000 RunCPM_VGA32_v6_1_VGA8_Olimex_27072023_0x10000.bin
# ===========================================================================================