# OpeNITHM
This repository contails files related to OpeNITHM.
Firmware, schematics, board layout, and CAD files are included in this repo. Please see the CAD directory for the original 3d printed version, or the v2-cad directory for the laser cut version.
## List of Hardware
In the `CAD\STL` folder, you will find numerous parts that must be 3D printed.
Please check out [the wiki](https://github.com/veroxzik/OpeNITHM/wiki/File-Explanation) for more information.
| Part | Qty |
| --- |:---:|
| Center Frame | 1 |
| Right Frame | 1 |
| Left Frame | 1 |
| Key Dual 2.5mm **OR** Key Dual 3mm<sup>1</sup> | 16 |
| LED Support Peg | 16 |
| Sensor Rail | 2 |
| Sensor Spacer Left<sup>2</sup> | 1 |
| Sensor Base Left<sup>2</sup> **OR** Integrated Sensor Base Left<sup>2</sup> | 1 |
| Sensor Cover Left<sup>2</sup> | 1 |
| Integrated Frame Mount Left<sup>2,3</sup> | 1 |
**NOTES:**
1. Use 2.5mm for 3/32" and 3mm for 1/8" acrylic.
2. Print out mirrored version of these parts as well.
3. Only print the frame mount if you are using the integrated sensor.
The non-printed materials and hardware include:
| Part | Qty |
| --- |:---:|
| 4-40 Flat Head Screw, length 3/16" to 5/16" will work **OR** M3 equivalent | 2 |
| Top Acrylic Plate<sup>1</sup> (472mm x 112mm) | 1 |
| Key Acrylic<sup>1</sup> (103.5mm x 26mm) | 16 |
| Copper Tape, cut into rectangles 95mm x 26mm | 16 |
**NOTES:**
1. Use 2.5mm (3/32") **OR** 3mm (1/8") acrylic. Use the same acrylic for top plate and keys.
## List of Electronics
OpeNITHM is designed for the Teensy LC.
#### Why use Teensy and not Arduino?
The biggest reason is that Teensy has built in capacitive sensing, which is how OpeNITHM fuctions. You have to fake it on Arduino using very controlled analog reads, and it is nowhere near as sensitive. In my (VXZK's) experience, it was simply impossible to use an Arduino to do the capacitive sensing required for this project.
I chose the Teensy LC as it is the lowest cost Teensy model available with capacitive sensing. The firmware and PCB are designed for this board alone; significant modifications may be required for any other version.
There is an alternative build using an Arduino Pro Micro and 2 MPR121s as a branch in this repo, but it is not maintained and not recommended. You're on your own with that one!
### Teensy LC Build
Links are mostly suggestions (except the Teensy, which is only officially available through the PJRC site and authorized resellers).
(VXZK: I've heard a lot of trouble regarding good quality IR leds and phototransistors, so I've included specific links to the ones I purchased and has worked well for me.)
The links below also assume you want to socket your Teensy and multiplexers for later use. You can solder them directly, if you'd like.
If you are going to solder your sensors directly to the PCB, it is not necessary buy the 0.1" Pin Header, Right Angle. Otherwise, include female 0.1" sockets for your sensors (commonly referred to as Dupont connectors).
| Part | Link | Qty |
| --- | --- |:---:|
| Teensy LC | https://www.pjrc.com/store/teensylc.html | 1 |
| Teensy LC Breakout Board | this Github, Circuit-Teensy32 folder contains gerbers | 1 |
| 74HC4051 Multiplexer Breakout Board | [Aliexpress][1] | 4 |
| 0.1" Pin Header, 1 row, 40 pos | [Aliexpress (qty 10)][2] | 2 |
| 0.1" Pin Header, Right Angle, 2 row, 24 pos | [LCSC][3] | 2 |
| 0.1" Socket, Straight, 1 row, 14 pos | [LCSC][4] | 2 |
| 0.1" Socket, Straight, 1 row, 5 pos | [LCSC][5] | 2 |
| 0.1" Socket, Straight, 1 row, 11 pos | [LCSC][6] | 2 |
| 0.1" Socket, Straight, 1 row, 8 pos | [LCSC][7] | 2 |
| 51k ohm Resistor, 1/6W or 1/8W | LCSC or Aliexpress | 6 |
| 33 ohm Resistor, 1/4W, 1/6W, or 1/8W | LCSC or Aliexpress | 3 |
| 1m WS2812B RGB 5V LED Strip, 30LED Per Meter | [Aliexpress][8] | 1 |
| IR LED and Phototransistor | [Ebay (Qty 20 pairs)][9] | 6 |
[1]: https://www.aliexpress.com/item/32807771098.html
[2]: https://www.aliexpress.com/item/665534073.html
[3]: https://lcsc.com/product-detail/New-Arrivals_XFCN-PZ254R-12-24P_C492440.html
[4]: https://lcsc.com/product-detail/Pin-Header-Female-Header_Boom-Precision-Elec-Female-header-2-54-1-14P_C52711.html
[5]: https://lcsc.com/product-detail/Pin-Header-Female-Header_Boom-Precision-Elec-2-54mm-1-5p-Female-header_C50950.html
[6]: https://lcsc.com/product-detail/Pin-Header-Female-Header_Changjiang-Connectors-A2541HWV-11P_C225508.html
[7]: https://lcsc.com/product-detail/Pin-Header-Female-Header_Boom-Precision-Elec-2-54mm-1-8P-Straight-Female-header_C27438.html
[8]: https://www.aliexpress.com/item/2036819167.html
[9]: https://www.ebay.com/itm/40pcs-5mm-Infrared-LED-940nm-Emitter-Diode-and-IR-Receiver-Set/252235145540
## Board Revision and Sensors
As of 2020-07-17, the recommended board version is v2.1, which features inputs for 32 sensors. This best replicates the feeling of the arcade. Previous versions used 16 sensors. If you still wish to make a 16 key version, you can order the v2.1 but only populate two of the multiplexers. This is not really recommended.
## Installing on Teensy LC
**NOTE:** This firmware is *only* written to work for the Teensy LC. Do *not* use Teensy 2.0 or Teensy 3.x
Skip this section if you are using a Pro Micro.
Locate your `arduino` folder (usually `C:\Program Files (x86)\arduino`).
#### I have a fresh install of Teensyduino, or have never modified my USB profiles
Copy `Firmware/Teensy/boards.txt` to `arduino\hardware\teensy\avr\` and overwrite the existing.
Copy `Firmware/Teensy/teensy3` to `arduino\hardware\teensy\avr\cores\teensy3` and overwrite any conflicts.
Copy `Firmware/FastLED/WS2812Serial.cpp` and `Firmware/FastLED/WS2812Serial.h` to `arduino\hardware\teensy\avr\libraries\WS2812Serial` and overwrite the existing.
Copy `Firmware/FastLED/FastLED.cpp` and `Firmware/FastLED/FastLED.h` to `[My Documents]\Arduino\libraries\FastLED\` and overwrite the existing.
#### I am applying the changes manually
(It is easier to copy and paste from the files in `Firmware/Teensy` instead of through here, the below is just for reference.)
Add `usb_nkro.c` and `usb_nkro.h` to `arduino\hardware\teensy\avr\cores\teensy3`
In `arduino\hardware\teesny\avr\boards.txt` add lines 1175-1179
```c
1175 teensyLC.menu.usb.nkrokeyboard=NKRO Keyboard
1176 teensyLC.menu.usb.nkrokeyboard.build.usbtype=USB_NKRO
1177 teensyLC.menu.usb.nkrokeyboard.fake_serial=teensy_gateway
1178 teensyLC.menu.usb.serialnkrokeyboard=Serial + NKRO Keyboard
1179 teensyLC.menu.usb.serialnkrokeyboard.build.usbtype=USB_SERIAL_NKRO
In `arduino\hardware\teensy\avr\cores\teensy3\WProgram.h` add line 59
```c
58 #include "usb_joystick.h"
59 #include "usb_nkro.h"
60 #include "usb_midi.h"
```
In `arduino\hardware\teensy\avr\cores\teensy3\usb_inst.cpp` add lines 75-77
```c
72 usb_serial_class Serial;
73 #endif
74
75 #ifdef NKRO_INTERFACE
76 usb_nkro_class Nkro;
77 #endif
78
79 #else // F_CPU < 20 MHz
```
In `arduino\hardware\teensy\avr\cores\teensy3\usb_dev.h` add lines 93-98
```c
90 extern volatile uint8_t keyboard_leds;
91 #endif
92
93 #ifdef NKRO_INTERFACE
94 extern uint8_t nkro_report_data[NKRO_SIZE];
95 extern uint8_t nkro_protocol;
96 extern uint8_t nkro_idle_config;
97 extern uint8_t nkro_idle_count;
98 #endif
99
100 #ifdef MIDI_INTERFACE
```
In `arduino\hardware\teensy\avr\cores\teensy3\usb_desc.h` add lines 868-948
```c
866 #define ENDPOINT15_CONFIG ENDPOINT_TRANSMIT_ONLY
867
868 #elif defined(USB_NKRO)
869 #define VENDOR_ID 0x16C0
870 #define PRODUCT_ID 0x04D0
871 #define MANUFACTURER_NAME {'T','e','e','n','s','y','d','u','i','n','o'}
872 #define MANUFACTURER_NAME_LEN 11
873 #define PRODUCT_NAME {'N','K','R','O',' ','K','e','y','b','o','a','r','d'}
874 #define
没有合适的资源?快使用搜索试试~ 我知道了~
开源硬件Seaurchin/Qnithm/Laverita 控制器_C语言_代码_相关文件_下载_设计_文档
共100个文件
h:14个
stl:12个
cpp:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 109 浏览量
2022-07-05
17:34:31
上传
评论
收藏 4.38MB ZIP 举报
温馨提示
此存储库包含与 OpenNITHM 相关的文件。 此存储库中包含固件、原理图、电路板布局和 CAD 文件。请查看原始 3D 打印版本的 CAD 目录,或激光切割版本的 v2-cad 目录。 硬件清单 在CAD\STL文件夹中,您会发现许多必须进行 3D 打印的零件。 请查看wiki以获取更多信息。 部分 数量 中心架 1 右框 1 左框架 1 Key Dual 2.5mm或Key Dual 3mm 1 16 LED 支撑钉 16 传感器导轨 2 传感器垫片左侧2 1 左侧传感器底座2 或左侧集成传感器底座2 1 传感器盖左侧2 1 集成框架安装左侧2,3 1 笔记: 3/32" 使用 2.5mm,1/8" 丙烯酸使用 3mm。 打印出这些部分的镜像版本。 如果您使用集成传感器,请仅打印框架安装。 更多详情、使用方法,请下载后阅读README.md文件
资源推荐
资源详情
资源评论
收起资源包目录
开源硬件Seaurchin/Qnithm/Laverita 控制器_C语言_代码_相关文件_下载_设计_文档
(100个子文件)
usb_desc.c 78KB
touch.c 4KB
usb_nkro.c 3KB
App.config 184B
WS2812Serial.cpp 9KB
FastLED.cpp 7KB
AirSensor.cpp 5KB
AutoTouchboard.cpp 4KB
USBOutput.cpp 3KB
usb_inst.cpp 2KB
SerialProcessor.cpp 2KB
SerialLeds.cpp 1KB
Form1.Designer.cs 16KB
Form1.cs 10KB
Resources.Designer.cs 3KB
AssemblyInfo.cs 1KB
Settings.Designer.cs 1KB
Program.cs 518B
OpeNITHMConfig.csproj 3KB
74HC4051.dcm 48B
Frame v6.f3d 1.03MB
Sensor Stand Left v9.f3d 744KB
Integrated Sensor Base Left v5.f3d 450KB
OpeNITHM PCB v3.f3d 347KB
Key-US_Cust v6.f3d 240KB
Key v13.f3d 237KB
OpeNITHM.vcxproj.filters 2KB
fp-info-cache 2.54MB
fp-info-cache 3KB
fp-lib-table 198B
fp-lib-table 121B
.gitignore 15B
usb_desc.h 37KB
FastLED.h 31KB
usb_dev.h 4KB
WProgram.h 3KB
Config.h 3KB
WS2812Serial.h 3KB
PinConfig.h 2KB
AutoTouchboard.h 1KB
SerialProcessor.h 1KB
usb_nkro.h 1015B
AirSensor.h 1013B
LightsUtils.h 875B
SerialLeds.h 833B
USBOutput.h 669B
OpeNITHM.ino 8KB
all_layers.jpg 353KB
openithm-logo.kicad_mod 21KB
openithm-logo-old.kicad_mod 20KB
OpeNITHM.kicad_mod 15KB
74HC4051_Sparkfun_Aliexpress.kicad_mod 5KB
LED_D5.0mm_FlatTop.kicad_mod 2KB
SMD_7Pin.kicad_mod 2KB
SMD_3Pin.kicad_mod 2KB
OpeNITHM.kicad_pcb 619KB
Circuit-AirSensor.kicad_pcb 35KB
OpeNITHM-cache.lib 8KB
Circuit-AirSensor-cache.lib 2KB
74HC4051.lib 928B
LICENSE 34KB
readme.md 2KB
readme.md 133B
readme.md 0B
readme.md 18KB
OpeNITHM.net 26KB
OpeNITHM_Teensy_Schematic_v2.1.pdf 198KB
OpeNITHM.pro 870B
Circuit-AirSensor.pro 688B
Form1.resx 7KB
Resources.resx 5KB
OpeNITHM.sch 43KB
Circuit-AirSensor.sch 8KB
Settings.settings 242B
OpeNITHMConfig.sln 1KB
OpeNITHM.sln 1KB
Center Frame.stl 302KB
Sensor Base Left.stl 105KB
Integrated Sensor Base Left.stl 102KB
Sensor Rail.stl 59KB
LED Clamp.stl 35KB
Key.stl 25KB
Key-US_Cust.stl 25KB
Sensor Cover Left.stl 20KB
Right Frame.stl 13KB
Left Frame.stl 13KB
Integrated Frame Mount Left.stl 9KB
Sensor Spacer Left.stl 6KB
Smoked 5.6mm Acrylic.svg 158KB
Clear 3mm Acrylic.svg 119KB
Black 3mm Acrylic.svg 97KB
P95 Clear 3mm Acrylic.svg 89KB
White 3mm Acrylic.svg 22KB
Black paper.svg 19KB
Black 5.6mm Acrylic.svg 13KB
sym-lib-table 106B
boards.txt 69KB
OpeNITHM.vcxproj 8KB
gerbers_v2.1.zip 209KB
gerbers.zip 12KB
共 100 条
- 1
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9149
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Python和MySQL的数据库管理系统.zip
- (源码)基于Python的通信系统误码率计算与可视化工具.zip
- (源码)基于Qt框架的海王网咖管理系统.zip
- (源码)基于Spring Boot和Material You设计语言的论坛管理系统.zip
- (源码)基于Nio的Mycat 2.0数据库代理系统.zip
- 通过go语言实现单例模式(Singleton Pattern).rar
- 通过python实现简单贪心算法示例.rar
- C语言中指针基本概念及应用详解
- (源码)基于Websocket和C++的咖啡机器人手臂控制系统.zip
- (源码)基于深度学习和LoRA技术的图书问答系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功