传送门:连接
继上次完成了ESP32无线烧录器。那么有一个问题就是,一堆人都在一起想用这个来无线烧录呢,那么固件中定死的热点名称岂不是会互相的扰乱。所以需要自己编译属于自己的热点名称。
首先需要准备以下几样东西。
Ubuntu (需要安装idf),这里默认你拥有。
ESP32C3,同样默认拥有。合宙简约版esp32c3即可。
无限烧录的源码。传送门:源码
安装IDF
由于网速原因,这里不通过克隆的方式进行下载。
Release ESP-IDF Release v4.4.2 · espressif/esp-idf (github.com)
点击这个连接进行下载。在下载的间隙,先做一下准备工作,新建文件夹。
~ $ mkdir esp
~ $ cd esp/
~ $ sudo apt-get update
~ $ sudo apt-get upgrade
~ $ sudo apt-get install git wget flex bison gperf python3 python3-venv python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
下载完成后通过复制到Ubuntu下的esp文件夹中。
~/esp $mv esp-idf-v4.4.2 esp-idf
~/esp $cd esp-idf/
~/esp/esp-idf $export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
~/esp/esp-idf $./install.sh
出现这一行就说明成功了。
将源码解压放到esp文件夹下。
编译
完善源码文件
~ $ cd ~/esp/wireless-esp8266-dap/components
#输入下方命令进行克隆
git clone https://github.com/windowsair/corsacOTA.git
~ $ cd ~/esp/wireless-esp8266-dap/
git clone https://github.com/windowsair/ESP8266_RTOS_SDK.git
Udev 规则
~ $sudo gedit /etc/udev/rules.d/40-dfuse.rules
写入
SUBSYSTEMS=="usb", ATTRS{idVendor}=="303a", ATTRS{idProduct}=="00??", GROUP="plugdev", MODE="0666"
手动重启
sudo udevadm trigger
进入源码文件夹。
~ $ cd ~/esp/wireless-esp8266-dap
环境变量
~/esp/wireless-esp8266-dap $ . $HOME/esp/esp-idf/export.sh
出现下方红色线极为正常。
设置目标芯片
~/esp/wireless-esp8266-dap $ idf.py set-target esp32c3
如下方所示即为正常。
~/esp/wireless-esp8266-dap $idf.py menuconfig
进入如下路径选择USB烧录。
Component->ESP System Settings ->Channel for console output->USB Serial/JTAG Controller
一直ESC知道出现如下界面,按Y保存。
开始编译
~/esp/wireless-esp8266-dap $idf.py build
如下现象即为成功。
烧录
将开发板插上电。虚拟机会弹出这个界面。选择连接到虚拟机。
查看USB设备在不在。
ls /dev/ttyACM
出现ttyACM设备就是正常的。
给权限。
sudo chmod 777 /dev/ttyACM0
烧录
~/esp/wireless-esp8266-dap$idf.py -p /dev/ttyACM0 flash
出现进度条就说明正在烧录
出现以下现象则说明烧录成功。
电脑打开热点即可查看是否成功。
修改连接热点名称
打开源码目录下的 main/ wifi_configuration.h
修改划线处即可。
重新编译烧录。