显示HN:F32 – 一个极小的ESP32板
Show HN: F32 – An Extremely Small ESP32 Board

原始链接: https://github.com/PegorK/f32

## f32:超紧凑的ESP32开发板 f32是一款非常小的ESP32-C3开发板,尺寸仅为9.85mm x 8.45mm,设计用于直接连接到USB-C端口。它最初是作为研究项目和设计挑战而创建的,有意通过省略标准设计元素(如适当的退耦和天线匹配)来突破界限。 f32具有一个连接到板载LED的单个外露GPIO,最适合WiFi/Web开发。提供了一个 captive portal 应用程序,将板子变成一个接入点,允许用户通过网页界面与基本功能(如LED控制和WiFi扫描)进行交互。 最初的连接问题通过向芯片天线添加一个简单的手工焊接的天线来解决,在视线清晰的测试中实现了大约120英尺的范围。PCB由PCBWay制造,五块板子的成本仅为10.75美元,并使用助焊剂和热板/热风枪手动组装。 虽然功能完备,但f32有意“极简”,作为实验平台,潜在的改进包括外露GPIO和改进的天线设计。

## 黑客新闻上的微型 ESP32 板项目 一位名为“pegor”的用户在黑客新闻上分享了他们的项目:创建一个具有功能性 WiFi 的极小 ESP32 板(github.com/pegork)。该项目被描述为一项实验,旨在探索板子可以做到多小。 最初的反响是积极的,评论者赞扬了文档。有人对天线设计提出了担忧,建议优先考虑更大的芯片天线和更多的 GPIO 引脚,以用于实际的物联网应用。 几位用户指出已经存在类似的小型板子,例如 LilyGo T01-C3。 Pegor 承认天线需要改进,并同意更多的外露 GPIO 引脚会增加功能。 总的来说,即使其实用性受到尺寸限制,该项目仍然被认为是一项有趣且富有洞察力的尝试。
相关文章

原文

Logo Render

The f32 is an ultra-compact ESP32 development board designed to mount directly behind a USB-C receptacle. The PCB measures just 9.85 mm x 8.45 mm. It's powered by the ESP32-C3FH4 microcontroller and was created primarily for research and as a bit of a stress test for the ESP32, since it intentionally ignores many standard design guidelines. There's only one exposed GPIO and it is connected to an onboard LED, so most of the development on here would be more catered for wifi/web.

To test the f32 an example application was created that users can interact with. The application turns the f32 into a captive portal so when it's powered on it will show up as an open access point that the user can select from available WiFi networks. The user is then automatically sent to the f32's control page where they can interact with some of its basic functionality such as turning on an LED or scanning for surrounding WiFi networks. There's also an "About" page that provides a small overview of the device. Below are some screenshots and a gif of interacting with the device.


Initially the f32 didn't seem to want to work. I couldn't get it to connect to any networks or broadcast it's own network. Im 100% sure this is due to the poor antenna circuitry or lack of, but I did manage to get it functional after adding an additional tiny antenna onto the chip antenna as seen in the picture below. This was just a piece of bent wire soldered to the end lead and floating above the first lead.

Since I don't have fancy signal testing equipment I relied on some manual testing such as seeing if I can still connect to the device and control the LED. In a clear line of sight test with the f32 placed about 3ft off the ground I was able to connect and perform scans/control the LED at roughly 120ft! This can be seen in my highly necessary depiction below.

PCB

The PCB was designed using DipTrace and manufactured by PCBWay with a board thickness of 0.6mm, min hole size of 0.2mm, and min track/spacing of 4/4mil. At the time of making this it only cost $10.75 for 5 boards shipped! That still blows my mind. PCBWay does also offer assembly services, but I chose to assemble this at home and suffer a bit. This took a bit of trial and error with such small parts, but I decided the best way for me was to ditch the stencil and make flux my best friend.

Tools & parts used:

Steps to building one:

  • Send the gerber file f32_gerber.zip found in the hardware folder to PCBWay with the specs mentioned above.
  • Order the components noted in f32_bom.pdf. These parts can be found on both DigiKey and Mouser except the antenna. I don't remember where I had originally ordered them, but I believe they are CrossAir CA-C03.
    • ** Tip: Always order more than you need, especially with components as small as these.

  • Clean the pcb really well with 99% Alcohol.
  • Starting with the top side (Antenna side) apply a thin layer of soldering flux across the entire board using a tooth pick.
  • Using a soldering iron with a fine tip apply some solder to the tip and then go across all the exposed pads.
  • Clean the board again with 99% alcohol and verify all the pads on this side have some solder on them.
  • Apply another thin layer of flux to the same side.
  • Using tweezers and a microscope/loupe start placing the top components following the reference guide f32_reference.pdf.
    • ** Tip: I found placing the larger components last helps.
  • Gently move the board onto the soldering hotplate or use the rework station to heat the solder back up and watch the components wiggle into place.
  • Repeat with Bottom side.
    • Bottom side must be done using a rework hot air gun, not possible with hotplate.
    • Place the USB-C receptacle last.
  • Clean entire board using alcohol and a fine toothbrush.

After assembly you can use ESP-IDF VSCode extension or Arduino and upload whatever you'd like to the board or you can upload my example application using the steps below.

  • Make sure you are in the base directory of this repo and have access to esptool.py.
  • Make sure your esptool version is at v4+
  • Run the following command replacing <PORT> with whichever port the device is connected to i.e. on Windows typically something like COM5 or on Linux /dev/ttyACM0
esptool.py -p <PORT> -b 460800 --before default_reset --after hard_reset --chip esp32c3 write_flash --flash_mode dio --flash_freq 80m --flash_size 2MB 0x0 firmware/bootloader.bin 0x10000 firmware/f32_internal.bin 0x8000 firmware/partition-table.bin 

Well that's up to you to decide. I started this project for some personal research and also a fun learning experience. I had always wanted a project that used 01005 components ever since I had accidentally ordered some years ago. Whatever you choose to use it for, please note that this design intentionally neglects several fundamental components such as proper decoupling capacitors, an antenna matching circuit, USB termination resistors, and likely more. It does function, but it’s intentionally bare.

  • Expose more GPIOs on the sides of the PCB to make it a mountable PCB.
  • Improve antenna circuitry.

Lastly, fun coincidence, the ESP32 chip, the antenna, and the LDO all are "C3" models!

联系我们 contact @ memedata.com