ESP32 EMULATOR (Repost to align with Subreddit Rules)
▲ 54 r/esp32

ESP32 EMULATOR (Repost to align with Subreddit Rules)

ESP32 Emulator, with my own layer of patches on top!

This is a set of patches applied on top of the Espressif QEMU fork (found here: https://github.com/espressif/qemu )

Compared to when i originally made this post, where we only supported ESP-IDF based firmwares at that time, this version now supports Arduino Based firmwares too (to varying levels of success)

The idea was for something small and compact that could be run, and used to quickly test any firmware that may be nice to just verify if it works (without burning out the flash on your ESP32 itself)

The Emulator GUI itself has a few bugs, but the core QEMU package is separate, easy to adapt to any QEMU Manager GUI.

The core of what works

  1. Basic SPI bus and supported calls (this was tested against real hardware, with a modified version of PURR OS used for tracing and mapping the SPI/i2c calls)
  2. I2C support (we have proper replicated touch, display, keyboard, and Virtual SDCard support, they also behave the same as real hardware)
  3. Virtual SDCard support (grab a blank formatted .img file, and you can connect that to the Emulator/QEMU and pass it to the VM itself as well as flash it to a real SDCard and pick up where you left off, it works both directions*)
  4. Depending on firmware, we can get up to near Real-Time Speed inside the VM, with benchmarks from PURR OS hitting close to 98% of real-time (testing was done when the QEMU Config was set to only use 1 Host CPU core, instead of multithreaded)

*With recent reports from testers, the SD Card Feature seems to be fully working, as one tester is using this emulator to test their own firmwares and projects!

Qemu Patches are separate of Source, so you can pull a fresh fork of QEMU from Espressif, and apply the patches on separately (with 2 scripts to help make it super easy to compile on MSYS MINGW64, or linux!)

Last Key thing to add, it was written in rust, and i know how Memory-Safe its meant to be.

ESP32 Emu Running Launcher firmware (Arduino based firmware)

My In-House offering, PURR OS (at the boot screen) ESP-IDF based firmware

PURR OS About Screen (public release) Using touch to navigate

Navigating Launcher using WASD Keys

My first post got flagged because i attached a link that went against Rule #3. Original version was approved, my edit was not. That's my fault.

still learning to use reddit, bear with me.

Sources:
PURR OS: https://github.com/PastorCatto/PURR-OS-ESP32

ESP32-Emu: https://github.com/PastorCatto/ESP32-Emulator/

Launcher: https://github.com/bmorcelli/Launcher

Please don't nuke this post again, i made sure this time around that it did not go against #2 (low Effort) and #3 (Dangerous/illegal)

reddit.com
u/zanderislife — 9 days ago
▲ 2 r/esp32

Hey, i want to clear the air about something (QEMU ESP32 PC emulator)

So, with my last post on reddit, specifically about the ESP32 PC emulator, i noticed some AI pushback (totally valid, i get it) and just wanted to say how i stand on this situation.

couple things. i think AI can be useful if done a certain way, but we all know how that's been going.

i also believe that if you use AI, it should be done in the open, not behind closed doors.

hence why all of my projects are opensource, and as time went on, got easier to read and understand.

i also understand how the code works, and have had more than enough time tinkering and breaking things.

the reason i say all this, is because im at a point where i need help from the community, as i only got started this last may, my expertise is more in Linux and Android, not embedded.

and i dont want to stir the angry reddit pot more.

I ask that if you dont trust my code, please look at it in the qemu folder here:

(this holds all my patches in one place, so its easy to see what i add on top at compile time)

https://github.com/PastorCatto/ESP32-Emulator/tree/main/qemu

ive also published just a qemu executable set for testing, if someone wants to do testing outside my emulator, they can find that release here:

https://github.com/PastorCatto/ESP32-Emulator/releases/tag/QEMUCAT0.1

please let me know if anyone finds issues with this, and ill do my best to address it and answer.

(the docs are out of date, i havent had a chance to update them)

Edit: the other reason i made this post is because it feels like i poked something that was a little sensitive, and i didnt want to appear like i was dismissive of that, if i struck a nerve with you, im sorry.

reddit.com
u/zanderislife — 10 days ago
▲ 69 r/esp32projects+3 crossposts

ESP32 Emulator For PC (macOS and Linux coming soon!)

Disclaimer, Branded as "AI Content" due to the fact that i told claude to "build me an esp32 emulator on top of QEMU and lets expand and make it useful" (with guidance and supervision, 60% autonomous)

EDIT: I’ll re-do this Reddit post and post a bit more clarification, I’ve been too busy to have a chance (wildfires burning in my area) please bear with me

SCREW IT, CODE IS AVAILIBLE HERE! https://github.com/PastorCatto/ESP32-Emulator

500 views in literally 5 mins, i figure, if anyone knows how to fix half the bugs i have, its reddit!

ENJOY! and remember, its a WORK IN PROGRESS!

(i also shipped bad code multiple times, and i know this will be a hot ticket idea. i plan on going to espressif and maybe look into pushing some of my code upstream into the QEMU port natively!)

Okay okay, yes, you want the emulator, some ground rules first:

  1. This emulator can ONLY run IDF based firmwares (arduino firmwares need a patch to block out wifi and BT, same with IDF versions, but ive added a basic patch for now)
  2. No network support yet, and the most supported config is T Deck Plus
  3. it WILL be slow, if it takes more than 5 seconds for the display to come up, restart the VM, theres a 20% chance it boots at like 60% speed (Seems to be an intel Quirk for me, the E core P core crap)
  4. it will be open source soon, theres been wildfires in Summerland BC Canada, grew to 9500 Hectares (95 square Kilometers) within 8 hours, ive diverted all claude resources to monitor the situation. Expect delays.

how to use

  1. drag firmware onto emulator window
  2. add SDcard image (seems to lag if you dont give it one)
  3. press bypass + boot
  4. enjoy!

Download: https://drive.google.com/drive/folders/1sRZHMmvCEydwBbjXa8jY8hSRHHEsNOyt?usp=drive_link

(comes included with 2 minimal builds of PURR OS, DP8 and internal DP9)

PURR OS Source: https://github.com/PastorCatto/PURR-OS-ESP32

Video series on Youtube Shorts: https://www.youtube.com/@Pastorcatto/shorts

(i showcase what ive been working on! includes a live demo of the emulator!)

​​​​

reddit.com
u/zanderislife — 11 days ago
▲ 37 r/esp32projects+1 crossposts

Custom OS for ESP32 (PURR OS)

Custom system for ESP32 (PURR OS)

So I am a big fan of the T Deck Plus, but was unhappy with the abysmal amount of firmware that was more of a “do it all” and was left craving more.

So I got bored, and used Claude to bring my idea to life, and made

**PURR OS** (Portable Unified Runtime and Radio Operating System)

It’s a modular operating system that can be adapted to any ESP32 device (not the P4 unfortunately) and handles the hardware, and the software, powered by the ESP-IDF 5.3.5 and FreeRTOS, with a one file driver, and super easy app support. It’s got a lot to bring to the table.

We have (as of Developer Preview 6)

\-meshtastic support (encryption, node discovery, chat on private and public channels, has a few bugs)
\-initial meshcore support, with the ability to toggle between mestastic and meshcore on the fly
\-plug and play driver and kernel extension support (with signing checks, a basic flag)
\-custom UIs (yes, multiple)
\- unified layer across UIs, one app fits all type of thing(excluding the smaller devices like Heltec V3)
\-Lua Script support, you can write an app in Lua script, put it in the /apps/ folder with a .meow extension, and it will pop up in the launcher
\-multi tasking support, handles up to 8 apps before the UI starts getting funky
\-an Apple Like Nearby devices feature, you can wirelessly connect 2 PurrOS nodes together with ease, powered by ESP-NOW (can foward messages to a connected client, will expand on more)
\-the whole OS is modular and can be run on as low as a CYD and on high end ESP32s, looking to expand into the P4 side eventually, bringing PURR OS into more!
\-also handles 64GB SDCards (formatted in Large Fat32)

Right now I need testers and anyone who is willing to help add new devices, as I plan on making a repository for just drivers, once a 1.0 is out

If you are interested and want to try it out for a supported device, check it out here https://github.com/pastorcatto/purr-os-esp32

It’s free, it’s opensource, and also has arduino support (needed for meshtastic and meshcore)

Let me know your thoughts and ideas!

“In case I don’t see ya, good afternoon, good evening, and good night!” \~ Jim Carrey, The Truman Show

You can view my videos i post about the progress of the project on TikTok and YouTube @ PastorCatto on all platforms (other than here)

I have a good amount of documentation and should mention, if you make a driver for the OS, it should be compatible with future releases, as well as the Lua Script support is what I recommend for apps, as I maintain that as a core feature of the OS, and don’t plan on touching Lua much until after 1.0

Edit: We have initial support for ESP32-P4 devices, first target is the M5Stack Tab 5! Need testers!

u/zanderislife — 1 month ago

Portal Go (Portable Android TV)

Since ADB is enabled, I sideloaded a few apps and converted it into an Android TV style device, paired with a chromecast remote! Pretty good portable setup!

Thanks to all the developers, keep it up, love what you guys do!

Launcher is: AT4K (modded) launcher (sorry, no links)

EDIT: arc launcher is better and open source https://github.com/meddouribadis/arclauncher

u/zanderislife — 1 month ago

IM BACK! Lenovo L440 20AS Updated Opencore! SLEEP WORKS NOW! I FIXED IT!!

I dug out my old Thinkpad again, and saw someone had updated an EFI for the L440

So, I thought about it, and figured that I should try to get sleep working, and sure as shit, I got it fixed.

Needed SSDT-GPRW as well as a Rename to XPRW
(find 4750525702 replace with 5850525702 under ACPI -> Patch)

USBMap to force the bluetooth from external to 255 (usbmap set HS11 to 255
by doing T:9:255 when editing ports and types)

hope this helps in the future!

PS Bluetooth has been the reason why sleep doesn't work, that and the missing SSDT-GPRW config!

So, I'm happy to present to you, as a follow-up from my last post...

macOS 15.7.7 (24G720) With SLEEP SUPPORT! (this EFI supports macOS BigSur and Higher!)

check my Github for details Github.com/pastorcatto

Enjoy!

Edit: forgot to add that the laptop will take 45 seconds to go to sleep, but it does sleep!

u/zanderislife — 3 months ago

Anyone good with UART?

Looking to do some testing but I have no clue where to start with UART and was hoping someone had any generation of the Meta Portal to test a theory

UART is enabled
The Core underneath android is UEFI based

Possible interjection path to intercept the boot chain before it loads the XBL
(Unless meta patched that too)

reddit.com
u/zanderislife — 3 months ago

Portal Browser Hidden Links

I found out that the very first time you open the portal browser app there’s actually different links, including chrome flags, and version info, but the second you refreshed the homepage, it swaps all the links back to the Facebook, YouTube and all the other ones. I just happen to notice this out of the corner of my eye and decided to reset my portal just to test the theory and sure as shit. I found them.

There were links (not listed) for
chrome://flags (opens to a blank page)
chrome://version (also a blank page)

The May 8th activity was me breaking out of the OOBE

OS VER 1.47.4 (Jesus meta, y’all are bloody LAZY!)

u/zanderislife — 3 months ago