見出し画像

[作り方]Shigezone FabGLボード

【更新履歴】
[2024/07/25] ESP32ボードマネージャのバージョンによりインベーダーのコンパイルができない事象について追記しました
[2024/07/23] 2種類のモジュール幅に対応する新基板の件と、SDカード認識しない場合のソースコード変更について追記しました

Shigezoneオリジナル・ESP32マイコンでレトロOSなどを動かす「FabGLライブラリ」のためのOSボード「FabGL基板キット」の作り方などの解説です。

↓販売ページはこちら
https://shigezone.square.site/product/-7-os-fabgl-shigezone-/113

【注】このボードにインストールするようなOSやアプリケーションなどは、とうの昔にライセンス発給が終了しているものや、オープン化されたものばかりです。Shigezoneとして下記の通りご利用方法はご案内をしますが、ライセンス規約の遵守等については各自、自己責任にてお取り扱いをお願い致します

必要な材料とツール

FabGLボードの使用には、FabGL組み立てキット、PC、PCにインストールするソフトウェア、VGAディスプレイ、PS/2マウス・キーボードが必要です。

キット内容物

部品の点数を確認してください。
【注:モジュール幅について】ESP32ボードは横幅がDIP9コマ分(900mil=22.86mm)と10コマ分(1,000mil=25.4mm)が存在します(ピン配列も種類あります)。Shigezoneでは当初1,000mil幅で基板を設計しましたが900milしか入手できない状況があり、現在の基板はどちらも対応できる形となっています

開発・動作確認に必要なもの

PC
Arduino IDEを実行し、プログラムの開発とボードへの書き込みを行うために、PCが必要です。
Arduino IDEの対応OSはWindows/Mac/Linuxです。

ハンダごて、ハンダ
部品を基板に取り付けるためにハンダごてとハンダが必要です。

VGAモニター&VGAケーブル
『FabGL』はソフトウェア的にVGA信号を生成しますので、VGA対応のモニターが必要です。

PS/2 キーボード、PS/2 マウス
キーボード&マウスのインターフェースもソフトウェア的に実現しているため、PS/2のキーボードとマウスが必要です。新品での入手がしにくいこともありますが、ハードオフなど中古店ではいまでも割と入手できます。

USBケーブル(USB-A to Micro B)
メインボードへの電源供給やプログラムの書き込みにMicro B USBケーブルが必要となります。

【基板変更】2024/07/23出荷分より、2種類のモジュール幅に対応したこちらの基板に変更されています

実装手順

背の低い部品から実装していきます。

抵抗
基板上の抵抗値を見て、正しいところに抵抗をはんだ付けしてください。

※抵抗の色
抵抗のカラーコードは左の2つが数値、3つめが乗数を表します。一番右側が許容差を表しています。

SDカードスロット
表面実装品です。
スロットのサイドにも一カ所はんだ付け箇所があるので見落とさないようにしてください。

0.1uコンデンサ

スピーカージャック

10uコンデンサ

ピンソケット
実装の時は、ソケットにESP32ボードを軽く挿して、位置決めをしてはんだ付けを行うと、後々挿せないという事態を防ぐことができます。
【注】流通しているモジュールの幅が2種類あるため、最新の基板ではその両方に対応するような穴があいております。お手元にあるモジュール幅にあわせた位置にソケットを装着してください

VGAコネクタ

PS2コネクタ
紫がキーボード側、緑がマウス側となります。

ESP32ボード
最後にソケットにESP32ボードを挿して完成となります。
挿す向きは基板上のシルクを参考にしてください。
USBコネクタが左側、アンテナ部分が右側となります。

※動作チェックのため&アンテナ部を基板から離す意味合いでソケットを採用しています

PCとの接続

SDカードは端子側がこちらを向くような向きで挿入します。
SDカードは8GB以上のHC規格のものをご用意ください。
用途にもよりますが容量が少なくても大丈夫なことがあります。
また後述しますが64GB以上の大容量タイプ(SDXC規格のもの)は利用できません。

USBMicroBのケーブルを用いてPCと接続してください。

FabGLへプログラムを書き込む準備

■IDE用意
・Arduino IDEを用意します。

■ボード設定
・ファイル→基本設定
・追加ボードマネージャのURLに以下を追加

https://espressif.github.io/arduino-esp32/package_esp32_index.json

・ツール→ボード→ボードマネージャー
・「esp32 by Espressif」をインストール

