WSOFT
  • Home
  • About
  • Works
  • Docs
  • Download
  • Contact
           
WSOFT

Home

About

Works

Docs

Download

Contact


           
法的資料  |  プライバシーポリシー  |  サービス状況  |  サイトマップ

Copyright © 2017 WSOFT All Rights Reserved.

Blog

  • WSOFT Blog
  • ブログ
    • News
      • WSOFT's blog
      • WSOFTのアイコンを入手する
      • WSOFTの製品の一覧
      • wsoft.wsへのドメイン移行に関する情報
      • WSOFTのロゴ変更に関する情報
      • WSOFTのドキュメントの WSOFT Docs への移行に関する情報
      • Raspberry Pi初代やZeroでAliceScriptを実行する
      • Losetta0.9.16に更新した後のエラーを直す
      • WSOFT AdventWeekへようこそ
    • たい
      • たい's blog
      • DiscordのBotは多重人格の夢を見るか?
      • GP2040-CEを自分でカスタマイズしてビルドする話
      • オブジェクト指向には2種類あるのかもしれない話
    • Zen
      • たわいもない話1
      • たわいもない話2
  • 共同作成ガイド
  • 製品
  • 法的資料
  • あみうは
  • 放送部マニュアル
目次
  • 環境
  • 環境構築
  • リポジトリのクローン
  • 設定の変更
  • ビルド
  • 書き込み
  • まとめ

GP2040-CEを自分でカスタマイズしてビルドする話

  1. WSOFTBlog
  2. ブログ
  3. たい
  4. GP2040-CEを自分でカスタマイズしてビルドする話

この記事では、自分がGP2040-CEをビルドするまでの手順を残しておこうと思います。


taiseiue | 2024-07-01


友人が去年くらいからずっと言っていたアーケードコントローラー(アケコン)について。 自分の手に馴染むHITBoxみたいなアケコンを作ってみたいと前から言ってて、ワクワクでJLCPCBで基盤を発注する矢先、 なんかどうも配線をミスったらしく、スタートボタンを別のGPIOピンに移せないかと相談されました。多分ファームウェアを修正してビルドすればいけそう。そんなこんなで今日は、GP2040-CEをカスタムビルドしました。

ちなみに作っていたアケコンはこんな感じ。かっこいいね。

問題のアケコン

GP2040-CEですが、どうやらRP2040系のマイコンでゲームコントローラーを作るためのOSSのファームウェアみたいです。

  • GP2040-CE

今回はバージョン0.7.9を使いました。

今回の本題のカスタムビルドについて、詳細なやり方はあんさんがまとめてくださっているので、こちらの方が参考になります。この記事では自分がやったことを淡々と書きます。

  • GP2040_CEビルド環境構築手順.pdf

環境

当方の環境です。これ以外でも導入するやつを変えれば多分動くと思いますが、参考までに。

  • Windowsパソコン(x86_64)
  • WaveShare RP2040-Zero

環境構築

インストールするものは以下の3つです。*がついているものについては、当方の環境ではすでに導入していたので細かく説明しません。

  • Arm GNU Toolchain
  • CMake
  • Visual Studio*
  • Python*
  • Git*

Arm GNU Toolchainについては、Windows環境ならarm-gnu-toolchain-XX.X.rel1-mingw-w64-i686-arm-none-eabi.exeみたいな形のファイルをダウンロードして、インストーラーをぽちぽち進めればOK。これはProgram Files (x86)内にインストールされているはずなので、C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\<バージョン>\binまでを控えておきます。

CMakeは自分の環境に合ったものをインストールでOK。ただし、ユーザーかコンピューターにPATHを通しておくことを忘れないこと。

リポジトリのクローン

好きな作業ディレクトリを作成してコマンドプロンプト(今はWindowsターミナル)で開きます。以下の例ではgp2040-ce-customとしました。

コマンドプロンプト
mkdir gp2040-ce-custom
cd gp2040-ce-custom

git clone https://github.com/OpenStickCommunity/GP2040-CE.git
cd GP2040-CE
git submodule update --init

mkdir build
cd build
git clone https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update --init

設定の変更

ここまで書けたら自作基板用のボード設定に変更します。 と言ってもGPIOピンを変えるだけなので簡単。

作業ディレクトリ内のGP2040-CE\configをエクスプローラーなどで開きます。

今回は、WaveShare RP2040-Zeroをベースにしているので、WaveShareディレクトリのBoardConfig.hを編集します。

今回はGPIOの使用ピンを0->27、1->28にしたいので、GPIOとボタンの対応部分を書き換えます。

書き換え前

BoardConfig.h
// (略)
#define GPIO_PIN_00 GpioAction::BUTTON_PRESS_S1     // S1     | Back   | Minus   | Select   | 9      | Coin   |
#define GPIO_PIN_01 GpioAction::BUTTON_PRESS_S2     // S2     | Start  | Plus    | Start    | 10     | Start  |
// (略)

書き換え後

BoardConfig.h
// (略)
#define GPIO_PIN_27 GpioAction::BUTTON_PRESS_S1     // S1     | Back   | Minus   | Select   | 9      | Coin   |
#define GPIO_PIN_28 GpioAction::BUTTON_PRESS_S2     // S2     | Start  | Plus    | Start    | 10     | Start  |
// (略)

今回はしませんでしたが、もしファームレベルで他のボタンをボタンをリマップしたり、無効化したりするならここでできるそう。

ビルド

ここまできたら、あとはビルドするだけ。 作業ディレクトリでコマンドプロンプトを開きます。

コマンドプロンプト
cd GP2040-CE\build

set PICO_SDK_PATH=pico-sdk
set PICO_TOOLCHAIN_PATH=インストール時に控えておいたパス
set GP2040_BOARDCONFIG=WaveShare

cmake -G "NMake Makefiles" ..
nmake

上手くいったら、GP2040-CE\buildの中に*.uf2みたいなファイルができています。これでビルドは完了。

書き込み

最後にファームウェアを書き込み作業完了です。

すでに何かのファームを書いてしまっている時は、一度リセットファームを書いて起動しないといけないみたい。ここでハマりました。 反対に初めてマイコンにファームを書く場合は飛ばしてOK。 リセットファームは以下のリンクからダウンロードできます。

https://datasheets.raspberrypi.com/soft/flash_nuke.uf2

リセットファームを書き込んで一度起動したら、続いてビルドで作成したファームウェアを書き込みます。

まとめ

結構簡単にカスタムビルドできるみたいですね。

Copyright © 2017 WSOFT All Rights Reserved.

利用規約  |  プライバシーポリシー  |  サービス状況  |  サイトマップ

WSOFTロゴ WSOFTについて

Copyright © 2017 WSOFT All Rights Reserved.

WSOFTはこのサイトでの頒布にあたって、WSOFT以外のコンテンツに対して所有権を主張しない上、何ら追加のライセンスも付与しません。 WSOFT以外のコンテンツの著作権等は、それぞれの権利保有者に帰属します。詳しくは利用規約を参照してください。


WSOFTのサイトでは、GoogleAnalyticsを使用してアクセスログを収集しています。詳しく知るにはプライバシーポリシーを参照してください。

検索
キーワードを入力して検索を始めましょう