LRTKレフィクシア株式会社

電子回路設計を依頼する際のファームウェア開発分担を決める5つの方法

電子回路設計を外部へ依頼する際、見落とされやすいのがファームウェア開発の担当範囲です。電子回路とファームウェアは密接に関係しており、どちらか一方だけでは製品として必要な機能を実現できない場合があります。そのため、設計依頼の段階で役割分担を明確にしておかなければ、開発途中で仕様変更や追加作業が発生し、納期遅延や品質問題につながる可能性があります。

特に、マイコンを搭載した制御基板、センサーを利用する計測機器、通信機能を持つ電子機器などでは、電子回路設計とファームウェア開発の境界が曖昧になりがちです。電源回路や信号処理回路を設計する担当者と、マイコンの動作を制御する担当者が異なる場合、仕様の解釈や検証方法を統一する必要があります。

また、ファームウェアを自社で開発するのか、電子回路設計の依頼先にまとめて任せるのかによって、必要な社内体制や成果物も変わります。開発初期の判断だけでなく、試作評価、量産対応、製品出荷後の保守まで見据えた分担設計が重要です。

この記事では、電子回路設計を依頼する実務担当者に向けて、ファームウェア開発の分担を決める5つの方法を詳しく解説します。依頼前に準備する資料、外注先との確認事項、開発中のトラブルを防ぐポイントまで取り上げるため、設計委託を円滑に進める際の参考にしてください。

電子回路設計とファームウェア開発の分担が重要な理由

電子回路設計とは、製品に必要な電気的機能を実現するために、電子部品の選定、回路構成の検討、回路図の作成、基板設計に必要な条件の整理などを行う業務です。一方、ファームウェア開発は、マイコンなどの組み込み機器を動作させるためのプログラムを設計・実装し、電子回路を目的に応じて制御する業務を指します。

例えば、温度を計測して一定条件で装置を停止する制御基板を開発する場合、電子回路側ではセンサーへの電源供給、入力信号の処理、マイコンへの接続、出力回路などを設計します。ファームウェア側では、測定値の取得、しきい値との比較、停止条件の判定、異常状態の記録などを実装します。

ここで問題になるのが、製品全体の動作に関する責任です。センサーの値が正常に取得できない場合、原因は回路の配線や信号品質にあるかもしれませんし、ファームウェアの初期設定やデータ処理にあるかもしれません。双方の担当者が自分の作業範囲だけを確認していると、原因の特定に時間がかかります。

さらに、回路設計とファームウェア開発では、検討を始めるタイミングにも違いがあります。回路図や部品選定が固まる前にファームウェアの要件を整理しておかなければ、必要な入出力端子やメモリ容量が不足する可能性があります。逆に、ファームウェア側で想定していない通信方式や起動条件を回路設計で採用すると、実装上の制約が生じることがあります。

こうした問題を防ぐためには、単に作業を二分するのではなく、製品全体の仕様を共通の基準として管理することが重要です。誰が設計するのか、誰が仕様を承認するのか、誰が動作を検証するのかを区別すると、開発工程ごとの責任が明確になります。

電子回路設計を依頼する際には、基板の製作だけを完成条件にするのではなく、ファームウェアを組み込んだ状態でどこまで動作確認するかを決めておくことが望まれます。完成の定義を双方で共有することが、手戻りを抑えるための出発点です。

方法1:製品機能を分解して担当範囲を可視化する

ファームウェア開発の分担を決める第一の方法は、製品に必要な機能を細かく分解し、それぞれの担当範囲を明確にすることです。

電子回路設計を依頼する段階では、「センサーの情報を取得する」「モーターを制御する」「外部機器と通信する」といった大まかな要求だけが整理されている場合があります。しかし、こうした表現では、電子回路側とファームウェア側のどちらが具体的な処理を担当するのか判断できません。

例えば、モーター制御機能であれば、駆動回路の設計、制御信号の生成、回転速度の演算、異常電流の検出、非常停止時の動作など、複数の作業に分かれます。駆動回路そのものは電子回路設計の範囲ですが、速度制御の演算や通常運転時の制御信号生成はファームウェアが担当することが一般的です。ただし、緊急停止や過電流保護などは、要求される安全性に応じてハードウェア側にも独立した保護機能が必要になる場合があります。

