Skip to content

Repository files navigation

ESP32 UNAPI Firmware

ko-fi

A sample TCP IP and SSH UNAPI driver that work along with this firmware is available at:

(ROM Version) https://github.com/ducasp/MSX-Development/tree/master/UNAPI_BIOS_CUSTOM_ESP_V2

This application is an example of how to set configurations, scan and join networks or update firmware or certificates on IO interface: https://github.com/ducasp/MSX-Development/tree/master/CFGESP

Memory mapped IO interface version: https://github.com/ducasp/MSX-Development/tree/master/UPDTESP

How to build it

You will need Arduino IDE and install ESP32 Arduino IDE and LibSSH-ESP32

I STRONGLY RECOMMEND that you stick to LibSSH-ESP32 5.8.0 and update it with the changed files in the LibSSH-ESP32-Modifications folder, those changes greatly reduce memory heap fragmentation and allow stable SSH connections for really long periods.

Choose the proper ESP32 module/board you are targeting.

To generate certificates file, first get the most up to date certificate list in PEM format:

https://curl.se/docs/caextract.html

Then use the script available at:

https://github.com/espressif/esp-idf/blob/master/components/mbedtls/esp_crt_bundle/gen_crt_bundle.py

To get the certificates in a single bundle file. That file you can rename to certs.bin and then upload it to ESP using a tool like CFGESP / UPDTESP locally or through a web server.

*** NOTE *** Google and some other hosts have certificates cross-signed with old and considered unreliable certificates from globalsign, they do this for legacy devices that have not been updated, and most modern stuff understand the cross-signing and bypass the old cert and go to the new cert, unfortunately mBED TLS, that is the base for this development, doesn't work well. To work around this until mBED TLS and Arduino IDE core builds get an update, you can either use unsecure https connection OR download GlobalSign Root R1 certificate from https://www.globalsign.com/pt-br/repository, convert it from CRT to PEM using openssl x509 -in Root-R1.crt -inform DER -out Root-R1.pem -outform PEM and then you can just open the Root-R1.pem and add to the certificate list you got from curl.se...

Project Design Constraints

This firmware was designed taking into consideration that the other end connected to it either has a large 2KB reception buffer OR is fast enough to pick-up data at the desired baud rate without the help of such large buffer.

Copyright (c) 2019 - 2026 Oduvaldo Pavan Junior ( ducasp@ gmail.com ) All rights reserved.

If you integrate this on your hardware, please consider the possibility of sending one piece of it as a thank you to the author :) Of course this is not mandatory, if you like the idea, contact the author in the e-mail address above.

This software uses ESP32 for Arduino IDE library, from ESPRESSIF.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/

About

Now on ESP32

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages