update md

This commit is contained in:
AnalogDragon 2023-07-23 04:17:27 +08:00
parent 6dfd34ad87
commit f619c0a386
9 changed files with 78 additions and 106 deletions

View File

@ -8,7 +8,6 @@ Taiko Input 硬件
[主页](../) [主页](../)
## 硬件结构 ## 硬件结构
整体系统分为传感器、前端、采样、USB、PC其中前端、采样、USB三部分位于input硬件上。 整体系统分为传感器、前端、采样、USB、PC其中前端、采样、USB三部分位于input硬件上。
@ -17,7 +16,6 @@ Taiko Input 硬件
![硬件结构图](./img/hardware.png "硬件结构图") ![硬件结构图](./img/hardware.png "硬件结构图")
硬件结构 硬件结构
## 前端电路 ## 前端电路
前端电路采用了与SIF Board近似的设计先进行信号的放大与积分再限制输出。 前端电路采用了与SIF Board近似的设计先进行信号的放大与积分再限制输出。
@ -25,12 +23,10 @@ Taiko Input 硬件
![前端电路](./img/frontend.png "前端电路") ![前端电路](./img/frontend.png "前端电路")
其中一路前端电路 其中一路前端电路
![前端电路测试信号](./img/soc.png "前端电路测试信号") ![前端电路测试信号](./img/soc.png "前端电路测试信号")
信号的波形 信号的波形
由于来自压电传感器的信号带宽高且信号幅值小,不宜直接进行采样。前端电路将输入信号处理成便于采样的信号。 由于来自压电传感器的信号带宽高且信号幅值小,不宜直接进行采样。前端电路将输入信号处理成便于采样的信号。
在示波器截图中C1(黄色)为传感器输出C3红色为经过前端电路处理后的信号C2蓝色为程序识别后的输出。 在示波器截图中C1(黄色)为传感器输出C3红色为经过前端电路处理后的信号C2蓝色为程序识别后的输出。
@ -58,7 +54,6 @@ Taiko Input 硬件
- ⑥ stm32烧录接口和配置串口。 - ⑥ stm32烧录接口和配置串口。
- ⑦ CH552/CH554的boot选择开关。 - ⑦ CH552/CH554的boot选择开关。
## 单鼓硬件 ## 单鼓硬件
[硬件工程](./taiko-io-mini/) [硬件工程](./taiko-io-mini/)
[原理图](./taiko-io-mini/Taiko_input_x4.pdf) [原理图](./taiko-io-mini/Taiko_input_x4.pdf)
@ -66,14 +61,11 @@ Taiko Input 硬件
![单鼓的硬件3d图](./img/taiko_input_x4_3d.png "单鼓的硬件3d图") ![单鼓的硬件3d图](./img/taiko_input_x4_3d.png "单鼓的硬件3d图")
单鼓的硬件3d图 单鼓的硬件3d图
### 接口 ### 接口
- 只能连接一个鼓的4路传感器接口定义借鉴了大力鼓Taiko Force的接口。 - 只能连接一个鼓的4路传感器接口定义借鉴了大力鼓Taiko Force的接口。
- 四个按键用于启动的模式选择和其他按键。 - 四个按键用于启动的模式选择和其他按键。
# 装配 # 装配
## 双鼓硬件 ## 双鼓硬件
@ -83,23 +75,16 @@ Taiko Input 硬件
![装配尺寸图](./img/instructions.png "装配尺寸图") ![装配尺寸图](./img/instructions.png "装配尺寸图")
装配尺寸图 装配尺寸图
## 单鼓硬件 ## 单鼓硬件
单鼓的硬件使用了一款较通用的胶盒,可以较为方便的携带和连接。 单鼓的硬件使用了一款较通用的胶盒,可以较为方便的携带和连接。
![装配示意图1](./img/img1.png "装配示意图1") ![装配示意图1](./img/img1.png "装配示意图1")
装配示意图1 装配示意图1
![装配示意图2](./img/img2.png "装配示意图2") ![装配示意图2](./img/img2.png "装配示意图2")
装配示意图2 装配示意图2
![标签](./img/mark.png "标签")
标签

View File

@ -2,7 +2,7 @@
Taiko Input Hardware Taiko Input Hardware
There are dual drum and single drum hardware options. The dual drum design is intended for arcade or two-drum setups, while the single drum hardware is a simplified version of the dual drum hardware with half of the input frontend removed. There are no significant differences between the two in terms of hardware. There are dual taiko and single taiko hardware options. The dual taiko design is intended for arcade or two-taiko setups, while the single taiko hardware is a simplified version of the dual taiko hardware with half of the input frontend removed. There are no significant differences between the two in terms of hardware.
[中文版](./README.md) [中文版](./README.md)
@ -11,7 +11,7 @@ There are dual drum and single drum hardware options. The dual drum design is in
## Hardware Structure ## Hardware Structure
The entire system is composed of sensors (drums), frontend, sampling, USB, and PC. The frontend, sampling, and USB are located on the input hardware. In addition, there are other components such as power supply and filtering circuitry not shown in the structural diagram. The entire system is composed of sensors (taiko), frontend, sampling, USB, and PC. The frontend, sampling, and USB are located on the input hardware. In addition, there are other components such as power supply and filtering circuitry not shown in the structural diagram.
![Hardware Structure Diagram](./img/hardware_en.png "Hardware Structure Diagram") ![Hardware Structure Diagram](./img/hardware_en.png "Hardware Structure Diagram")
Hardware Structure Hardware Structure
@ -33,58 +33,61 @@ Due to the high bandwidth and small signal amplitude from the piezoelectric sens
# Hardware # Hardware
The hardware consists of dual drum hardware and single drum hardware. The dual drum hardware is the complete version, suitable for arcade environments. The single drum hardware is a modified version of the dual drum hardware with half of the input circuit removed, and it is compatible with more single-player scenarios in software. The hardware consists of dual taiko hardware and single taiko hardware. The dual taiko hardware is the complete version, suitable for arcade environments. The single taiko hardware is a modified version of the dual taiko hardware with half of the input circuit removed, and it is compatible with more single-player scenarios in software.
## Dual Drum Hardware ## Dual Taiko Hardware
[Hardware Engineering](./taiko-io/) [Hardware Engineering](./taiko-io/)
[Schematic](./taiko-io/new_io.pdf) [Schematic](./taiko-io/new_io.pdf)
![3D View of Dual Drum Hardware](./img/new_io_3d.png "3D View of Dual Drum Hardware") ![3D View of Dual Taiko Hardware](./img/new_io_3d.png "3D View of Dual Taiko Hardware")
3D view of dual drum hardware 3D view of dual taiko hardware
### Interfaces ### Interfaces
- 1 Two single drum input interfaces, with interface definitions inspired by Taiko Force. - 1 Two single taiko input interfaces, with interface definitions inspired by Taiko Force.
- 2 One dual drum input interface that can be soldered with an IDC-16P ribbon connector or an XAD connector (B16B-XADSS-N) to accommodate different interfaces of dual drums. - 2 One dual taiko input interface that can be soldered with an IDC-16P ribbon connector or an XAD connector (B16B-XADSS-N) to accommodate different interfaces of dual taiko.
- 3 Configuration USB interface for configuring the sampling microcontroller. - 3 Configuration USB interface for configuring the sampling microcontroller.
- 4 Taiko USB interface, when plugged into a computer, it enumerates as a USB-HID keyboard device for receiving drum data. - 4 Taiko USB interface, when plugged into a computer, it enumerates as a USB-HID keyboard device for receiving taiko data.
- 5 Service button input, soldered with an XAD or IDC connector to connect different button panels. The 16P interface is for custom connections, 36P is for the 12-pin IO board interface, and 40P is for updating the frame's IO board interface. It can connect up to 8 buttons with common ground. - 5 Service button input, soldered with an XAD or IDC connector to connect different button panels. The 16P interface is for custom connections, 36P is for the old IO board interface, and 40P is for newer the frame's IO board interface. It can connect up to 8 buttons with common ground.
- 6 STM32 burning interface and configuration serial port. - 6 STM32 burning interface and configuration serial port.
- 7 CH552/CH554 boot selection switch. - 7 CH552/CH554 boot selection switch.
## Single Drum Hardware ## Single Taiko Hardware
[Hardware Engineering](./taiko-io-mini/) [Hardware Engineering](./taiko-io-mini/)
[Schematic](./taiko-io-mini/Taiko_input_x4.pdf) [Schematic](./taiko-io-mini/Taiko_input_x4.pdf)
![3D View of Single Drum Hardware](./img/taiko_input_x4_3d.png "3D View of Single Drum Hardware") ![3D View of Single Taiko Hardware](./img/taiko_input_x4_3d.png "3D View of Single Drum Hardware")
3D view of single drum hardware 3D view of single taiko hardware
### Interfaces ### Interfaces
- Can only connect 4-channel sensors for a single drum, with interface definitions inspired by Taiko Force. - Can only connect 4-channel sensors for a single taiko, with interface definitions inspired by Taiko Force.
- Four buttons for mode selection and other functions. - Four buttons for mode selection and other functions.
# Assembly # Assembly
## Dual Drum Hardware ## Dual Taiko Hardware
The dual drum hardware does not have an external enclosure. It is assembled directly using screws, following the assembly approach commonly used in arcades. The dual taiko hardware does not have an external enclosure. It is assembled directly using screws, following the assembly approach commonly used in arcades.
![Assembly Dimension Diagram](./img/instructions.png "Assembly Dimension Diagram") ![Assembly Dimension Diagram](./img/instructions.png "Assembly Dimension Diagram")
Assembly Dimension Diagram Assembly Dimension Diagram
## Single Drum Hardware ## Single Taiko Hardware
The single drum hardware uses a more common and portable casing, making it easier to carry and connect. The single taiko hardware uses a more common and portable casing, making it easier to carry and connect.
![Assembly Illustration 1](./img/img1.png "Assembly Illustration 1") ![Assembly Illustration 1](./img/img1.png "Assembly Illustration 1")
Assembly Illustration 1 Assembly Illustration 1
![Assembly Illustration 2](./img/img2.png "Assembly Illustration 2") ![Assembly Illustration 2](./img/img2.png "Assembly Illustration 2")
Assembly Illustration 2 Assembly Illustration 2
![tag](./img/mark.png "tag")
tag

BIN
HW/img/mark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -14,14 +14,14 @@ Screenshot
### Software Interface ### Software Interface
- A-Drum sensor channel sequence configuration - A-Taiko sensor channel sequence configuration
- B-Input configuration-Trigger threshold (triggering is done in hardware, no obvious effect in software configuration) - B-Input configuration-Trigger threshold (triggering is done in hardware, no obvious effect in software configuration)
- C-Input configuration-Multiplication factor (configure this when a certain sensor is exceptionally sensitive or insensitive, C for reset) - C-Input configuration-Multiplication factor (configure this when a certain sensor is exceptionally sensitive or insensitive, C for reset)
- D-Output time configuration, H for hold time when pressing, L for hold time when releasing, no response to other inputs during hold time - D-Output time configuration, H for hold time when pressing, L for hold time when releasing, no response to other inputs during hold time
- E-Shielding configuration (used to calculate crosstalk caused by the physical structure of the drum) - E-Shielding configuration (used to calculate crosstalk caused by the physical structure of the taiko)
- F-Shielding configuration-Single response (selecting this will trigger only one sensor each time) - F-Shielding configuration-Single response (selecting this will trigger only one sensor each time)
- G-Shielding configuration-Calculate rounds (set to 0 to disable calculation, directly trigger according to the fastest speed) - G-Shielding configuration-Calculate rounds (set to 0 to disable calculation, directly trigger according to the fastest speed)
- H-Some default parameters (for big drum and arcade drum) - H-Some default parameters (for Taiko Force and arcade taiko)
- I-Serial port selection - I-Serial port selection
- J-Select the parameter group on the upload board - J-Select the parameter group on the upload board
- K-Upload parameter button - K-Upload parameter button
@ -34,12 +34,12 @@ Screenshot
- 1 Select the serial port, click upload, and the status will be displayed as `Success` (used to determine if the connection is successful) - 1 Select the serial port, click upload, and the status will be displayed as `Success` (used to determine if the connection is successful)
- 2 Reset the preset parameters according to your needs or upload old parameters - 2 Reset the preset parameters according to your needs or upload old parameters
- For modifications based on the old parameters, select `Load Saved`, and then press the upload parameter button - For modifications based on the old parameters, select `Load Saved`, and then press the upload parameter button
- For modifications based on the default configuration, click the desired default configuration button (the two default configurations only differ in drum mapping) - For modifications based on the default configuration, click the desired default configuration button (the two default configurations only differ in taiko mapping)
- After making modifications, click the download parameter button and confirm if the parameters are reasonable on the drum - After making modifications, click the download parameter button and confirm if the parameters are reasonable on the taiko
- Click the save parameter button - Click the save parameter button
## Other Instructions ## Other Instructions
- When using single drum hardware, the parameters for the second drum are meaningless - When using single taiko hardware, the parameters for the second taiko are meaningless
- Default configurations may have issues; you can make fine adjustments based on the default parameters to suit your drum - Default configurations may have issues; you can make fine adjustments based on the default parameters to suit your taiko
- The sensor wire sequence of the drum can be remapped through this host computer. - The sensor wire sequence of the taiko can be remapped through this APP.