そのため、製品機能を整理する際には、正常動作だけでなく、起動時、停止時、異常発生時、通信切断時などの状態も含めて検討することが重要です。

具体的には、センサー入力、信号処理、演算処理、通信制御、表示制御、データ保存、電源管理、自己診断、更新処理などを機能単位で整理します。そのうえで、それぞれについて主担当者と確認担当者を決めます。

ここで注意したいのは、機能の担当者と最終的な承認者が必ずしも同じではないことです。例えば、電子回路設計会社が通信回路を設計し、発注側が通信制御のファームウェアを開発する場合、双方が通信仕様を確認する必要があります。回路側の担当者が通信端子の構成を決めても、通信処理に必要な条件をファームウェア担当者が承認していなければ、後から変更が発生する可能性があります。

機能分担を整理するときは、各機能について「要求仕様を作る担当」「設計・実装する担当」「検証する担当」「最終的に承認する担当」を区別すると効果的です。

例えば、外部通信機能であれば、発注側が通信相手や必要なデータを指定し、回路設計会社が通信回路を設計し、ファームウェア担当者が通信処理を実装し、最終的な接続試験を共同で実施するという分担が考えられます。

また、一つの機能に複数の担当者が関係する場合でも、作業の主担当はできるだけ明確にします。責任が重複した状態では、必要な作業が実施済みだと互いに思い込み、検証漏れが生じるおそれがあります。

製品機能を分解した結果は、機能一覧や担当範囲を示す資料として残しておくことが重要です。担当者の変更や追加開発が発生した際にも、判断基準として活用できます。

方法2:技術力と将来の保守体制から担当者を決める

第二の方法は、自社と外注先の技術力を比較し、製品出荷後の保守体制まで考慮してファームウェア開発の担当を決めることです。

ファームウェアの開発範囲は、製品に搭載するマイコンの種類、制御処理の複雑さ、通信機能、必要な信頼性などによって変わります。比較的単純な入出力制御であれば対応できる技術者でも、高速な信号処理や複数の処理を並行して実行する制御では、追加の専門知識が必要になる場合があります。

そのため、電子回路設計の依頼先がファームウェア開発にも対応しているという理由だけで、すべてのソフトウェア関連業務を任せることは適切とは限りません。実際に必要な処理内容と、依頼先が対応できる技術領域を照らし合わせることが大切です。

自社に組み込み開発の技術者がいる場合は、製品固有の制御ロジックや将来的に変更する可能性が高い機能を自社で担当し、回路に密接に関係する初期設定や基本動作部分を外注先へ依頼する方法が考えられます。

例えば、マイコンの基本設定、入出力端子の制御、通信周辺回路の初期化などを外注先が担当し、取得したデータの演算処理や製品固有の動作判定を自社で実装する構成です。この方法であれば、外注先が回路と密接に関係する部分を検証しながら、自社で製品独自の機能を管理しやすくなります。

ただし、基本制御部分と製品固有の処理を分ける場合は、双方のプログラムがどのように連携するかを事前に決める必要があります。関数の呼び出し方法、データ形式、異常状態の通知方法などを曖昧にすると、分担したことがかえって開発の負担になる可能性があります。

一方、自社にファームウェア開発の経験が少ない場合は、電子回路設計とファームウェア開発を一括して依頼する方法が選択肢になります。設計から動作検証まで同じ窓口で管理できるため、仕様の解釈違いや不具合発生時の連絡経路を整理しやすくなります。

ただし、一括依頼の場合でも、依頼先がすべての作業を自社内で実施するとは限りません。外部の開発協力会社を利用する可能性がある場合は、技術的な責任者や情報共有方法を確認しておく必要があります。

さらに重要なのが、製品出荷後の保守です。量産後に部品の変更や不具合修正が必要になったとき、誰がファームウェアを修正できるのかによって対応の選択肢が変わります。

開発を外注先へ任せる場合でも、ソースコードや設計資料を受け取り、自社または別の委託先で保守できる体制を整える方法があります。ただし、単にソースコードを受領するだけでは十分ではありません。開発環境の設定、使用するライブラリの利用条件、ビルド手順、動作確認方法なども引き継ぐ必要があります。

