user-img

Grovety

  • 8 Projects
  • 18 Followers
  • Jul 08,2025
+ Follow

Send Wifi, Keys & Initial Data over USB from PC to CrowPanel

Connect your device via USB, launch the app, paste Wi-Fi and keys, click "Send" — done in 10 seconds.

Send Wifi, Keys & Initial Data over USB from PC to CrowPanel
 
  • thumbnail-img
 

Story

 

Have you ever found it frustrating to manually type Wi-Fi passwords or long API keys into your devices?
If not, try entering your OpenAI API key — all 51 characters of it — by hand. Now imagine doing that on a touchscreen, without a physical keyboard.

This project aims to free users from that hassle. Instead of making them type credentials, they can simply connect the device to a PC, copy the needed data (Wi-Fi, tokens, keys), and send it over USB in seconds.

This project allows you to send arbitrary device settings (e.g., Wi-Fi credentials, API keys, authentication data) from a Python GUI application to an ESP32-S3 microcontroller over UART. To ensure data integrity, a CRC32 checksum is used for validation.

 

The project is ideal for provisioning IoT devices like CrowPanel without hardcoding parameters. The provided ESP-IDF example shows how to receive and parse the transmitted data. In this demo, we send Wi-Fi settings — but you can adapt the format for any kind of data.


Installation

Follow these steps to install and run the application:

1. Install Python

Download Python from: https://www.python.org/downloads/


✔ Be sure to check "Add python.exe to PATH" before installing.


2. Install required package

Open Command Prompt (CMD) and run:

python -m pip install pyserial

3. Download the application

Clone or download from GitHub:
👉 https://github.com/Grovety/crowpanel_settings


4. Launch the app

Run app.py from the application folder.


🚀 How to Use

Once you launch the application, you will see the settings window.

To send data to the ESP32-S3:

  1. Fill in the input fields:

    • SSID

    • Password

    • KEY (can be any secret, token, or config field)

  2. Select your device’s COM port (⟳ button refreshes the list)

  3. Click Send — all values will be saved in settings.json

  4. In the lower window, you’ll see messages from the ESP32-S3 if reception is successful.

💡 You can use this mechanism to transmit any JSON-structured configuration to the microcontroller, not just Wi-Fi credentials.


🔄 Updating the Firmware

Before flashing new firmware to the board, press Disconnect in the GUI — this releases the COM port for use by other tools.


🧩 Example Usage with ESP-IDF

To test the settings transmission, an example ESP-IDF project is provided.

Step 1. Install Visual Studio Code

Download it from the Microsoft Store

Step 2. Install the ESP-IDF Extension

👉 ESP-IDF Extension on Marketplace

 


Step 3. Select Target

Click the Target Selection button and choose ESP32-S3 (via built-in USB_JTAG)


Step 4. Select Flashing Method

Click the Flashing Method button and choose UART




Step 5. Connect the board

Use a USB cable to connect the ESP32-S3 device to your PC.


Step 6. Flash the firmware

Click the Build and Flash button.

Wait for upload to complete.


Step 7. Return to the Python app

Reopen the GUI and send the settings. You should see messages from the board like:

SSID: 123 Password: 124 Key: 125 Success

🔗 Integrating Into Your Own ESP-IDF Projects

You can reuse the included files to support UART settings parsing in your own embedded apps.

1. Copy the files

Add uart.c and uart.h into your project folder.

2. Register the component

In CMakeLists.txt, add:

idf_component_register(SRCS "uart.c" INCLUDE_DIRS ".")

3. Initialize the parser

In your code:

 
uart_json_init(on_uart_settings_received);

You must define a callback like:

wifi_config_data_t wifi_data; void on_uart_settings_received(const wifi_config_data_t *data) { memcpy(&wifi_data, data, sizeof(wifi_config_data_t)); }

Settings will be available as:

  • wifi_data.ssid

  • wifi_data.password

  • wifi_data.key


⚠ Note

Make sure the ESP-IDF Monitor or any serial terminal is closed before launching the Python app — the COM port must be free.


💡 Applications

  • Remote provisioning of devices

  • Secure delivery of tokens, keys, and login credentials

  • Dynamic configuration of IoT systems

  • User-friendly end-device setup interfaces


🔗 Repository

 

👉 GitHub: Grovety/crowpanel_settings

Code
  • https://github.com/Grovety/crowpanel_settings
    View

Send Wifi, Keys & Initial Data over USB from PC to CrowPanel

Connect your device via USB, launch the app, paste Wi-Fi and keys, click "Send" — done in 10 seconds.

339
 
9
0
0
These revenues will go back into supporting creators, contests, and the open source ecosystem, and more.

Share your project on social media to expand its influence! Get more people to support it.

  • Comments( 0 )
  • Like( 9 )
/1000
Upload a photo:
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP

You May Also Like

View All
Add to cart
Board Type : GerberFile :
Layer : Dimensions :
PCB Qty :
Different PCB Design
PCB Thickness : PCB Color :
Surface Finish : Castellated Hole :
Copper Weight : 1 oz Production Time :
Total: US $
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.

PCB Assembly

PCBA Qty: BomFile:
NO. OF UNIQUE PARTS: NO. of Components:
Assembly Cost: US $
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
3dPrintingFile : Size :
Unit : Volumn :
3D Printing Qty : Material :
Total: US $12.99
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
Acrylic Type : AcrylicFile :
Dimensions: Engrave:
Acrylic Qty :
Acrylic Thickness:
Acrylic Color:
Total: US $12.99
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
CNC Milling File : Size:
Unit: Volumn:
CNC Milling Qty : Material:
Type of Aluminum: Surface Finish:
Tolerance:
Surface Roughness:
Total: US $12.99
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
Item Price Qty Subtotal Delete
Total: US $0.00
Certified Product | Supported Purchase: Full After-sales Protection