MachiKania type P/PU ver 1.5.2を公開
2025年4月11日
MachiKania type P/PU ver 1.5.2 を公開しました。
https://github.com/machikania/phyllosoma/releases/tag/Ver1.5.2
今回のバージョンアップの目玉は、以下の通りです。
・Raspberry Pi Pico 2 W に対応した
・CPU のクロック速度を変更できるようにした
・Type PU で、横幅80文字モードで起動できるようにした
・Type PU で、描画用と表示用に、別々の RAM 領域を使えるようにした

・GitHub リリースページはこちら
・Type P 公式ホームページはこちら
・Type PU 公式ホームページはこちら
Raspberry Pi Pico 2 W 対応
去年の11月に、Raspberry Pi Pico 2 W が公開されました。日本でも、今年の3月から販売が開始され、現在では多くの人が入手可能になっています。私も去年の12月に入手し、MachiKania で対応できるかどうかを調べていました。Raspberry Pi Pico 用の SDK ver 2.1.0 の段階で Type P が、SDK ver 2.1.1 では Type PU も対応できることが分かりましたので、今回の MachiKania ver 1.5.2 では正式対応してバイナリーも公開しました。使用方法は Raspberry Pi Pico W と同じです。環境によっては、ネット通信速度の改善も見られるようです。また、Pico W に比べて RAM 容量が2倍になりましたので、より大きな RAM 容量が必要な場合(クラスをたくさん読みこむなど)に、効力を発揮します。
オーバークロック
Pico-SDK の ver 2.1.1 のリリースノートに、以下のような表記があります。
RP2040 has now been certified to run at a system clock of 200 Mhz when using a regulator voltage of at least 1.15 volts
(RP2040 は、少なくとも 1.15 ボルトのレギュレータ電圧を使用する場合、200 MHz のシステム クロックで動作することが認定されました)
RP2040 (Raspberry Pi Pico や Pico W など) 対応の Machikania では、システムクロックは 125 MHz です。200 MHz で動かせば1.6倍の速度なので、対応させない手はありません。そこで、SYSTEM ステートメントにより、CPU のクロック周波数と使用電圧を変更できるようにしました。配布アーカイブの document フォルダーにある cpuclock.txt で、少し説明をしています。
例えば公証のように、1.15 V で 200 MHz のクロック周波数にしたいときは、次のようにします。
「SYSTEM 51,12」は CPU 電圧を変更するための、「SYSTEM 50,200000000」はCPUクロック周波数を変更するための命令です。使い方は、help.txt と cpuclock.txt を参照してください。
クロック周波数は、RP2040 (Pi Pico) の場合 300 MHz ぐらいまで、RP2350 (Pi Pico 2) の場合 400 MHz ぐらいまで上げられるようです。ただしどちらの場合も、CPU 電圧1.30 V (SYSTEM 51,15) でテストしています。また、どんな周波数でも使えるわけではないようで、cpuclock.txt に、使える周波数の一覧を載せました。CPU クロックは初期状態より遅い設定にすることもできます(消費電力を少なくできる)。ただし、20 MHz を切ると CPU が不安定になり、動かないようです。
Type PU の場合、NTSC ビデオシグナルを作成することが必要なため、使用できるクロック周波数は 157.5 MHz と315 MHz の2つだけです(デフォルトは、157.5 MHz)。従って、ほとんどの場合オーバークロックは RP2350 だけで可能という事になります。ただし、ビデオ出力をする必要がない場合は、Type P と同様、様々な周波数が使えます。
Raspberry Pi Pico W や Pico 2 W の場合は、オーバークロックには注意が必要で、速くしすぎると CPU は動くけれど、WiFi 接続ができなくなることがあります。今のところ、システムクロックを上げるのは、公証値の 200 MHz までにしておいた方が良さそうです。
横幅80文字モード
Twitterで、工作魂さんから次のリクエストがありました。