View File

@ -101,7 +101,7 @@ USB单片机的软件工程位于此目录下。包含两个软件根据硬
表现就是在触发频率高的时候,同一个通道的输入会分配到另一个通道,不同的设备采取的方案不相同。 表现就是在触发频率高的时候,同一个通道的输入会分配到另一个通道,不同的设备采取的方案不相同。
- ns按键消抖做的比较激进直接在有高频输入的时候优先分配给同侧的两个按键。 - ns按键消抖做的比较激进直接在有高频输入的时候优先分配给同侧的两个按键。
- 虹:游戏软件限制了全局输入的最高频率和单个通道输入的最高频率,可能是为了方便计算图像,这边限制了单一个通道的输入频率,且将同为“咚”的输入分配给空闲的通道。 - 虹:游戏软件限制了全局输入的最高频率和单个通道输入的最高频率,可能是为了方便计算图像,这边限制了单一个通道的输入频率,且将同为“咚”的输入分配给空闲的通道。
- PC的其他应用比如说Open Taiko等软件没有做输入频率限制所以不需要做分配。 - PC的其他应用比如说Open Taiko等软件没有做输入频率限制所以不需要做分配。
![交叉分配](./USB-MCU/img/cross.png "交叉分配") ![交叉分配](./USB-MCU/img/cross.png "交叉分配")
适配虹的交叉分配示意图 适配虹的交叉分配示意图

View File

