Skip to the content
PCBKitNew board
2 layers124.5 × 156.8 mmPulsar, the printed circuit board in 3D

The functional keyboard for creators.

Size
124.5 × 156.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
63
Nets
44
Pads
270
Tracks, vias
773, 43
Pours
6
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
15 Mar 2020
Updated
6 Mar 2021

Overview

Pulsar is an open-source printed circuit board by mackee, from the mackee/pulsar repository on GitHub. It is a 2-layer board of 124.5 × 156.8 mm with 63 parts on 44 nets, routed with 773 tracks and 43 vias.

It is built around the AMS1117-3.3 and WS2812B. Its parts include 13 capacitors, 13 switches, 11 diodes, 4 resistors and 4 connectors. It belongs with the STM32 boards of this library.

Main components

2

README

README.md

Pulsar - The functional keyboard for creators

部品の不足や不具合, その他のお問い合わせ

Twitterの私のアカウントまでDMをしてください @mackee_w

ビルドガイド

このビルドガイドはRev.2(11キー)版のビルドガイドです。Rev.1(9キー+OLED付き) のビルドガイドはこちら

https://gist.github.com/mackee/b5231e5609be889129ee4aa5c9ab0aaa

同梱しているもの

img

Pulsar本体基板

img

メイン基板と、LEDがついたボトムプレートが一体になっています。

トッププレート

img

本体基板とは別に添付しています。

ネジ袋

img

ネジが入った袋です。袋の中には以下の物が含まれています。

  • M2 スペーサー 高さ7.5mm x 8本
  • M2 ネジ x 16本

別途使用に必要なもの

キースイッチ x 11個

Cherry MX互換のキースイッチに対応しています。

Kailh BOX, Kailh Speed, Gateronスイッチの適合を確認しています

キーキャップ x 11個

入手されたキースイッチに適合するキーキャップが必要です

ノブ/つまみ

親指ロータリーエンコーダ部分に使用するノブです。

軸φ6.1に対応しているつまみが使用できます。また、直径2.3cm以上のつまみはキーキャップと干渉します。

秋月電子で売られているK-59や、千石電商で扱いがあるBR-20が使用できることを確認しています。

別途組み立てに必要な道具

  • + 精密ドライバー
  • ラジオペンチ

組み立て方

1. 基板を分割する

Pulsar基板本体をメイン基板とボトムプレートに分割します。

4箇所あるので、できるだけ近い部分を持ちつつ折ってください。写真のようにラジオペンチを使うときれいに折れます。

2. ボトムプレートにスペーサーを立てる

ネジ袋からスペーサーを8個全部と、黒いネジを8個取り出します。

ボトムプレートの何も部品がない面から、ネジを差し込み、反対側からスペーサーを取り付けます。

このとき、はじめは手で軽く締めていって、最後に精密ドライバーでネジを、ラジオペンチでスペーサーを持って固く締めます。

8箇所ある穴すべてにスペーサーを立てます。

3. メイン基板をボトムプレートに重ねる

メイン基板を、スペーサーを立てたボトムプレートの上に重ねます。

メイン基板の取り付け穴はスペーサーの直径よりも大きいので、穴の中にスペーサーを通すようにします。

また、ロータリーエンコーダを右下にしたときに、ボトムプレートには 3本のピンヘッダーが、メイン基板にはピンヘッダを通すための穴があります。

電気的に接触するため、メイン基板側の真ん中の穴が少しずれています。重ねたときに、ボトムプレートのピンがメイン基板の穴に刺さるようにします。

止まるまでグググッと押し込みます。

4. トッププレートを取り付ける

ボトムプレートに、メイン基板を重ねた物の上にさらに、トッププレートを重ねます。

スペーサーの位置とトッププレートの位置を合わせて、トッププレートを残りのネジで固定します。

これで、Pulsarの本体は完成です。

5. キースイッチを取り付ける

トッププレートの穴から、キースイッチを差し込んでいきます。

このとき、メイン基板の黒い丸の部品と、キースイッチのピンの位置を合わせます。

また、キースイッチのピンが曲がっているときは、差し込んだときに折れてしまうことがあるため、ラジオペンチなどでまっすぐにしておきます。