短期的な開発作業の分担だけでなく、製品を継続的に改良できる体制を考慮することが、適切な担当者選定につながります。

方法3:試作から量産までの工程別に責任を割り当てる

第三の方法は、電子回路設計とファームウェア開発の工程を時系列で整理し、各段階の作業担当と完了条件を決めることです。

電子機器の開発では、仕様検討から始まり、回路設計、基板製作、初期動作確認、機能評価、量産準備へと進むことが一般的です。しかし、ファームウェア開発は回路設計が完全に終了してから開始するものではありません。回路構成が決まる前から必要な制御機能を検討し、基板完成後には速やかに動作確認できる準備を整えておくことが重要です。

まず、仕様検討段階では、電子回路とファームウェアの両方に関係する要件を整理します。マイコンに必要な入出力端子数、通信機能、演算能力、記憶領域、消費電力、起動時間などを確認し、想定する構成で製品要求を満たせるかを評価します。

この段階でファームウェア担当者が参加していないと、マイコンの選定後に必要な処理能力が不足していることが判明したり、使用予定の周辺機能が他の機能と競合したりする可能性があります。

次に、回路設計段階では、マイコンの端子割り当て、通信回路、電源回路、リセット回路、プログラム書き込み方法などを検討します。ファームウェア担当者は、回路図が確定する前に必要な接続条件を確認し、実装できる構成になっているかを評価します。

例えば、ある端子を通信機能と制御信号の両方に使用する構成になっている場合、ファームウェアだけでは解決できないことがあります。こうした問題は、基板製作前に発見できれば設計変更の影響を小さく抑えやすくなります。

試作基板が完成した段階では、初期動作確認の責任分担を明確にします。電源電圧の確認、消費電流の測定、クロック動作の確認、マイコンへのプログラム書き込み、通信動作の確認など、初期評価には回路とファームウェアの双方が関係します。

この工程では、最初からすべての製品機能を実装する必要はありません。基本的な入出力や通信を確認するための評価用ファームウェアを用意し、回路の基本動作を確認してから製品機能の実装を進める方法が有効です。

評価用ファームウェアを誰が作成するのかも、設計依頼の範囲に含めておきます。完成した基板にファームウェアが書き込まれていない場合、どちらの担当者が初期動作を確認するのかが不明確になるためです。

さらに、機能評価段階では、正常動作だけでなく、電源変動、通信異常、センサーの異常値、外部信号の変化などを考慮した試験を行います。ファームウェア単体の試験で問題がなくても、実際の基板上ではノイズや処理時間の影響によって動作が変わる場合があります。

量産準備段階では、製造時のプログラム書き込み方法、設定値の管理、製造番号などの識別情報の扱い、完成品の検査手順を確認します。製造工程で使用するファームウェアと、製品に搭載するファームウェアが異なる場合は、それぞれの管理方法も必要です。

工程ごとに担当者と完了条件を決めておけば、作業の引き継ぎが明確になります。また、次の工程へ進む判断を関係者で共有しやすくなるため、未解決の問題を残したまま開発が進むことを防ぎやすくなります。

方法4:ハードウェアとファームウェアの接点を仕様化する

第四の方法は、電子回路とファームウェアの接点となる仕様を文書化し、双方が共通の条件で設計できるようにすることです。

電子回路設計とファームウェア開発を別々の担当者が進める場合、特に重要なのがインターフェース仕様です。ここでいうインターフェース仕様とは、ファームウェアから見た電子回路の接続条件や制御方法、動作上の取り決めなどを指します。

例えば、マイコンの入出力端子を利用する場合、どの端子に何が接続されているかだけでなく、信号が高い状態と低い状態のどちらで機能が有効になるのか、初期状態をどうするのか、出力できる電流や入力電圧の条件は何か、といった情報が必要になります。

こうした情報が不十分なまま開発すると、ファームウェアの設定によって意図しない出力が発生したり、回路側で想定していない動作状態になったりする可能性があります。

特に、起動直後の端子状態には注意が必要です。マイコンの初期化処理が完了するまでの間、端子が入力状態になる場合や、内部の設定によって信号状態が変化する場合があります。接続先が駆動回路や安全に関係する機能であれば、ファームウェアが起動する前の状態も考慮して回路を設計する必要があります。

