カスタム ファームウェアが USB リレー ボードの新しいトリックを教える
ホームページホームページ > ニュース > カスタム ファームウェアが USB リレー ボードの新しいトリックを教える

カスタム ファームウェアが USB リレー ボードの新しいトリックを教える

Dec 14, 2023

コンピューターからいくつかのデバイスをすばやく簡単に制御する方法を探している場合は、安価な USB リレー ボードが理想的なソリューションになる可能性があります。 これらは非常に単純なガジェットで、マイクロコントローラーと少数のリレーだけで構成されています。 しかし、それは改善の余地がないという意味ではなく、[Michał Słomkowski] が最近実証したように、カスタム ファームウェアでこれらのボードをフラッシュすると、ユーザーはデフォルトの機能を変更できるようになります。

彼の場合、[Michał] は、コンピューターがスリープ状態になったときに、接続されているすべてのデバイスへの電力を遮断する電源タップを作成したいと考えていました。 残念ながら、マザーボードが USB ポートに常に電力を供給し続けていたため、ラインに 5 V があるかどうかを確認することはできませんでした。 しかし、リレー ボードのファームウェアにいくつかの変更を加えれば、バスがアクティブなときにミリ秒ごとに送出されるフレーム開始パケットを監視することで、USB アクティビティがあったかどうかを検出できるはずだと彼は考えました。

[Michał] は、これらのボードのいずれかにカスタム ファームウェアを考案した最初の人物であるとは主張していません。実際、彼は既存のオープンソース ファームウェア プロジェクトが自分の仕事のインスピレーションになったと考えています。 しかし、彼はこれらの ATtiny45 搭載デバイス用にまったく新しい GPLv3 ファームウェアを作成しました。これには、最新バージョンの V-USB が含まれています。 偶然にも、V-USB には最初からフレーム開始パケット検出が含まれており、これによりアクティビティ検出コードの実装がはるかに簡単になりました。

新しいファームウェアをリレー ボードのチップにフラッシュした後、[Michał] はそれを筐体に入れ、コンセントを配線しました。 しかし、パズルにはまだ欠けているピースが 1 つありました。 Linux は、いわゆる「セレクティブ サスペンド」省電力機能の一環として、USB デバイスと積極的に通信しない限り、実際にはフレーム開始パケットを送信しないようです。 幸いなことに、ベンダー/製品 ID のペアに基づいて特定のデバイスに対してこの機能を無効にするサポートがあるため、udev を少しいじった後は、すべてが期待どおりに動作しました。

ここ Hackaday ではカスタム ファームウェア プロジェクトが大好きです。 彼らは私たちのデバイスから独自のソフトウェアを締め出すだけでなく、そうでなければ人工的なペイウォールの後ろに隠されていたであろう新しい拡張された機能のロックを解除することがよくあります。