Lexsion's Blog - 博客文章
type: channel
link: https://lexsion.com/index.php/category/blog/
items: 测音量不能只看分贝！声音大小的衡量与单位dB、dB(A)、dB(C)的概念
items: BL-RM7620N折腾笔记
items: 使用SSH连接GitHub仓库
items: J-Link V9 使用7.x工具包提示 Probe 为 Clone 产品的处理
items: Arduino MKR Zero 上手笔记
items: Freenom域名注册的常见问题与自动续期
items: 斐讯N1刷CoreELEC实录
items: Windows系统下载安装 Blackmagic Disk Speed Test
items: 为路由器刷入第三方固件——以ASUS ACRH17刷OpenWrt为例简述其思路
items: HP39gs计算器改装锂电池供电

测音量不能只看分贝！声音大小的衡量与单位dB、dB(A)、dB(C)的概念
type: item
date: 2026-02-01T18:02:00+08:00
description: 你有没有想过？为什么指甲刮过黑板那微弱的刺啦声，能让你瞬间全身起鸡皮疙瘩。而远处滚滚而来的雷声虽然震得窗户乱颤，你却能安然入睡？ 如果说声音的能量值，肯定是撼动窗户的低沉雷声更强。但刮黑板的高频声音却更让我们人耳难以忍受。由此我们知道了，人耳对不同频率声音的感知能力是不一样的。 声压（Sound Pressure）： 声压表示声音在空气中传播时引起的空气压强变化，这是一个客观的物理量，其单位是帕斯卡 (Pa)。 响度（Loudness）： 响度是人耳对声音强弱的主观感觉，也就是你觉得它“有多响”。基于进化的选择，同样声压下，我们的耳朵对中高频（如人声、婴儿哭声）极为敏感，但对低频（如低音炮的震动、远处的空调外机声）较为钝感。为了衡量人耳的感受，人们引入了响度这一概念。 声压级 (SPL)： 声压级它表示当前声压是基准声压（20uPa）的多少倍。用分贝（dB）表示，它实际不是一个物理单位，更不能称为声音大小的单位，而是一个比例关系。 之所以要把声压转换成声压级的表示方法，是因为耳朵能听到的最小到最大的声压，相差百万倍。人们为了少写点零，引入了对数运算。 声压级 $L_{p}$ 的计算公式如下： $L_{p}=20\log _{10}\left(\frac{p_{rms}}{p_{ref}}\right)\text{\ dB}$ 其中各个字母代表： $p_{rms}$ (待测声压)： 你实际测量到的空气压力波动值（单位：帕斯卡 Pa）。 $p_{ref}$ (基准声压)： 人耳刚能听到的声音压力，是一个固定值：$2\times 10^{-5}$ Pa（即 20微帕）。 $\log _{10}$： 以10为底的对数运算，负责把巨大的倍数关系“压缩”成小的数值。 计权（Weighting）： A 计权 (A-Weighting)：模拟“普通耳朵” dB (A) 是通过 A 计权网络 修正后的声压级，核心是模拟人耳对中高频敏感、对低频不敏感的听觉特性（贴近人类日常环境中对声音的主观感受）。 人耳在较低声压级（约 40 dB）下的听觉反应。在这一曲线中，低频部分的凹陷非常明显，意味着人耳对低频非常迟钝。 “虽然大家都叫它单位，但 dB（A）其实更像是一个带了‘人耳美颜滤镜’的数值评分。” C计权一般用于测量：语音与话音、环境噪声、职业健康。 C 计权 (C-Weighting)：模拟“大声状态” dB (C) 是通过 C 计权网络 修正后的声压级，核心是模拟高声压环境下人类的听觉特性—— 此时人耳对低频的敏感度提升，听觉响应接近线性。 大音量（>85dB）下人耳对低频更敏感（听觉变平坦了），所以 C 计权的曲线也更平直。 C计权一般用于测量：重工业噪声、音响系统、峰值冲击。 A计权与C计权衰减情况对比： 频率 (Hz) A 计权衰减 (dB) C 计权衰减 (dB) 差距（A比C多减） 31.5 -39.4 -3.0 ~36 dB 63 -26.2 -0.8 ~25 dB 125 -16.1 -0.2 ~16 dB 250 -8.6 0 8.6 dB 500 -3.2 0 3.2 dB 1000 0 0 一致 2000 +1.2 -0.2 +1.4 dB 4000 +1.0 -0.8 +1.8 dB 8000 -1.1 -3.0 -1.9 dB 行业测试注意事项： 标准优先原则：某些行业标准中有自己的计权方式选择要求。如自动电话技术标准中明确指出，要使用A计权测量。 数值对比前提：不同加权的声压级不可直接对比，加权不同没有可比性。例如，某个话机振铃最大声音 dB (A)=80dB、dB (C)=85dB，不能说“C计权测到的声音更大”，而是C计权计入了更多低频部分贡献。 测试条件标注：撰写报告时，必须写明测试条件，否则数据没有意义。比如65dB(A)@1m ，表示 “使用A计权方式在1m处测到的声压级数值”（针对计权标注，国际标准（如 ISO 80000-8）建议的严谨写法应该是 $L_{pA}=65\text{\ dB}$） 特殊情况下的灵活变通：有时我们测的产品明显有低频噪声时，我们要测量其具体情况，便可能需要补充测量C计权下的声压级数值，以备参考。 总结： 声压级（SPL）不是声音大小的物理单位，它只是表示声压大小的方法。 dB：反映了声压相对基准的倍数（声压级），是未加权的原始值。 dB(A):模拟人耳常规声压级感受的 “实用指标”，多用于合规性测试、反映实际体验的测试（最常用）； dB(C):模拟人耳高声压下感受，因为低频衰减小，也可以认为是完整能量的测量。用于大功率设备或要关注低频部分的测试中。

