Skip to the content
PCBKitNew board
2 layers58.4 × 22.6 mmTS Core, the printed circuit board in 3D
Size
58.4 × 22.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
59
Nets
49
Pads
194
Tracks, vias
487, 39
Pours
2
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
16 Jun 2024
Updated
14 Nov 2025

Overview

TS Core is an open-source printed circuit board by seiken-dev, from the seiken-dev/TinyStick repository on GitHub, published under the BSD-3-Clause licence. It is a 2-layer board of 58.4 × 22.6 mm with 59 parts on 49 nets, routed with 487 tracks and 39 vias.

It is built around the ATTINY3217-MF, LIS2DH12 and 1N5819WS, with the AO3400A, CR2032 and PKLCS1212E2000-R1 among its other parts. Its parts include 12 capacitors, 8 resistors, 7 connectors, 7 switches and 2 ICs. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

7

README

README.md

TinyStick

TinyStick

TinyStickは、ATtiny3217(32KB Flash, 2KB SRAM, 256B EEPROM)を搭載した、Arduino互換の開発キットです。消費電流は約4.5mA(クロック10MHz。スリープ時は0.1mA未満)と小さく、コイン電池で長期間動作します。プログラムの書き込みは、付属のUSBシリアル変換基板(CH340E搭載)で行います。詳しくは、 tinystick.jpをご覧ください。

コンテンツ

  • Arduino
    PlatformIOでビルドできるデモのソースコードです。
  • KiCad
    KiCad(7.0)のプロジェクトです。TinyStick本体のTS_Core.kicad_proと、USBシリアル変換基板のTS_USB.kicad_proが含まれます。
  • schematic
    TinyStick本体とUSBシリアル変換基板の回路図PDFです。
  • Blender
    3Dプリントケース作成用のBlenderのプロジェクトファイルと、発注に使用したSTLファイルです。

プログラミング

TinyStickのプログラミングは、PlatformIOで行います。Arduino IDEは、2.3版ではTinyAVR用のボードマネージャーの定義が読み込めない等の理由で推奨しません。(→参考)

ビルド

  • PlatformIOのプロジェクトフォルダにArduino以下をコピーし、適当な名前(例:TinyStickDemo)に変更します。
  • PlatformIOのHome画面から[Open Project...]で、このプロジェクトを開きます。
  • 必要なplatform(Atmel megaAVR)のインストールが自動的に始まります。
  • インストールが完了したらBuildしてください。

UPDI書き込み

  • USBシリアル変換基板をUSBケーブルで接続して、スイッチをオンします(赤いLEDが光ります)。このとき、ドライバを自動認識しない場合は、メーカーのHPからCH340のドライバをダウンロードしてインストールしてください。
  • Windowsの場合は、デバイスマネージャの「ポート(COMとLPT)」に「USB-SERIAL CH340 (COMxx)」と表示されれば完了です。
  • PlatformIOのUploadをクリックすると、プログラムを転送します。

シリアルデバッグ

  • 横のボタン(Button5)を押して「Bounce Ball」デモに切り替えたあと、PlatformIOのSerial MonitorまたはTera Term等のターミナルアプリを起動すると、加速度の数値が流れてきます。
  • このUSBシリアル変換基板は、ターミナルアプリを起動するとRTS信号がLOWになることを利用して、UPDI書き込みとシリアル通信モードを自動的に切り替えます。(Windowsで確認 →参考)

platformio.ini

プロジェクトのルートにある設定ファイルです。重要な項目について説明します。

board_build.f_cpu = 10000000
CPUクロックを設定します。初期値は10MHz、最大は20MHzです。必ず5の倍数にしてください。そうしないとシリアル通信が文字化けします。また5MHzにすると、I2Cが正常に動作しません。記述しないと16MHzになります。

ソースコード

  • main.cpp
    メインプログラムで、初期化、タイトル表示、サイドボタン(Button5)によるデモの切り替え、長押しによるバックライトのオンオフを処理します。

  • TinyStickDef.h
    共通の#define、ピン定義です。

  • TinyStick.h .cpp
    ボタン、圧電ブザーのクラス、スリープ関連のグローバル関数です。

  • TinyLCD.h .cpp
    バックライト付きLCD AQM1248Aに、ビットマップまたは文字を表示するクラスです。文字は、拡大・ボールド・白黒反転・縦・プロポーショナル表示に対応しています。

  • font8x8.h
    8x8ドットフォントです。0x20から0x7Fまでの英数記号です。

  • TinyApp.h .cpp
    複数のアプリを切り替えるときは、このクラスの派生クラスを作成してmain.cppに定義するだけで、サイドボタン(Button5)で切り替えられます。

  • I2Cbase.h .cpp
    本体内蔵の加速度センサ(LIS2DH12)と、M5StickC用のENV Hat(SHT30)の基底クラスです。

  • octave.h
    ドレミの周波数を定義したファイルです。

  • playDigit.h .cpp
    2桁の整数値をドレミの音程で鳴らす関数です。

  • app/
    6つのデモアプリです。TinyAppの派生クラスです。

    • EnvHat.h .cpp
      ENV Hatで温度/湿度を表示します。Button1で次のアプリに切り替えます。装着されていないときはスキップします。

    • KitchenTimer.h .cpp
      キッチンタイマーです。最大99分。スタートすると、分をEEPROMに保存します。

    • AccelDemo.h .cpp
      加速度センサのデモです。傾けると玉が転がります。

    • FontTest.h .cpp
      8x8ドットフォントをダンプします。Button1で拡大、Button2,3でスクロールします。

    • Tetris.h .cpp
      お馴染みのゲームで、縦向きで遊びます。

    • Maze3D.h .cpp
      Line関数を利用した3次元迷路です。

