惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
Y
Y Combinator Blog
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
M
MIT News - Artificial intelligence
博客园 - Franky
V
Visual Studio Blog
I
InfoQ
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
博客园 - 司徒正美
L
LangChain Blog

博客园 - elysium

清除百度智能看图 【开源】多端口太阳能USB充电器 关闭Cadence Allegro Design Entry CIS(OrCAD Capture)的Start Page 【开源】绿联145W能量π外壳 【开源】雷凌/卡罗拉中控台多功能时钟 【开源】用香橙派Zero 2W做安卓电视机顶盒 【开源】蓝牙耳机改装蓝牙音箱 【开源】T430s光驱位支架 【开源】讯飞VBOX改装蓝牙5.0(aptX HD)音箱 【开源】雷凌/卡罗拉蓝牙5.0(aptX HD)接收器 【开源】2.5寸硬盘盒 【开源】Si4703调频收音机 【开源】USB电源延时缓启动器 【开源】INA219功率计 【开源】QN8027调频发射机 小工具Go-Go-Gadget 【开源】EP3C25Q240扩展板1 【开源】TDA2030A 2.1声道功放板 【开源】EP3C25Q240开发板 使用Jupiter的附加说明
【开源】给荣耀盒子MediaQ M321增加自动进应用界面功能及扩展...
elysium · 2024-10-20 · via 博客园 - elysium

很多年前买过一个荣耀盒子,型号是MediaQ M321。这个盒子很精致,是我看到过的安卓机顶盒里面最小巧、紧凑的。主芯片型号是Hi3798Mv100,支持4K,虽然有点过时,但依然能用。这个机器最大的缺点是虽然可以安装app,但启动后第1屏是节目推荐,而应用列表在第7屏,开机后要按好几次遥控器按钮才能打开app。系统禁止第三方app自启动,因此第三方桌面没有用武之地。root非常困难,尝试了很多方法都失败了。串口的发送方向可以打印日志,但接收方向被屏蔽。也没有第三方电视机顶盒固件可以刷。它家的(包括它的老东家的)产品历来可玩性很差。

想到一个办法,就是在机器启动完毕后给它发几个遥控按键指令跳到第7屏,这得做个电路板,用单片机分析串口的启动日志,检测到启动完毕后发送红外遥控指令。在研究荣耀盒子PCB的过程中顺带发现还有一路USB留了1.27mm间距的4针接口,正好可以扩展一路USB接口(原来只有一路USB和一路Micro SD)。测量完尺寸后开始着手设计原理图和PCB。手上有很多STM32L433RCT3料板,就用它做主控了,正好可以做低功耗,完成使命后休眠。原理图很简单,控制方面是串口接收数据,然后出一个漏极开路的GPIO和红外接收头集电极开路的输出脚进行“线与”(不必做38KHz调制);USB扩展则是1.27mm 4P转USB TypeC。PCB做1mm板厚,可以完全塞进外壳内。软件方面用到了DMA、空闲中断模式的LPUART、STOP2模式休眠和LPUART唤醒。软件流程为上电后单片机内核80MHz全速运行,检测到机顶盒启动特定阶段的串口日志后延时输出几个红外遥控指令。机顶盒超过25秒没有串口输出(比如启动完毕或者关机)则单片机进入休眠模式。机顶盒的任何串口输出都会唤醒单片机。

调试时实测单片机全速运行电流为10mA,休眠电流小于1mA(按手册是几μA)。实物如下:

测试自动发指令和扩展USB功能如下:

扩展USB TypeC特写:

背面开窗后盖不锈钢板(铝块+导热硅胶垫导热):

附件(含原理图、源代码、启动日志、休眠日志、遥控波形)

使用闲鱼扫描此二维码可进店购买空白PCB