descriptionapeos is a project with goal of providing text shell and server (as in socket bind()) experience on esp-32.
homepage URL
last changeSun, 8 Jul 2018 13:22:52 +0000 (8 16:22 +0300)
content tags
apeos is a project with goal of providing text shell and server (as in
socket bind()) experience on esp-32.

apeos is a portmanteau of ape, a class of animal species humans are
part of, and os, for operating system. Whether one can write like Shak
on apeos probably depends on whether shis tail can be easily hidden
with a dress :)


Have esp-idf v3.0 (git commit 6698be57c80eaa968aca40d12d17479c06e75ae8
is known to work) setup. This prerequisite also brings xtensa-32 gcc
toolchain. For x86 and x86_64 hosts, prebuilt gcc/binutils/glibc
toolchains targeting xtensa-32 ISA are available. Building the cross
toolchain from source for arm32, aarch64 or other host architectures
is achieved via crosstool-NG from xtensa specific git branch.

The build process uses GNU make.

Build everything:


If host machine has more than one CPU (in single socket or not),
supply -j option to make. E.g. "make -j4" to use four CPU cores.

When build finishes, a command-line suggestion is printed. This
command-line can be used to write the binary to flash memory storage
attached to esp32 via SPI.

Interaction with esp32 chip is achieved through, a good
tool useful on systems that can interpret python language.

Beware that flash storage memory is subject to wearing and flashing
any particular memory area multiple times will ultimatly lead to flash
area misfunction. Thus use of download mode of esp32 chip is
also anticipated for transfering versions of apeos to target computer
without the abovementioned storage weakness.

Once written to flash storage memory, apeos operation state is
verified by the "apeos booting" ASCII byte stream signature appearing
on esp32 chip hardware reset via EN pin.

After a newline ('\n'), another line describing environment apeos is
running is printed.

This output, and also availability for input is best achieved via
software emulators of hardware terminals and a program to interconnect
UART tty devices. In some cases programs implement both.

Some software terminal implemetations are:
 * linux framebuffer
 * tmux
 * GNU screen
 * miniterm
 * X11 xterm
 * GNOME/KDE/etc terminal emulators
 * PuTTY for Windows
 * Windows command-line subsystem

Some interconnect implementations are:
 * cu (linux port available [1])
 * PuTTY for Windows
 * GNU screen
 * miniterm

The esp-idf project use of esptool_py is currently configured for
/dev/ttyUSB0 device of usb-to-serial module that is connected to UART0
of esp32 chip.

When connecting esp32 chip through USB with goal of not damaging the
chip, some points can be checked:
 * Unless you are connecting usb-to-serial with CMOS 3.3V interface,
   make sure you understand how the interconnection operates.
 * If you use a dedicated power supply for esp32, which allows more
   power than USB bus can deliver, use galvanical isolation of UART
   signal. 6n137 optrons (optocouplers) are an option rated at 10+
   megabaud and may be available for you in 5V and 3.3V VCC variants.
   As 6n137 has open collector output, its digital data path can
   interoperate at esp32's 3.3V even when 6n137 VCC is 5V.

[1] a port of openbsd cu(1) to Linux:
2018-07-08 Nedko ArnaudovUpdate and extend the READMEmaster
2018-07-06 Nedko ArnaudovHandle missing IDF_PATH variable in more informative way
2018-07-01 Nedko ArnaudovMerge esp32 platform support
2018-07-01 Nedko ArnaudovGNUmakefile: apeos build target for esp, apeos build...
2018-07-01 Nedko Arnaudovsplit bootloader .PHONY in two lines
2018-07-01 Nedko Arnaudovesp-idf-bootloader: sdkconfig (app->bootloader)
2018-07-01 Nedko Arnaudovesp-idf-bootloader: when binding for esp, skip posix.c
2018-07-01 Nedko Arnaudovesp-idf-bootloader: hw_esp32.c initial revision
2018-07-01 Nedko Arnaudovesp-idf-bootloader-support: Disable some cpu frequency...
2018-07-01 Nedko Arnaudovesp-idf-bootloader: esp-idf build system tweaks
2018-07-01 Nedko Arnaudovesp-idf-bootloader: add apeos copyright line to /compon...
2018-07-01 Nedko Arnaudovesp-idf-bootloader: make/: Augment COMPONENT_KCONFIGS_P...
2018-07-01 Nedko Arnaudovesp-idf-bootloader: Switch esp-idf bootloader entry...
2018-07-01 Nedko Arnaudovesp-idf-bootloader: build apeos C sources as part of...
2018-07-01 Nedko Arnaudovesp-idf-bootloader: where needed, add apeos copyright...
2018-07-01 Nedko Arnaudovmake/: Showing GENCONFIG even with V=1 is useful
22 months ago master