また、通信機能では、通信方式だけでなく、データ形式、通信速度、応答時間、再送条件、異常時の復旧方法などを決めておくことが重要です。

例えば、外部センサーから一定間隔でデータを受信する機器では、データが届かなかった場合の処理が必要です。直前の値を保持するのか、異常状態として記録するのか、制御出力を停止するのかによって、ファームウェアの設計が変わります。

このような動作はファームウェア側だけで決めるのではなく、製品の使用条件や安全要求を踏まえて決定する必要があります。

電源管理も重要な接点です。電子回路側では電源投入時の電圧変化や電源供給の順序を設計しますが、ファームウェア側では起動時の初期化、電源低下時の処理、データ保存中の電源断などを考慮します。

例えば、不揮発性メモリに設定情報を書き込んでいる途中で電源が遮断された場合、データが正常に保存されない可能性があります。この問題への対策には、回路側の電源保持能力とファームウェア側のデータ管理方法の両方が関係することがあります。

そのため、電源異常時にどこまで動作を継続できる必要があるのか、どの状態を検出できるのか、復帰後にどのような処理を行うのかを整理しておくことが重要です。

さらに、異常検出と安全停止については、ファームウェアの処理だけに依存してよいかを検討する必要があります。マイコンが正常に動作しなくなった場合でも停止が必要な装置では、独立した保護回路などを組み合わせることがあります。必要な対策は、装置の危険性や適用される要求事項に応じて判断します。

インターフェース仕様をまとめる際には、単に回路図を渡すだけでは不十分です。端子の用途、電気的条件、初期状態、タイミング、異常処理、確認方法を整理し、回路設計担当者とファームウェア担当者が相互に確認することが望まれます。

仕様を変更する場合は、変更内容だけでなく、他の機能への影響も確認します。例えば、マイコンの端子割り当てを変更すると、回路図、基板配線、ファームウェアの設定、検査手順などに影響する可能性があります。

変更内容を共通の記録として管理することで、異なる仕様に基づいた設計や実装を防ぎやすくなります。

方法5:成果物・権利・変更対応を契約前に取り決める

第五の方法は、ファームウェア開発の成果物と、その利用条件や保守対応について、電子回路設計の依頼前に取り決めておくことです。

ファームウェア開発では、最終的に機器へ書き込むプログラムだけでなく、ソースコード、設定ファイル、開発用の資料、試験記録など、さまざまな成果物が作成されます。

ここで重要なのは、動作するプログラムを受け取ることと、将来そのプログラムを変更できる状態で引き継ぐことは異なるという点です。

例えば、完成した機器に書き込むための実行形式のファイルだけを受領した場合、自社で機能を追加したり、不具合を修正したりすることが難しい場合があります。一方、ソースコードを受け取っていても、開発環境や必要な設定が不足していれば、同じプログラムを再生成できるとは限りません。

そのため、ファームウェア開発を依頼する際には、納品対象を具体的に決める必要があります。

一般的には、ソースコード、実行形式のファイル、ビルド設定、使用した外部ライブラリに関する情報、開発環境の構築手順、書き込み手順、動作確認記録などが検討対象になります。

特に、製品を長期間使用する場合は、開発完了時点の環境を再現できることが重要です。開発に必要な設定や依存関係が分からなくなると、担当者が交代した際に修正作業を進めにくくなります。

また、ファームウェアに関する権利の扱いも確認が必要です。ソースコードの著作権をどちらが保有するのか、発注側にどの範囲の利用・改変権限があるのか、第三者へ保守を委託できるのかなどを、契約条件として明確にします。

開発会社が以前から保有している共通プログラムを利用する場合は、製品専用に開発した部分と既存の共通部分で権利関係が異なる可能性があります。すべての成果物が自動的に発注側へ帰属すると考えるのではなく、契約内容を確認することが重要です。

第三者が提供するソフトウェア部品を使用する場合も、利用条件を把握しておく必要があります。再配布や改変、関連する情報の提供について条件が定められている場合があるため、納品後の利用形態に支障がないか確認します。

