Skip to content

Commit 6a36fa7

Browse files
committed
add a post on esp32-storage PCB
1 parent bc951fa commit 6a36fa7

9 files changed

+84
-2
lines changed

_org/2024-10-12-rust-on-esp.org

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Rust on ESP是一个将Rust引入ESP生态的开源项目,允许我们使用Ru
1717

1818
** 实验步骤
1919
我原来有个在ESP上运行WebDAV服务的想法,这样可以将ESP控制器当成一个移动存储服务器来使用。原来觉得需要自己开发一个简单的WebDAV服务器,但后来看到了开源的Rust项目dav-handler-rs。我想是不是可以将Rust on ESP和dav-handler-rs结合起来,但是之前应该没有人尝试过在ESP控制器上运行过dav-handler-rs,对于将针对服务器环境编写的软件能否在ESP上运行还是不太确定。
20-
我将尝试分成下面几个步骤:第一步先尝试安装Rust on ESP开发环境,然后成功运行一个简单的Rust程序;第二步运行一个http服务器hyper;第三步就是基于hyper运行webdav-handler-rs;最后解决遇到的问题。下面我们一步一步开始实验。最终的项目代码可以在[[https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/linux-macos-setup.html][这里]]下载。
20+
我将尝试分成下面几个步骤:第一步先尝试安装Rust on ESP开发环境,然后成功运行一个简单的Rust程序;第二步运行一个http服务器hyper;第三步就是基于hyper运行webdav-handler-rs;最后解决遇到的问题。下面我们一步一步开始实验。最终的项目代码可以在[[https://github.com/paul356/esp-webdav][这里]]下载。
2121

2222
*** 第一步:安装Rust on ESP开发环境
2323
安装Rust on ESP开发环境依赖于Rust开发环境和esp-idf环境。我们需要按步骤安装这几个环境。
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#+OPTIONS: ^:nil
2+
#+BEGIN_EXPORT html
3+
---
4+
layout: default
5+
title: 一种基于ESP32丰富连接能力的移动存储设备 -- 电路设计
6+
tags: [Rust on ESP, ESP32, PCB]
7+
nav_order: {{ page.date }}
8+
sync_wexin: 1
9+
---
10+
#+END_EXPORT
11+
12+
* 一种基于ESP32丰富连接能力的移动存储设备 -- 电路设计
13+
14+
** 前言
15+
16+
之前我构想过一种[[https://paul356.github.io/2024/10/31/mobile-storage.html][基于ESP32的移动存储设备]],现在来尝试做一个样机,第一步我觉得先要设计一个专门的PCB。之前我使用了一款ESP32S3开发板来测试如何运行WebDAV,但由于开发板的闪存空间只有几个兆的容量。所以我觉得需要设计一个新的PCB电路,以支持更大的存储空间,我选择的方式是为ESP32S3增加TF卡。我目前还是一个设计PCB的业余选手,设计过程中主要参考了nanoESP32-S3和esp32-thing两块开发板,所以PCB中非常可能有不少问题,还欢迎大家指正。
17+
18+
** 电路设计
19+
20+
*** 准备工作
21+
设计PCB需要使用设计工具,我目前使用的工具是[[https://www.kicad.org/][KiCad]]。这是一款开源软件,支持绘制电路原理图和PCB电路,在开源硬件社区比较出名。KiCad8还支持插件工具,可以一键生成提交给PCB厂家的gerber文件,非常方便的。
22+
23+
下面是KiCad8的主界面,在这里创建项目。我创建了一个叫做esp32s3-storage的项目,在左边文件列表可以看到有esp32s3-storage.kicad_sch和esp32s3-storage.kicad_pcb,这两个文件分别代表了电路原理图和PCB电路图。
24+
[[/images/kicad8-main-window.jpg]]
25+
26+
*** 电路原理图
27+
目前电路原理图还比较简单,分为5个部分,分别是电源、USB接口、MicroSD卡、ESP32S3芯片、各种连接器。将各个器件连接好后,实现了一个支持USB或电池供电的有SPI显示接口和MicroSD卡槽的ESP32S3小系统。最后电路图看起来像这个样子。
28+
[[/images/esp32-storage-sch.jpg]]
29+
30+
*** PCB电路图
31+
原理图做好后,再确定好元器件对应的元件封装就可以绘制PCB电路图了。下图就是最后绘制好的PCB电路,图片中红色和蓝色折线是连接电子元器件的导线,带有标识的是元器件的摆放位置。右上边U1就是ESP32S3,右下边J1是USB-C接口,左上角J3是MicroSD卡的位置,左下角J2是5V电池输入接口。右部边缘有两排接口,长的是还未分配的GPIO口,短一点的用于接SPI接口的显示模块。另外还有两个短一点的GPIO接口分布在板子中间。剩下的板面都填充成GND区域,希望能保证信号的稳定。
32+
[[/images/esp32-storage-pcb.jpg]]
33+
34+
PCB电路图做好后,通过插件Frabrication Toolkit(一样通过Plugin and Content Manager安装,直接搜索可以安装)生成gerber文件,提交给PCB厂家就可以制作PCB了。
35+
[[/images/export-production-files.jpg]]
36+
37+
** 后记
38+
本文中的电路原理图和PCB电路文件可以从[[https://github.com/paul356/esp32s3-storage][这里]]下载。PCB厂家的效率很高,我的短文还没有写完,做好的PCB就已经到了。成品长这个样子,除了黑色的油漆层,是不是KiCad8中看起来差不多。下一步就是焊板子,做测试,有进展了再给大家汇报。
39+
[[/images/esp32-storage-real-pcb.jpg]]
40+

_posts/2024-10-12-rust-on-esp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Rust on ESP是一个将Rust引入ESP生态的开源项目,允许我们使用Ru
1919

2020
## 实验步骤
2121

22-
我原来有个在ESP上运行WebDAV服务的想法,这样可以将ESP控制器当成一个移动存储服务器来使用。原来觉得需要自己开发一个简单的WebDAV服务器,但后来看到了开源的Rust项目dav-handler-rs。我想是不是可以将Rust on ESP和dav-handler-rs结合起来,但是之前应该没有人尝试过在ESP控制器上运行过dav-handler-rs,对于将针对服务器环境编写的软件能否在ESP上运行还是不太确定。 我将尝试分成下面几个步骤:第一步先尝试安装Rust on ESP开发环境,然后成功运行一个简单的Rust程序;第二步运行一个http服务器hyper;第三步就是基于hyper运行webdav-handler-rs;最后解决遇到的问题。下面我们一步一步开始实验。最终的项目代码可以在[这里](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/linux-macos-setup.html)下载。
22+
我原来有个在ESP上运行WebDAV服务的想法,这样可以将ESP控制器当成一个移动存储服务器来使用。原来觉得需要自己开发一个简单的WebDAV服务器,但后来看到了开源的Rust项目dav-handler-rs。我想是不是可以将Rust on ESP和dav-handler-rs结合起来,但是之前应该没有人尝试过在ESP控制器上运行过dav-handler-rs,对于将针对服务器环境编写的软件能否在ESP上运行还是不太确定。 我将尝试分成下面几个步骤:第一步先尝试安装Rust on ESP开发环境,然后成功运行一个简单的Rust程序;第二步运行一个http服务器hyper;第三步就是基于hyper运行webdav-handler-rs;最后解决遇到的问题。下面我们一步一步开始实验。最终的项目代码可以在[这里](https://github.com/paul356/esp-webdav)下载。
2323

2424

2525
### 第一步:安装Rust on ESP开发环境
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
layout: default
3+
title: 一种基于ESP32丰富连接能力的移动存储设备 -- 电路设计
4+
tags: [Rust on ESP, ESP32, PCB]
5+
nav_order: {{ page.date }}
6+
sync_wexin: 1
7+
---
8+
9+
10+
# 一种基于ESP32丰富连接能力的移动存储设备 – 电路设计
11+
12+
13+
## 前言
14+
15+
之前我构想过一种[基于ESP32的移动存储设备](https://paul356.github.io/2024/10/31/mobile-storage.html),现在来尝试做一个样机,第一步我觉得先要设计一个专门的PCB。之前我使用了一款ESP32S3开发板来测试如何运行WebDAV,但由于开发板的闪存空间只有几个兆的容量。所以我觉得需要设计一个新的PCB电路,以支持更大的存储空间,我选择的方式是为ESP32S3增加TF卡。我目前还是一个设计PCB的业余选手,设计过程中主要参考了nanoESP32-S3和esp32-thing两块开发板,所以PCB中非常可能有不少问题,还欢迎大家指正。
16+
17+
18+
## 电路设计
19+
20+
21+
### 准备工作
22+
23+
设计PCB需要使用设计工具,我目前使用的工具是[KiCad](https://www.kicad.org/)。这是一款开源软件,支持绘制电路原理图和PCB电路,在开源硬件社区比较出名。KiCad8还支持插件工具,可以一键生成提交给PCB厂家的gerber文件,非常方便的。
24+
25+
下面是KiCad8的主界面,在这里创建项目。我创建了一个叫做esp32s3-storage的项目,在左边文件列表可以看到有esp32s3-storage.kicad\_sch和esp32s3-storage.kicad\_pcb,这两个文件分别代表了电路原理图和PCB电路图。 ![img](/images/kicad8-main-window.jpg)
26+
27+
28+
### 电路原理图
29+
30+
目前电路原理图还比较简单,分为5个部分,分别是电源、USB接口、MicroSD卡、ESP32S3芯片、各种连接器。将各个器件连接好后,实现了一个支持USB或电池供电的有SPI显示接口和MicroSD卡槽的ESP32S3小系统。最后电路图看起来像这个样子。 ![img](/images/esp32-storage-sch.jpg)
31+
32+
33+
### PCB电路图
34+
35+
原理图做好后,再确定好元器件对应的元件封装就可以绘制PCB电路图了。下图就是最后绘制好的PCB电路,图片中红色和蓝色折线是连接电子元器件的导线,带有标识的是元器件的摆放位置。右上边U1就是ESP32S3,右下边J1是USB-C接口,左上角J3是MicroSD卡的位置,左下角J2是5V电池输入接口。右部边缘有两排接口,长的是还未分配的GPIO口,短一点的用于接SPI接口的显示模块。另外还有两个短一点的GPIO接口分布在板子中间。剩下的板面都填充成GND区域,希望能保证信号的稳定。 ![img](/images/esp32-storage-pcb.jpg)
36+
37+
PCB电路图做好后,通过插件Frabrication Toolkit(一样通过Plugin and Content Manager安装,直接搜索可以安装)生成gerber文件,提交给PCB厂家就可以制作PCB了。 ![img](/images/export-production-files.jpg)
38+
39+
40+
## 后记
41+
42+
本文中的电路原理图和PCB电路文件可以从[这里](https://github.com/paul356/esp32s3-storage)下载。PCB厂家的效率很高,我的短文还没有写完,做好的PCB就已经到了。成品长这个样子,除了黑色的油漆层,是不是KiCad8中看起来差不多。下一步就是焊板子,做测试,有进展了再给大家汇报。 ![img](/images/esp32-storage-real-pcb.jpg)

images/esp32-storage-pcb.jpg

325 KB
Loading

images/esp32-storage-real-pcb.jpg

472 KB
Loading

images/esp32-storage-sch.jpg

189 KB
Loading

images/export-production-files.jpg

155 KB
Loading

images/kicad8-main-window.jpg

80.4 KB
Loading

0 commit comments

Comments
 (0)