BL-RM7620N折腾笔记
type: item
date: 2023-12-17T11:35:00+08:00
description: 事情起因是这样的。公司搬家捡垃圾，捡到了一路由器，看网口四根针，确认是百兆的垃圾路由器。本想丢掉，但后面标签写的制造商不太常见，所以捡回来拆了看什么方案。拆开看了眼板号是BL-RM7620N，布线一眼就知MT7620N，但串口上焊了一枚CC2530模组，看起来与Zigbee有关。那我必须登上管理页面看看。 OpenWrt 安全模式 通过自动获取IP，获得了路由器管理页面地址，登上去看到是运行的OpenWrt 14（Barrier Breaker）。尝试使用常见的弱口令登录，发现都登不上。接下来能做的就是清除掉密码啦。 与常见的消费级路由器相比，OpenWrt不能通过长按Rest恢复默认设置（这种自定义固件恢复默认设置后，它的密码可能我也不知道）。经过一番搜索，了解到OpenWrt内置了安全模式（failsafe mode）用于在忘记密码或配置错误后进行恢复，如果编译时不取消掉，默认该模式是提供的。 进入安全模式的方式有两种：在系统的启动过程中按下物理按键不松手、通过串口在系统提示按 f 和 Enter 进入 failsafe mode时输入按键。一旦进入安全模式，OpenWrt会绕过几乎所有的配置，使用192.168.1.1作为IP地址启动必要的服务。然后手动设置计算机IP为192.168.1.2，即可无需密码使用 telnet 连接并修复某些错误。 第一种方式通过按键进入。这很难把握时机，按键过早会进入Bootloader，按键晚了进不去安全模式。笔者试了几次没成功就放弃啦。 第二种方式通过串口进入。把上面的ZigBee模组拆除，暴露串口。通过USB2TTL线连接到计算机，注意只连接GND、TXD、RXD就好，TXD与RXD要交叉连接呦。波特率57600，打开串口，路由器插电开机，没一会儿，串口开始打印SPI Flash分区布局等启动信息，然后就看到了期望的failsafe mode提示信息： Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level 此时，通过键盘输入 f ,然后按 Enter 键，就会看到 - failsafe - 的提示信息，然后显示BusyBox shell界面，成功进入安全模式。 进入安全模式后，我们需要通过 mount_root 命令重新挂载分区才可以写入配置文件，否则就会提示要修改的文件是Read-only file system。 root@(none):/# mount_root jffs2 is ready 然后输入 passwd 根据提示两次输入同一密码即可更改密码。 root@(none):/# passwd Changing password for root New password: Retype password: Password for root changed by root 然后通过 reboot -f 命令重启OpenWrt，即可使用新设置的密码登录。 注：通过 uci get network.lan.ipaddr命令可以获取路由器IP地址配置，通过 mtd -r erase rootfs_data命令可以恢复默认配置。 刷机 登录管理页面后大失所望，Luci的界面干净的很，没有什么好康的。考虑这玩意儿不知道里面有啥东西，打算刷个机丢公司让他继续发热。就用SNR CPE-W4N rev. M的固件，他们PCB、Flash容量一毛一样。 通过密码登录Luci后，直接固件升级新的OpenWrt sysupgrade文件就可以。或者按住RESET键上电在Bootloader里面升级也可以。 # Stable Release 版本下载地址： https://downloads.openwrt.org/releases/ # Development Snapshot 版本下载地址： https://downloads.openwrt.org/snapshots/targets/ SSH登录 刷完机发现打不开管理页面了，不慌，SSH上去看看。然后我丢，SSH怎么也上不去，仔细一看，是本地计算机发现对端的验证信息改变了： C:\Users\Lexsion>ssh root@192.168.1.1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@…

