更现代的嵌入式开发工具?面向多平台的全集成 RISC-V IDE – MounRiver Studio II 上手体验

最近一段时间都在用沁恒家的 MCU 开发一些小玩具,例如 CH32V003、CH585 等。之前开发的项目,工程和工具链都是使用的 Visual Studio Code + PlatformIO 插件来管理的,整体用起来也还算方便。

前段时间发现沁恒发布新版本的 MounrRiver Studio II框架换为了 Visual Studio Code,另外更重要的是,除了 Windows/Linux 系统外,还支持 macOS 操作系统 啦~这不得赶紧下载体验一番。我也在网上搜索了一下,本身 MCU 厂商提供 IDE 的就不多,基于 Visual Studio Code 开发并且集成全套 RISC-V 工具链就更少了,不得不说沁恒在开发者生态的建设上还是花了功夫的。

这次就拿之前开发过的基于 CH32V003 的 UVLED 紫外固化灯固件项目,来试试新 MounrRiver Studio II 好不好用~

PS. 为了打字方便 MounrRiver Studio …

阅读全文 »

玩 ESP32 和 Arduino 的同学一定不能错过这个在线仿真网站

玩 ESP32 和 Arduino 的时候,经常会碰到手边没有对应的板子或者元器件的情况,这个时候又想测试固件的话,就非常麻烦了。

这个时候在线仿真服务 Wokwi 就可以派上用场了。

我还是在之前找一些开源项目的时候接触到了 Wokwi 这个仿真服务,用了一下感觉还挺方便,特别是在想快速验证一个代码是否有效的时候。

Wokwi 相比我刚开始用的时候,支持了更多的平台,已经不再是只有 ESP32 相关的开发板了,还有 STM32、树莓派 Pico 之类的。现在似乎发展还挺好,搞了不少服务出来,支持 VS Code 和 CI 什么的。

另外如果不喜欢在线工具,也可以看看之前分享的电脑上模拟器《Arduino玩家必备,SimulIDE电路模拟器》,外设可能不如 Wokwi 丰富,但是也基本够用。

Wokwi 优势

相比于自己购买硬件、使用面包板搭建测试电路,Wokwi 还是有一定优势的,在原型验证阶段,可以省掉不少事情。

  • 成本门槛: 开发板、元器件、传感器、工具(万用表、示波器)的购买成本。
  • 时间等待: 采购、物流、焊接、组装耗费大量时间。
  • 物理限制: 场地、电源、设备携带不便;易损坏(短路、烧芯片)。
  • 试错成本高: 代码错误可能导致硬件损坏。
  • 协作困难: 团队成员/师生间共享和复现硬件环境复杂。
  • 快速迭代难: 想法验证需要反复搭建电路,效率低。

当然,作为一个服务网站,也要生存,在使用过程中,可能还是会时不时碰到需要付费才能获得更好体验的情况 🙈,例如创建私有工程、编译时间长等问题,都需要付费。

整体界面

Woki …

阅读全文 »

AI 干了一半活,做个 LCD 模拟辉光管时钟

这是一个为了一碗醋包了一盆饺子的故事。

之前为了测试 AI 写单片机代码能不能行,用 Manus 测试了一下,过程可以看这篇 《AI 编程在嵌入式开发中能用吗?体验 Manus 编写 ESP32 固件》,简单来说:能用。

这不为了让 AI 写出来的固件有用武之地,得把整个硬件开发完~

不过好在整个项目比较简单,而且单片机 ESP32-S3 直接用了现成的模块,PCB 几乎没有什么复杂的线路,就 LCD 的 PCB 有几个小一点的元件,主板 PCB 全都用了 2.54mm 的插件。

AI 生成数字图片

之前只介绍了固件是用 Manus 生成了,但是实际上,每个屏幕展示的模拟辉光管效果的数字图片,也是让 AI 生成的。

不过这次是让 ChatGPT 生成的,现在这些 AI 工具,简单是没有设计能力的工程师的福音,想要啥效果,吩咐 AI 就行了 😃。

提示词:

请生成辉光管效果的10个数字,包含数字 0 1 2 3



阅读全文 »

AI 编程在嵌入式开发中能用吗?体验 Manus 编写 ESP32 固件

前段时间买了个 0.96 寸 80x160 的 LCD 屏幕,想要做一个模拟辉光管的时钟。

这第一步就用上了 AI,用 ChatGPT 生成了辉光管效果数字的图片,然后按数字裁切成 0-9 十张图,生成对应的图片 RGB565 格式数据,测试了一下,效果还不错。

视频

