つながるデバイスのための組み込み開発・ファームウェア開発
デバイス上のファームウェアから、ペアリングするスマートフォンアプリまで、一つのチームで開発し、実機で検証します。
- C++
- Rust
- Linux
- Python
- REST
私たちがつくるもの
私たちが手がけるファームウェア・デバイスソフトウェア
デバイスの不具合は、静かに起こります。わずかなタイミングのずれ、一晩で空になるバッテリー、出荷済み端末の半分を動かなくするファームウェア更新。私たちは、デバイス上で動くC++とRust、その隣にあるスマートフォンやデスクトップアプリとのBluetooth接続、そしてデバイスからクラウドへデータが流れる経路までを手がけます。自社アプリのDJI Mic Recorderは、スマートフォン上でDJIのワイヤレスマイクとBluetoothで通信しています。ラボのデモではなく、実際に動いているデバイス接続の開発です。
-
01
リソース制約下のファームウェア
限られたフラッシュ、RAM、CPUの制約に収まるよう設計した、C++とRustによる制御・アプリケーションファームウェアを開発します。
-
02
Linuxベースのデバイスソフトウェア
起動処理から、製品を動かし続けるサービスまで、Linuxベースのデバイス向けアプリケーション・システムソフトウェアを開発します。
-
03
Bluetooth・無線通信
デバイスとスマートフォンアプリ、デスクトップアプリのあいだのペアリング、ストリーミング、制御を実装します。自社アプリのDJI Mic Recorderが支えられているのと同じ接続技術です。
-
04
デバイスからクラウドへのデータ連携
プロビジョニング、テレメトリ、設定配信を通じて、デバイスのデータをバックエンドが実際に扱える形式で届けます。
-
05
出荷後のファームウェア更新
通信の切断や電源断が起きても壊れないアップデート機構を構築します。配信の失敗が、現地対応につながらないようにします。
-
06
ログ・診断機能とテスト治具
すでに現場で稼働しているデバイスの状態を読み解ける診断機能と、実機に対して実行できるテスト環境を用意します。
よくある課題と解決のアプローチ
デバイス製品の行方を左右する判断
-
Rustを採用すべきか、C++のまま進めるべきか。
思想ではなく、コンポーネント単位で選びます。既存のコードベースやメーカーのSDKがC++を前提とする箇所はC++で、ネットワークに接する、あるいは長時間動き続けるモジュールでメモリ安全性が切り替えに見合う箇所はRustで実装します。
-
出荷後のデバイスに、どうやってファームウェアを配信するか。
最初の一台が工場を出る前に、アップデート経路を設計します。段階的な配信、整合性チェック、フォールバック用イメージを用意し、更新の失敗がサポート対応にならないようにします。
-
試作機は机上では動くのに、現場では動かない。
開発ボードでしか成立しない挙動を信用せず、実際に出荷するハードウェアと無線モジュールを対象に、実際の電源条件や電波干渉のもとで検証します。
-
デモではつながるBluetoothが、日常の利用では切れてしまう。
多くのデモが省略する再接続とエラー処理を作り込みます。接続の切断、バックグラウンドに回ったスマホアプリ、省電力モードは例外ではなく、通常の状態として扱います。
自社プロダクト
自社ソフトウェアの開発・運営も手がけています。
私たちが自ら設計・開発・運営し、毎日多くの方に使われているプロダクトです。お客様のプロジェクトにも、同じ熱意と丁寧さで取り組みます。
-
Bluetoothオーディオレコーダー
DJI Mic Recorder
DJIのワイヤレスマイクからBluetooth経由で、スマートフォンに直接録音。音声を思いどおりにコントロールできます。
本アプリは独自に開発したもので、DJIとは提携関係にありません。
進め方
ハードウェアの立ち上げから、現場で動くファームウェアまで
-
01
ターゲットの定義
コードを書く前に、対象ハードウェア、動作条件、そしてデバイスがリアルタイムに果たすべき役割を明確にします。
-
02
立ち上げと実装
ドライバ、起動処理、中核となる制御ループから着手し、シミュレーターだけに頼らず実機で検証します。
-
03
接続と統合
無線リンク、コンパニオンアプリ、クラウド連携は後付けせず、まとめて開発し、まとめて検証します。
-
04
出荷後のデバイス群を支える
リリース後もファームウェア更新、診断、修正を継続します。すでに現場にあるデバイスも、動き続け、改善され続けます。
すべてのご依頼に共通する進め方
-
明確な範囲と見積もり
着手前に、何が、いつ、いくらで届くのかを明確にします。
-
早い段階から動くソフトウェアを
短いサイクルで、実際に見て試せる成果をお届けします。
-
透明性のあるコミュニケーション
エンジニアと直接やり取りいただけます。進捗は定期的に共有し、「聞いていなかった」をつくりません。
-
リリース後も伴走
納品したものには、最後まで責任を持ちます。
よくあるご質問と回答
よくあるご質問
-
ハードウェアの設計も依頼できますか、それともソフトウェアのみですか?
私たちが手がけるのは、ファームウェア、制御ソフトウェア、そしてその周辺の通信部分です。すでにお持ちの基板、またはハードウェアパートナーが設計中の基板を前提に開発します。電子回路の専門家が判断すべき事項については、推測で進めず、その旨を率直にお伝えします。
-
現場で稼働中のデバイスに、ファームウェアはどう更新しますか?
アップデート機構は、製品の設計段階から組み込みます。署名付きイメージ、まず一部のデバイスに配信する段階的なロールアウト、そして更新が失敗してもデバイスが使用不能にならないフォールバックを用意します。最適な方式は、Wi-Fi、スマートフォン経由のBluetooth、有線のサービスツールなど、デバイスが備える通信手段によって変わります。
-
出荷から数週間後に不具合が出た場合は、どう対応しますか?
ログと診断機能は、初日からファームウェアに組み込みます。何を記録するか、それがフラッシュとバッテリーをどれだけ消費するか、そしてデバッガを接続できないサポートの現場からどう取り出すかまで設計します。これが、漠然とした現場からの申告を、修正できる不具合に変えます。
-
デバイスとスマホアプリをBluetoothで通信させられますか?
はい。自社アプリのDJI Mic Recorderは、スマートフォン上でDJIのワイヤレスマイクとBluetoothで接続し、ペアリング、ストリーミング、再接続を処理しています。貴社デバイス向けのコンパニオンアプリで解決すべき課題と、同じ種類のものです。
-
組み込み開発の費用は何で決まりますか?
主に、リアルタイム動作の複雑さ、メモリと電力の制約の厳しさ、関係する無線プロトコルと外部連携の数、そしてアップデートや診断機能を最初から組み込む必要があるかどうかによって決まります。実機上で動く範囲を絞った初版をつくることが、残りの費用を見極める最も早い方法になることが多いです。
お問い合わせ
開発中のデバイスについてお聞かせください
デバイスに求められる機能、すでにお持ちの、あるいは選定中のハードウェア、ご希望の期限をお知らせください。具体的な次のステップと、製品にとって特に重要になる論点をご返信します。
- 担当者よりできるだけ早くご連絡いたします。
- 短いお打ち合わせで、目的と開発範囲をお伺いします。
- お見積もりを含むご提案書をお送りします。ご契約の義務は一切ありません。
送信が完了しました
担当者より折り返しご連絡いたします。
対応領域
その他のサービス
-
Webサイト制作
高速で検索エンジンにも強いWebサイトで、事業内容をわかりやすく伝え、訪問者をお問い合わせへとつなげます。
-
Webアプリケーション
顧客向けポータル、社内ツール、ダッシュボード、ワークフローシステムを、実運用の負荷に耐えるバックエンドで構築します。
-
AIエージェント・業務自動化
AIエージェント、システム連携、自動化されたワークフローで、チームを繰り返し作業から解放します。デモで終わらせず、本番環境で確実に稼働させます。
-
デスクトップアプリケーション
高度な業務フロー、専用ハードウェア、データの可視化に対応するクロスプラットフォームのデスクトップアプリケーションを開発します。
-
モバイルアプリ
アプリストアで一般公開するプロダクトから、現場チーム向けの社内ツールまで、AndroidおよびiOSアプリを開発します。
-
技術コンサルティング・アーキテクチャ設計
要件定義、技術選定、アーキテクチャレビュー、開発計画の策定。最初の段階から、的確な投資判断ができるよう支援します。
-
保守・サポート
リリース後のアップデート、不具合修正、新機能の追加。当社が開発したソフトウェアはもちろん、すでに稼働中のシステムにも対応します。
-
どのサービスが合うか迷っていませんか?
プロジェクトの内容をお聞かせください。最適な進め方をご提案します。当社が適任でない場合も、率直にお伝えします。