使用SSH连接GitHub仓库
type: item
date: 2022-03-10T21:34:00+08:00
description: 前言： 前置基础： 通过SSH连接： 检查已有的SSH密钥对 生成新的SSH密钥 在 Git for Windows 上自动启动 ssh-agent 添加SSH 公钥到 GitHub 帐户 测试 SSH 连接 将远端仓库的 URL 从 HTTPS 切换到 SSH 参考： 前言： 讲一个笑话：最近给新电脑装Git工具，才意识到自己之前用SSH连接GitHub的方法居然是错的。是这样的，我配置了密钥对后依然在使用之前配置的浏览器登录。这次换新电脑，之前没有登录GitHub，新装的Git工具。跟着官方文档配置完成后，git push -u origin master 居然还弹出登录页面，然后我才意识到之前错了。使用SSH连接仓库和创建仓库时GitHub教你的方法两者协议是不一样的，网页上给的参考命令是用的HTTPS。这些其实在开始使用Git文档中有的，只是不仔细看容易忽略。官方的SSH连接操作文档半中半英可读性也不够好，第一次读的时候没看仔细。以上教训告诉我们，学习不能急于求成，基础要仔细掌握。所以鄙人在此水贴一篇，算是个基础教程吧。（看我不如通读GitHub的文档？） 前置基础： GitHub是一个提供Git服务的网站。Git是一套版本控制工具。所以，使用GitHub除了一些网页上的设置，其主要功能就是使用Git。首次使用Git首先要下载安装，然后便是要配置用户名和邮箱，建议设置成和GitHub上相同的。配置分为全局配置和仓库配置，全局就是没有仓库配置时默认的用户信息；仓库的就是单独某个仓库生效的。下载安装程序运行，一路点击下一步，装完Git后便可以打开Git Bash啦。 # 设置全局配置： git config --global user.name "github's Name" git config --global user.email "github@xx.com" # 设置仓库的配置,要在仓库目录下执行： git config user.name "git's Name" git config user.email "git@xx.com" # 查看的命令，查哪在哪执行： git config --list Git存储内容项目的单元被称为仓库（Repository），作为一个仓库，创建的过程称之为初始化。然后创建文件，需要产生一个历史记录时，就将变更的文件按需添加到暂存区，提交（Commit）一次。有了一次Commit后，便可以为其设置远端仓库地址，将本地的仓库变化推送过去保存。大致这么个流程： # 创建一个以仓库名称命名的目录（或者叫文件夹）,并进入其中。 mkdir XX-Repository cd XX-Repository # 使用初始化命令 git init # 按照实际需要，创建或从其他地方拷贝文件到目录下。惯例要创建一个README.md文件，给人看。 touch README.md cp ../../XXX.XXX ./XXX.XXX # 这个Linux下用的多，Win下不如直接图形界面拖拽。 # 文件写的差不多了，先按需添加到Commit暂存区， git add XXX.XXX XXX.XXX # 添加指定文件 git add -A # 添加所有新增或变更的文件 # 然后执行Commit,一般惯例要带-m参数，备注本次提交的变更。 git commit -m "first commit" # 添加远端仓库地址，地址从仓库主页的绿色Code按钮中能看到： git remote add origin https://github.com/USERNAME/REPOSITORY.git # 设置远端仓库的分支为master，并推送到该分支。 git push -u origin master # 因为上面是HTTPS的连接方式，所以会弹出网页的登录页面。按提示登录即可完成推送。 到此一个Git仓库大致就在GitHub上搞起来了。那如何换用SSH方式连接仓库呢？ 通过SSH连接： 这里我抄一下官方的内容，原文半英半中，写了很多注意事项，很多内容的位置却不合理。在此我缩减了一下，有问题建议看官方文档。 检查已有的SSH密钥对 首先可以检查下您电脑上有没有已经生产的可用的密钥对，他们是成对的一组文件，包含私钥和公钥。 打开Git Bash。 执行 ls -al ~/.ssh ，如果.ssh目录下有密钥对变回在回显的信息中看到文件名类似于： id_rsa.pub id_ecdsa.pub id_ed25519.pub 这里，如果提示目录不存在，那看样子就是啥都没有了。如果有密钥对，就可以用后面的方法检查有没有密码加密，没有密码或者知道密码便可以直接用。否则就按下面的方法新建密钥对。 生成新的SSH密钥 如果您还没有…