然后我就在想,那这个时钟的固件,是不是也可以用 AI 来生成呢?AI 现在已经验证了写一些前端项目相当高效,在嵌入式开发领域,是不是也可以有同样的能力,至少可以完成一个简单的项目?

刚好 Manus 开放注册了,我就拿它来尝试一下看看效果怎么样。

功能需求

为了防止项目失败,先把功能定义得简单一点,就是通过 ESP32 控制 6 个 LCD 来显示上面裁切生成的数字图片,并且需要提供 API 更新图片、AP 配置能力。

提示词

这里为了让生成的项目更可控,提示词中明确了工程框架为 PlatformIO,引脚使用宏定义等能力,

请使用 platformio + arduino 框架帮我写一个 esp32-s3 固件,实现以下功能:

  • 控制 6 个 st7735 驱动的 lcd


阅读全文 »

拆了!那个众筹 500 万美元的 JetKVM,看看内部长什么样

之前已经开箱试用了 JetKVM,这次再给它拆解一下看看结构设计和 PCB 设计,以及用的芯片方案等。

外壳

JetKVM 小小的拿在手里挺有份量,就先来秤一下看看多少重。

整体重量

整体 138 克重,加上体积小,拿在手上感觉压手也挺合理 😃。

jetkvm-teardown-1

后盖

把后盖顶上两个螺丝拧下来,就可以将后盖拆下来了。

jetkvm-teardown-2

外壳重量

去掉 PCB,去掉屏幕,光外壳就有 112 克,纯金属外壳还是比较有质感的。

jetkvm-teardown-3

主板

把固定主板的两个螺丝柱拆掉,就可以将主板抽出来了。

屏幕排线是使用抽屉式 FPC 连接器安装的,把抽屉拉开就可以将排线分离了。

jetkvm-teardown-4

芯片方案

把主板拆出来之后就可以看到 PCB 上的各个芯片了。

PCB 顶面:

jetkvm-teardown-5

红色:RV1106 主控 SoC

RV1106 是瑞芯微 Rockchip 面向边缘 AI 和摄像应用的 SoC,ARM Cortex‑A7 内核,主频 1.2 GHz,并集成 RISC‑V 辅助 MCU 核用于快速唤醒及 AI 模型加载。…

阅读全文 »

众筹了 500 万美元的 IP KVM 有多强?JetKVM 开箱试用

之前就在 X 上看到了这款 IP KVM JetKVM 在 KickStarter 众筹,没想到支持者已经到了 40000 多人,众筹总金额超过了 500 万美元,看样子 HomeLab 爱好者们对于 IP KVM 的需求挺旺盛的。

最近我也搞来了一台 JetKVM,开箱试用一下看看是不是真的那么强,能让这么多爱好者下手购买了这款 IP KVM。

开箱

包装

JetKVM 的包装还是相当简洁的,正面就是本体照片加上 slogan “Control any computer remotely”。

另外包装上还特别说明了是开源的 IP KVM,这点应该会很吸引开发者用户,想搞点什么定制,直接自己上手改就可以了。

jetkvm-unboxing-2

包装内的东西也比较简洁,一个主体 + 配件包 + 说明书就是全部了。

jetkvm-unboxing-3

主体

整个 JetKVM 主体相当小巧,尺寸只有 43mm 32mm 60mm,大约就是一个 AirPods 充电盒的大小。

全金属外壳,拿在手里沉淀淀的,配合阳极氧化工艺,质感相当不错。

正面是一整块 …

阅读全文 »

还记得那个信用卡大小的纯 PCB 键盘吗,这回有固件了~

之前分享了一个纯 PCB 实现的键盘 《一个开源纯 PCB 键盘项目,只有信用卡大小》,不过原作者分享的 PCB 中存在不少问题,包括 MCU GND Pad 未连接、天线设计可能不合理等,以及作者一直没有完成可工作的固件,因此一直也没能让它真正跑起来。

不过最近在 GitHub 上找到另外一个开源实现,设计还是参考了原作者,但是新方案更换了 MCU 为 CH585,并且是实际打板验证过了的纯 PCB 键盘,也已经有一个可运行的固件可供使用。

项目地址: https://github.com/openwch/ch585

CH585 介绍

官方产品介绍: https://www.wch.cn/products/CH585.html

CH585 是集成 BLE 无线通讯和高速 USB 及 NFC 的 RISC-V MCU 微控制器。片上集成了 2Mbps 低功耗蓝牙 BLE 通讯模块、USB 全速控制器及收发器、USB 高速控制器及收发器(480Mbps)、NFC 近场通信无线接口、段式 LCD 驱动模块、LED 点阵屏接口、2 个 SPI、4 …

阅读全文 »

电流15uA续航1年?CH32V003低功耗应用尝试

