{"id":13578465,"url":"https://github.com/RealTimeLogic/Xedge32","last_synced_at":"2025-04-05T19:33:07.299Z","repository":{"id":45219082,"uuid":"241466216","full_name":"RealTimeLogic/Xedge32","owner":"RealTimeLogic","description":"Xedge ESP32 peripheral API and Build Files","archived":false,"fork":false,"pushed_at":"2023-12-17T20:51:14.000Z","size":25108,"stargazers_count":19,"open_issues_count":1,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2023-12-18T23:26:20.079Z","etag":null,"topics":["embedded","esp32","lua"],"latest_commit_sha":null,"homepage":"https://realtimelogic.com/ba/ESP32/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RealTimeLogic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-02-18T20:59:49.000Z","updated_at":"2023-12-20T16:34:56.855Z","dependencies_parsed_at":"2023-12-17T21:00:36.844Z","dependency_job_id":null,"html_url":"https://github.com/RealTimeLogic/Xedge32","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RealTimeLogic%2FXedge32","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RealTimeLogic%2FXedge32/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RealTimeLogic%2FXedge32/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RealTimeLogic%2FXedge32/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RealTimeLogic","download_url":"https://codeload.github.com/RealTimeLogic/Xedge32/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247392968,"owners_count":20931802,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embedded","esp32","lua"],"created_at":"2024-08-01T15:01:30.896Z","updated_at":"2025-04-05T19:33:07.273Z","avatar_url":"https://github.com/RealTimeLogic.png","language":"C","readme":"# Xedge32\n\n### (Xedge Lua IDE and REPL for ESP32)\n\nLooking to turn your ESP32 into a powerful [Edge Controller or IoT Gateway](https://realtimelogic.com/products/edge-controller/)? Look no further than Xedge32! This incredible development tool empowers users of all levels to program their ESP32 using the simple and intuitive Lua Scripting language. With Xedge32, you can easily unlock the full potential of your ESP32 and create advanced IoT solutions that will impress even the most tech-savvy enthusiasts.\n\n![ESP32 Edge Controller](https://realtimelogic.com/images/xedge/v1/Xedge.png)\n\n## Getting Started\n\nYou do not need to compile Xedge32. Compiling Xedge32 is for C code experts.\n\n* [Download the Xedge32 Firmware](https://realtimelogic.com/downloads/bas/ESP32/)\n* [Xedge32 Tutorials](https://realtimelogic.com/xedge32-tutorials/)\n* [Xedge32 South Bridge API](https://realtimelogic.com/ba/ESP32/)\n\n\n## Compiling The C Code (for experts)\n\n**Note:** [Xedge32](https://realtimelogic.com/ba/ESP32/) is built on the more generic [Xedge](https://realtimelogic.com/products/xedge/), which itself is based on the [Barracuda App Server library](https://realtimelogic.com/products/barracuda-application-server/). Xedge32, Xedge, and the Barracuda App Server are OEM software components designed for easy integration into OEM products. All components are [designed to be extended](https://realtimelogic.com/articles/Using-Lua-for-Embedded-Development-vs-Traditional-C-Code).\n\nTo compile the source code, you must use the latest ESP-IDF, which can be found on [GitHub](https://github.com/espressif/esp-idf).\n\nThe following Linux commands show all steps required for installing the development tools, downloading the required source code, and compiling the code:\n\n```\n   sudo apt -y update\n   sudo apt -y install git wget zip flex bison gperf python3 python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0\n\n   cd\n   # remove old installation, if any\n   rm -rf .espressif esp/esp-idf\n\n   # Install the latest esp-idf\n   mkdir esp\n   cd esp\n   git clone --recursive https://github.com/espressif/esp-idf.git\n   # Execute the 3 following lines if you plan on using the CAM plugin.\n   cd esp-idf/components\n   git clone https://github.com/espressif/esp32-camera.git\n   cd ..\n   ./install.sh\n   cd ..\n   source esp-idf/export.sh\n\n   # Download and update Xedge32\n   git clone --recursive --recurse-submodules https://github.com/RealTimeLogic/xedge32.git xedge\n   cd xedge\n   git submodule update --init --remote\n\n   # Build the Xedge resource file Xedge.zip, convert to C, and copy C file to Xedge directory\n   chmod +x BuildESP32ResourceFile.sh\n   ./BuildESP32ResourceFile.sh\n\n   #set target to one of:\n   #idf.py set-target esp32\n   #idf.py set-target esp32s3\n\n   # Configure Xedge32 options such as enabling CAM and mDNS. Details below.\n   #idf.py menuconfig\n\n   # Build the code\n   idf.py build\n```\n\nWindows: The code can be compiled in a Linux console, including the Windows Subsystem for Linux (WSL). If you use WSL, it's recommended to use generation one (WSL1), as it can be difficult to get the USB serial working in WSL2. For more information, see [the WSL documentation](https://docs.microsoft.com/en-us/windows/wsl/about).\n\nTo upload the firmware to your ESP32, follow these steps:\n\n1. Wait for the build process to complete.\n2. Upload the code using:\n   - Linux: idf.py flash monitor\n   - WSL: idf.py -p /dev/ttyS4 -b 115200 flash monitor\n\n\n# Configuring Xedge32\n\nTo configure Xedge32, use the `idf.py menuconfig` command. This allows you to enable various features such as mDNS, Camera, OPC UA, and softTPM eFuse registers. Below is an overview of each feature, along with configuration tips.\n\n## Configuration Steps\n\n### 1. Enable mDNS\n\nmDNS (Multicast DNS) enables local network discovery, making it possible to access Xedge32 by navigating to `http://xedge32.local` in your browser. You can customize this name within your Lua script if desired.\n\n### 2. Enable OPC UA\n\n[OPC UA](https://realtimelogic.com/products/opc-ua/) is an industrial protocol useful for machine-to-machine communication. To enable OPC UA:\n\n- Use `idf.py menuconfig` and select the OPC UA option.\n- After configuring through menuconfig, ensure that you also choose \"Yes\" when prompted by `BuildESP32ResourceFile.sh`.\n\n### 3. Enable softTPM eFuse\n\nThe softTPM eFuse option allows for secure storage of secrets directly in eFuse registers, making them permanently accessible on the device. This feature is part of the advanced security configuration settings. For full details on available configuration options, refer to the configuration section in the [generic Xedge build documentation](https://realtimelogic.com/ba/examples/xedge/readme.html).\n\n## Embedding Lua Apps and configuring NVS\n\nLua apps and the Xedge configuration file can be embedded in the firmware binary using `fatfsgen.py` and  `nvs_partition_gen.py`. See the [Partitions Generator Utility](partitions/README.md) readme file for details.\n\n## Export restrictions\n\nThis distribution includes cryptographic software. The country in \nwhich you currently reside may have restrictions on the import, \npossession, use, and/or re-export to another country, of \nencryption software.  BEFORE using any encryption software, please \ncheck your country's laws, regulations and policies concerning the\nimport, possession, or use, and re-export of encryption software, to \nsee if this is permitted.  See http://www.wassenaar.org/ for more\ninformation.\n\nThe U.S. Government Department of Commerce, Bureau of Industry and\nSecurity (BIS), has classified this software as Export Commodity\nControl Number (ECCN) 5D002.C.1, which includes information security\nsoftware using or performing cryptographic functions with asymmetric\nalgorithms. The form and manner of this distribution makes it\neligible for export under the License Exception ENC Technology\nSoftware Unrestricted (TSU) exception (see the BIS Export\nAdministration Regulations, Section 740.13) for both object code and\nsource code.\n\nThe following page provides details on the included cryptographic\nsoftware: https://github.com/RealTimeLogic/SharkSSL\n","funding_links":[],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRealTimeLogic%2FXedge32","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRealTimeLogic%2FXedge32","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRealTimeLogic%2FXedge32/lists"}