Baker link. Dev が登場

Rust向け組み込み開発ボード
-Baker link. Dev-が登場!
開発環境サポートソフトとチュートリアルが準備されています!

  • Raspberry Pi(UK)設計のRP2040マイコン搭載
  • デュアルコア ARM Cortex M0+プロセッサ、最大動作周波数 133 MHz
  • SRAM:264KB、フラッシュメモリ:2MB
  • USB 1.1 ホスト/デバイス両対応
  • 低消費電力スリープモードおよびドーマントモードが利用可能
  • USBを介しマスストレージを使ったドラッグアンドドロップによるプログラムの書き込みが可能
  • 26 x 多機能GPIOピン
  • 2 x SPI、2 x I2C、2 x UART、3 x 12 bit ADC、16 x PWMチャンネル
  • 正確なクロックとタイマーを搭載
  • 温度センサ搭載
  • 高速な浮動小数点ライブラリを搭載
  • 8 x プログラマブルI/O(PIO) ※以上までスイッチサイエンス社を参考に記載
  • USB-type C端子搭載
  • デバッカー制御用ボタン(DEBUG BTN)とGP BTN(General Purpose Button)を搭載
  • デバッガー用LED2つとマイコン用LEDが4つ(GP20~22, 25)標準搭載

Set up

Pinout

ピンアウトはRaspberry Pi Picoを参考にしています。特に異なるピンはRaspberry Pi Picoでボタンに配置されているBOOTSELです。Baker link. Devでは、USB端子側のデバッカー(rp2040)BOOTSELとターゲット(rp2040)のBOOTSEL&RUNがそれぞれBOOTSEL_1、BOOTSEL_2・RUN_2にアサインされています。

Schematic diagramを参考に製品機能をご理解の上、ご購入いただきたく存じます。

Baker link. Devは、RP2040(Rasberry Pi Pico)とDebug Probe(CMSIS-DAP)が一体となった開発ボードです。ピンアサインもRaspberry Pi Picoに準じており、サイズは完全に一緒なので、Raspberry Pi Picoと同じアクセサリを使うことも可能です。また、LEDが6つ、ボタンが2つが標準搭載されており、新たな配線をすることなく開発が楽しめます。

Software Design

Baker link. Envを利用すれば、数回のボタン操作でDeckerコンテナ上にRustの開発環境を簡単に構築できます。また、Dockerファイルを含むプロジェクトファイルを共有することで、同じ環境を再現することが可能です。これにより、プロジェクトメンバー間での開発環境の共有がこれまで以上に手軽になります。

Tutorial Design

Baker link. Turorialは、Rust言語を利用した組み込み開発がBaker link. Dev&Envを組み合わせることで簡単に進められるようなチュートリアルです。Rust言語または組み込み開発初心者でも、わかりやすいような解説を実現しています。

Background

