Skip to content

For learning, or just a simpler flow more condusive workflow for ESP-32 builds. Also allows those withiut hardware to create for community with built in IDE and syntax!

License

Notifications You must be signed in to change notification settings

Flapjacode/esp32-simulator

Repository files navigation

Esp32-Development-Sim-Tool

Project Overview

This web application provides an interactive interface for configuring ESP-32 microcontroller pins. The tool assists developers in properly setting up their ESP-32 projects by generating boilerplate code based on their pin configuration selections.

Key Features

Visual Pin Selection Interface: Interactive representation of all ESP-32 pins with clear labeling

Pin Configuration System:


image

Select from multiple functions (GPIO, I2C, SPI, UART, etc.)

Configure pin modes (digital input/output, analog, etc.)

Add custom names and descriptions for each pin

Code Generation:


image

Automatic generation of initialization code for individual pins

Complete setup function template for all configured pins

Validation of pin assignments for conflicts


image

Integrated Development Environment:

Built-in terminal for immediate feedback

Code validation before deployment

Support for common ESP-IDF and Arduino frameworks

ESP32 Pin Configuration Simulator

Project Overview

A web-based ESP32 pin configuration tool that allows developers to:

  • Visually configure ESP32 pins with different modes (GPIO, I2C, SPI, UART)
  • Generate Arduino-compatible code templates
  • Validate code syntax before deployment
  • Test configurations without physical hardware

Features

  • Interactive Pin Configuration:

    • Visual representation of ESP32 pins
    • Pin-specific configuration options
    • Custom variable naming and descriptions
  • Code Generation:

    • Automatic template generation
    • Setup/Loop structure
    • Pin mode initialization
  • Code Validation:

    • Syntax checking
    • Pin usage verification
    • Common ESP32 function detection

Installation

Web Version (No Installation Required)

The application runs directly in modern browsers:

  1. Open index.html in your preferred browser
  2. Start configuring your ESP32 pins

Pinout References

Project Logo

Board Pinouts

ESP32-C3 Super Mini

ESP32-C3 Pinout

ESP32 WROOM

ESP32 WROOM Pinout

Development Setup

  1. Clone the repository:
git clone https://github.com/flapjacode/esp32-simulator.git
cd esp32-simulator
  1. Install dependencies (if using Node.js server):
npm install
  1. Start the development server:
npm start
  1. Open in browser:
http://localhost:3000

Usage

  1. Configure Pins:

    • Click on any ESP32 pin to select it
    • Choose the appropriate mode from the dropdown
    • Assign a variable name and description
  2. Generate Code:

    • Click "Generate Template" to create starter code
    • The editor will populate with properly configured pin setups
  3. Validate Code:

    • Click "Validate Code" to check for common errors
    • The output panel will show validation results
  4. Export Code:

    • Copy the generated code directly from the editor
    • Paste into your Arduino IDE or PlatformIO project

Project Structure

esp32-simulator/
├── index.html          # Main application file
├── README.md           # Project documentation
├── assets/             # Static assets (CSS, JS, images)
│   ├── styles.css      # Additional styles
│   └── scripts.js      # Additional JavaScript
└── package.json        # Node.js dependencies (optional)

Dependencies

  • Modern web browser (Chrome, Firefox, Edge, Safari)
  • Node.js (optional for local development server)

Sources and Attributions

Intellectual Property Statement

The source code contained in this repository represents original work developed as an educational IDE web interface for ESP32 microcontroller development. All code is the intellectual property of the project author except where explicitly attributed to third-party entities as detailed below.

Educational Purpose

This project is intended solely as an educational tool for teaching and learning ESP32 microcontroller development using the Arduino programming framework. It is designed to facilitate understanding of embedded systems programming and hardware interaction.

Third-Party Attributions

Espressif Systems

ESP32 microcontroller platform, architecture, and related trademarks are the intellectual property of Espressif Systems (Shanghai) Co., Ltd.

