{"id":29646290,"url":"https://github.com/blueandi/pixelixupdater","last_synced_at":"2026-02-25T11:38:52.243Z","repository":{"id":303492805,"uuid":"1014725343","full_name":"BlueAndi/PixelixUpdater","owner":"BlueAndi","description":"The PixelixUpdater is flashed to a factory partition and provides the update possibility for Pixelix.","archived":false,"fork":false,"pushed_at":"2025-12-18T23:37:56.000Z","size":5929,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-21T23:04:46.209Z","etag":null,"topics":["pixelix"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BlueAndi.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-06T09:41:43.000Z","updated_at":"2025-12-18T22:52:06.000Z","dependencies_parsed_at":"2025-07-08T00:57:10.524Z","dependency_job_id":"3efe67cf-6e4a-418f-a43e-589fd0136b62","html_url":"https://github.com/BlueAndi/PixelixUpdater","commit_stats":null,"previous_names":["blueandi/pixelixupdater"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/BlueAndi/PixelixUpdater","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FPixelixUpdater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FPixelixUpdater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FPixelixUpdater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FPixelixUpdater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BlueAndi","download_url":"https://codeload.github.com/BlueAndi/PixelixUpdater/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueAndi%2FPixelixUpdater/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29819438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T05:36:42.804Z","status":"ssl_error","status_checked_at":"2026-02-25T05:36:31.934Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["pixelix"],"created_at":"2025-07-22T02:38:34.440Z","updated_at":"2026-02-25T11:38:52.237Z","avatar_url":"https://github.com/BlueAndi.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PixelixUpdater \u003c!-- omit in toc --\u003e\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://choosealicense.com/licenses/mit/)\n[![Repo Status](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)\n[![Release](https://img.shields.io/github/release/BlueAndi/PixelixUpdater.svg)](https://github.com/BlueAndi/PixelixUpdater/releases)\n[![Build Status](https://github.com/BlueAndi/PixelixUpdater/actions/workflows/main.yml/badge.svg)](https://github.com/BlueAndi/PixelixUpdater/actions/workflows/main.yml)\n\nThe Pixelix updater application is flashed to a factory partition and provides the update possibility for Pixelix.\n\n## Table of Content \u003c!-- omit in toc --\u003e\n\n- [Motivation](#motivation)\n- [How It Works](#how-it-works)\n- [PixelixUpdater webinterface](#pixelixupdater-webinterface)\n- [Simple App](#simple-app)\n- [How To Get Started](#how-to-get-started)\n- [How To Integrate Into Pixelix](#how-to-integrate-into-pixelix)\n- [How To Update The PixelixUpdater](#how-to-update-the-pixelixupdater)\n- [Terminal](#terminal)\n- [Used Libraries](#used-libraries)\n- [Issues, Ideas And Bugs](#issues-ideas-and-bugs)\n- [License](#license)\n- [Contribution](#contribution)\n\n## Motivation\n\nPixelix grew over time with more and more features. Even more as fit into a a 4 MB flash development board. Initially, some features were disabled to save space. But meanwhile with Arduino 3.x the amount of required flash space with OTA support wasn't enough anymore.\nThe idea was raised to use only one application partition along with a small factory partition, unlike the standard OTA configuration defined by Espressif, which uses two application partitions ([https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/partition-tables.html](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/partition-tables.html)). This way the application partition size increases and gives the possibility to continue with Arduino 3.x and to support more features again.\n\n## How It Works\n\nPixelix is flashed to the app partition and the PixelixUpdater is flashed to the factory partition. Under normal circumstances the app partition is active. A OTA update can be requested by the user through the Pixelix Web interface. This will result in a reboot from the factory partition into PixelixUpdater. After a few seconds the website will reload and change to the webinterface of the PixelixUpdater. This is where the user can upload their firmware or filesystem binaries. If the upload finishes successfully a notification will be shown. To get back to Pixelix the user needs to press the **Back to Pixelix** button.\n\n![OTA Update Weberserver](doc/images/OTA_Update_Webserver.png)\n\n## PixelixUpdater webinterface\n\nThe webinterface of the PixelixUpdater offers two file browser fields for uploading the Pixelix firmaware bin file and/or the file system image. Before uploading the firmware binary, make sure it is compatible with your board.\n\n![PixelixUpdater](doc/images/PixelixUpdater.png)\n\n## Simple App\n\nThe update process is demonstrated using the SimpleApp example code from this repository. Instead of Pixelix the SimpleApp runs in the app partition and spawns a minimalistic webinterface.\n\n![SimpleApp](doc/images/SimpleApp.png)\n\n## How To Get Started\n\nTo install the necessary toolchain you can follow the installation guide from Pixelix until you reach \"Next Step\": [https://github.com/BlueAndi/Pixelix/blob/master/doc/config/TOOLCHAIN-INSTALLATION.md](https://github.com/BlueAndi/Pixelix/blob/master/doc/config/TOOLCHAIN-INSTALLATION.md). If you've reached \"Next Step\" click on the link below. Instead of cloning the Pixelix repository you can use\n\n```bash\ngit clone https://github.com/BlueAndi/PixelixUpdater.git\n```\n\nto clone the repository of the PixelixUpdater.\nNow open the cloned repository folder in VSCode. Continue following the guide to build the PixelixUpdater binary.\nIf you want to test the OTA update process using the SimpleApp, open the `example/SimpleApp` folder in VSCode.\nFirst, make sure that the `factory_binaries` folder contains a binary that matches your board.\n\n![factory binaries folder](doc/images/factory_binaries_folder.png)\n\nEach release of the PixelixUpdater includes a ZIP file as an asset, which contains the PixelixUpdater binaries for all supported boards. Download this ZIP file and copy the binaries into the `factory_binaries` folder.\nTo upload both the SimpleApp and PixelixUpdater binaries press the **Upload** button matching your board in the PlatformIO toolbar (to access the toolbar, click on the ant head icon in the left sidebar).\nAfter booting your board will spawn an Access Point. The password for the Access Point will be: Luke, I am your father.\n\n![upload button](doc/images/upload_button.png)\n\n## How To Integrate Into Pixelix\n\nJust like the SimpleApp, Pixelix includes a `factory_binaries` folder.\n\n![factory binaries folder pixelix](doc/images/factory_binaries_folder_pixelix.png)\n\nEach release of the Pixelix Updater includes a ZIP file as an asset, which contains the PixelixUpdater binaries for all supported boards. Download this ZIP file and copy the binaries into the `factory_binaries` folder of Pixelix.\nTo update the PixelixUpdater press the **Upload** button as shown above. This will upload the PixelixUpdater together with the Pixelix firmware. After both have been uploaded together, the board performs its first boot from the application partition. This is, for example, the case after erasing the flash memory.\n\nPlease note: The PixelixUpdater cannot be flashed via OTA update.\n\n## How To Update The PixelixUpdater\n\nTake a look at \"How To Integrate Into Pixelix\".\nSimply replace the existing binaries in the `factory_binaries` folder with the updated ones from the latest release of the PixelixUpdater then press the **Upload** button.\n\n## Terminal\n\nThe PixelixUpdater provides some commands via serial interface.\n\n- Restart the device: ```restart```\n- Write wifi passphrase: ```write wifi passphrase \u003cyour-passphrase\u003e```\n- Write wifi SSID: ```write wifi ssid \u003cyour-ssid\u003e```\n- Restart PIXELIX: ```restart```\n- Get IP-address: ```get ip```\n- Activate app0 as boot partition: ```activate app```\n\nEnter ```help``` to get a list of all supported commands.\n\n## Used Libraries\n\n| Library | Description | License |\n| - | - | - |\n| [Arduino](https://github.com/platformio/platform-espressif32) | ESP32 Arduino framework v2.x.x | Apache-2.0 |\n| [PlatformIO](https://platformio.org) | PlatformIO is a cross-platform, cross-architecture, multiple framework, professional tool for embedded systems engineers and for software developers who write applications for embedded products. | Apache-2.0 |\n| [Bootstrap](https://getbootstrap.com/) | CSS Framework | MIT |\n| [POPPER JS](https://popper.js.org/) | POPPER JS | MIT |\n| [jQuery](https://jquery.com/) | Javascript librariy for DOM handling | MIT |\n\n## Issues, Ideas And Bugs\n\nIf you have further ideas or you found some bugs, great! Create a [issue](https://github.com/BlueAndi/PixelixUpdater/issues) or if you are able and willing to fix it by yourself, clone the repository and create a pull request.\n\n## License\n\nThe whole source code is published under the [MIT license](http://choosealicense.com/licenses/mit/).\nConsider the different licenses of the used third party libraries too!\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any\nadditional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblueandi%2Fpixelixupdater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblueandi%2Fpixelixupdater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblueandi%2Fpixelixupdater/lists"}