@ -1,6 +1,6 @@
# Taiko Input # Taiko Input
Taiko Input is a hardware device for drum input. It is a USB HID device that can connect two drums and has 8 channels of digital input. Taiko Input is a hardware device for taiko input. It is a USB HID device that can connect two taiko and has 8 channels of digital input.
The ニジイロ software mentioned in this document is downloaded from the internet. The ニジイロ software mentioned in this document is downloaded from the internet.
- [中文版](./README.md) - [中文版](./README.md)
@ -34,11 +34,11 @@ The ニジイロ software mentioned in this document is downloaded from the inte
The hardware engineering files are located in this directory. The hardware engineering files are located in this directory.
The `taiko-io/` directory contains the project for dual drums, suitable for the arcade environment. The project is designed using KICAD. The `taiko-io/` directory contains the project for dual taiko, suitable for the arcade environment. The project is designed using KICAD.
This hardware project includes 8 channels of analog input, 8 channels of digital input, on-board configuration interface, and USB power supply. This hardware project includes 8 channels of analog input, 8 channels of digital input, on-board configuration interface, and USB power supply.
The `taiko-io-mini/` directory contains the project for a single drum, generally used for a single drum environment. The project is designed using LCEDA. The `taiko-io-mini/` directory contains the project for a single taiko, generally used for a single taiko environment. The project is designed using LCEDA.
This hardware project includes 4 channels of analog input and 4 buttons, requiring test point configuration and USB power supply. This hardware project includes 4 channels of analog input and 4 buttons, must use test point to configuration, and USB power supply.
## USB-MCU USB Microcontroller ## USB-MCU USB Microcontroller
@ -46,9 +46,9 @@ This hardware project includes 4 channels of analog input and 4 buttons, requiri
The software projects for the USB microcontroller are located in this directory. There are two software projects, each tailored to different hardware. The software projects for the USB microcontroller are located in this directory. There are two software projects, each tailored to different hardware.
The microcontroller used is CH552/CH554, which is an 8-bit USB microcontroller. The microcontroller used is CH552/CH554, which is an 8-bit USB microcontroller.
The `TK_usb_CH552/` directory contains software adapted for the dual drum hardware (arcade), which can be enumerated as a USB-HID keyboard. The `TK_usb_CH552/` directory contains software adapted for the dual taiko hardware (arcade), which can be enumerated as a USB-HID keyboard.
The `TK_usb_CH552_mini/` directory contains software adapted for the single drum hardware, capable of being enumerated as different USB devices, such as USB-HID keyboard or n******o switch-compatible gamepad. The `TK_usb_CH552_mini/` directory contains software adapted for the single taiko hardware, capable of being enumerated as different USB devices, such as USB-HID keyboard or n******o switch compatible gamepad.
The software is compiled using Keil 4, and relevant software functionality can be enabled/disabled based on macros before compilation. The software is compiled using Keil 4, and relevant software functionality can be enabled/disabled based on macros before compilation.
@ -81,32 +81,13 @@ System Diagram
# Some Interesting Designs # Some Interesting Designs
These designs are mainly based on observations of game behavior to optimize the gaming experience. They may be reasonable or unreasonable. The main focus is on optimizing the gaming experience
by observing the characteristics of game operation.
## Observations of Game Software Behavior It may or may not be reasonable.
- Input Frequency Limit: Both the ns platform games and Taiko-Hi have input frequency limits. After testing, it is found that the limits apply independently to each player. For the same player, a single channel has a limit of 30 inputs per second, and all four channels together have a limit of 60 inputs per second. Inputs exceeding this frequency will be discarded.
In other words, if only Left Don or Right Don is struck, a maximum of 30 strikes per second is possible, but if Left and Right Don are struck alternately, it can increase to 60 strikes per second.
- Hardware Limitations of the ns Platform: There is a long filtering period for button inputs, and both the button press and release need to be held for a period of time to take effect.
In ns games, this period needs to be longer than 20ms. However, on the home screen, it needs to be even longer, possibly exceeding 20ms and reaching up to 100ms. This may be because the ns supports variable filtering time.
- Injection of Taiko-Hi Data:
## Cross-Assignment of Outputs
Functional implementation is located in the [USB Microcontroller](./USB-MCU/) section.
Due to different software capabilities or operating modes, different software projects support different maximum input frequencies. Cross-assignment of outputs is mainly done to reach the maximum input frequency of each device.
In cases where the input frequency is
# Some Split Design Ideas
The main focus is on optimizing the gaming experience by observing the characteristics of game operation. It may or may not be reasonable.
## Observation of Game Software Operation ## Observation of Game Software Operation
- Input Frequency Limitation: Both the ns platform games and ニジイロ have input frequency limitations. After testing, each player has independent limitations. For the same player, a single channel can have a maximum limit of 30 inputs per second, while all four channels together are limited to 60 inputs per second. Inputs exceeding this frequency will be discarded. - Input Frequency Limitation: Both the ns platform games and ニジイロ have input frequency limitations. After testing, each player has independent limitations. For the same player, a single channel can have a maximum limit of 30 inputs per second, while all four channels together are limited to 60 inputs per second. Inputs exceeding this frequency will be discarded.
This means that if only left or right drum hits are played, a maximum of 30 hits per second can be achieved. However, if left and right drum hits are alternated, it can be increased to 60 hits per second. This means that if only left or right taiko hits are played, a maximum of 30 hits per second can be achieved. However, if left and right taiko hits are alternated, it can be increased to 60 hits per second.
- Hardware Limitations of the ns Platform: Key inputs have a long debouncing time, and both pressing and releasing the keys need to be held for a certain period to take effect. - Hardware Limitations of the ns Platform: Key inputs have a long debouncing time, and both pressing and releasing the keys need to be held for a certain period to take effect.
Within an ns game, this period needs to be greater than 20ms. However, on the home screen, it needs to be much greater than 20ms, even up to 100ms, which may be due to variable filtering time supported by the ns. Within an ns game, this period needs to be greater than 20ms. However, on the home screen, it needs to be much greater than 20ms, even up to 100ms, which may be due to variable filtering time supported by the ns.
@ -129,25 +110,25 @@ Diagram showing cross-channel allocation designed for ニジイロ.
## Signal Triggering and Crosstalk Detection ## Signal Triggering and Crosstalk Detection
When multiple signals are input simultaneously, the channel with the higher amplitude is selected for triggering. When multiple signals are input simultaneously, the channel with the higher amplitude is selected for triggering.
Drum sensors are fixed on several relatively independent wooden boards. In general, direct strikes on the boards produce signals with much higher intensity compared to signals affected by vibration or crosstalk. Taiko sensors are fixed on several relatively independent wooden boards. In general, direct strikes on the boards produce signals with much higher intensity compared to signals affected by vibration or crosstalk.
The approach here is to introduce a small delay after the first trigger and wait for other channels to trigger. If multiple channels are triggered during this period, the channel with the strongest signal is output. The approach here is to introduce a small delay after the first trigger and wait for other channels to trigger. If multiple channels are triggered during this period, the channel with the strongest signal is output.
![Triggering](./Sampling-MCU/img/trigger.png "Triggering") ![Triggering](./Sampling-MCU/img/trigger.png "Triggering")
Illustration of the triggering process. Illustration of the triggering process.
If crosstalk occurs no matter how it is adjusted, the drum's structure needs to be considered. Check if any sensors have come loose or if the height adjustment of the wooden boards is appropriate. If crosstalk occurs no matter how it is adjusted, the taiko's structure needs to be considered. Check if any sensors have come loose or if the height adjustment of the wooden boards is appropriate.
# Appearance # Appearance
Refer to [Hardware Engineering](./HW/) for details. Refer to [Hardware Engineering](./HW/) for details.
## Dual Drum Hardware (Arcade/Two Drum Scene) ## Dual Taiko Hardware (Arcade/Two Taiko Scene)
![3D Rendering of Dual Drum Hardware](./HW/img/new_io_3d.png "3D Rendering of Dual Drum Hardware") ![3D Rendering of Dual Taiko Hardware](./HW/img/new_io_3d.png "3D Rendering of Dual Taiko Hardware")
3D rendering of the dual drum hardware. 3D rendering of the dual taiko hardware.
## Single Drum Hardware (For Personal Use) ## Single Taiko Hardware (For Personal Use)
![3D Rendering of Single Drum Hardware](./HW/img/taiko_input_x4_3d.png "3D Rendering of Single Drum Hardware") ![3D Rendering of Single Taiko Hardware](./HW/img/taiko_input_x4_3d.png "3D Rendering of Single Taiko Hardware")
3D rendering of the single drum hardware. 3D rendering of the single taiko hardware.