Copyright © 2025 Espressif Systems (Shanghai) Co., Ltd. All rights reserved.

All references to "ESP32," "ESP32-C3," and related Espressif products are used in accordance with Espressif's trademark guidelines for educational and reference purposes.

Arduino logos

This project utilizes the Arduino programming framework and development paradigm. Arduino is used under the terms of its respective licenses.

Arduino™ and the Arduino logo are trademarks of Arduino AG.

Copyright © 2025 Arduino AG. All rights reserved.

The Arduino framework is used in accordance with the GNU Lesser General Public License (LGPL) and Creative Commons licensing terms as applicable.

Technical Documentation Sources

Xecor Electronics

ESP32 pinout diagrams and technical documentation provided by Xecor Electronics.

Source: Xecor ESP32 Pinout Diagram

Copyright © 2026 Xecor Co., Ltd. All rights reserved.

Technical diagrams used with attribution for educational reference purposes.

Micro Robotics

ESP32-C3 Super Mini technical specifications and pinout diagrams provided by Micro Robotics.

Source: Micro Robotics ESP32-C3-SMINI Documentation

Copyright © 2026 Micro Robotics (Pty) Ltd. All rights reserved.

Documentation used with attribution for educational and reference purposes.


License

ESP32 IDE SimTool © 2025 by Matthew Shannon is licensed under Creative Commons Attribution 4.0 International

License Summary

This work is licensed under the Creative Commons Attribution 4.0 International License.

You are free to:

  • Share — copy and redistribute the material in any medium or format
  • Adapt — remix, transform, and build upon the material for any purpose, even commercially

Under the following terms:

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.

No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.

Full License Text

To view a copy of this license, visit: https://creativecommons.org/licenses/by/4.0/legalcode


Disclaimer

Educational Use

This software is provided for educational and learning purposes only. The author and contributors make no warranties regarding the fitness of this software for any particular purpose.

Hardware Interaction

Users assume all responsibility for the proper and safe operation of hardware when using this software. Always follow proper safety protocols when working with electronic components and embedded systems.

Third-Party Resources

While every effort has been made to properly attribute third-party resources, users are responsible for ensuring compliance with all applicable licenses and terms of use for any external resources or libraries they choose to incorporate.

No Warranty

THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Contributing

Contributions to this project are welcome and encouraged. By contributing, you agree that your contributions will be licensed under the same Creative Commons Attribution 4.0 International License that covers this project.

Contribution Guidelines

When contributing to this repository, please:

  1. Maintain Code Quality

    • Ensure all code follows the existing style and conventions
    • Write clear, well-documented code with appropriate comments
  2. Testing

    • Include appropriate tests for new functionality
    • Verify that existing functionality is not broken
  3. Documentation

    • Update documentation to reflect any changes or new features
    • Include usage examples where applicable
  4. Attribution

    • Properly attribute any third-party code or resources
    • Include appropriate copyright notices
  5. Pull Requests

    • Submit pull requests with clear, descriptive titles
    • Provide detailed descriptions of changes and their purpose
    • Reference any related issues

Support and Contact

Issue Reporting

For bug reports, feature requests, or technical issues, please open an issue in the GitHub repository.

When reporting issues, please include:

  • A clear description of the problem
  • Steps to reproduce the issue
  • Expected vs. actual behavior
  • System information and environment details
  • Relevant code snippets or error messages

Community Support

  • GitHub Discussions: For general questions and community interaction
  • Issue Tracker: For bug reports and feature requests

Project Maintainer

For direct inquiries regarding licensing, collaboration, or other matters, contact the project maintainer through the GitHub profile.


Acknowledgments

Special thanks to the open-source community and all contributors who have helped make this educational tool possible. This project stands on the shoulders of the Arduino community, Espressif Systems' excellent documentation, and the countless educators and developers who share their knowledge freely.


Last Updated: February 2026

About

For learning, or just a simpler flow more condusive workflow for ESP-32 builds. Also allows those withiut hardware to create for community with built in IDE and syntax!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors