手のひらに収まる基板にUSB-Cの充電器をつなぐと、3.3Vから21Vまで好きな電圧を出せる実験用電源になる。「TinyPPS」の回路図、基板データ、ファームウェア、ケースの3Dデータが、GPL-3.0で公開されている。作ったのはDaniel Knezevic氏で、2026年6月に設計とファームウェアを全面的に作り直した第2版を出した。
使っているのはUSB Power Deliveryの規格にある「PPS」という機能だ。通常のUSB充電器は5V、9V、15Vといった決まった電圧しか出さないが、PPSに対応した充電器は、接続した機器と交渉して電圧を細かく刻んで出せる。TinyPPSはその交渉を代行し、手元のつまみで電圧と電流を決められるようにする。
交渉を担うICは2種類から選べる。ピン配置が同じなので1つのファームウェアで両方を扱えるが、刻み幅が変わる。電圧は20mVか100mV、電流制限は50mAか250mAの刻みになる。出力は最大5Aで、充電器とケーブルの性能に左右される。
保護機能の違いも表で示している。過電圧が出たときに自動で復帰するか、出力を切って止まるかが、選んだICで変わる。低電圧の保護は片方にしかない。過温度は85℃で、短絡保護とあわせて両方が出力を切る。
測定には別のICを載せた。マイコンはRP2040で、電圧と電流はINA226で測る。交渉用のIC自身にも測定機能はあるが、INA226の方が精度が高いためだという。表示は0.96インチのOLED、操作はロータリーエンコーダー1個。出力の入り切りは専用のICが担い、短絡保護も兼ねる。
回路と基板はKiCad 10で設計した。ケースはFusion 360で作り、ABSで印刷する。温度が上がるためだという。
ファームウェアはRaspberry Pi Pico SDKを使ったC++で、外部ライブラリは使っていない。単体テストを書き、行単位でどこを通ったかを図にして出す仕組みまで用意している。書き込みはBOOTボタンを押しながら電源を入れてファイルを置くだけで済む。