もともと Type M に実装されていた機能ですが、Type PU 開発にあたり、実装を失念していたようで、さっそく取り込みました。ご指摘いただき、有難うございます。今後も、ユーザーの皆さんからこういったリクエストを下されば、嬉しいです。
ダブルバッファリング
Twitter の次のポストは、MachiKaniaのオーバークロックを実装する途中でケンケンさんが行った Type PU でのダブルバッファリングのテストです。

これはすごい、という事で、ver 1.5.2 で使えるようにしました。サンプルプログラムの「POLYGON.BAS」がそれです。RP2040 でも RP2350 でも動きます。RP2350 の場合は、「POLYGON.BAS」の8-9行目の「REM」を外せば CPU が倍の 315 MHz で動きますので、より素早い描画を楽しめます。お試しあれ。
その他
その他、様々な修正と追加を行っています。以下、readme.txt と readme-pu.txt からです。
・「Break」キーだけでなく、「Ctrl + Alt + Del」キーでプログラムの実行を停止できるようにした。
・SYSTEM(40), SYSTEM(41), SYSTEM(42), SYSTEM(43)により、キーボードの状態を取得できるようにした。
・SYSTEM 50, SYSTEM 51により、CPUのクロック速度と電圧を変更できるようにした。
・システムクロック315MHz動作時に正常にビデオ信号出力できるように対応
・STARTボタンを押しながら起動することにより、起動時のMACHIKAP.BAS自動実行をスキップすることが可能に。
・USEGRAPHICステートメントの第二引数指定により、2つのグラフィックRAM領域を用いた描画と表示が可能に。
・MACHIKAP.INIで、WIDTH80を指定することにより、起動時に横80文字表示にすることが可能に。
・サンプルプログラムのRAYTRACE.BASを修正し、Type PUで表示できるようにした。
・クラスライブラリーにCPUCLOCKを追加。使用可能なCPUクロック周波数を調べることが可能に。
・Raspberry Pi Pico 2 Wに対応。
・Raspberry Pi Pico 2 使用時のLCD液晶転送速度を改善。
・SPI 使用時の転送速度を改善。
・サンプルプログラム(MAZE3D.BAS, STARTREK.BAS)を修正。
・サンプルプログラム(POLYGON.BAS)を追加。
https://github.com/machikania/phyllosoma/releases/tag/Ver1.5.2
今回のバージョンアップの目玉は、以下の通りです。
・Raspberry Pi Pico 2 W に対応した
・CPU のクロック速度を変更できるようにした
・Type PU で、横幅80文字モードで起動できるようにした
・Type PU で、描画用と表示用に、別々の RAM 領域を使えるようにした