Baker-linkは、Rust言語で手軽に組み込み開発を行う環境を提供するために開発されました。情報が分散しているRustの組み込み開発のノウハウを集約し、初心者でも利用しやすい開発ボードとドキュメントを提供します。デバッガーを利用することで、組み込み開発でもプログラムの動作確認が容易になります。チュートリアルは初心者向けに基本から丁寧に解説し、応用できる知識を提供します。
  • Baker linkの開発に至った経緯結論
    Rust言語で組み込みを手軽に行う環境が欲しかったからである。
  • C/C++からRustで開発したい理由
    組み込みシステムは、高速かつメモリ管理を行えるC/C++言語で開発することがスタンダードになっており、多くのマイコンメーカーがC/C++言語での開発をサポートしきました。しかし、モダンな言語には標準で搭載されているサードパーティライブラリを管理するツールがなかったり[1]、メモリ安全性の面で問題がある言語でもありました[2]。また、C/C++言語は組み込みにおいては、圧倒的なシェアを誇っているが、それ以外のWebやGUIアプリケーション開発の面では、他のモダンな言語を利用することが多く、組み込みのためにC/C++を学び、他のソフトウェア開発では、また別の言語を学ぶ必要がありました。
    そんな中、C/C++に変わるシステムプログラミング言語を目指して開発されたのがRust言語です。Rust言語は、ガベージコレクションではない「ボローチェッカー」という概念でメモリ管理を行うため、メモリ安全性を確保しつつ直接メモリ管理ができるようになっている。また、複数の言語の使いやすい文法を取り入れており(マルチパラダイム言語)、さらに標準ツールでサードパーティライブラリの管理、クロスコンパイルをすることができる。そのため、Webのバックエンド(&フロントエンド)開発、OS開発、アプリケーション開発、など範囲が幅広い開発をカバーしています。そして、組み込み開発をすることもできる。しかも、各メーカー毎にIDE(統合開発環境)を利用して開発するではなく、標準のCargoというツールにプラグインを追加することで開発環境を構築できるため、Web開発で利用していた環境とほぼ同様の環境を利用して開発できます。つまり、組み込み開発で培ったノウハウがWeb開発にも適用できるます。
    私は、Webや組み込みといった全てのジャンルの開発を一つの言語でしたいと願っています。それが叶うのがRust言語であると強く思っています。

    [1]C++からRustに移行して1年経って思ったこと
    https://qiita.com/atsisy/items/450f1223b1b3b63bc530
    [2]ホワイトハウスが開発者に対しC++やC言語からRustやJavaなどのメモリ安全性に優れたプログラミング言語への移行を勧める
    https://gigazine.net/news/20240229-whitehouse-urges-use-rust-java/

    しかし、Rust言語での組み込み開発は障壁がありました。Rust言語の組み込み開発のコミュニティーは活発的であり、必要なツールやライブラリはすでに多く存在し、Rust言語でも十分組み込み開発ができる状況になっています。 しかし、それらのノウハウはバラバラに点在しており、複数の図書を読み漁り、試行錯誤しなくてはならない状況にもなっていました。 そこでノウハウを集約し、また組み込み開発初心者でも利用しやすい開発ボードと、それを利用するためのドキュメントを揃えることで、誰でもRust言語で組み込み開発ができるようにしたいと考えました。そうして生まれたのが、Baker-linkでした。
  • デバッガーの優位性
    組み込み開発の難しいところは、そのプログラムが問題を起こしてもWindows、Macのようにディスプレイが付いていないため、どこで問題が起きているのか?プログラムがどのように動作しているのかを確認できません。そういった問題を開発してくれるのが、デバッガーです。デバッガーを利用すれば、ユーザーはWindows、MacといったOS上でアプリを開発していると同じように、print出力、ブレークポイントの利用をし、組み込み開発できます。
  • チュートリアル作成時の狙い
    組み込み初心者を想定して作成しており、基本であるOutput(LEDの点灯)、Input(Buttonの入力)の話から始めています。またチュートリアル終了後に、それらの知識を応用して開発ができるように、1行ごとに丁寧に解説しています。

Customer support

Baker link. Devを作製しサポートするBaker link. LabはBaker link. Devのハードウェア及びソフトウェアの機能を保守・補償することに努めますが、アマチュア集団故に、完全な保守・補償ができません。また、製品のハードウェア設計起因の故障であっても返金・交換ができない場合があります。完全に輸送中の物理的な故障がある場合、同様の製品の交換を行います。お手数ですが、ご連絡していただきますようよろしくお願いいたします。Baker link製品はアマチュア集団によって設計されたハードウェア・ソフトウェアです。特に、ハードウェアの設計に関しては、Schematic diagramを確認の上ご購入していただきたく存じます。(実力不足で申し訳ございません。)また、製品の改善等に関するご支援に関するご連絡は随時お待ちしております。

お問い合わせ

私たちはあくまで初心者です。
初心者としてつまずいたことを基に開発ボードを作製しました。
多くのユーザの助けになり、新たな指摘や創造が生まれることを願います。

開発チーム Baker link. Lab

Get our Quick Tutorial!

上部へスクロール