USB PD対応電源ALIENTEK DP100を購入

概要

年末に購入したままになっていたALIENTEK DP100を開封してみました。かなり小型で使いやすそうな電源ですがWindows上でPythonから制御しようとするとかなりつらそうでした。

製品

上記の製品になります。Amazonに公式ストアがあるんですね。価格的にはスイッチサイエンスさんとか秋月さんで購入したほうが送料無料ラインなので他のも一緒に購入できてお得かもしれません。

いろいろなセットがありますが、購入したのは一番シンプルな基本セットです。電源用の4ミリバナナプラグに、DCプラグからUSB Type-Cに変換するケーブル、そしてUSB A-Aケーブルです。

このDP100はUSBホストとしても動くようでして、USBマウスを接続可能です。そのためAタイプのUSB端子を本体に搭載していますが、Type-Cにしてほしかった。。。

個人的おすすめは付属のA-Aケーブルを捨てて、A-Type-CとA-C変換のセットを使うことです。これであれば本体側をAにして、接続するパソコン側をType-CかAで選択可能です。

電源をいれるとこんな感じです。左側に出力ポートがあり、出力されている場合には光るのでわかりやすいです。

パソコンとの連携

公式ツール

純正アプリがありますが、Windowsのみでしか動かないのでほぼ使うことはありません。ファームウエアの更新用ですが、2023年のバージョンが最新で現在入手したものは更新する必要はないはずです。

WebApp

DP100 WebApp

上記にブラウザ上からHIDを操作して制御するページがあります。このツールは通常利用ではかなり便利ですので公式ツールのかわりに利用することができます。Windows以外でも動くのが非常に便利です。

上記のように必要最低限の機能があるので、通常利用はこれで問題ありません。

Pythonとの接続

GitHub - gbetous/dp100_ctrl: Python script to control AlienTek DP100 Power Supply
Python script to control AlienTek DP100 Power Supply - gbetous/dp100_ctrl

上記のライブラリが良さそうだったのですが、Windowsではうまく動きませんでした。まずhidapi-winが必要であり、追加でいれる必要があります。

  • C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python313

私の場合上記に「hidapi.dll」を置く必要がありました。

import os
import sys

script_dir = os.path.dirname(os.path.abspath(__file__))
if sys.version_info >= (3, 8):
    os.add_dll_directory(script_dir)

本当はスクリプトと同じ場所に置き、上記のようにadd_dll_directoryでカレントディレクトリも追加するなどがよいかもしれません。ただWindows上のPythonから動かすHIDは動きがおかしいようであり、シリアルなどは受信できていましたがコマンドの送受信が失敗していたようです。

まとめ

本当はPythonから制御したかったのですがWindowsからはちょっと面倒かもしれません。WSL経由の方がいいかもしれませんが、すでに何個もPythonから制御できる電源をもっていて、DP100より性能がいいので諦めました。

あとUSB PDのちょっとクセがありまして、PD入力無しの状態でパソコンと先に接続している状態だと電源が入りますが電源出力ができません。通信用ケーブルからは電源入力をしないしようとなります。これはよいのですが、この状態でUSB PDを接続すると5VのPDOが選択されます。一度選択されると変更できないので注意が必要です。かならず通信用ケーブルを接続するときにはUSB PDを先に接続する必要がありそうです。

コメント