
Vic2020mainboard
danwerner21/vic2020
A Vic-20 clone created with [almost] all readily available parts
2024/12/27に桃山大学テック部主催で開催されたハッカソンに出した作品Griconのコントローラー側のプログラム
Cuicuit is an open-source printed circuit board by naka6ryo, from the naka6ryo/Gricon_Controller-s_Code repository on GitHub, published under the MIT licence. It is a 2-layer board of 18.3 × 43.5 mm with 13 parts on 34 nets, routed with 66 tracks and 0 vias.
It is built around the 2SC1815. It belongs with the AVR (ATmega, ATtiny) boards of this library.
2024/12/27に桃山大学テック部主催で開催されたハッカソンに出展した作品 Gricon のコントローラー側プログラムです(2024/12/28 時点)。
このArduinoプログラムは、IMU(姿勢センサ)、曲げセンサ、モーターを統合し、姿勢推定・屈曲検出・振動出力を通じて新しい入力体験を提供します。
公式サイト:https://gricon.netlify.app/
🎮 ゲーム側のプログラム(Unity)
https://github.com/kdix-23-240/NewControllerProject-MomoyamaHack
📄 作品に関する情報・ソースコードの解説・開発の流れの説明(Notion)
https://flossy-band-678.notion.site/Gricon-Arduino-Unity-16a9ff2ca96c8032b9a5cc3768512383?pvs=4
以下は、本デバイスの回路図です(Arduino Nano 33 BLE + 曲げセンサ + モータ + Bluetooth構成):
![]()
コントローラは以下のフォーマットでバイナリ形式のデータを送信します。
[S][pitch (2 bytes)][roll (2 bytes)][yaw (2 bytes)][bend (1 byte)]
S: データ開始を示すヘッダ(1バイト)pitch, roll, yaw: 姿勢角(各2バイト、0.1°単位)bend: 曲げセンサ値(0〜20の範囲にクランプ)シリアル経由で以下の1文字コマンドを送ることで、モーターの振動出力パターンを変更可能:
| コマンド | 周波数 (Hz相当) | デューティ比 | 内容 |
|---|---|---|---|
'1' | 約25Hz | 40% | 弱い振動 |
'2' | 約50Hz | 20% | 中程度の振動 |
'3' | 約100Hz | 12.5% | 強い振動 |
'4' | 約125Hz | 90% | 連続振動 |
| その他 | - | 0% | モーター停止 |
プログラム開始時に自動実行され、地磁気・ジャイロのオフセットや曲げセンサの初期値を取得・補正します。
void setup() {
Serial.begin(9600); // デバッグ用
Serial1.begin(9600); // 外部機器との通信
pinMode(motorPin, OUTPUT);
initializeIMU();
delay(100);
}| ライブラリ名 | 説明 | インストール方法 |
|---|---|---|
| Arduino_LSM9DS1 | IMU(加速度・ジャイロ・地磁気)センサ用 | Arduino IDE → ライブラリマネージャから検索して導入 |
| MadgwickAHRS | 姿勢推定アルゴリズム | Arduino IDE → ライブラリマネージャから検索して導入 |
このプロジェクトは MIT License のもとで公開されています。
This repository contains the controller-side program for Gricon, a project exhibited at a hackathon hosted by the Momoyama University Tech Club on December 27, 2024 (status as of December 28, 2024).
This Arduino program integrates an IMU (inertial measurement unit), a flex sensor, and a vibration motor to provide a new input experience through orientation estimation, bend detection, and haptic feedback.
Official site: https://gricon.netlify.app/
🎮 Game-side program (Unity)
https://github.com/kdix-23-240/NewControllerProject-MomoyamaHack
📄 Project details / source code explanation / development process (Notion)
https://flossy-band-678.notion.site/Gricon-Arduino-Unity-16a9ff2ca96c8032b9a5cc3768512383?pvs=4
Below is the circuit diagram for this device (Arduino Nano 33 BLE + flex sensor + motor + Bluetooth configuration):
![]()
The controller sends data in the following binary format:
[S][pitch (2 bytes)][roll (2 bytes)][yaw (2 bytes)][bend (1 byte)]
S: 1-byte header indicating the start of a packetpitch, roll, yaw: Euler angles (2 bytes each, in 0.1° units)bend: flex sensor value (clamped to 0–20)You can change the vibration output pattern by sending a single-character command over serial:
| Command | Frequency (approx.) | Duty Cycle | Description |
|---|---|---|---|
'1' | ~25 Hz | 40% | Weak vibration |
'2' | ~50 Hz | 20% | Medium vibration |
'3' | ~100 Hz | 12.5% | Strong vibration |
'4' | ~125 Hz | 90% | Continuous vibration |
| Other | – | 0% | Motor off |
Calibration runs automatically at startup to obtain and compensate:
void setup() {
Serial.begin(9600); // For debugging
Serial1.begin(9600); // Communication with external device
pinMode(motorPin, OUTPUT);
initializeIMU();
delay(100);
}📚 Libraries Used Library Description Installation Method Arduino_LSM9DS1 IMU (accel / gyro / magnetometer) library Arduino IDE → Library Manager → search & install MadgwickAHRS AHRS orientation estimation algorithm Arduino IDE → Library Manager → search & install 📝 License
This project is released under the MIT License: https://opensource.org/licenses/MIT
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | Conn_01x02_Female | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | Bend, PW |
| 2 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2 |
| 2 | R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R2 |
| 1 | 1N4007 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | 1N4007 |
| 1 | 2SC1815 | Package_TO_SOT_THT:TO-92_Inline_Wide | 2SC1815 |
| 1 | Arduino_Nano_Every | Module:Arduino_Nano | Arduino_nano_33_ble1 |
| 1 | Conn_01x03_Female | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | DCDC |
| 1 | Conn_01x06_Female | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical | BLE |
| 1 | LOGO | Sign:Sign | G*** |
| 1 | Motor_DC | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | Motor |
It measures 18.3 × 43.5 mm and has 2 copper layers, 1.6 mm thick.
13 parts, built around the 2SC1815. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the naka6ryo/Gricon_Controller-s_Code repository on GitHub, at the commit this page was made from: the board is Cuicuit/Cuicuit.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

danwerner21/vic2020
A Vic-20 clone created with [almost] all readily available parts

GuitarML/GuitarPedalPCBs
Collection of KiCad circuit board designs for guitar pedals you can build yourself.



IdahoLabResearch/AcCCS
A collection of tools and scripts used to communicate and emulate Electric Vehicle Communication Controllers (EVCC) and Supply Equipment Communication Controllers (SECC).

StudioKAT/Toolbox
主な機能: - オーディオ/CVミキサー(加算・減算) - CVへのオフセット追加(5V/10V)・極性反転 - 1:3 バッファード・マルチプル - 2:2 ユニティミキサー - 3:1 アベレージミキサー(各チャンネルのゲイン = 1/3) - SIGNセクション:インバーター / 半波整流 / 全波整流 - LOGICセクション:アナログOR / アナログAND - S&Hセクション:サンプル&ホールド / ホワイトノイズ出力…

