chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

2020-01-01から1年間の記事一覧

BLE MIDI試作;コード修正

BLE MIDI用UUID(UUID128)をadvertisingのパケットに入れようとしてサイズオーバーしていた。UUID128はレスポンスに入れるように修正する(いつAPI読んだらいいのかも分からず) 今まで使っていたAPI(ble_gap_adv_set_fields) NimBLE Host GAP Reference …

BLE MIDI実装でエラーになる原因を調査

ESP32用のデバッガが動くようになったので、俺BLE MIDIのエラー原因を調査。 そもそもデバッグ環境を構築した目的は、アドバタイズにBLE MIDIのサービスUUID(UUID128)を入れようとするとエラーになるのを調べるためであった。アドバタイズにUUID128を含める…

RaspberryPiをJTAGアダプタに仕立てる

手持ちの古いJTAGアダプタ(乗ってるチップはFT2232R)がどうもうまく制御できない*1ので、、RaspberryPiをJTAGアダプタに仕立ててみる。以下が手順解説資料 Using a Raspberry Pi as a JTAG Dongle · synthetos/PiOCD Wiki · GitHub段々と泥沼化だ。。boots…

ESP32をデバッグできるようJTAGアダプタを接続してみる->なんとかデバッグ可能になった

ESP32をJTAGでデバッグするには、JTAG信号を出力するためのアダプタが必要。手軽にやるならFT2232Hを使うそうなのだが、、大昔に購入したJTAGアダプタ(アルファプロジェクト社のHJ-LINK/USBというやつ)があったのでそれを使ってみる。実はこのボードもFT223…

ESP32 + OpenOCD + GDB でデバッグ

BLEMIDIを動かそうとしているが、UUID128をadvertisingさせようとするけど関数からエラーが返ってくる。かなり確実そうなサンプルを使ってもやっぱりエラーになる。原因が分からない。 こうなったら、GDBでデバッグか!?となったが、ESP32はST-Linkとかは使…

nimBLEを使って BLE MIDIを実装中

ESP-IDFには2系統のBTライブラリがあるようで、BLEだけなら、NimBLEを使うべしとあった For BLE-only usecases, using NimBLE is recommended. It is less demanding in terms of code footprint and runtime memory, making it suitable for such scenario…

OCNバーチャルコネクトとの接続が安定しない(メモ)

使ってるルータとファームバージョン WSR-1166DHPL2 Version 1.01うまくいった時のログは以下 日付時刻 種類 ログ内容 2020/01/01 00:01:07 SYSTEM [MAP-E] Connection succeeded. 2020/01/01 00:01:02 SYSTEM [MAP-E] Connection was started() 2020/01/01 …

ESP32の ESP-IDFでBLEサンプルをビルドしてみる

Pythonで使えるBLEライブラリでは鍵交換が実装されていないと判断し、ESP32のESP-IDFを使ってBLEのデバイスを試作してみる。いきなり開発は難易度が高すぎるので、正しく動作するはずのサンプル実装をビルドしてみる。 過去の開発事例でいろいろ実装例が紹介…

RaspberryPi-Zero-W上でPythonを使ってBLEペリフェラルを作ってみる

目標:BLE MIDIを喋るペリフェラルを作る。Windowsから認識させて、MIDI入力装置として使ってみる。最終的にはESP32を使いたいけど、ライブラリとか揃っていそうなRaspberryPI + Linuxの組み合わせで試作してみる。 簡単に書くと、、BLE MIDIを喋るためのUUI…

nRF51822でBLEを勉強する:micro:bitを使えば格安

BLEって別に新しい技術でもないかもしれないが、、ESP32+MicroPythonでまだまともに動かしていない最後のライブラリで、また、DAWの関係から、BLE MIDIをなんとか使いたいと思ってる。が、、BLEはなかなかややこしい仕様で、プロトコル詳細がやっぱりよく分…

Raspberry Pi-Zero-Wでキャプチャする

以前購入したBLE用スニファの動作が安定しないので、Raspberry Pi-Zero-WでBLEパケットをキャプチャしてみる。 使うツールは tshark らしい。 hcitool を使うとBLEデバイスをスキャンしたり多少通信できるようなので、、まずはhcitoolでスキャンしてみる。 h…

ESP32 + MicoPython bluetoothライブラリでKORG microKEY2 Airに接続してMIDIデータを取得する→中断

ESP32 + MicoPython bluetoothライブラリでKORG microKEY2 Airに接続してMIDIデータを取得する試みを行った。 最終的に現在のBLEライブラリでは機能が足りないと判断し、中断 できたこと KORG microKEY2との接続 Service, Characteristicsの取得 できなかっ…

Raspberry Pi Zero WH + BLE + bluepyで BLEを学ぶ

BLEスキャナが大量のパケットを捕まえるのでどれが目指すパケットなのかよく分からず。。だったら、もっと確実に動作するBLE付きラズパイでスキャンしてみようと思った。安いラズパイは、Pi Zero-Wなんだが、在庫がなく、ピンヘッダ付きのPi Zero-WHを買った…

MicroPython BLEでscanしてみた

BLEを理解するため、まずはMicroPythonのubluetoothのscanを実行してみた。 スキャンした相手はKorgのKeyboard(BLE接続できる microKey Air) BLEをスキャンするためのコードは以下。長くなるのでコールバック関数は省略しています。*1 import ubluetooth ble…

MicroPython + BLEで、俺HID

MicroPythonのBLE(LowLevel実装)を使って俺HIDを作りたい。そのためのメモ■ご参考URL ROHM社のBLE解説記事 基礎知識 | ROHM TECH WEB ESP32・BLE通信「基礎知識」実は過去に、BLE+MIDIコントローラを作ろうとしていた。記事が残っている。 BLEを理解してMIDI…

MicroPythonネタで記事を書いている。。

某誌向けにMicroPython+ESP32で記事を書いている。時間がかかっていて、なかなか完成しない。なるべく正確に書こうとすると、いろいろ調べないといけないし、どうしても客観的で無難な表現になってしまう。 正確さも大事だけど、読んでる人が望むのは、正確…

waveshareのE-Inkディスプレイパネルを購入

これから暑くなるので、ESP32と温度センサで温度計を作ろうと思い、できたらE-Inkにして普段はDeepSleepと共に、パネルの電気切っておいて、30分周期で起床して、温度を測ってパネルの表示を更新・・また寝るようなのを作りたい。まずはE-Inkのパネルを発…

WSL2を使ってみたいがバージョンが未対応

WSL2を使ってみたいと思い調査https://docs.microsoft.com/ja-jp/windows/wsl/install-win10条件: バージョン 2004、ビルド 19041 以上に更新された Windows 10 を実行していることバージョン確認方法:[Windowsロゴキー]+[R] -> winver [OK]該当バージョン…

ESP32 + Arduinoはどこまでできるのかを調べる

普段はCUIでESP32+MicroPythonで試作しているけど、ほとんど使っていないArduinoはどこまで使えるものなのか?を調べる 特に知りたいのは、シンボリックデバッグが可能なのかどうか。ArduinoではPrint文デバッグしかできないと聞いていたけど、VisualStudio…

snifferでBLEをキャプチャする->Micro:Bitでなんとかなるかと

スイッチサイエンスに発注した、nRF51822搭載 Bluefruit LE Sniffer が届いたのでセットアップして使ってみる。 nRF51822搭載 Bluefruit LE Sniffer - スイッチサイエンス結論:BLEのキャプチャまでは行えた。->その後正常に動作せず苦戦->Micro:bitで代用中…

MIDI プログラミング

■参考URL C# MIDI Toolkit - CodeProject プレゼンテーション:Pythonで作るTiny DAW (Digitai Audio Workstation) | PyCon JP 2016 in TOKYO Python - python3を使ってMIDIファイルを編集・再生する|teratail Python で音楽を作って楽しもう - Qiita MIDI …

Arduino版BLEライブラリによるBLE-MIDI_BUTTON5.inoを動かしてFL Studioとつないでみる:動いたけど

BLEのレイヤーを理解してMircoPythonのBLEライブラリを使ってMIDIコントローラを作りたいと思っていた。で、、BLEライブラリのスキャンを行っても試しに使ったKorgのmicroKey AIRすら見つけらないでいた。実際に動く試作をしてみたいと思い、実績のあるArdun…

BLEを理解してMIDIコントローラを作りたい

MicroPythonでBLEのローレベルの実装がなされている。MIDI over BLEを理解して、できることなら、ボリュームやスイッチが一杯付いたMIDIコントローラ(BLE接続)を自作したい(MicroPython+ESP32で)。手始めに、BLE接続可能なMIDI楽器(KorgのMicroKey AIR)を見…

長い休みで障子の張替え

ずっと自宅待機なのでどこにも行けず、障子の張替えをやった。屋根の重さのせいか、障子が外せなくなっていたので、今回はミニジャッキで鴨居を押し上げて外した。 屋根の重みで鴨居が下がったせいか、はずせなくなっている障子 いつか時間のある時に鴨居を…

WSLにRustを入れる->素のWindows10でBluePillのLEDをLチカ

WSLにRustを入れる。普通にWSLに入れても途中でエラーになるので、逃げの手として、VMware上のUbuntuにRustを入れて、Rustが入ったディレクトリをtarで固めてWSL上のUbuntuにコピーする。 以下のコマンドは問題なく実行完了 rustup target add thumbv7em-non…

WSL上にArm開発環境を構築->ビルドはできるがデバッグが困難

結論: WSL環境でArm用バイナリのビルドは可能(ここまでは予想通り) gdbでデバッグする際、OpenOCDとST-Linkに接続するのはデバイス仮想化の影響によるのか正常に動作しない。ワークアラウンドとして、Windows環境でOpenOCDを走らせて、WSLからはポートで接…

RustによるARM用ビルド環境を構築、Lチカやってみる->エラー発生->場当たり的対応で回避

手元にはArmボードとして、STM32F103C8T6やSTM32L476RGがあるが、、まずはSTM32F103C8T6(通称BluePill)を使ってLチカしてみる。STM32F103C8T6は、ARM Cortex-M3であった。演算コプロ(FPU)付きらしいけど。 Cortex-M3なので、入れるライブラリは、thumbv7m-…

Rustを学ぶ、、できたらRustでSTM32のソフトを組みたい

Rustのプログラミングモデル?は組み込み開発にも効果があるということで、、Rustをボチボチ勉強中。STEVAL-Drone01も全く手を付けていないのだが、どうせなら制御ソフトをRustで書きたいと思っています。制御モデルも勉強しないと分からない。。Rust解説ペ…

ぷららでIPv6を使うには

自分は、ぷらら+ドコモ光で契約しており、IPv6に変更したいと思って、ぷららV6エクスプレスの利用申請を行った。V6申請が通ったので、ルータ(NECのAterm WG1900HP2)を購入してV6接続と、IPv4 over IPv6接続を試した。 結論として、、動作保証していないルー…

DAWを使って曲をどうやって作るか?

DAWの使い方は結構YouTubeにも掲載されていて、順序立って習得することができる。が、、曲をどうやって作るか?特にモチーフというかメロディラインの作り方はUG様の解説動画以外に分かりやすい方法説明を見つけることができなかった。が、、「プログラマー…