Skip to content
进阶#开源硬件#GitHub#Arduino#KiCad#SDR#RTOS#学习

附录 I · 开源优秀硬件作品赏析 ​

精选 19 个真实可查的开源硬件与嵌入式生态项目,按类别分组。每条给出仓库链接、一句话简介、License 与可学点。star 数随时间变化,不标注以免过时;链接均为官方仓库。License 列指仓库代码/文档的主要许可证,硬件设计文件可能另有许可(如 CERN OHL、CC BY-SA),商用前要逐目录确认。

I.1 开源硬件设备 ​

项目仓库简介License可学点
Arduino Core AVRhttps://github.com/arduino/ArduinoCore-avrArduino AVR 平台核心源码与板级定义LGPL-2.1MCU 板级支持包(BSP)如何组织
HackRF Onehttps://github.com/greatscottgadgets/hackrf开源软件无线电(SDR)硬件,1 MHz–6 GHzGPL-2.0宽带射频前端、FPGA+MCU 架构
GreatFET Onehttps://github.com/greatscottgadgets/greatfet开源 USB 多用途硬件工具(协议分析/调试)BSD-3-ClauseLPC4330 双核架构、可扩展外设
PortaPack Mayhemhttps://github.com/portapack-mayhem/mayhem-firmware配合 HackRF 的手持 SDR 固件与 UI(活跃 fork)GPL-3.0MCU 驱动 LCD/触摸屏、实时信号处理
DSViewhttps://github.com/DreamSourceLab/DSView开源 USB 逻辑分析仪软件(原 DSLogic 上位机)GPL-3.0高速采样、协议解析、USB 传输

HackRF 仓库根目录的 COPYING 为 GPL-2.0,硬件与固件同仓;复刻 PCB 前仍要逐目录看文件头,并注意 TRADEMARK 里的商标使用限制——商标不随代码许可授权。

I.2 调试与测量工具 ​

项目仓库简介License可学点
Black Magic Debughttps://github.com/blackmagic-debug/blackmagic开源 JTAG/SWD 调试器固件(用于 STM32/ARM/RISC-V)GPL-3.0SWD 协议、CMSIS-DAP、调试器架构
OpenOCDhttps://github.com/openocd-org/openocd开源片上调试(On-Chip Debugging)工具GPL-2.0-or-laterJTAG/SWD 协议栈、与 GDB 配合
sigrok PulseViewhttps://github.com/sigrokproject/pulseview开源信号分析 GUI,解析 I²C/SPI/UARTGPL-3.0多协议解码、跨硬件抽象
logisim-evolutionhttps://github.com/logisim-evolution/logisim-evolution开源数字逻辑设计与仿真工具GPL-3.0门电路建模、时序仿真引擎

Black Magic Debug 仓库已归档(只读),仍可作为 SWD/CMSIS-DAP 实现的学习材料;新项目选型时先确认是否有维护中的分支或替代固件。

I.3 EDA 与设计工具 ​

项目仓库简介License可学点
KiCadhttps://github.com/KiCad/kicad-source-mirror开源 EDA 套件,原理图+PCB 全流程GPL-3.0原理图/PCB 数据模型、封装体系
awesome-electronicshttps://github.com/kitspace/awesome-electronics电子工程师资源精选清单CC0-1.0如何检索与评估学习资源

I.4 MCU 开发框架与 RTOS ​

项目仓库简介License可学点
ESP-IDFhttps://github.com/espressif/esp-idf乐鑫 ESP32 官方开发框架Apache-2.0WiFi/BLE 协议栈、MCU 驱动架构
STM32duino Corehttps://github.com/stm32duino/Arduino_Core_STM32在 STM32 上跑 Arduino APILGPL-2.1 + BSD-3-Clause + Apache-2.0(多许可)如何把 HAL 封装成易用 API
ChibiOShttps://github.com/ChibiOS/ChibiOS轻量嵌入式 RTOSGPL-3.0 / Apache-2.0 双许可实时内核调度、线程模型
FreeRTOShttps://github.com/FreeRTOS/FreeRTOS最广泛使用的开源实时内核MIT任务调度、队列、信号量实现
CircuitPythonhttps://github.com/adafruit/circuitpython在微控制器上跑 PythonMIT解释器移植、硬件抽象设计