View File

@ -7,19 +7,19 @@
[Home](../) [Home](../)
## Dual Drum Version and Single Drum Version ## Dual Taiko Version and Single Taiko Version
Differentiate the software between dual drum and single drum hardware using macros in /main.h/. Differentiate the software between dual taiko and single taiko hardware using macros in /main.h/.
It is important to note that the software compiled for single drum hardware cannot be used on dual drum hardware due to differences in initialization. It is important to note that the software compiled for single taiko hardware cannot be used on dual taiko hardware due to differences in initialization.
Single Drum Version: Single Taiko Version:
``` ```
... ...
#define IS_4CH_MODE #define IS_4CH_MODE
... ...
``` ```
Dual Drum Version (comment out this line of code): Dual Taiko Version (comment out this line of code):
``` ```
... ...
//#define IS_4CH_MODE //#define IS_4CH_MODE
@ -30,7 +30,7 @@ Dual Drum Version (comment out this line of code):
## Digital Signal Processing ## Digital Signal Processing
Digital signal processing mainly involves trigger handling, debouncing, and determining if there is signal crosstalk. Digital signal processing mainly involves trigger handling, debouncing, and determining if there is signal crosstalk.
Since the drum contains a physical structure, vibrations can cause signal misfires. Therefore, it is necessary to determine and output the signals received at the same time. Since the taiko contains a physical structure, vibrations can cause signal misfires. Therefore, it is necessary to determine and output the signals received at the same time.
### Processing Flowchart ### Processing Flowchart
@ -39,14 +39,14 @@ Data flow diagram
After the signal is sampled, it is recorded as a waveform array, and a trigger function is used to determine if there is a signal with the expected strength. After the signal is sampled, it is recorded as a waveform array, and a trigger function is used to determine if there is a signal with the expected strength.
The delayed output ensures that when a signal arrives, it does not miss the trigger of other sensors. If other channels are triggered during the delay, the triggered values will also be recorded. The delayed output ensures that when a signal arrives, it does not miss the trigger of other sensors. If other channels are triggered during the delay, the triggered values will also be recorded.
The arbitration function determines the maximum strength among the triggered channels during the delay and is used to reset the states of other functions. The arbitration function determines the maximum strength among the triggered channels during the delay, and then reset the states of other functions.
The output signal is sent to the USB microcontroller by the output device. The output signal is sent to the USB microcontroller by the output device.
### Signal Triggering and Crosstalk Detection ### Signal Triggering and Crosstalk Detection
When multiple signals are input simultaneously, the channel with the higher amplitude will be triggered. When multiple signals are input simultaneously, the channel with the higher amplitude will be triggered.
The drum sensors are fixed on several relatively independent boards. Typically, the signal obtained by directly striking the board has a much higher strength than the signals caused by vibration interference or crosstalk. The taiko sensors are fixed on several relatively independent boards. Typically, the signal obtained by directly striking the board has a much higher strength than the signals caused by vibration interference or crosstalk.
The approach here is to wait for a small delay after the initial trigger to allow other channels to trigger. If multiple channels are triggered during this period, then the channel with the strongest signal among them is output. The approach here is to wait for a small delay after the initial trigger to allow other channels to trigger. If multiple channels are triggered during this period, then the channel with the strongest signal among them is output.

