見出し画像

Vertex Arc60であそぼ。②(STM32F103編)

はじめに

一日で一番手に触れているものはキーボードという思い込みから、不便さを克服することにより得られる快楽を毎日満喫するために小さなキーボードの導入を思い立ち、2022年12月にClaw44の購入を決意。プログラミングと自作キーボードの知識ゼロから始めた自作キーボード素人によるカスタマイズの奮闘記を綴っていきたいと思います。

STM32F103とは

STM32F103とはMCUの一種で、Vertex Arc60に搭載されているもはAPM32F103CBT6である。その記憶領域は128KBもあるのでFirmwareのVial化の改造には十分な容量を備えた高性能なMCUである。ただ、「Vertex Arc60であそぼ。(Vial編)」の奮闘記で綴った通り、MCUはFirmwarwを.uf2ファイル形式でコンパイルしないといけなかったり、謎の容量問題に直面してコンパイルエラーのアリ地獄にはまったりと非常に手間のかかる娘でもある。.uf2ファイル形式でコンパイルするためには、info.jsonファイル内のbootloaderの記載を"uf2boot"に変更することで解決することは前回の奮闘記でお届けした。以下、作例。

"processor": "STM32F103",
"bootloader": "uf2boot",

今回はAPM32F103CBT6の謎のコンパイルエラーのアリ地獄からの脱出方法が解明したので、その功績を後世に残すために奮闘記として綴っていく。

容量問題の解決策

どうやらAPM32F103は、デフォルトの参照先がSTM32F103x8となっていて、こいつが原因で容量が潤沢にあるにも関わらずregion 'flash0' overflowedが起きてしまうようだ。そのため、デフォルトの参照先をSTM32F103x8からSTM32F103xBに変更するために以下の呪文をrules.mkファイルに記載ることで容量問題を回避する。ここでもx8(ハチ)とxB(ビー)が誤植じゃないかと疑われるような紛らわしさを醸し出している。とはいえ、これでSTM32F103の容量をフルに活用でき、Arc60でも光の魔術師仕様のRGB Matrixが使えるようになる。

MCU_LDSCRIPT = STM32F103xB

Githubでも過去にissue #19419として取り上げられ解決済みであったが、如何せん脱出の呪文を記載したrules.mkのリンク先ファイルがすでに消滅していて脱出まで難儀した。

実際に容量問題を解決してみて

Arc60はデフォルトでVial対応しているとはいえ、レイヤー数が4つであったり、RGB Lightingであったりと猫山王としては心許ない仕様である。そのため、APM32F103の容量問題を解決し、猫山王の大切な孔雀ちゃん色のArc60に悲願の光の魔術師仕様のRGB Matrixを搭載できたときは、不便さを克服することにより得られる快楽をまたひとつ味わうことができ、さらには修行僧としての階段をまた一段上がることができたという錯覚に陥ることができた。とはいえArc60に搭載されているLEDはたった1つなのに、光の魔術師仕様のRGB Matrixに何の意味があるのかと問われても困るのだが、そこはVial職人のロマンということでご容赦いただきたい。
今回はAPM32F103の容量問題という慈悲深く信仰心のあつい修行僧であれば一切直面しないマニアックな修行の奮闘記であるが、いつの日かこの奮闘記が日の目を見る時がきて、世界中から賞賛の嵐がやって来る日を夢見てやまない。
自作キーボードは敷居が高いと思われている方にとって、一日で一番手に触れているものはキーボードということで、不便さを克服することにより得られる快楽の世界への入門のための勇気づけとなれば幸いです。
最後に猫山王の大切な孔雀ちゃん色のArc60のソースコードを下記に貼り付けておく。このソースコードが世界中に拡散して、Vial友の会の会員がネズミ算式に爆増するのを願うばかりである。

Source code

Please note that using attached source code is requiring to take full responsibility for your own action. Establishing QMK Build Environment beforehand is also required to compile this source code. Unsuccessful flash results in a bricked PCB and your fantastic keyboard life with Vertex Arc60 ends up at this moment.
Refer to my github for the latest source code of Vial port

VERY IMPORTANANT
My environment is as followed;
- 60% Hotswap/Soldered PCB
- Windows
- Drag-and-drop .uf2 format file to flash firmware

I am not responsible for any loss, any damage, any disadvantage or bricked PCB caused by using the information and source code on my page. Please consider the risks and "TAKE FULL RESPONSIBILITY FOR YOUR OWN ACTION".

いいなと思ったら応援しよう!