如何使用Hasu USB to USB Controller Converter刷写tmk固件交换Caps和Ctrl
相关链接
购买Hasu USB to USB Controller Converter:https://www.1upkeyboards.com/shop/controllers/usb-to-usb-converter/
TMK按键编辑器:http://www.tmk-kbd.com/tmk_keyboard/editor/unimap/?usb_usb
TMK固件:https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb
刷写方法:https://github.com/tmk/tmk_keyboard/wiki#flash-firmware
论坛中的介绍:https://geekhack.org/index.php?topic=69169.0
步骤
- 推荐使用在线生成工具,跳转到第7步。如果希望自己编译请继续。下载固件源码,准备编译。
自己编译的固件可以修改编译的参数,从而使用键盘上的绝大多数按键。具体参见https://github.com/tmk/tmk_core/blob/master/doc/keymap.md
笔者没有研究具体交换按键的方法,但测试了在Ubuntu下的依赖关系,确保可以编译通过。 - 这里使用Ubuntu 16.04.3 LTS
- 安装依赖
sudo apt install gcc-avr dfu-programmer gcc-arm-non-eabi avr-libc - 克隆源码
git clone https://github.com/tmk/tmk_keyboard.git; cd tmk_keyboard - 克隆Git submodule
git submodule init; git submodule update - 编译源码
cd converter/usb_usb; make -f Makefile.unimap。跳转到第8步。 - 访问TMK按键编辑器修改自己需要的按键序列,并下载固件
- 你就会得到一个
.hex的文件,这个就是固件准备刷入。 - 下载刷写工具
https://www.microchip.com/developmenttools/ProductDetails/flip不清楚为什么没有Mac版的,也只能识别为键盘驱动,无法挂载到虚拟机。推荐使用Windows系统进行刷写。 - 打开刷写工具flip,点击
Device - Select选择你芯片上的型号,我这里是ATmega32U4 - 选择
Settings - Communication - USB,再点击控制器上的按钮。如果这里提示AtLibUsbDfu.dll找不到,请查看https://imgur.com/a/bnwzy - 选择
File - Load HEX File,并选择刚才的.hex文件。 - 勾选
EraseBlank CheckProgramVerify并点击Run按钮。 - 重新插拔USB设备,或点击
Start Application按钮。以使用新固件。
如何使用Hasu USB to USB Controller Converter刷写tmk固件交换Caps和Ctrl的更多相关文章
- USB device & USB controller & USB passthrough
目录 USB device USB controller Linux 相关命令 Python 相关库 Libvirt USB passthrough 参考资料 近期往 openstack 里倒腾 US ...
- 转:USB主机控制器(Host Controller)--深入理解
1. 主机控制器(Host Controller) • UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1) • ...
- android的USB MTP && USB CDC/USBnet(ECM, NCM, ACM) && USB gardget
MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议.早在智能手机普及前,数码相机和MP3播放器等都使用了MTP的前身PTP(Pictu ...
- USB协议-USB的描述符及其之间的关系
USB只是一个总线,只提供一个数据通路而已.USB总线驱动程序并不知道一个设备具体如何操作,有哪些行为.具体的一个设备实现什么功能,要由设备自己来决定.那么,USB主机是如何知道一个设备的功能以及行为 ...
- USB协议-USB设备的枚举过程
USB主机在检测到USB设备插入后,就要对设备进行枚举了.为什么要枚举?枚举就是从设备读取各种描述符信息,这样主机就可以根据这些信息来加载合适的驱动程序,从而知道设备是什么样的设备,如何进行通信等. ...
- USB协议-USB的包结构及包的分类
USB是串行总线,所以数据是一位一位地在数据线上传送的.既然是一位一位地传送,就存在着一个数据位先后的问题.USB使用的是LSB在前的方式,即先出来的是最低位数据,接下来是次低位,最后是最高位(MSB ...
- [USB] Windows USB/DVD Download Tool
此工具为微软官方U盘启动盘制作工具 Windows USB/DVD Download Tool 说明:https://www.microsoft.com/en-us/download/windows- ...
- USB:USB通信中的端点(endpoint)和四种传输模式
USB的传输模式有4种,分别是控制传输(Control Transfer).中断传输(Interrupt Transfer).批量传输或叫块传输(Bulk Transfer).实时传输或叫同步传输(I ...
- Using a USB host controller security extension for controlling changes in and auditing USB topology
Protecting computer systems from attacks that attempt to change USB topology and for ensuring that t ...
随机推荐
- Oracle 查询id相同多个数据取一条
涉及场景 需要查出同一ID下 COLUMN_A字段为数值型的 多条数据 只去COLUMN_A为最小值的那条 SELECT * FROM (SELECT A.ID, A.COLUMN_A, ROW_NU ...
- Shell脚本之流程控制(if、for、while)
if 判断 if语句的三种格式: (1)if (2)if else (3)if elif else 语法格式如下: #if 语法格式 if 条件 then 命令1... 命令2... fi #if e ...
- c# base64及MD5工具类
using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Lin ...
- # win10下设置软件启动快捷方式
win10下设置软件启动快捷方式 win10下设置软件启动快捷键,必须把快捷方式放在C:\ProgramData\Microsoft\Windows\Start Menu\Programs目录下,在这 ...
- Python基础(十一)--内置函数
内置函数 数学类 abs():绝对值 round():四舍五入 >>> round(1.3747,1) 1.4 sum():求和 >>> sum({1:'dj',2 ...
- docker-registry的定制和性能分析
docker-index Web UI Meta-data 元数据存储(附注.星级.公共库清单) 访问认证 token管理 存储镜像.以及镜像层的家族谱系 没有用户账户数据 不知道用户的账户和安全性 ...
- Python 常用外部模块详解
Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...
- vue项目build 之后,css文件加载图片或者字体文件时404的解决。
ExtractTextWebpackPlugin 提供了一个 options.publicPath 的 api,可以为css单独配置 publicPath . 对于用 vue-cli 生成的项目,di ...
- Java实现发邮件功能---网易邮箱
目录 Java实现发邮件功能 前言 开发环境 代码 效果 结束语 Java实现发邮件功能 前言 电子邮件的应用场景非常广泛,例如新用户加入,即时发送优惠清单.通过邮件找回密码.监听后台程序,出现异常自 ...
- android-studio-ide 安装到运行第一个helloword,坑记录
1: 安装是提示 机器虚拟化问题,系统如开启了Hyper-V,必须关闭服务 2:安装完后,建立第一个项目,gradle build 一直转圈,最后报错 Gradle project sync fai ...