J-Link V9 使用7.x工具包提示 Probe 为 Clone 产品的处理
type: item
date: 2022-02-02T22:24:00+08:00
description: 前言： 今天找出了以前低价拍到的 STM32_F4VE 开发板，又找到了网友处以散件形式低价购得的 J-Link V9 ，去 SEGGER 官网下载了 JLink 工具包并进行了安装。到了测试连接时却出现了问题，J-Flash 弹出以下警告： The connected probe appears to be a J-Link clone.Using the J-Link software with a clone is forbidden and illegal.Proper operation cannot be guaranteed. 翻译成中文大致如此：当前连接的探针（调试器）看起来是一个 J-Link 复制品（盗版）。在复制品上使用 J-Link 软件不被允许也不合法。我们无法保证它能正常工作。 看了一下固件版本，固件应该是还是16年的魔改版本，也没有像原版一样的自动更新功能。这样肯定不行，于是我搜索了一下该如何处理。通过一番搜索，发现出现此问题的原因貌似是因为SEGGER升级了盗版识别机制，加入了对 SN 和扩展功能方面的验证，从而导致被检测为 Clone品，具体参考该贴 。 注意：本文所述方法仅针对使用 STM32F205RC/RE 主控的 J-Link V9 复制品，随着厂商更新，无法保证方法一直有效。刷写固件存在设备报废的风险，请自行斟酌，谨慎操作！ 处理办法： 通过网友们的帖子了解到，解决此问题的方法，无非就是刷固件、改序列号、清除掉魔改添加的功能。经过一番尝试，发现最简单的方法就是刷入某不具名大佬提供的 Bootloader ，连接电脑打开 J-Link Configurator ，等待其自动升级最新固件即可。这样的结果是 SN 值会变成 -1，当然也有办法自定义 SN ，但神奇的是，SN 值为 -1 并不影响其功能。 相关文件已存储于IPFS网络，链接在此。 具体过程： 相信您已经安装了 J-Link 软件包，对此这里不再赘述。使用一个可以正常工作的 J-Link 连接此异常 J-Link 的 SWD 调试接口，J-Link V9 标准克隆版通常会在靠近 PCB 边缘有四到五个预留焊盘，一般从靠近 F205 一端开始，依次为 VCC、GND、SWDIO、SWCLK 。没有大鸡也可以用 J-Link OB ,只是需要用 OB 的 SN 在 Segger J-Link keygen 中生成一个 J-Flash 许可添加到 J-Link License Manager 中，因为 J-Link OB 默认是不具有 J-Flash 使用许可的 。注意：视情况，目标板可能需要单独供电。 保证 SWD 接口稳固连接，打开 J-Flash 。在欢迎页选择 Create new project --> Start J-Flash 。Target device 中点击 ··· 按钮，根据实际情况搜索并选择 STM32F205R* ，Target interface 选择 SWD，Speed 选择1000kHz，如果后面无法建立连接，建议减小速率。最后点击 OK。 将解压后的 bootloader.bin 文件拖入 J-Flash，设置起始地址为 0x8000000 ，点击 OK。点击 Target --> Connect 建立连接，点击 Manual Programming --> Erase Chip 擦除原始固件，点击 Manual Programming --> Program&Verify 刷入 Bootloader 并校验。 如果您希望自定义 J-Link 的 SN，此时可以关闭 Bootloader 数据窗口，点击 Manual Programming --> Read back --> Entire chip 回读整个芯片数据，然后回读的数据会显示在数据窗口中。通过Go To： 功能快速跳转到地址 0x800BF00 ,通过修改0x800BF00 到 0x800BF03 四个字节可以定义 J-Link V9 的 SN 。例如：0x800BF00 到 0x800BF03 依次是 7D、C3、C0、01，则 SN 为 01C9C37D = 29999997。按自己意愿修改后参考上面步骤重新全片擦除并写入即完成 SN 的自定义。如果不需要自定义 SN，可跳过本段。 拆除固件烧录的相关连接，将刷好 Bootloader 的 J-Link V9 通过 USB 连接到计算机，打开 J-Link Configurator ，会自动弹出固件修复窗口，等待其完成最新版本固件的刷入，然后拔下 USB 重新连接，J-Link V9 即可正常使用了。如果没有自定义SN，会看到硬件SN是-1，如果有自定义SN，则会显示自定义的SN。 …

