TYVM. First, so glad I found this. This will be a huge time saver for prototyping starting some projects. I also will be able to tinker anywhere without lugging a parts bin.
As for a wishlist, here's some ideas I have:
Please consider extending the Serial Monitor into a Serial TTY. It might do that already. I just bought it I've not play to deeply with CRUMB. A Serial Monitor is great for non-interactive output, but being able to reply to a serial prompt would be great. I'm *not* asking for VT52 or VT100 terminal emulation. Just a basic/dumb TTY style.
It would also be nice to save/capture the serial console log/output.
Lua backend for community part contributions. There are numerous tutorials on how to incorporate Lua into a C program. It compiles small and has a low memory footprint.
I could see the embedded Lua interpreter almost being an object such that multiple instantiations of it could exist in a project. It could emulate a RTC, sensor conditions like a light, BMO, etc. and other i2c parts -- it could even be used to validate circuits much like unit testing. Using lua code to simulate sensor data.
There's a lot of i2c parts out there. With emulating an Arduino, I did not expect it to fully emulates an SPI. Having i2c parts would more digital parts like i2c variants of rotary encoders, 2x16 LCD, 128x32 & 128x64 OLED, i2c multiplexer, etc. Even the wii nunchuck (i.e. joystick) is a popular i2c input.
Here's a good source of i2c addresses/parts: https://learn.adafruit.com/i2c-addresses/the-list
Some addresses feel like there's a fair amount of redundancy. You could likely have just a reduced set of addresses/parts for CRUMB. Folks could then replace the part & address in real life should they build their project.
Attiny85 (aka Digispark or Trinket)
This is classic that can do most of what an Arduino can do, but with less unused lines. I know several people who will refactor their projects down to the more efficient and affordable digispark-clones given Arduino's larger format. I suspect you could duplicate your arduino, but reduce its lines to align with the Attiny85 pinouts. Digispark's Attiny85 uses the Micronucleus bootloader. And Adafruit's Trinket is also an Attiny85, but it has a couple of different versions (3v, 5v,
I suspect this could be a bit easier to implement. It could be a extension of the arduino emulator where folks could use classic "C" sketches. But it could also take advantage of a built-in Lua interpreter to emulate NodeMCU.
Having a "NodeMCU" would allow folks to use an interpreted scripting language, It's quite common for ESP8266 to use NodeMCU.
But wait, doesn't ESP8266 also offer a WiFi interface. Sure does. You could have that emulator's "wifi" leverage the localhost *only* for web browser, curl, and other networking emulation. Being localhost is both a security measure and simplifies the networking (no routes, mask, etc.) After all, networking is complicated enough already. No need to open even to a local LAN. The network emulation could probably work for both standard "C" Sketches and NodeMCU.
If someone wants to do unit-test simulations, they can do that in their preferred localhost scripting language (bash, nodejs, perl, python, lua, etc.) via chocolately, cygwin, wsl, Macintoshes. It would really open up a lot of project capabilities.
There are some other ESP8266 emulators out there already:
https://wokwi.com/ - many board emulators all via browser
https://github.com/afnid/espsim - this more a cross-compiler so ESP8266 code can run on Linux natively.
There's some other stuff by xtensa but that may be too much.
* neopixel - (possibly in 1, 4 and 8 in a row. folks can string them together to emulate neopixel strips & rings of larger counts)
* 4x4 keypad - classic and/or i2c
* motors - might need an h-bridge for them though
* IR sensor with "cheap" IR remote
I'm really looking forward to getting comfortable with CRUMB. I've several outstanding person projects I've not been able to get to as I've to set up, then clean up my workbench & parts. I suspect CRUMB will help me knock some off my list.
Thank you very much for CRUMB. Cheers, retro.