External Debug 機能を搭載したBaker link. Dev Rev. 1 が登場!
開発環境サポートソフトとチュートリアルが準備されています!
お知らせ
- [2024/11/22] Tutorialにて404 error が発生する現象が報告されています。再度ページ左側の目次をクリックするか、ページ内の矢印での移動で解決する場合があります。ご不便をお掛けし申し訳ございません。
- [2024/10/02] Baker link. Dev がスイッチサイエンスにて販売されました!
- [2024/10/03] fabcrossで取り上げられました!
- [2024/10/04] Baker link. Dev が完売しました。購入していただいた皆様、ありがとうございました!
- [2024/10/05] スイッチサイエンスの在庫を補填しました。スイッチサイエンスの購入ページが更新するまで少々お待ちください!
- [2024/11/20] Baker link. Dev Rev.1がスイッチサイエンスにて販売されました !
- [2024/11/21] Baker link. Dev Rev.1がfabcrossで取り上げられました!
- [2024/11/21] Baker link. Dev Rev.1が完売しました。購入していただいた皆様、ありがとうございました!
- [2024/11/21] スイッチサイエンスにBaker link. Dev Rev.1を補充しました。スイッチサイエンスの購入ページが更新するまで少々お待ちください!
Baker link. Dev & Baker link. Dev Rev. 1
- 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)標準搭載
- 外部マイコンデバッグ機能を搭載 ※Rev. 1のみ
Set up
Pinout
Baker link. Dev
ピンアウトはRaspberry Pi Picoを参考にしています。特に異なるピンはRaspberry Pi Picoでボタンに配置されているBOOTSELです。Baker link. Devでは、USB端子側のデバッカー(rp2040)BOOTSELとターゲット(rp2040)のBOOTSEL&RUNがそれぞれBOOTSEL_1、BOOTSEL_2・RUN_2にアサインされています。
Schematic diagram(Rev.0)を参考に製品機能をご理解の上、ご購入いただきたく存じます。
Baker link. Dev Rev. 1
ピンアウトはBaker link. Devと同じですが、RESERVED が RUNに変更されています。
Schematic diagram(Rev.1)を参考に製品機能をご理解の上、ご購入いただきたく存じます。
寄付のお願い
Baker linkにご興味を持っていただきありがとうございます。本プロジェクトは、Baker link. Labのメンバーの皆様からの温かいご支援によって成り立っています。この度、Baker link. Devの製作および販売においては、Baker linkプロジェクトやRust言語、そしてそれを用いた組み込み開発の普及を最優先としたため、利益を追求しておりません。私たちの活動にご関心をお寄せいただけるだけでも大変ありがたく存じますが、もしご寄付を賜ることができましたら、プロジェクトのさらなる発展と技術の普及に大きな力となります。
皆様のご支援が、未来の技術革新を支える礎となります。どうか、私たちの夢を共に実現するために、ご協力をお願い申し上げます。何卒よろしくお願い申し上げます。
Features
Baker link. Dev
Hardware Design
Baker link. Devは、RP2040(Rasberry Pi Pico)とDebug Probe(CMSIS-DAP)が一体となった開発ボードです。ピンアサインもRaspberry Pi Picoに準じており、サイズは完全に一緒なので、Raspberry Pi Picoと同じアクセサリを使うことも可能です。また、LEDが6つ、ボタンが2つが標準搭載されており、新たな配線をすることなく開発が楽しめます。
Baker link. Env
Software Design
Baker link. Envを利用すれば、数回のボタン操作でDeckerコンテナ上にRustの開発環境を簡単に構築できます。また、Dockerファイルを含むプロジェクトファイルを共有することで、同じ環境を再現することが可能です。これにより、プロジェクトメンバー間での開発環境の共有がこれまで以上に手軽になります。
Baker link. Tutorial
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