Arduino MKR Zero 上手笔记
type: item
date: 2021-12-08T21:53:00+08:00
description: 前言： 简介： 技术信息： 开发资料： 开发环境部署： 点灯： 参考： 前言： 笔者最近参与了 DigiKey 在B站的Arduino盘点抽奖活动，有幸获得了一块Arduino MKR ZERO开发板。与复制品很常见的UNO和Mega2560不同，MKR ZERO使用的是 Microchip 的 SAMD21处理器 ，内核为32位的ARM Cortex-M0+ ，而前两者是8位的 AVR内核。这种原版的开发板我是万万买不起的，这次既然有幸得到，自然要点灯为敬。 Arduino MKR Zero——DigiKey零件页面 以上得捷页面提供了部分信息，话说看其价格也许比某宝便宜一些？（但不知道加上运费怎么样？ 简介： Arduino MKR ZERO 开发板在较小的尺寸上提供了不错的性能。MCU采用 32 位 ARM Cortex® M0+ 内核，且内有DAC。开发板提供了Micro USB & 电池双供电以及电池充电电路，且板载使用SPI接口的MicroSD连接器和一枚ECC508加密IC。如此，该开发板可以在不添加其他硬件的情况下播放音频文件。 警告：与大多数Arduino和Genuino板不同，MKRZero的运行电压为3.3V。I/O引脚可以承受的最大电压为3.3V。对任何 I/O 引脚施加高于 3.3V 的电压可能会损坏电路板。 技术信息： 技术信息 值 微控制器 SAMD21 Cortex‐M0+ 32bit low power ARM MCU 开发板供电电源 5V Max Micro USB 支持的电池 单节 Li-Po，3.7V ，至少700mAh容量 3.3V最大输出 600mA 5V最大输出 600mA IO工作电压 3.3V Max 数字I/O数量 22 PWM引脚 12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A2 - or 18-, A4 - or 19) 串口数量 1 SPI数量 1 I2C数量 1 模拟输入引脚数量 7 (ADC 8/10/12 bit) 模拟输出引脚数量 1 (DAC 10 bit) 外部中断引脚 8 (0, 1, 4, 5, 6, 7, 8, A1 ‐or 16‐, A2 ‐ or 17) 单个 I/O 最大电流 7 mA 容量 256K Flash (8K Bootloader)，32K SRAM，NO EEPROM 时钟频率 48MHz （Main），32.768kHz（RTC） 板载LED引脚 32 （PB08） LED_BUILTIN suggested 开发资料： 原理图.PDF 引脚排列图.PDF MKR Zero 在线文档 ArduinoECCX08-Atmel ECC508仓库 开发环境部署： Arduino MKR Zero 是Arduino官方出品的开发板，其使用的开发环境自然是Arduino IDE。 首先到 Arduino IDE下载页 下载Arduino最新的Arduino 1.8，并按提示完成安装，安装路径建议不要有空格或中文。 安装完成后打开Arduino IDE，接下来要安装SAMD Core。点击 工具 > 开发板： > 开发板管理器... , 在弹出的窗口中将显示所有可用的开发板。 在搜索框中以 samd 为关键词搜索，在搜索结果中找到Arduino SAMD Boards (32-bits ARM Cortex-M0+) 并点击安装，安装期间若有驱动安装提示请允许，否则无法正常上传固件。若安装有困难，可能需要使用代理。 点击 工具 > 开发板： > Arduino SAMD Boards (32-bits ARM Cortex-M0+ > Arduino MKRZERO 选择开发板型号，点击 工具 > 端口 > COMxx(Arduino MKRZERO) 选定开发板串口。这时点击 工具 > 取得开发板信息 可以读到开发板信息即表示通信正常。 点灯： 点击 文件 > 示例 > 01.Basics > Blink ，打开闪灯示例程序，为了与出厂预置闪灯程序区分，将delay延时函数的参数改为250（代码如下），然后点击 上传 ，此时Arduino IDE会开始编译，编译完成后自动上传。等待其成功上传后观察板载LED闪烁速度，变快了便是成功了。 void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, …

Freenom域名注册的常见问题与自动续期
type: item
date: 2021-10-24T11:58:21+08:00
description: 前言： 最近突然想再注册一个Freenom域名，发现遇到一些问题，此处记录，以免日后再注册时候不记得，再次踩坑。另外记一下 Freenom 的自动续期，看到本文的人也能知道还有这种好事儿！ 常见问题： Freenom不显示注册页面 Freenom 只有登录按钮，点进去的登录页面也没有注册按钮。这个情况是因为 Freenom 页面提供了Google和Facebook 登录的选项而没提供直接的邮箱注册页面，不幸的是它们在中国大陆被屏蔽了。这个问题只需要先检查域名就可以了，选好域名最后 Checkout 时是会给出邮箱注册账号的页面的。 注册域名提示无法使用 一般出现在第一次注册时，或者是浏览器IP变化时候，Check Availability 查找域名后点击 Get it now! 时提示域名无法使用（Not available）。这种情况一个可能是没有账号先检查域名的注册流程中，这种情况填写域名时需要将域名后缀一起填入。另一个有账号的情况可能是登录失效了，如果已经注册账号，刷新重新登录即可。没有账号就前面方法注册一个账号。 注册域名提示技术错误 注册域名时遇到提示技术（Tech）错误，此问题是因为你浏览器当前的IP和你账号资料里面填写的区域国家不一致，从而触发了 Freenom 的反欺诈。可考虑修改资料中的国家地区，或更换与注册地相同的IP代理访问。（不建议使用代理注册域名） 点击 完成订单 提示不能确定你是人或没有反应 使用中国大陆网络访问 Freenom 注册域名可能会在最后一部点击 Complete Order 时网页没有反应、或是提示不能确定你是人。这是因为 Freenom 使用了 Google 的 reCAPTCHA 人机验证，而Google因为某些原因被大陆屏蔽。所以，国内无法正常连接位于 www.google.com/recaptcha 的 reCAPTCHA 服务。可以使用浏览器插件 Gooreplacer 拦截重定向到 recaptcha.net/recaptcha 就可以正常使用该服务了。 以Chrome 为例，只需要在浏览器扩展程序中搜索安装 Gooreplacer ，打开其配置页面并新增一条规则，匹配模式为 www.google.com/recaptcha ，目标地址为 recaptcha.net/recaptcha ，匹配类型为 通配符 。最后确定规则启用就可以了。 经过以上设置后，回到 Freenom 的网站，Ctrl + F5 刷新网页，重新登录，应该就可以正常注册域名了。 自动续期： Freenom 域名可以免费注册，但是最多只能注册一年。在到期前的两个星期内为免费续订期，如果错过了这几天，域名可能就需要付费注册抑或是与你无缘了。为了保证域名一直在自己手中，我在Microsoft 日历中添加了相关的提醒事项，并且使用大佬 @luolongfei 的 项目 进行自动续期。 因为考虑腾讯云提供了免费的云函数服务，而自动续期检查使用的资源开销很小，完全不会超出腾讯云的免费额度，所以本人使用了腾讯云的云函数运行了自动续期脚本。只需要去腾讯云注册个账号，然后十分钟左右时间部署一个云函数项目就可以了。相关的使用与部署方法大佬在README中写的非常详细了，此处提供个小建议，不必设置每天检查，一个星期检查两次就可以了。其他具体部署本文不再赘述。 参考： freenom免费域名注册不了，无法完成订单？ Freenom：freenom域名自动续期 Freenom：freenom域名自动续期——备用仓库

斐讯N1刷CoreELEC实录
type: item
date: 2021-10-24T10:25:04+08:00
description: 前言： 机器配置： 刷入 CoreELEC： 降级、刷入改版固件： 更换启动画面： 方法一：使用DD刷入 方法二：ADB方式： 方法三：使用Amlogic Customizationtool 写 CoreELEC 启动盘： 设置从U盘启动： 基本设置： 将固件刷入EMMC： 配置 CoreELEC 获取、检查 IPTV 源 安装、配置 IPTV 插件 安装字幕插件和影视信息刮削器 安装天气插件 其他： 重启蓝牙遥控器连接失效？ 参考： 前言： 斐讯的挖矿盒子N1质量不错，配置相对不低。可玩性很高，可以刷的系统很多，比如：Android电视盒子、Kodi电视盒子、CoreELEC电视盒子、EmuELEC游戏盒子；也可以刷成Armbian、CentOS7等Linux系统；还可以刷网心云分享宽带赚取收益。考虑缺一个专业的电视盒子看4K影片，于是笔者决定为其刷入CoreELEC系统做一个电视盒子。整个过程中还是踩了不少坑的。 机器配置： 机型： 斐讯（Phicomm）N1 CPU： 晶晨（Amlogic） S905D GPU： Mali-450 MP RAM： 2GB DDR3 ROM： 8GB eMMC 以太网： RTL8211F 1000Mbps 据说，它的 CPU 是 ARM Cortex-A53 四核 1.5G，带有的 ARM Mali™-450 GPU 支持 4K60fps硬件解码，能提供 HDMI 2.0 输出。 注意：目前N1 使用 CoreELEC 19.x 版播放HDR10片源会直接崩溃，然后数秒后复位重启。9.2.7 版本目前无此问题，考虑稳定建议使用9.2.7。刷入方式网上教程很多。 警告：刷写固件是一件危险的操作，它不同于常见的计算机安装系统。操作失误可能会导致无法挽回的损失，甚至因此报废您的硬件，请谨慎操作！ 刷入 CoreELEC： 降级、刷入改版固件： 因为笔者器在以前已经刷过webpad大佬的官改2.2系统了，此处大致讲一下刷Android盒子的方法。首先，插鼠标快速点击四次固件版本以解锁ADB，注意不要再锁上。然后使用大佬提供的降级工具对机器进行降级。完成降级后使用双A口USB线连接靠近HDMI的USB口到电脑，使用晶晨线刷工具对其进行刷机。注意：只有官方和官改等盒子类固件的存储分区结构可以刷 CoreELEC。具体可参考：斐讯N1探索手记#1 – 降级并刷入armbian系统 、 斐讯天天链N1 官改v2.2 、 N1刷完ARMBIAN想恢复EMMC超级简单线刷法，还可救砖. 更换启动画面： 刷写固件后可能有人会对开机启动画面不满意。和安卓系统的手机类似，电视机顶盒也有两个启动画面。最开始通电时显示的叫做第一屏，系统启动中显示的动画叫第二屏。第一屏可以通过Amlogic Customizationtool 修改固件包的方式或通过文件刷入相关分区的方式修改。第二屏则是通过替换文件 /system/media/bootanimation.zip 的方法修改。 此处因后期刷入CoreELEC，第二屏使用CoreELEC的即可。所以此处仅修改第一屏。 方法一：使用DD刷入 将logo.PARTITION文件存储在方便的位置，然后插上键盘，打开终端，执行以下命令。 su cd /XX/XX/ # cd 到 logo.PARTITION文件的目录 dd if=logo.PARTITION of=/dev/block/logo reboot 这样就可以看到第一屏启动画面变更了。笔者用的此方法，比较简单。 方法二：ADB方式： Android系统下打开ADB网络调试，然后PCB端使用ADB工具连接，执行以下命令重启至fastboot。 adb connect 盒子IP #即类似：adb connect 192.168.1.1:5555 adb shell reboot fastboot 然后使用双公头USB线连接电视盒子与计算机，执行以下命令检查设备连接，不行的话可能要检查下驱动。 fastboot device #查看是否连接到设备 设备如果存在，则继续，请注意，logo.PARTITION文件应该提前放置于fastboot相同目录。 fastboot flash logo logo.PARTITION fastboot reboot 方法三：使用Amlogic Customizationtool 此工具可以更换固件的第一屏，重新打包后再刷入即可更换第一屏，但是需要刷机，不太推荐。具体不在本文讨论范围内！ 写 CoreELEC 启动盘： Core ELEC 是一个以启动 Kodi 为主设计的一套方案，它基于一个精简的 Linux 系统。网上能找到大佬编译好的固件，将其下载下来，使用镜像写入工具写入U盘即可。项目在…

Windows系统下载安装 Blackmagic Disk Speed Test
type: item
date: 2021-08-31T22:05:47+08:00
description: 为何会有本文？ 看到很多大佬做评测会用一个名为 Blackmagic Disk Speed Test 的软件对某个“媒体位置”测速。与常见磁盘测速软件相比，它的特点是可以选择某个目录开始测速，于是它便可以很方便对网络位置进行测速。通过使用该工具测试存储媒体，我们可以直接了解到其能录制的视频。该工具可以很方便的在Mac的商店中找到，但笔者百度了一番，没有找到 Windows 下载指导。经过一番研究，发现此软件属于 Blackmagic Design的 Desktop Video 软件包 ，该软件包可以看作是其视频采集卡的驱动程序（上位机）。我们虽然没有购买其硬件，但不影响安装此软件包获取这个测速工具。 如何获取？ 访问 Blackmagic Design 官网，在Support中选择 Capture and Playback。 在左侧的 Latest Downloads 中下载最新版本的 Desktop Video 软件包。 安装下载 Desktop Video 软件包。 在 开始菜单 中找到 Blackmagic Disk Speed Test 应用程序。 运行程序，点击齿轮图标，在弹出的菜单中选择 Select target drive ，选择要进行读写测试的目录。 在主界面点击 SPEED TEST START 即可开始测速。 如果觉得安装这个软件包太大，而且没有相关硬件主程序毫无用处，可以将测速软件的文件夹单独拷贝出来，然后将软件包卸载。 此处提供笔者从 Desktop Video 12.1 中提取的 Blackmagic Disk Speed Test V3.3 版本下载，链接失效不补。

为路由器刷入第三方固件——以ASUS ACRH17刷OpenWrt为例简述其思路
type: item
date: 2021-07-29T23:27:00+08:00
description: 前言 软件和硬件的准备： 步骤 准备固件映像 建立到路由器的shell连接 备份原厂数据 刷入新固件 参考 前言 最近翻出一个之前不知放在哪的ASUS ACRH17路由器，而且K2P、新三之类的路由器已经用了很多年了，是时候换一换了。同时感觉华硕原厂的固件功能太少，于是有了刷OpenWrt系统的想法。很多人都知道给电脑重装系统、给手机刷机，但不一定听说过给路由器刷机。那么给路由器刷第三方固件这项活动是因何而起的呢？ 当Linksys在2002年发布了使用Linux作为系统内核设计的WRT54G路由器，就为后来第三方固件的流行埋下了种子。转眼2003年3月Cisco收购Linksys。同年6月，Linux内核开发组听说WRT54G固件使用了包含GPL开源协议的Linux代码，遂要求Linksys开源相关部分代码，为此FSF还因此起诉Cisco，最终7月Cisco迫于外界压力开源了WRT54G的固件。至此，极客行动了起来，各种定制的固件和给路由器刷机的行为就流行了起来。后来大浪淘沙，其中OpenWrt、DD-WRT、Padavan、Asuswrt-Merlin（梅林）、Tomato、PandoraBox等固件成为了主流第三方固件项目。 注意：本文主要记录路由器刷入第三方固件的思路，以备日后刷其他型号路由器时参考，而刷固件的操作是因机而异的，随着相关项目的更新，某些操作可能会有变化。为路由器刷入第三方的固件的操作是个需要细心的活。您可能因为误操作、意外等情况损坏设备，所以务必小心操作！笔者不承担您的任何相关风险。 软件和硬件的准备： 连接shell的终端软件：用于通过SSH协议或串行口连接到路由器shell，可以使用PuTTY或其他熟悉的工具。 SCP客户端或一个U盘：备份出厂数据或固件时，用于通过网络传输文件到本地，使用scp（Linux），WinSCP （Windows）或其他自己熟悉的软件。或存储到U盘中（需要路由器有USB接口）。 网线、USB TTL转换器：通过网线连接以支持SSH登录、SCP传输文件等。USB TTL线可用于连接路由器主板的TTL调试接口，以访问Shell。 步骤 准备固件映像 建立到路由器的shell连接 备份原厂数据 刷入新固件 准备固件映像 刷机自然是要先把新固件准备好，这一般来源于论坛或Q群，比如恩山、OP大群、OpenWrt官方Wiki；也可以自己从GitHub拉取项目代码编译，这需要Linux系统并且有些难度。 根据不同机型，我们可能需要准备： 最终使用的系统固件（一般为后缀包含squashfs-sysupgrade的固件） 中转固件（一般是类似Linux Live CD那种RAM加载的临时系统固件，后缀为initramfs-kernel.bin；或是专用于从官方固件过渡到OpenWrt的系统固件，后缀包含factory字样） Bootloader固件（某些情况下我们需要刷入新的Bootloader，比如不死Uboot、Breed等） 并非在所有情况都需要准备以上所有固件，具体选择哪些文件，需要视情况而定。 比如，之前接触的Cisco Meraki Z1，其原厂固件非OpenWrt，不支持直接刷入sysupgrade，便有大佬编译了initramfs-kernel固件供大家使用DD指令刷入作为中转，然后通过该固件中提供的sysupgrade指令支持刷入最终的squashfs-sysupgrade固件。 而像ACRH17，虽然该机器保留原厂的Bootloader可以使用原厂提供的救援工具刷回原厂，但网友大多都是要刷第三方的Bootloader以实现通过Bootloader随意刷机的需求。需要注意的是，Bootloader对于路由器这类嵌入式设备是非常重要的 ，所以无论原厂固件还是一般的OpenWrt固件都是不允许重写Bootloader区域的，于是有网友编译了解锁Bootloader的squashfs-flash-factory固件。通过在原厂固件的固件升级页面中直接刷入该固件，便可以在Shell中执行重写Bootloader的命令了，最后便可通过第三方的Bootloader进行刷固件或一些其他的高级功能。 建立到路由器的shell连接 建立到路由器的Shell连接的方法，可以分为免拆机法和拆机法。不同型号能使用的方法不同，因为拆机法对于动手能力和工具有一定要求，所以优先选择免拆机的方法。 路由器的主板在设计时大多会留出四个排在一起的焊盘，这时为硬件调试留出的TTL串口，需要通过一定的电路分析经验找出其GND、TXD、RXD，然后通过USB-TTL转接器连接到电脑，在电脑的设备管理器中确认其串口号，然后使用Putty或SecureCRT等工具通过端口号连接。根据不同机型，有的可能需要提升Root…

HP39gs计算器改装锂电池供电
type: item
date: 2021-03-23T21:43:00+08:00
description: 前言： 准备工作： 改装： 1.拆机： 2.验证工作电压范围： 3.查找并改装电压采样： 4.制作充电电路： 5.装配： 参考： 前言： 简而言之，就是切断电池仓正极连接，换成锂电池。为锂电池并联一个充电模块，充电模块供电从MINI USB接口取电。ADC电压采样电阻是R17和R18，把R17 换成 1MΩ 、R18 保持 2MΩ 不变，这样修改后，使用锂电池时电压高于3.85V，应当不会再提示Low Bat。按照这个核心方案干就完了，下面全是废话。 （回忆···） 首先说明，下文讲述的笔者是5年前干的事情的，前端时间看见欠陥電気大佬写的搞机贴，觉得此事我可以水一篇博文。那时我还是在校学生，是校电协成员。记不清是哪位朋友发现这款型号为HP 39gs的计算器在某宝以非常便宜的价格销售，仅27.58元。从来没有接触过图形计算器的我，通过搜索引擎了解到这款计算器属于图形计算器，2006年上市，当时售价千元。里面是一枚SAMSUNG S3C2410A ARM处理器，该处理器最高频率约200MHz,在该计算器中，官方设计为75MHz。据说可使用HP Basic编程语言编写程序以在此计算器上运行，另外其不支持CAS，这些我不懂。我们几位社员一合计，咱们也从来没用过图形计算器，现在有机会必须试试。好家伙，这计算器值！于是大家就入手（Keng）了。注：经简单了解，目前此计算器价格有所上涨；另外因年代久远且其设计理念不佳（S3C2410A上运行的Saturn CPU模拟器，然后模拟器上运行SysRPL），所以在当今看来，功能少，运算慢，据说其根本不适合日常工程计算使用。购（Ru）买（Keng）需谨慎！当然，笔者拿来当普通计算器算个加减乘除感觉还是可以的。算的数多了也慢。 基本规格： * 型号： 惠普 HP 39gs 图形计算器 CPU： Samsung S3C2410A(ARM920T单核) @75MHz （实际最高约200MHz） Memory： 256KB RAM (用户实际可用约200KB) ，1MB Flash 通信接口： USB Mini-B(Kermit 或 XModem协议) ， IrDA ，4PIN 3.3V异步串口 供电： 4×AAA电池作为主电源 ，CR2032纽扣电池用于数据保持 屏幕： 131×64 像素+上方状态条 单色LCD，对比度可调 语言： sRPL ， HP-Basic 其他： 内置蜂鸣器，带有硬质保护壳，不支持CAS 上市时间： 2006年 06月 注：上表信息来自维基百科 准备工作： 实践本文内容需要如下硬件准备： HP 39gs 计算器 合适大小的锂聚合物电池 锂电池充电模块 导线若干（建议线规约22AWG） 螺丝刀（十字 1.0左右） 薄型撬片（或撬棒） 万用表（选配） 需要在技能树中点亮如下技能： 电子产品拆卸技术 基础电路知识 基本锡焊技术 警告：电子DIY需要有一定的相关知识与技能，操作过程有静电损坏元器件风险，使用烙铁焊接有烫伤风险。请谨慎操作，避免受伤或损坏设备。笔者不会对您的改装行为所造成的任何损失负责！ 改装： 我们在使用一周后发现了这一问题，耗电太快了。四枚普通AAA电池，使用一个星期就低电警告了。这对于我们这种穷苦学生怎么承受的了，所以大家想改锂电。原有供电系统为6V，考虑S3C2410A为3.3V IO系统，外围器件也多为3.3V供电，所以考虑单节锂电池供电是可能的。那年正是MPOS火爆推广的时候，1元即可买到一个MPOS还包邮，里面可以拆出拇指电池、4055单节锂电池充电IC、3.3V LDO、高精度运放IC、蓝牙模块、单片机（运气好可能是STM32）。这便给改装提供了思路，杀一只MPOS即可提供电池和锂电池充电IC，如果嫌一节电池容量太小，可以杀两只POS鸡。整个改装过程主要分为以下几步： 拆机 验证实际工作电压范围 查找并改装电压采样 制作充电电路 装配以完成改装 1.拆机： 该机器拆机简单，首先取下硬质塑料保护壳，使用薄撬片小心取下屏幕保护盖，避免划伤。使用螺丝刀拆下两颗螺丝，然后使用撬片沿机身四周撬开并取下底壳。需小心注意底壳上有电源与蜂鸣器的连接线，避免失手扯断连线。必要可使用烙铁拆焊部分连接线。请牢记各连线焊接位置，必要可拍照记录，以确保在装配时能正确复原。 2.验证工作电压范围： 拆下主电源（电池仓）连接线，临时焊接测试线，连接到数控电源，使用数控电源输出模拟锂电池电压变化。经过粗略测试，电压需要保持在3.68V以上计算器才能正常工作。虽然锂电池可以放电到更低的电压，但是计算器不能在那个电压下正常工作。这表示，虽然使用单节锂电池方案不能完全使用电池的电量，但也是可行的。 3.查找并改装电压采样： 首先检查主板上的所有IC，发现没有ADC。猜测低电检测是使用CPU内置的…