トッププレートと、キースイッチの縁が当たるまで、強く押し込みます。

6. キーキャップを取り付ける

キースイッチにキーキャップを取り付けます。

7. つまみ/ノブを取り付ける

ロータリーエンコーダにつまみ/ノブを取り付けます。

これで完成です! お疲れさまでした。

デフォルトキーマップ

レバースイッチ押し込みを続けるとLED/RESETレイヤーに入ります。

キーマップ変更方法

NOTICE: 本家qmk_firmwareへPull Request予定です。マージされたあとに手順が変わります

qmk configuratorは現在ロータリーエンコーダに対応していないため、ソースコードを変更してキーマップを変える手順を記述します。

事前にqmk_firmwareを扱える環境を構築しておきます。

はじめに - QMK Firmware

参考: QMK 環境の構築

1. pulsar ブランチを指定して github.com/mackee/qmk_firmwareをcloneします。

console
$ git clone -b pulsar github.com/mackee/qmk_firmware

すでにqmk_firmwareのclone済みブランチがある場合は、

console
$ git remote add mackee https://github.com/mackee/qmk_firmware
$ git fetch mackee pulsar
$ git checkout pulsar

と、リモートリポジトリを追加してcheckoutします。

2. ファームウェアを書き込む

動作確認のためにファームウェアを書き込みます。頒布時点で書き込まれているキーマップはdefaultです。

qmk_firmwareのディレクトリにCLIターミナル内で移動し、以下のコマンドを実行します。

console
$ make pulsar/rev2:default:dfu-util
$ qmk flash -kb pulsar/rev2 -km default

ERROR: Bootloader not found. Trying again in 5s. と表示されたら、右下レバースイッチを押し込みながら、一番右上のキーを押します。すると、書き込みが開始されます。

Transitioning to dfuMANIFEST state と表示されたら成功です。

3. キー配置を変更する

defaultキーマップをもとにキー配置を変えてみます。

まず、keyboard/pulsar/keymaps/rev2/defaultディレクトリをコピーしてkeyboard/pulsar/rev2/keymaps/mykeymapディレクトリを作ります。

console
$ cp -R keyboard/pulsar/rev2/keymaps/default keyboard/pulsar/rev2/keymaps/mykeymap

その後にお好きなテキストエディタでkeyboard/pulsar/rev2/keymaps/mykeymap/keymap.cを編集します。

例えばSと入力されるように設定しているキーをDに変更するには以下のようにkeymap.cを変更します。