■ライブラリ設定
・ツール→ライブラリを管理
・「FabGL by Fabrizio Di」をインストール

スペースインベーダーを動かす

■FabGLへの書き込み設定

【追記】Arduino IDEの「ボードマネージャ」でESP32を検索すると現在入っているESP32関連ファイルのバージョンがわかりますが、ここで3.xとするとこのインベーダーがコンパイル不可となるとの情報を頂きました。2.0.17では大丈夫のようです

Arduino IDEのボードマネージャ

■プログラムの書き込み
・ファイル→スケッチ例→カスタムライブラリのスケッチ例→FabGL→VGA→SpaceInvaders

■動作確認
・モニター/キーボード/マウスを繋ぎ、FabGLに電源を繋ぎます。

Windows3.0を動かす

PCEmulatorを動かすためにはSDカードが必要です。
※XC規格のカードは使用できません。HC規格のみとなります。
容量について、動作検証に用いたのは16GBですが、おそらくそれ以下でも動きます。
【注:PCEmulatorソースコード変更について】
PCEmulatorや関連ファイルのバージョンにより、SDカードの認識がうまくいかない場合があります。下記の変更により認識することを確認しております

※変更箇所=ファイル「PCEmulator」の391行あたりにある「::mountSDCard」の記述でif行をひとつコメントアウト、ひとつ追加

//  if (!FileBrowser::mountSDCard(false, SD_MOUNT_PATH, 8))   // @TODO: reduce to 4?
  if (!FileBrowser::mountSDCard(false, "/SD", 8, 16 * 1024, 35, 12))//<-上の行をコメントアウトしこの行を追加
    ibox.message("Error!", "This app requires a SD-CARD!", nullptr, nullptr);

■FabGLへの書き込み設定
 ・PSRAM:”Disabled”
 ・Partition Scheme:"Huge APP"

【重要】PCEmulatorの動作にはEPS32にPSRAMが必要で、当キットもPSRAM搭載の「ESP32WROVER」を採用しています。
が!(ここ重要)、書き込み時の設定はあくまで「PSRAM:”Disabled”」とする必要があるのでお気をつけください。

■プログラムの書き込み
ファイル→スケッチ例→カスタムライブラリのスケッチ例→FabGL→VGA→PCEmulator

■動作確認
・モニター/キーボード/マウスを繋ぎ、FabGLに電源を繋ぎます。
・SDカードが認識されます。
・Wi-Fi Configulationと表示されるので、Wi-Fiを設定してください。
※事前にSDカードに以下のプログラムをインストールしてあれば、Wi-Fi設定の必要はありません。https://github.com/fdivitto/FabGL/blob/master/examples/VGA/PCEmulator/mconf.h

・システムセットアップ完了まで少々お待ちください。
(初めて動かす時は、SDカードへのイメージファイルダウンロードに20分程要します。)
・Windows 3.0を選択、「RUN」を押下します。

・Windowsが立ち上がりました。

トラブルシューティング

■ボードが触れないくらい熱い
・ショートが起きています。
 すぐにPCからボードを外し、実装ミスを探してください。
 特に向きがある部品について注意深く観察してください。
・まずはモジュール単体での動作確認をお勧めします。

■PCがボードを認識しない
・PCがESP32を認識すると、ArduinoIDEでポートが「COM3」などと認識あされます(番号は状況によります)。
これが表示されない場合は、以下からUSBドライバのインストールを行ってください。
https://jp.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads

■モジュールへの書き込みができない
・設定に間違いがないか見直してください。
 Upload Speedを落とすと書き込みに成功しやすいです。
・ボード設定がESP32 Dev Moduleになっていることを確認してください。
・ポートが選択されているか確認してください。

ESP32などのマイコンボードは、謎の理由で書き込みができなくなる事態がたまに発生します。
設定等が正しくても書き込みできない場合は以下をお試しください。
基板のbootスイッチを押しながらプログラム書き込みをスタートし、IDEが基板への書き込みを始めたら基板のbootスイッチを離す。

■SDカードを認識しない
・SDカードの挿入向きをご確認ください。
・SDカードスロットのはんだにブリッジが発生していないかご確認ください。

■画面が映らない
・VGAコネクタは昨今のコネクタと異なり、かなり奥まで挿さないと認識しません。
コネクタが奥までささっているか、ケーブル固定ネジがねじ込まれているかを確認してください。


この記事が気に入ったらサポートをしてみませんか?