さらに、開発途中の仕様変更についても取り決めておきます。

電子回路設計では、試作評価の結果によって部品の変更や信号処理回路の修正が必要になる場合があります。その際、ファームウェアにも変更が必要になることがあります。

変更作業の担当範囲を曖昧にしていると、回路変更によるファームウェア修正が当初の依頼範囲に含まれるのか判断できなくなります。

こうした問題を防ぐためには、仕様変更の依頼方法、影響範囲の確認、作業内容の承認、再試験の必要性を事前に決めておくことが望まれます。

また、製品完成後に不具合が見つかった場合の対応範囲も重要です。電子回路に起因する不具合、ファームウェアに起因する不具合、両者の組み合わせによる不具合では、調査方法が異なります。

原因が判明する前から一方の担当者だけに対応を求めるのではなく、必要に応じて共同調査を行える取り決めがあると、問題の切り分けを進めやすくなります。

製品出荷後の保守については、対応窓口、更新作業の担当者、変更履歴の管理、更新後の検証方法などを確認します。通信機能を持つ製品では、情報セキュリティ上の問題が見つかった場合の対応方法についても検討しておくことが重要です。

成果物や権利、変更対応を具体的に取り決めることで、開発完了後の運用まで見据えた分担体制を構築できます。

電子回路設計の依頼前に用意する資料

電子回路設計とファームウェア開発の分担を円滑に決めるためには、発注側が必要な情報を整理しておくことが重要です。

最初に準備したいのが、製品の目的と使用条件を説明する資料です。どのような機器を開発するのか、誰が使用するのか、どのような環境で動作するのかを明確にします。

例えば、屋内で使用する計測機器と、屋外の建設現場で使用する制御機器では、求められる耐環境性や運用条件が異なる可能性があります。振動、温度、湿度、粉じん、電源環境などの条件は、回路設計だけでなくファームウェアの異常処理や動作管理にも関係します。

次に、実現したい機能を整理した要求仕様書を用意します。完成した製品が何をできる必要があるのかを、できるだけ具体的に記載します。

例えば、「センサー値を表示する」という要求だけでは、測定間隔、表示更新の周期、必要な分解能、異常値の扱いなどが分かりません。こうした条件が不明確なままでは、適切なマイコンや周辺回路を選定できない可能性があります。

また、既存製品の改良や後継機の開発を依頼する場合は、現在使用している回路図、部品構成、ファームウェアの仕様、過去の不具合情報などを整理します。

既存のファームウェアを継続利用する予定であれば、新しい回路で動作させるためにどの部分を変更する必要があるかを確認します。マイコンや周辺部品が変更になる場合、従来のプログラムをそのまま利用できるとは限りません。

開発スケジュールも重要な資料です。試作基板が必要な時期、機能評価を実施する時期、量産開始を予定する時期を共有することで、必要なファームウェアをどの段階までに準備すべきかを判断しやすくなります。

さらに、自社で対応できる作業を整理しておくことも有効です。例えば、回路図の確認は自社で行えるものの、基板設計や試作評価は外注したい場合があります。ファームウェアについても、基本制御は外注し、製品独自の処理は自社で開発するなど、対応可能な範囲を明確にします。

すべての仕様を最初から確定できない場合は、未決定事項を区別して共有することが大切です。

未決定事項については、決定する担当者と期限を設定します。仕様が未確定であること自体よりも、誰がいつ決めるのか不明確な状態の方が、開発の進行に影響する場合があります。

依頼前の資料が整理されていれば、外注先も必要な作業や技術的な課題を把握しやすくなり、より具体的な提案を受けやすくなります。

分担パターン別の判断ポイント

電子回路設計とファームウェア開発の分担には、いくつかの代表的なパターンがあります。どの方法が適しているかは、自社の技術力、製品の複雑さ、開発後の運用体制によって異なります。

一つ目は、電子回路設計とファームウェア開発を同じ会社へ一括して依頼する方法です。

この方法では、回路設計、基板試作、基本動作確認、ファームウェア実装までを共通の管理体制で進められます。回路とファームウェアの接点が多い製品や、自社に組み込み開発の専門技術者が少ない場合に検討しやすい方法です。

例えば、センサー入力、通信処理、演算処理、制御出力が密接に関係する機器では、全体を把握する担当者がいることで設計判断を統一しやすくなります。

ただし、一括依頼であっても、製品の要求仕様や完成条件の承認まで外注先へ任せきりにすることは避けたいところです。発注側が必要な機能や受入条件を明確にし、設計の進行状況を確認する必要があります。

二つ目は、電子回路設計を外注し、ファームウェア開発を自社で行う方法です。

この方法は、自社に組み込み開発の技術者が在籍し、製品の制御ロジックを継続的に管理したい場合に適しています。ファームウェアを自社で管理することで、製品改良や機能追加を社内で進めやすくなる可能性があります。

一方、回路設計会社との技術的な調整が必要です。回路図の確認、端子割り当て、初期動作確認、基板の不具合調査などに自社の技術者が参加できる体制を整える必要があります。

特に、試作基板が完成した直後の動作確認では、回路設計担当者とファームウェア担当者が連携することが重要です。

三つ目は、電子回路設計とファームウェア開発を異なる外注先へ依頼する方法です。

それぞれの分野に専門性を持つ会社へ依頼できることが特徴ですが、仕様管理や進行管理の負担が大きくなる可能性があります。

この方法では、発注側が全体仕様を管理する責任者を配置するか、いずれかの委託先に技術的な取りまとめを依頼するなど、全体を統括する体制が必要です。

電子回路設計会社とファームウェア開発会社の双方が個別に仕様を判断すると、認識違いが発生しやすくなります。共通の仕様書を使用し、変更情報を同時に共有する仕組みが重要です。

四つ目として、基本動作部分だけを回路設計会社へ依頼し、製品固有の処理を自社で開発する方法もあります。

この方法では、マイコンの初期設定、入出力制御、周辺回路との通信などを外注先が担当し、その上位にある制御ロジックを自社で実装します。

ただし、共通部分と製品固有部分の境界を適切に設計する必要があります。双方が同じ設定や内部状態を変更する構造では、不具合の切り分けが難しくなることがあります。

どの分担パターンでも重要なのは、技術的な判断を行う責任者を決めることです。複数の担当者が関係する場合でも、製品全体の整合性を確認する役割が明確であれば、設計変更や問題解決を進めやすくなります。

見積もり・提案で確認したい内容

電子回路設計を依頼する際には、見積もりや提案に含まれるファームウェア開発の範囲を具体的に確認することが重要です。

例えば、「ファームウェア開発対応」と記載されていても、マイコンの基本動作確認だけを対象としている場合もあれば、製品機能の実装や総合試験まで含んでいる場合もあります。

同じ表現であっても、依頼先によって想定している作業が異なることがあるため、記載内容だけで判断しないことが大切です。

まず確認したいのが、設計対象の範囲です。電子回路設計、基板設計、試作基板の製作、マイコンの初期設定、制御処理の実装、通信処理の実装、動作試験など、どこまで対応するのかを明確にします。

特に、ファームウェアの基本動作確認と製品としての機能完成は区別する必要があります。

例えば、センサーからデータを取得できる状態までが依頼範囲なのか、取得したデータを演算し、異常を判定して外部へ出力するところまで含まれるのかによって、成果物と検証内容が変わります。

次に、試験の範囲を確認します。ファームウェア単体の動作確認、試作基板を使用した結合試験、製品全体の動作試験など、どの段階まで実施するのかを明確にします。

試験を依頼する場合は、検証する条件と合否判定の基準も確認しておきます。単に正常動作を確認したという説明だけでは、どの範囲の品質が確認されたのか判断しにくいためです。

また、開発途中の報告方法も重要です。回路設計の進捗とファームウェア開発の進捗を別々に報告してもらうのか、共通の工程管理資料で確認するのかを決めます。

回路側の設計変更がファームウェアに影響した場合、双方の進捗を合わせて評価する必要があります。定期的に技術課題を共有できる仕組みがあると、問題の早期発見につながります。

依頼先の技術的な対応能力については、過去に扱った機器の種類、制御方式、評価設備、検証体制などを確認します。ただし、過去の実績があるだけで今回の製品に対応できるとは限らないため、具体的な要求仕様に対してどのような設計方法を考えているかを確認することが大切です。