View File

@ -24,10 +24,12 @@ n******o switch限制输入信号的时间为20ms按下与抬起都为20ms左
### 分配输出 ### 分配输出
由于机能或软件运行方式,不同的软件支持的输入最大频率不同,分配输出主要用于使输入频率能达到这台设备的上限。 由于机能或软件运行方式,不同的软件支持的输入最大频率不同,分配输出主要原因是为了能使输入频率达到这台设备的上限。
表现就是在触发频率高的时候,同一个通道的输入会分配到另一个通道,不同的设备采取的方案不相同。 表现就是在触发频率高的时候,同一个通道的输入会分配到另一个通道,不同的设备采取的方案不相同。
- ns按键消抖做的比较激进直接在有高频输入的时候优先分配给同侧的两个按键。 - ns按键消抖做的比较激进直接在有高频输入的时候优先分配给同侧的两个按键。
- 虹:游戏软件限制了全局输入的最高频率和单个通道输入的最高频率,可能是为了方便计算图像,这边限制了单一个通道的输入频率,且将同为“咚”的输入分配给空闲的通道。 - 虹:游戏软件限制了全局输入的最高频率和单个通道输入的最高频率,可能是为了方便计算图像,这边限制了单一个通道的输入频率,且将同为“咚”的输入分配给空闲的通道。
- PC的其他应用比如说Open Taiko等软件没有做输入频率限制所以不需要做分配。
![交叉分配](./img/cross.png "交叉分配") ![交叉分配](./img/cross.png "交叉分配")
适配虹的交叉分配示意图 适配虹的交叉分配示意图

View File