スリープ機能

一定時間のスリープが出来ます。いずれかのボタンを押すと、スリープから復帰します。

  • 時間は任意の時間ではなく、TinyStick.hのenum SleepTimeの時間しか設定できません。
  • 本来PX2,PX6ピンに接続されたボタン(TinyStickではButton1のみ)でしかスリープからの復帰はできませんが、これはFALLINGモードの場合で、LOWモードならどのボタンでも復帰が可能です。このため、LOWモードでスリープし、起きたらFALLINGモードに変更して、連続して割り込みが入らないようにしています。

Parts

59
QtyValueFootprintReferences
16, , , , , , , , , , , , , , ,
91uCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C4, C5, C6, C7, C8, C9
510KResistor_SMD:R_0402_1005MetricR1, R2, R6, R7, R8
4TactileJSB01_Lib:SW-SMD_4P-L4.5-W4.5-P3.00-LS7.5SW1, SW2, SW3, SW4
20.1uCapacitor_SMD:C_0402_1005MetricC10, C11
1100KResistor_SMD:R_0402_1005MetricR4
110uCapacitor_SMD:C_0603_1608MetricC12
11N5819WSJSB01_Lib:SOD-323_L1.8-W1.3-LS2.5-RDD1
120KResistor_SMD:R_0402_1005MetricR3
12KJSB01_Lib:RES-ADJ-SMD_G32ATRV1
1470Resistor_SMD:R_0603_1608MetricR5
1AO3400AJSB01_Lib:AO3400AQ1
1AQM1248AJSB01_Lib:AQM1248AJ3
1ATtiny3217JSB01_Lib:HVQFN-24_L4.0-W4.0-P0.50U1
1CR2032JSB01_Lib:BAT-CR2032-2BT1
1DIPJSB01_Lib:SW-SMD_TSD101EZSW7
1Grove ConnectorJSB01_Lib:Grove_ConnectorJ6
1LCD BackLightJSB01_Lib:CONN-SMD_HC-1.0-2PWTJ7
1LIS2DH12JSB01_Lib:LGA-12_L2.0-W2.0-P0.50-BLU2
1M5StickC HatJSB01_Lib:PinSocket_M5StickHatJ2
1PKLCS1212E2000JSB01_Lib:BUZ-SMD_2P-L12.0-W12.0-LBZ1
1SML-D12P8WT86JSB01_Lib:LED0603-RD_GREEND2
1SlideJSB01_Lib:SW-SMD_K3-1280S-K1SW6
1SolderJumper_2_OpenJSB01_Lib:SolderJumper-2_Open_miniJP1
1Tactile(Side)JSB01_Lib:SW-SMD_BZCN_TSA002A35SW5
1TinyStick_Ext1Connector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_VerticalJ4
1TinyStick_Ext2Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ5
1USB SerialJSB01_Lib:USB SerialJ1

Questions

How big is the TS Core PCB?

It measures 58.4 × 22.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the TS Core use?

59 parts, built around the ATTINY3217-MF, LIS2DH12, 1N5819WS and AO3400A. 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.

Where can I download the TS Core KiCad files?

From the seiken-dev/TinyStick repository on GitHub, at the commit this page was made from: the board is KiCad/TS_Core.kicad_pcb and its schematic KiCad/TS_Core.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the TS Core design in my own project?

Its repository publishes it under the BSD-3-Clause licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from seiken-dev/TinyStick

1
  • 2 layers26 × 18 mmTS USB, the printed circuit board in 3D

    TS USB

    seiken-dev/TinyStick

    19 partsBSD-3-Clause

Similar boards

  • 2 layers274.3 × 30.5 mmNumitron2, the printed circuit board in 3D

    Numitron2

    74hc595/Numitron-Clock

    An alarm clock using 9-segment numitron displays

    56 parts6BSD-3-Clause
  • 4 layers177 × 140 mmX200s CM5-motherboard, the printed circuit board in 3D

    X200s CM5-motherboard

    el-puerro/die-aerzte

    aftermarket motherboard for the ThinkPad x200s

    54 parts
  • 4 layers140 × 70 mmSensor board, the printed circuit board in 3D

    Sensor board

    TrendBit/SMBR-hardware

    Design file for SMBR hardware modules in KiCAD.

    258 partsGPL-3.0
  • 4 layers121.9 × 109.2 mmPlinkyblack hwmidi jacks, the printed circuit board in 3D

    Plinkyblack hwmidi jacks

    plinkysynth/plinky_public

    a public release of the plinky sw and hw

    300 parts227
  • 4 layers55 × 55 mmThetaAnomalain, the printed circuit board in 3D

    ThetaAnomalain

    Barsy-Barsevich/Barsotion-TA

    Board computer for model rockets

    110 parts1GPL-3.0
  • 2 layers51.1 × 50 mmWheelchair ui, the printed circuit board in 3D

    Wheelchair ui

    coencoelectronics/WheelChairUI_PCB

    53 parts
  • 2 layers78.1 × 17.1 mmKicad koboy button side, the printed circuit board in 3D

    Kicad koboy button side

    samp38/koboy

    Kit to turn a Kobo mini into a flight instrument (XCSoar)

    24 parts2
  • 2 layers69.3 × 300 mmPcb tile game tile panelized, the printed circuit board in 3D

    Pcb tile game tile panelized

    bytesizedengineering/PCB-tile-based-game

    🧰 What You Need - Adafruit UPDI Friend - Arduino IDE - ATtiny3217 board - USB-C cable 1. Install MegaTinyCore 2. Select the Board 3. Connect the UPDI Friend 4. Select the Serial Port 5. Upload Code

    198 parts4GPL-3.0