OnStep 2.22 with ESP8266

2019年11月3日日曜日

以前の記事「OnStep with ESP8266」から、OnStepもバージョンが上がり色々と変更点が多いので書き直してみます。

以前の記事は一応、古いバージョン用と言うことで残しておきますがお間違いの無いようにm(__)m

で、OnStepをWifi接続するために ESP8266 モジュールを使用できるのですが、OnStep基板 rev1.1を使ってモジュールにプログラムを書き込む方法をちょっとメモしておきます。


今回使用したモジュールは ESP-WROOM-02 です。
スイッチサイエンスさんや秋月さんで扱ってます。
ESP8266自体はTCP/IPスタック&マイコン内蔵のWifiモジュールで、内部フラッシュメモリにファームを書き込んで単体でも動作するインテリジェンスなものです。
GPIOも複数持っているので、ちょっとしたWifiデバイスを作れたりします。なかなか面白いモジュールです。

このモジュールはロットによって内部フラッシュメモリが 2M版 と 4M版があるようです。スイッチサイエンスさんのは2M版で今回はこちらを使ってます。(ピッチ変換基板シンプル版を利用)

オリジナルOnStep基板 rev1.1とのつなぎ方は、ここにも書きましたが、こんな感じです。


秋月などで購入できるフルバージョンのESP8266変換基板の場合、IO15をGNDへ落とす配線が必要です。



ESP8266ボードの追加


ESP8266への書き込みは、Arduino IDE を使います。
まず、Arduino IDEのボードマネージャにESP8266ボードを追加します。

ファイル -> 環境設定 を開き、
「追加のボードマネージャのURL」の追加ボタンを押下。開いたダイアログに、

http://arduino.esp8266.com/stable/package_esp8266com_index.json

を追加します。複数記述は改行すればOKです。

ツール -> ボード -> ボードマネージャ を選択して、ボードマネージャを開きます。


一覧の中から「esp8266」を探してインストールします。



OnStepソースの準備


ここで使用するのは OnStep 2.22です。ソースをダウンロード&展開し、モーターの設定などを行っておきます。

OnStepでESP8266を使用する場合の Configオプションは次の通り。

#define ESP8266_CONTROL_ON

オリジナルOnStep基板 rev1.1を使用する場合、Config.Classic.h に書いておきます。

さらに、新しいOnStepではESP8266コントロール用の定義が増えているので、そちらも追加しておきます。

src/pinmaps/Pins.Classic.h 90行目付近から、


#endif

#elif defined(__MK20DX256__) || defined(__MK64FX512__) || defined(__MK66FX1M0__)



// The PPS pin is a logic level input, OnStep measures time between rising edges and adjusts the internal sidereal clock frequency
#define PpsPin        23    // Pin 23 (PPS time source, GPS for example)

// For ESP8266 control
#define ESP8266Gpio0Pin  Axis1_Aux // Pin 17 (ESP8266 GPIO0 or SPI MISO or Fault)
#define ESP8266RstPin    Axis2_Aux // Pin 22 (ESP8266 RST or SPI MISO or Fault)


#define Axis1DirPin   10    // Pin 10 (Dir)
#define Axis15vPin    11    // Pin 11 (5V?)

ESP8266Gpio0Pin と ESP8266RstPin を定義しておかないと、こんなエラーが出ます。
他のConfigだと(Config.MiniPCB.hとか)ちゃんと定義されているので単に公式の反映忘れのような気がする。。。
とりあえずこれで ESP8266が使用できるConfig.Classic.h & Pins.Classic.h が出来上がるはずです。

以上、ひとまず先にTeensyにOnStepを書き込んで動作する状態にしておいてください。(大事)


ESP8266 書き込み


TeensyとPCをUSBで接続します。
ESP8266へは、OnStepに内蔵されている書き込み用のモードを使ってTeensy経由で書き込みます。

OnStepのコードを展開したフォルダ下に、addons/Wifi-Bluetooth/ があるので開きます。その中の、Wifi-Bluetooth.ino を Arduino IDE で開きます。

ボード設定は一覧の中から、


Generic ESP8266 Module を選びます。

ボードの設定で注意するところは、Flash Size を正しい値にしないとアドレスがずれるのか書き込み後上手く起動しません。今回は2M版なので、2Mを選択しています。
Upload Speed は 115200 bps でOKです。

この状態で、いったんビルドしてエラーがないか確認しておきます。

さて、書き込みを行います。
書き込みはOnStepに内蔵されているESPフラッシュモードを使用するので、まず、フラッシュモードへ移行します。

Arduino IDE のシリアルモニタを開きます。
ここからTeensy上のOnStepへコマンドを送ってフラッシュモードに入ります。
ドキュメントによるとOnStepの状態が停止かつホームポジションの時に書き込みができるようです。

OnStep の Config で AUTOSTART_TRACKING_ON を 指定している場合、まずトラッキング動作を停止させホーム状態にします。

シリアルモニタから、

:hC#
:hF#
の2行を送ります。(AUTOSTART_TRACKING_ON を指定していない場合は不要です。)

次に、フラッシュモードに入ります。シリアルモニタから、

:ESPFLASH#
を送ると、フラッシュモードに入った旨のメッセージが表示され、プログラムの転送待ちになります。

この状態で、Arduino IDE の「マイコンボードに書き込む」を実行します。
ビルド後、ESP8266への転送が開始されプログレスが表示されます。100%になれば完了です。



一旦、基板の電源を切り、しばらく置いてから再起動すると、ESP8266 がアクセスポイントとして動作します。デフォルトの接続情報は、

SSID  ONSTEP
Password  password

Wifi接続して、ブラウザなどで http://192.168.0.1/ をアクセスすると、OnStepのコントロール機能が利用できます。

また、SkySafariで接続する場合は、SkySafari の Telescope セットアップで次のように設定。

Scope Type - Meade LX-200 Classic
Connect via WiFi
IP Addres  192.168.0.1
Port Number  9999

Scope でOnStepに接続すると、SkySafariで制御できます。




オリジナル 基板頒布

オープンソースの架台制御ソフト、OnStepのハードウェア実装基板などの話題です。


頒布状況 2022/12/1
○ OnStep基板 Rev2.1
○ OnStep基板 Rev3.0
○ GBC-SHC 基板 Rev1.0
頒布ご希望の方はこちら、基板頒布のお知らせ をご覧ください。

このブログを検索

Blog Archive

QooQ