Board

ESP32-C6 simulator, and a straight account of it

Mokxi models the ESP32-C6-DevKitC-1: the same RISC-V core as the C3 at 160 MHz, thirty-one GPIOs, 512 KB of SRAM in one window rather than two, UART0, the SYSTIMER, ADC1 and LEDC. It is a smaller model than the C3’s, and the contract says exactly where the edges are.

Start building free
  • 9peripheral areas modeled
  • 5projects ready to run
  • Real timeon your own machine
ESP32-C6-DevKitC-1: blinklive0.000 s 0.00x
Click to open it in the editor
The board is running real firmware right now. Click it to open the circuit in the editor.
The model

What is modeled

Taken from the board's own contract document and put in plain words, with what is missing beside it.

Modeled

Core
RV32IMC with Zicsr, machine mode, one instruction per cycle at 160 MHz
Memory
512 KB of HP SRAM at 0x4080_0000, reached at one address by both buses
GPIO and IO_MUX
Thirty-one pins, real register offsets, pulls and input enable per pad
UART0
Paced at the configured baud rate, wired to the serial monitor
SYSTIMER
Alarms, which park the core during delay() rather than spinning on it
The RGB LED
GPIO 8 is a pin like any other here: wire a WS2812 to it and the colors are real
ADC1
Twelve bits on GPIO 0 to GPIO 6, one shot at a time, of the real voltage on the pin
LEDC
Four timers and six PWM channels, on any GPIO, behind analogWrite and ledcAttach
WiFi, simulated
WiFi.h, HTTPClient.h and WebServer.h over a network written in software: no radio, no 802.11, and real internet only when you sign in and switch it on

Not modeled

  • The timer groups, RMT, the LP core and its peripherals, and the interrupt matrix.
  • ADC2 and the SAR ADC’s DMA, filters and calibration; LEDC’s duty-fade hardware.
  • A radio of any kind. There is no 802.11, no Bluetooth LE radio and no 802.15.4 in the model. WiFi and Bluetooth LE are simulated instead (the Arduino API over a network of ours which reaches the real internet only when you sign in and switch it on, and a phone in the editor’s Bluetooth pane), and every page that mentions them says so.
  • Five base addresses (GPIO, IO_MUX, SYSTIMER, LEDC and the SAR ADC) are this model’s best account rather than something it can stand behind, and so are the matrix signal numbers LEDC uses. Section 7 of the contract names them.
Start here

Open one and press Run

Each of these opens in the editor exactly as it is drawn here.

Projects

Every built-in project on the ESP32-C6

Each has its own page with the circuit running, the code and a parts list.

Libraries

Arduino libraries that compile as they are

Paste a tutorial that includes one of these and it builds. For any other library, the build names the Mokxi header that does the same job.

Servo.h
attach, write, writeMicroseconds, read, detach, on any pin
Wire.h
I2C as a master; Wire.begin() puts it on GPIO 23 (SDA) and GPIO 22 (SCL)
SPI.h
transfer and transactions, on the board’s usual SPI pins
EEPROM.h
read, write, update, get, put and EEPROM[i], kept in 4 KB of RAM, which a reset clears: this board has no EEPROM to write
LiquidCrystal_I2C.h
the 16x2 LCD behind its I2C backpack
Adafruit_GFX.h and Adafruit_SSD1306.h
the 128x64 I2C OLED: text, pixels, lines, rectangles, circles, triangles and bitmaps
Adafruit_NeoPixel.h
WS2812 strips and panels
ESP32Servo.h
the ESP32 spelling of Servo.h

And 16 more, 24 in all: DHT.h; OneWire.h and DallasTemperature.h; Adafruit_BME280.h, Adafruit_BMP280.h and SparkFunBME280.h; RTClib.h; Adafruit_SHT31.h; Adafruit_PCF8591.h; Adafruit_ADXL345_U.h; LedControl.h; Adafruit_LEDBackpack.h; Adafruit_TCS34725.h; Adafruit_SGP30.h; Adafruit_INA219.h; Adafruit_ADS1X15.h; Adafruit_MCP23X17.h; Bounce2.h; HX711.h.

Questions

Is it free?

Yes. Every board and every part is on the free plan, with no account needed.

Does it simulate WiFi 6 or Thread?

Not Thread, and not WiFi 6, but the board does WiFi, simulated, and it says plainly that it is. Your sketch uses the real Arduino calls (WiFi.begin, WiFi.status, HTTPClient, WebServer), and joins a network, fetches a page and serves one. Underneath there is no radio and no 802.11. Four made-up addresses under .mokxi answer inside this tab. Signed in, you can switch on Real internet in the Cloud panel, and HTTP and HTTPS requests to real hosts go out through Mokxi’s gateway.

Can I use analogRead?

Yes, on GPIO 0 to GPIO 6, which are ADC1 channels 0 to 6. Twelve bits of the real net voltage, 0 to 4095 across the 3.3 V rail at the default attenuation. analogWrite works too, on any pin, out of the LEDC peripheral.

Will my firmware run on a real DevKitC-1?

The core and the UART will. Five base addresses in the model are believed rather than verified, and they are named in one header so you have a short list of #defines to check. Section 7 of the contract is the list.

Try it on your own firmware

What you build here runs on the board on your desk, unchanged. Nothing to install and no account needed.