diff
@@ -28,7 +28,7 @@ enum {

 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   [_BASE] = LAYOUT( /* Base */
-    KC_LSHIFT, KC_A,    KC_S,     KC_Y,    KC_M,             \
+    KC_LSHIFT, KC_A,    KC_D,     KC_Y,    KC_M,             \
     KC_LCTRL,  KC_Z,    KC_X,     KC_C,    KC_V,             \
                                   KC_LALT,                   \
     JP_LBRC,   XXXXXXX, LT(_LED, KC_ENTER), XXXXXXX, JP_RBRC \

キーコードの参考ドキュメント: キーコードまとめ

キーマップの最下段はレバースイッチのキーマップです。レバースイッチには半押しも検知できる機能があるのですが、使いにくいためdefaultキーマップでは使っていません。

JPがプレフィックスにあるキーコードは、日本語キーボード向けのキーコードです。Windowsですでに日本語キーボードが別にある環境で利用してください。

保存後にキーボードにキーマップを書き込むには、 2と同様の手順で、以下のコマンドを実行します。

console
$ qmk flash -kb pulsar/rev2 -km mykeymap

4. ロータリーエンコーダの挙動を変更する

ロータリーエンコーダはkeymap.c内のencoder_update_user関数で挙動を定義しています。

c
void encoder_update_user(uint8_t index, bool clockwise) {
  if (index == 0) {
    if (clockwise) {
      if (get_mods() & MOD_LCTL) {
        rgblight_step();
      } else if (get_mods() & MOD_LSFT) {
        tap_code(KC_END);
      } else {
        tap_code(KC_MS_WH_DOWN);
      }
    } else {
      if (get_mods() & MOD_LCTL) {
        rgblight_step_reverse();
      } else if (get_mods() & MOD_LSFT) {
        tap_code(KC_HOME);
      } else {
        tap_code(KC_MS_WH_UP);
      }
    }
  }
}

KC_から始まるキーコードを変更すれば、そのまま挙動を変えることが出来ます。

clockwiseがtrueの場合は時計回り、falseのときは反時計回りの場合です。また、get_mods() & MOD_***では装飾キーの同時押しの場合の挙動を記述しています。

LICENSE

ハードウェア

回路図, パーツリスト, 基板配線図などハードウェア部分

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

ソフトウェア

本製品のファームウェアはqmk firmwareのライセンスに従います。

Parts

63
QtyValueFootprintReferences
110.1uCapacitors_SMD:C_0805_HandSolderingC2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
11KEYSWkeyswitches:Kailh_socketK1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11
11WS2812BLED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mmD1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11
8MountingHoleMounting_Holes:MountingHole_2.2mm_M2H8, H10, H11, H12, H13, H14, H15, H16
8MountingHoleMounting_Holes:MountingHole_4.3mm_M4H1, H2, H3, H4, H5, H6, H7, H9
222Resistors_SMD:R_0805_HandSolderingR3, R4
25K1Resistors_SMD:R_0805_HandSolderingR1, R2
110uFCapacitors_SMD:C_0805_HandSolderingC13
122uFCapacitors_SMD:C_0805_HandSolderingC1
1AMS1117-3.3TO_SOT_Packages_SMD:SOT-223-3_TabPin2U2
1Conn_01x03pulsar:3pin-zigzagJ3
1Conn_01x03Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm_SMD_Pin1LeftJ2
1Conn_01x06Pin_Headers:Pin_Header_Straight_1x06_Pitch2.54mmJ1
1Rotary_EncoderRotary_Encoder:RotaryEncoder_Alps_EC12E_Vertical_H20mmSW2
1STM32F072C8TxHousings_QFP:LQFP-48_7x7mm_Pitch0.5mmU1
1TMHU28pulsar:TMHU28SW3
1USB_C_Receptacle_USB2.0usb-type-c:Mid_Mount-USB_C_HandSolderingJ4

Questions

How big is the Pulsar PCB?

It measures 124.5 × 156.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Pulsar use?

63 parts, built around the AMS1117-3.3 and WS2812B. 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 Pulsar KiCad files?

From the mackee/pulsar repository on GitHub, at the commit this page was made from: the board is pcb/pulsar.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pulsar design in my own project?

Its repository states no licence, so its author keeps all rights: ask mackee before reusing the design.

Similar boards

  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 4 layers67 × 98 mmSJ-201-R6, the printed circuit board in 3D

    SJ-201-R6

    MycroftAI/hardware-mycroft-mark-II

    Mycroft's Mark II Rpi mechanical, electrical and industrial designs

    235 parts113
  • 2 layers60 × 30 mmTd free, the printed circuit board in 3D

    Td free

    mawoka-myblock/td-free

    Measure the TD of your filament easily

    24 parts60EUPL-1.2
  • 2 layers148.6 × 192.2 mmBadge, the printed circuit board in 3D

    Badge

    NuttyShell/NuttyBadge

    NuttyBadge: A NuttyShell crafted multi-tool. Opensourced Hardawre and Software

    169 parts31GPL-3.0
  • 2 layersTopBoard, the printed circuit board in 3D

    TopBoard

    Libre-Talk/Wave

    Smart Speaker satellite

    184 parts22
  • 2 layers50.6 × 71.1 mmOpen ESPilot, the printed circuit board in 3D

    Open ESPilot

    Tomas-Kuchta-FPV/Open-ESPilot

    An open-source project to develop a custom ESP32-based flight controller designed primarily for use with ArduPilot. Focused on affordability, flexibility, and ease of integration with various robotic and UAV platforms.

    109 parts18CERN-OHL-W-2.0
  • 2 layers85 × 99.6 mmBadge, the printed circuit board in 3D

    Badge

    urish/aramcon-badge

    Just a badge

    93 parts18
  • 4 layers99.1 × 68.6 mmSTM32XP, the printed circuit board in 3D

    STM32XP

    MechatronixLab/STM32XP

    Development board based on the STM32F411RET6

    176 parts14