・GitHub リリースページはこちら
・Type P 公式ホームページはこちら
・Type PU 公式ホームページはこちら
Raspberry Pi Pico 2 W 対応
去年の11月に、Raspberry Pi Pico 2 W が公開されました。日本でも、今年の3月から販売が開始され、現在では多くの人が入手可能になっています。私も去年の12月に入手し、MachiKania で対応できるかどうかを調べていました。Raspberry Pi Pico 用の SDK ver 2.1.0 の段階で Type P が、SDK ver 2.1.1 では Type PU も対応できることが分かりましたので、今回の MachiKania ver 1.5.2 では正式対応してバイナリーも公開しました。使用方法は Raspberry Pi Pico W と同じです。環境によっては、ネット通信速度の改善も見られるようです。また、Pico W に比べて RAM 容量が2倍になりましたので、より大きな RAM 容量が必要な場合(クラスをたくさん読みこむなど)に、効力を発揮します。
オーバークロック
Pico-SDK の ver 2.1.1 のリリースノートに、以下のような表記があります。
RP2040 has now been certified to run at a system clock of 200 Mhz when using a regulator voltage of at least 1.15 volts
(RP2040 は、少なくとも 1.15 ボルトのレギュレータ電圧を使用する場合、200 MHz のシステム クロックで動作することが認定されました)
RP2040 (Raspberry Pi Pico や Pico W など) 対応の Machikania では、システムクロックは 125 MHz です。200 MHz で動かせば1.6倍の速度なので、対応させない手はありません。そこで、SYSTEM ステートメントにより、CPU のクロック周波数と使用電圧を変更できるようにしました。配布アーカイブの document フォルダーにある cpuclock.txt で、少し説明をしています。
例えば公証のように、1.15 V で 200 MHz のクロック周波数にしたいときは、次のようにします。
SYSTEM 51, 12 SYSTEM 50, 200000000
「SYSTEM 51,12」は CPU 電圧を変更するための、「SYSTEM 50,200000000」はCPUクロック周波数を変更するための命令です。使い方は、help.txt と cpuclock.txt を参照してください。
クロック周波数は、RP2040 (Pi Pico) の場合 300 MHz ぐらいまで、RP2350 (Pi Pico 2) の場合 400 MHz ぐらいまで上げられるようです。ただしどちらの場合も、CPU 電圧1.30 V (SYSTEM 51,15) でテストしています。また、どんな周波数でも使えるわけではないようで、cpuclock.txt に、使える周波数の一覧を載せました。CPU クロックは初期状態より遅い設定にすることもできます(消費電力を少なくできる)。ただし、20 MHz を切ると CPU が不安定になり、動かないようです。
Type PU の場合、NTSC ビデオシグナルを作成することが必要なため、使用できるクロック周波数は 157.5 MHz と315 MHz の2つだけです(デフォルトは、157.5 MHz)。従って、ほとんどの場合オーバークロックは RP2350 だけで可能という事になります。ただし、ビデオ出力をする必要がない場合は、Type P と同様、様々な周波数が使えます。
Raspberry Pi Pico W や Pico 2 W の場合は、オーバークロックには注意が必要で、速くしすぎると CPU は動くけれど、WiFi 接続ができなくなることがあります。今のところ、システムクロックを上げるのは、公証値の 200 MHz までにしておいた方が良さそうです。
横幅80文字モード
Twitterで、工作魂さんから次のリクエストがありました。

もともと Type M に実装されていた機能ですが、Type PU 開発にあたり、実装を失念していたようで、さっそく取り込みました。ご指摘いただき、有難うございます。今後も、ユーザーの皆さんからこういったリクエストを下されば、嬉しいです。
ダブルバッファリング
Twitter の次のポストは、MachiKaniaのオーバークロックを実装する途中でケンケンさんが行った Type PU でのダブルバッファリングのテストです。

これはすごい、という事で、ver 1.5.2 で使えるようにしました。サンプルプログラムの「POLYGON.BAS」がそれです。RP2040 でも RP2350 でも動きます。RP2350 の場合は、「POLYGON.BAS」の8-9行目の「REM」を外せば CPU が倍の 315 MHz で動きますので、より素早い描画を楽しめます。お試しあれ。
その他
その他、様々な修正と追加を行っています。以下、readme.txt と readme-pu.txt からです。
・「Break」キーだけでなく、「Ctrl + Alt + Del」キーでプログラムの実行を停止できるようにした。
・SYSTEM(40), SYSTEM(41), SYSTEM(42), SYSTEM(43)により、キーボードの状態を取得できるようにした。
・SYSTEM 50, SYSTEM 51により、CPUのクロック速度と電圧を変更できるようにした。
・システムクロック315MHz動作時に正常にビデオ信号出力できるように対応
・STARTボタンを押しながら起動することにより、起動時のMACHIKAP.BAS自動実行をスキップすることが可能に。
・USEGRAPHICステートメントの第二引数指定により、2つのグラフィックRAM領域を用いた描画と表示が可能に。
・MACHIKAP.INIで、WIDTH80を指定することにより、起動時に横80文字表示にすることが可能に。
・サンプルプログラムのRAYTRACE.BASを修正し、Type PUで表示できるようにした。
・クラスライブラリーにCPUCLOCKを追加。使用可能なCPUクロック周波数を調べることが可能に。
・Raspberry Pi Pico 2 Wに対応。
・Raspberry Pi Pico 2 使用時のLCD液晶転送速度を改善。
・SPI 使用時の転送速度を改善。
・サンプルプログラム(MAZE3D.BAS, STARTREK.BAS)を修正。
・サンプルプログラム(POLYGON.BAS)を追加。