https://github.com/alcalzone/nc-zwave-esp-bridge
Firmware for the ESP UART bridge
https://github.com/alcalzone/nc-zwave-esp-bridge
Last synced: about 1 year ago
JSON representation
Firmware for the ESP UART bridge
- Host: GitHub
- URL: https://github.com/alcalzone/nc-zwave-esp-bridge
- Owner: AlCalzone
- Created: 2025-02-21T08:18:12.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-03T11:38:25.000Z (about 1 year ago)
- Last Synced: 2025-04-12T06:42:58.838Z (about 1 year ago)
- Language: C
- Size: 55.7 KB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## USB to UART Bridge
USB to serial bridge tool using the USB and UART capabilities of the ESP32-S2/S3 microcontroller. This tool serves as a debugging and downloading utility with the following features:
1. Bidirectional transparent data communication between USB and UART.
2. Configurable serial port settings (supports baud rates up to 3000000 bps).
3. Compatibility with automatic firmware download functionality for `esptool`, enabling firmware updates for other ESP SoCs.
```c
/*
* │
* │USB
* │
* ▼
* ┌──────┐
* │ │
* │ O O │
* │ │
* ┌───┴──────┴───┐
* │ │
* ┌───────────┐ │ ESP32-S3-OTG │
* │ │ │ │
* │ │ RX │ ┌──┐ │
* │ │◄─────────┼─┤ │expend IO│
* │ │ TX │ │ │ │
* │Target_MCU │◄─────────┼─┤ │ │
* │ │ IO0 │ │ │ │
* │ │◄─────────┼─┤ │ │
* │ │ EN │ │ │ │
* │ │◄─────────┼─┤ │ │
* │ │ │ └──┘ │
* └───────────┘ │ │
* │ │
* │ │
* └───┬──────┬───┘
* │ [ ] │
* └──────┘
*/
```
### Default IO Configuration
The example using `ESP32-S3-OTG` board by default, the IO configuration is as follows:
| ESP32-Sx IO | Function | Remark |
| :---------: | :-------: | :----------------------------: |
| 20 | USB D+ | Fixed |
| 19 | USB D- | Fixed |
| 46 | UART-RX | Link to target board TX |
| 45 | UART-TX | Link to target board RX |
| 26 | Boot(IO0) | Link to target board Boot(IO0) |
| 3 | EN (RST) | Link to target board EN(RST) |
### Build and Flash
1. Make sure `ESP-IDF` is setup successfully
2. Set up the `ESP-IDF` environment variables, please refer [Set-up the environment variables](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#step-4-set-up-the-environment-variables), Linux can use:
```bash
. $HOME/esp/esp-idf/export.sh
```
3. Set ESP-IDF build target to `esp32s2` or `esp32s3`
```bash
idf.py set-target esp32s3
```
4. Build, Flash, output log
```bash
idf.py build flash monitor
```
### Automatic Firmware Download with esptool
* The automatic download feature is enabled by default. You can disable this option in `menuconfig → USB UART Bridge Demo → Enable auto download`.
* When using the automatic download feature, connect the development board's `AUTODLD_EN_PIN` and `AUTODLD_BOOT_PIN` pins to the target MCU's IO0 (Boot) and EN (RST) pins respectively.
* The automatic download feature may not function correctly on certain development boards (due to delays caused by RC circuits). In such cases, please fine-tune the code with gpio_set_level software delays.
### Wireless USB UART Bridge
Please refer to [Wireless USB UART Bridge](https://github.com/espressif/esp-dev-kits/tree/master/esp32-s3-usb-bridge/examples/usb_wireless_bridge).