さらに、成果物の引き渡し方法、設計変更への対応、量産時の支援、出荷後の保守についても確認しておくと、開発完了後の認識違いを防ぎやすくなります。

開発中に起きやすいトラブルと予防策

電子回路設計とファームウェア開発を分担する場合、技術的な問題そのものだけでなく、情報共有や責任範囲の曖昧さがトラブルにつながることがあります。

代表的なのが、回路設計の変更がファームウェア担当者へ正しく伝わらないケースです。

例えば、試作前にマイコンの端子割り当てを変更したにもかかわらず、ファームウェア側が以前の仕様を使用していると、完成した基板で期待した動作が得られない可能性があります。

この問題を防ぐには、回路図や端子割り当て資料に改訂番号を設定し、どの版に基づいてファームウェアを開発しているかを管理することが重要です。

電子回路設計側で変更を行った場合は、変更箇所だけでなく、影響するファームウェア機能も確認します。

次に、試作基板の動作不良が発生した際に、原因を切り分けられないケースがあります。

例えば、通信が正常に動作しない場合、配線、信号品質、電源、クロック設定、通信条件、ソフトウェア処理など、複数の要因が考えられます。

こうした状況では、回路設計担当者とファームウェア担当者がそれぞれ別の原因を想定し、検証が進まなくなることがあります。

予防策として、基本動作を確認するための評価用ファームウェアや検査手順を用意しておく方法があります。通信処理だけを確認する単純なプログラムを使うことで、製品固有の複雑な制御処理から問題を切り離して検証しやすくなります。

また、信号測定結果、通信記録、ファームウェアの版情報などを共通の記録として残すことも有効です。

三つ目は、ファームウェアの仕様が開発途中で拡大するケースです。

製品の試作評価が進むと、表示機能の追加、異常判定条件の変更、通信データの追加など、新たな要求が発生することがあります。

こうした変更自体は開発上必要になる場合がありますが、当初の範囲との違いを整理せずに進めると、担当者の作業量や開発計画に影響します。

そのため、追加要求が発生した場合は、変更する理由、対象機能、回路への影響、再試験の必要性を確認し、関係者の承認を得てから進めることが望まれます。

四つ目は、量産段階になってファームウェアの管理方法が問題になるケースです。

試作段階では技術者が手作業でプログラムを書き込んでいても、量産時には同じ作業を安定して再現できる方法が必要になります。

製品ごとに異なる設定値や識別情報を使用する場合は、書き込み手順や検査方法を整理しなければなりません。

また、どの製品にどのファームウェアを搭載したか分からなくなると、不具合が発生した際の調査や更新対応が難しくなります。

量産を予定している製品では、ファームウェアの版管理、製造工程での書き込み、書き込み後の確認、製品識別情報との対応付けなどを開発段階から検討しておくことが重要です。

五つ目は、製品出荷後の更新対応が想定されていないケースです。

通信機能を持つ機器や、使用条件に応じて制御内容を変更する機器では、出荷後にファームウェアを更新する必要が生じることがあります。

更新方法を後から追加しようとしても、記憶領域の不足や回路構成の制約によって対応が難しい場合があります。

出荷後の更新が必要な製品では、開発初期から更新方法を検討します。更新用の通信経路、記憶領域、更新失敗時の復旧方法、更新データの正当性確認などが検討対象になります。

特に、更新途中の電源遮断や不正な更新データへの対策は、製品の用途とリスクに応じて適切に設計する必要があります。

これらのトラブルを完全に防ぐことは難しい場合もありますが、担当範囲、共通仕様、変更管理、検証方法を明確にすることで、発生時の影響を抑えやすくなります。

よくある質問

電子回路設計の依頼時に、ファームウェア開発の分担についてよく生じる疑問を整理します。

電子回路設計だけを依頼し、ファームウェアを後から開発することは可能ですか。

電子回路設計だけを先行して依頼することは可能ですが、ファームウェアに必要な機能や制約条件は回路設計前に整理しておくことが望まれます。

特に、マイコンの選定、入出力端子の割り当て、通信回路、記憶領域、電源管理などは、ファームウェアの要求によって設計条件が変わります。