@ -18,41 +18,42 @@ Input -> Output Frequency Limitation -> Output Assignment -> Key Mapping -> USB
### Output Frequency Limitation ### Output Frequency Limitation
The output frequency limitation is mainly due to the hardware or program that receives the data. When it receives data that exceeds its processing capability, packet loss may occur. The output frequency limitation is mainly due to the hardware or program that receives the data. When it receives data that exceeds its processing capability, packet loss may occur.
After multiple tests, the software input limitation for ニジイロ is a maximum input frequency of 60Hz for all channels and 30Hz for signals of the same color. After multiple tests, the software input limitation for ニジイロ is a maximum input frequency of 60Hz for all channels and 30Hz for signals of the one channel.
The n******o switch limits the input signal time to 20ms (both press and release are around 20ms; values smaller than this may result in sticky inputs). The n******o switch limits the input signal filter to 20ms (both press and release are around 20ms; values smaller than this may result in sticky inputs).
Other software running on different computers usually doesn't have this convenient limitation, but there is usually a filtering of around 10ms on the selection page. Other game software running on different computers usually doesn't have this convenient limitation, but there is usually a filtering of around 10ms on the selection page.
### Output Assignment ### Output Assignment
Due to different functionalities or software operation modes, different software supports different maximum input frequencies. Output assignment is mainly used to make the input frequency reach the upper limit of the device. Due to different device capabilities or software running methods, different software support different maximum input frequencies. The purpose of allocating the output channels is to achieve the input frequency limit of the particular device.
The behavior is that when the triggering frequency is high, the input of the same channel will be assigned to another channel. Different devices adopt different approaches. The behavior observed is that when the triggering frequency is high, inputs from the same channel will be allocated to another channel. Different devices adopt different approaches:
- For NS: The key debouncing is relatively aggressive. When there is a high-frequency input, it will be assigned to the two adjacent keys on the same side. - ns: Aggressive debouncing is performed, and when there are high-frequency inputs, they are allocated primarily to the two adjacent keys on the same side.
- For ニジイロ: The gaming software limits the maximum global input frequency and the maximum input frequency per channel. This may be for easier image calculations. Here, the input frequency for each channel is also limited, and inputs that have the same sound are assigned to idle channels. - ニジイロ: The game software limits the maximum global input frequency and the maximum input frequency for a single channel. This may be for the convenience of calculating images. Here, the input frequency for a single channel is limited, and inputs of the same type (e.g., same "dong") are allocated to idle channels.
- Other applications on PC (such as Open Taiko): These software programs do not have input frequency limitations, so no allocation is needed.
![Cross Assignment](./img/cross.png "Cross Assignment") ![Cross Assignment](./img/cross.png "Cross Assignment")
Cross assignment diagram for compatibility with ニジイロ Cross assignment diagram for compatibility with ニジイロ
### Key Mapping ### Key Mapping
- For dual-drum hardware, drum inputs are mapped to keyboard inputs DFJK ZXCV, and service key inputs are mapped to keyboard inputs 12345678. - For dual-taiko hardware, taiko inputs are mapped to keyboard inputs DFJK ZXCV, and service key inputs are mapped to keyboard inputs 12345678.
- For single-drum hardware, there are two modes: NS mode and keyboard mode. For NS mode, the input keys are shown in the image below. For keyboard mode, you can set the inputs as DFJK or ZXCV through the buttons, with DFJK being the default. - For single-taiko hardware, there are two modes: NS mode and keyboard mode. For NS mode, the input keys are shown in the image below. For keyboard mode, you can set the inputs as DFJK or ZXCV through the buttons, with DFJK being the default.
![Tags](./img/tag.png "Tags") ![Tags](./img/tag.png "Tags")
Tags for single-drum hardware Tags for single-taiko hardware
## Modifying the Program ## Modifying the Program
### Dual-drum Software ### Dual-taiko Software
- To disable the output assignment feature, modify the `WITHOUT_OUTPUT_ASSIGN` macro inside `CompatibilityHID.C` by uncommenting it. - To disable the output assignment feature, modify the `WITHOUT_OUTPUT_ASSIGN` macro inside `CompatibilityHID.C` by uncommenting it.
- To modify the parameters related to output frequency limitation, modify the `EXCHANGE_DATA` macro inside `CompatibilityHID.C`. - To modify the parameters related to output frequency limitation, modify the `EXCHANGE_DATA` macro inside `CompatibilityHID.C`.
- To change the key values, modify the array inside the `Enp2BlukIn` function in `CompatibilityHID.C`. - To change the key values, modify the array inside the `Enp2BlukIn` function in `CompatibilityHID.C`.
### Single-drum Software ### Single-taiko Software
The single-drum software integrates three modes: NS mode (using HORI's PID/VID, where NS only verifies the PID/VID without any further encryption), keyboard mode compatible with ニジイロ (60Hz input lock), and keyboard mode compatible with other taiko drum software (unlock the limitations and disable the output assignment). The single-taiko software integrates three modes: NS mode (using HORI's PID/VID, where NS only verifies the PID/VID without any further encryption); keyboard mode compatible with ニジイロ (60Hz input lock); and keyboard mode compatible with other taiko taiko software (unlock the limitations and disable the output assignment).
- To change the default startup mode, modify the `MODE_STARTUP` macro inside `CompatibilityHID.C`. - To change the default startup mode, modify the `MODE_STARTUP` macro inside `CompatibilityHID.C`.
- To switch modes during startup within 1 second, use the following button combinations: - To switch modes during startup within 1 second, use the following button combinations: