1170 文字
6 分
DIYハーモニック赤道儀⑤:OnStepX完成

OnStepXが完成しました。

最小限の機能でよくてコンパクトにしたかったので、基板はMiniPCB2。ステッパードライバーはTMC5160。ファームウェアはOnStepX v10.24c。

とりあえず無負荷ではSLEW_RATE_BASE_DESIRED 3.0で脱調なし。モーターは定格0.9Aで400steps/revの17HM15-0904S、プラネタリギアボックスは減速比10:1のEG17-G10。このギアボックスはお高いだけあって極めてスムーズで静か。

オリジナルのMiniPCB2からのカスタマイズ点は2点。
①WeMos D1 miniの代わりにD1 miniサイズのESP32-WROOM-32Eを取付
②32KBのFRAMモジュールを追加実装

①のESP32について、Amazonなどで「D1 mini ESP32」を検索すると、ピンヘッダが2列でD1 miniのフォームファクタよりやや大きいやつが出てきます。しかし、OnStepの公式Wikiによると「MiniPCB2はWeMosソケット周りのスペースに余裕がないのでESP32は取付できません。」と書いてあります(試してはいない)。私はAndroidユーザーかつ現地でのPCとの接続でもWiFiよりBluetoothの方が使い勝手がいいので、このD1 miniソケットにはBluetooth SPP用のチップを付けたいのです。

一応、秋月のRN-42ピッチ変換モジュールは工夫すれば付けられなくもなさそうでしたが、今更Bluetooth 2.1はちょっとな…(しかも高いし)ということでネットサーフィンの結果、「ESP32 in true D1 Mini form factor」を謳うパブリックドメイン基板を発見、これを使ってESP32を取り付けました。JLCPCBAで裏面の表面実装部品の実装込みで注文できて助かります。

USBシリアルは載ってないので、5ピンピンヘッダからの書き込みになります。なおこの基板の3.3VレギュレータはLDOタイプではないので、MiniPCB2のD5はバイパスしないと(多分)電源電圧が足りない。

あとは以下のプログラムを書き込んでD1 miniのソケットに刺せばBluetooth SPP対応OK、後日WiFiにしたくなった時もSmart Web Serverを書き込めば対応可能。
ちなみに以下のコードはSerialToSerialBTのサンプルコードをちょっと書き換えただけ。

#include "BluetoothSerial.h"

String device_name = "OnStepX-HARMONIC";

// Check if Bluetooth is available
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

// Check Serial Port Profile
#if !defined(CONFIG_BT_SPP_ENABLED)
#error Serial Port Profile for Bluetooth is not available or not enabled. It is only available for the ESP32 chip.
#endif

BluetoothSerial SerialBT;

void setup() {
  Serial1.begin(9600, SERIAL_8N1, 16, 4);
  SerialBT.begin(device_name);  //Bluetooth device name
}

void loop() {
  if (Serial1.available()) {
    SerialBT.write(Serial1.read());
  }
  if (SerialBT.available()) {
    Serial1.write(SerialBT.read());
  }
  delay(20);
}

②のFRAMについては興味本位。Teensy 4.0はエミュレートされたEEPROMの容量が小さく、PECバッファの容量を増やそうとしたときにエラーが出るという情報があったのでその対策でもあります。使ったのはたぶんAdafruit用であろうと思われるI2C 32KB FRAM MB85RC256Vモジュール。アリエクで600円くらい。パスコンとSCL・SDAのプルアップ抵抗も載ってるので使い勝手がよいです。別に32KBもいらないのですが、8KBのMB85RC64モジュールは売ってませんでした。

I2CFRAM

そのままだとデカいので、A1とA2の間で基板をカット。あとFRAMチップの右側4端子(上からVSS (GND)、A2、A1、A0)およびピンヘッダ部分のGNDとWPを短絡。これでVDD、SCL、SDA以外がすべてGNDに落ちます(データシートによれば内部プルダウンがあるみたいなので、この短絡加工は必要ないかもしれません)。MiniPCB2の右下、本来はPECセンサーコネクタを取り付けるスペースがありますが、ここには3.3Vも来てて上記基板カットしたモジュールがぴったり収まります(VCC~SDAまでの5ピンにピンヘッダを実装)。あとはTeensy 4.0裏面のGPIO24(SCL)、25(SDA)にワイヤーをはんだ付けして引き出し、モジュールのSCL、SDAと接続します。

OnStepX側では、Config.hに以下を追記。

#define HAL_Wire Wire2

またNV_DRIVERをNV_DEFAULTからNV_MB85RC256に変更。

#define NV_DRIVER NV_MB85RC256

これで問題なくFRAMを認識しました。なお初回起動時はFRAM初期化のためかなり時間がかかります。Extended.config.hでDEBUGをVERBOSEに設定するとシリアルモニタで経過状況が確認できます。

私はFRAMにしましたが、同じI2CバスにZS-042モジュールを接続すれば、RTC追加とEEPROMの拡張が両方できるみたいですね。

その他、MiniPCB2製作にあたっては、DCジャックが鬼門でした…

DCジャックの取付パターンは丸穴3か所のJP1なんですが、この丸穴が絶妙に小さくて一般的な基板取付用DCジャック(例えばマル信無線電機のMJ-179PHとか)が刺さりません。秋月で売ってるDCジャックで取り付け可能なのはこれです。

DIYハーモニック赤道儀⑤:OnStepX完成
https://stargazr.net/posts/2025/0227-diyharmeq-onstepx/
作者
FarbiE
公開日
2025-02-27
ライセンス
CC BY-NC-SA 4.0
Comments

No comments yet.