ファームウェア開発を後工程にする場合でも、回路設計段階で必要な要求仕様を確認できる担当者を配置すると、手戻りの抑制につながります。

電子回路設計会社へファームウェア開発も一括依頼した方がよいですか。

一括依頼が適しているかどうかは、製品の複雑さや自社の開発体制によって異なります。

自社に組み込み開発の専門技術者が少ない場合や、電子回路とファームウェアが密接に関係する場合は、一括依頼によって設計と検証を統合しやすくなります。

一方、自社で継続的な機能改善を行いたい場合は、ファームウェアの一部または全部を社内で担当する方法も考えられます。

いずれの場合も、製品仕様の承認と最終的な受入判断を行う体制は必要です。

ファームウェアのソースコードは必ず納品してもらえますか。

ソースコードが納品対象に含まれるかどうかは、契約や依頼内容によって異なります。

実行形式のファイルだけを納品する契約も考えられるため、将来的に自社で保守や改良を行う予定がある場合は、契約前に必要な成果物と利用権限を確認することが重要です。

また、ソースコードを受け取る場合でも、開発環境の設定情報や使用したソフトウェア部品の利用条件などを含め、実際に保守できる状態で引き継げるかを確認する必要があります。

回路設計とファームウェア開発で不具合の原因が分からない場合はどうすればよいですか。

まず、現象を再現する条件を整理し、電源、信号、通信、制御処理などの要素に分けて確認します。

原因が明確になるまでは、回路側とファームウェア側の双方で測定結果や動作記録を共有し、共同で切り分けることが望まれます。

そのためには、依頼時に不具合調査の担当範囲や協力体制を取り決めておくことが有効です。

試作時に動作したファームウェアを、そのまま量産製品へ使用できますか。

試作段階で動作していても、そのまま量産製品へ適用できるとは限りません。

試作では確認していなかった異常条件や製造ばらつき、長時間動作などによって問題が発生する可能性があります。また、量産では書き込み作業や製品ごとの設定管理も必要になります。

量産へ移行する前に、製品の要求に応じた総合評価と製造工程での確認を行い、量産用のファームウェアを明確に管理することが重要です。

まとめ:分担を明確にして設計依頼の品質を高める

電子回路設計を依頼する際には、回路図や基板の完成だけでなく、ファームウェアを含めた製品全体の動作を見据えて開発分担を決めることが重要です。

ファームウェア開発の分担を適切に決めるためには、製品機能を分解して担当範囲を可視化すること、自社と外注先の技術力や保守体制を考慮すること、開発工程ごとに責任を割り当てることが基本になります。

さらに、電子回路とファームウェアの接点となる仕様を明確にし、成果物、利用権限、変更対応について契約前に確認することで、開発途中や製品出荷後のトラブルを防ぎやすくなります。

特に重要なのは、電子回路設計とファームウェア開発を独立した作業として扱うのではなく、一つの製品を完成させるための連携した工程として管理することです。双方の担当者が共通の仕様と検証基準を持つことで、問題発生時の対応も進めやすくなります。

また、電子機器を建設現場や施工管理の業務で使用する場合には、機器の開発だけでなく、完成後の現場運用や情報管理についても検討することが大切です。

現場で取得する写真や位置情報、施工記録を整理して活用したい場合には、LRTK Phoneの導入も選択肢になります。LRTK Phoneは、現場での測位や位置情報付き写真の記録、取得データの確認・共有などに活用できるプロダクトです。電子機器そのものの制御を担うファームウェアとは役割が異なりますが、現場で必要な位置情報や写真を記録・共有する仕組みとして活用を検討できます。

電子回路設計の依頼段階から、製品に求める機能、開発担当者の役割、完成後の運用方法まで整理しておくことで、開発成果を実際の業務改善につなげやすくなります。

ものづくりの次の一歩を、
相談から始めてみませんか。

加工・製造の外注先や共同開発のパートナー探しに。大田区産業振興協会の受・発注あっせん相談サービスをご利用いただけます。

ものづくり 外注先を探す。公益財団法人大田区産業振興協会の受・発注あっせん相談。無料でプロに相談!公的機関だから安心!
ものづくりの協力先探し大田区産業振興協会無料相談