STM32duino 的 License.md 同时包含 LGPL-2.1、BSD-3-Clause、Apache-2.0 与 ST 的 SLA0044,不同目录适用不同条款;别把整个仓库简单标成 LGPL。

I.5 图形与中间件 ​

项目仓库简介License可学点
LVGLhttps://github.com/lvgl/lvgl开源嵌入式图形库(GUI)MIT小屏幕 UI 渲染、控件体系
TinyUSBhttps://github.com/hathach/tinyusb开源 USB 协议栈(Device/Host)MITUSB 枚举、类驱动、多设备支持
Awesome-Embeddedhttps://github.com/nhivp/Awesome-Embedded嵌入式学习资源精选清单Unlicense嵌入式学习路径与工具链选型

I.6 学习建议 ​

<>
  • 先读 README 与硬件设计文档:看它解决什么问题、架构怎么分(MCU/FPGA/模拟前端)。
  • Clone 仓库看目录结构:固件怎么分层(BSP/驱动/中间件/应用),可直接套用到自己项目。
  • 重点看 schematic 与 layout:如 HackRF/GreatFET 的射频前端、去耦、屏蔽做法,比书本直观。
  • License 意识:GPL 类传染性强,商业产品直接抄代码要小心;MIT/BSD/Apache 宽松,可放心参考,但仍要保留版权声明。
  • 从能跑的最小 demo 开始:先把 Blinky/串口跑通,再逐层读驱动。
  • 看 issue 与 commit:活跃项目的 issue 区是最好的“故障案例库”,比教程更接近真实工程。

I.7 许可证速读 ​

类型代表许可证能做什么要注意什么
宽松MIT、BSD-2/3、Apache-2.0商用、修改、闭源分发保留版权与许可声明;Apache-2.0 含专利授权与 NOTICE 要求
弱 copyleftLGPL-2.1/3.0动态链接到闭源程序修改库本身要开源;静态链接有额外义务
强 copyleftGPL-2.0/3.0商用、修改衍生作品分发时必须以同一许可证开源
公共领域CC0-1.0、Unlicense几乎无限制无担保;专利与商标不在授权范围
文档/硬件CC BY-SA 4.0、CERN OHL复制、修改、制造署名 + 相同方式共享;硬件许可对制造/销售有专门条款

许可兼容性没有“万能答案”:把 GPL 代码静态链接进闭源产品、把 CC BY-SA 的图纸直接商用、把“开源硬件”当成“可以随便抄”,都是常见误区。真要做产品,逐文件看 SPDX 标识,必要时找法务。

I.8 速查自检 ​

GreatFET 和 HackRF 的许可证分别是什么?

GreatFET 是 BSD-3-Clause;HackRF 仓库根 COPYING 为 GPL-2.0(硬件与固件同仓)。两者都鼓励二次开发,但 GPL-2.0 的传染性强于 BSD。

为什么 Black Magic Debug 不能算“活跃仓库”?

它在 GitHub 上已归档(archived,只读),issue/PR 不再合并;学习可以,选型要另找维护中的分支或替代。

MIT 和 Apache-2.0 最大的区别是什么?

两者都宽松,但 Apache-2.0 明确授予专利许可、要求保留 NOTICE 并声明修改;MIT 只有版权与许可声明要求,更短更简单。

GPL-3.0 固件能不能用在自己的商业产品里?

可以销售,但分发时必须提供对应源码并同样以 GPL-3.0 授权;如果无法开源自有代码,就不要把 GPL 代码静态链接进产品。