在几周前,我尝试了用 CH32V003 这颗几毛钱的 MCU 来驱动电子墨水屏(文章见 《7毛钱的 MCU CH32V003 驱动 1.54 寸电子墨水屏》),主要是为了想试试低功耗应用的开发。

之前一直玩的 ESP32,总体来说功耗还是比较大,在查了 CH32V003 的手册之后,看到它的待机模式电流可以到小于 10uA,就准备试试看。

PS. 这篇主要是从一个新手的角度去了解了一下低功耗应用开发,以及记录在功耗优化中踩的坑,如有不足或差错,还请指点。

应用设计功能目标

之前已经完成了墨水屏的驱动,大概设计了一些这个设备的功能目标:

  • 每 10 分钟更新一次屏幕,显示与标记时间的间隔
  • 如果没有按住功能键,唤醒时只更新屏幕
  • 续航可以到达半年以上

另外这里用了 RTC 芯片作为时钟,查了数据手册,功耗 0.1uA 以内,就不用额外考虑了 🙈。

最近一直在用的 MCU 是 CH32V003,比较熟悉,主控还是选它了。

CH32V003 的低功耗模式

CH32V003 官网:https://www.wch.cn/products/CH32V003.html

根据 CH32V003 的数据手册,它提供了两种低功耗模式:

  • 睡眠模式
  • 待机模式

这里因为应用本身在大部分时间里,MCU 都不需要工作,也不需要刷新屏幕,为了达到最长续航时间,就选用待机模式了。

ch32v003-low-power-dev-2

待机模式电流

在数据手册里可以看到,3.3V …

阅读全文 »

7毛钱的 MCU CH32V003 驱动 1.54 寸电子墨水屏

放假了玩点轻松的,最近为了玩电子墨水屏,搞了个电子墨水屏驱动板,用 ESP32 来驱动是很方便了,不过想试试用 CH32V003 这种入门级的芯片玩玩看,顺便也学习一下墨水屏的驱动。

这里使用的墨水屏是 1.54 英寸,通信接口是 SPI,驱动代码直接找了微雪的示例程序改写成使用 CH32V003 的库。

硬件连接

CH32V003 有一个 SPI 接口,这里与电子墨水屏通信使用四线 SPI,需要额外准备一个 DC 引脚,SPI MISO 不需要使用,这里直接悬空了。

除了标准的 SPI MOSI、CLK 需要使用指定的引脚,其他引脚都使用软件方式操作,特别是 SPI CS,这里连到了 PD3。

墨水屏其他几个引脚的连接:

  • CS -> PD3
  • BUSY -> PD2
  • DC -> PC4
  • RST -> PC3

ch32v003-eink-driver-1

使用 SPI 总线

SPI 驱动直接使用 CH32V003EVT 中的例程就可以了,不过需要注意的是,例程中的一些参数需要根据墨水屏的特性进行修改,主要修改有以下几个地方:

  • SPI_DataSize:需要修改为 8b


阅读全文 »

小智 AI 通信协议补漏,通过OTA接口注册设备

上周整理了一下小智 AI 的 WebSocket 通信协议,《复刻小智AI第2步,2张核心流程图学习一下它的WebSocket协议》,后面在调试时发现了一个缺失的点,就是漏掉注册设备这一步。

一开始还对配置文件中的 "OTA_VERSION_URL": "https://api.tenclass.net/xiaozhi/ota/", 字段比较费解,好像整个通信过程中也没有用到的地方,而且在 py-xiaozhi 中也不存在固件的概念。

另外因为跑示例的时候,用的 Client-IdDevice-Id 都是从仓库中直接拿的,应该是已经在服务器已经注册过了,只需要额外添加设备即可,所以一直没发现这个问题。

后来在手动修改 Device-Id 的时候终于发现了,仔细研究了一下 xiaozhi-esp32py-xiaozhi,再自己操作了一下,总算搞明白了。

问题

如果在设备启动时,不经过设备注册过程,那么在开始对话之后,服务端会返回没找到设备版本信息的语音,而不是在后台添加设备。

2025-04-21 14:51:23,295 - WebSocketClient - INFO - 收到JSON消息: {"type":"tts","state":"sentence_start","text":"没有找到该设备的版本信息,请正确配置 OTA 地址,然后重新编译固件。","session_id":"14328015"}

这个时候,不管怎么对话,服务端都只会返回这一句。

py-xiaozhixiaozhi-esp32 项目中,都是会在启动阶段进行 OTA 固件版本检查,因此我们也需要在加载配置时,先进行 OTA 版本检查这一步,同时完成设备注册。

注册设备

注册设备也很简单,构建一个固件信息的 …

阅读全文 »