BBS Form






プレビュー (投稿前に内容を確認)
  

解決しました。

Aksd 様

お元気でしょうか。

FX5800P側に同じファイル名があると転送出来なかった
部分が解決しました。
同じURLに最新バージョンをアップしました。

宜しかったら見てくださいね。

転送ツール完成しました

Aksd 様

お元気でしょうか。

テロが頻発している国から先日帰国しました。
その後、直ぐにまた出張があり、なかなか
実験する時間が取れませんでしたが、
やっと転送ツールが完成しました。

いままで未実装だったチェックサムエラー処理
ルーチンも実装しました。

明日までに

http://www.geocities.co.jp/SiliconValley/1946/index.html

に公開したいと思います。

動作確認したパソコンはWindowsXPです。

今後の予定はパソコンでFX5800Pのプログラムを
修正または新規作成しFX5800Pに転送することを
考えています。

参考までにパソコン側の画面写真をアップします。

アップロードは週明けになります

  • takumako
  • 2017/04/11 (Tue) 12:04:50
Aksd 様

すみません。本業が忙しくなってしまったので
アップロードは週明けになります。

Re: 転送ツール完成しました

  • takumako
  • 2017/04/20 (Thu) 15:32:53
Aksd 様

やっと時間が出来て、最新版をアップロードしました。
動作確認はWinXPとWin7パソコンで実施しました。

以上報告です。



直接お役には立てませんが...

AkSd様 ならびに 凄腕の皆様

ワクワクしながら状況の進捗を拝見しています。

e-Gadget に AkSd様がお越しになってコメントを頂き、
http://egadget.blog.fc2.com/blog-entry-125.html
その際にPCへのバックアップについて具体的な研究を始めたと知りました。


技術的面でお手伝いできるハードウェアのスキルを持ち合わせていませんが、fx-5800P & Casio Basic には深い思い入れがあるので、コメント致しました。

http://egadget.blog.fc2.com/

Re: 直接お役には立てませんが...

  • AkSd
  • 2017/01/07 (Sat) 00:47:32
こんばんは。やすさん。
ご無沙汰しております。

風呂敷を広げた割には成果が出ず、申し訳ありません。

VisualStudio2008を持っているのですが、サンデープログラマーが買える値段(¥35kぐらい)だった最後の方だったようで。
今はPCのプログラミングに、皆さん何のIDEを使われているのでしょうか。Express Editionかな?

では。

Re: 直接お役には立てませんが...

  • やす(Krtyski)
  • 2017/01/07 (Sat) 17:41:52
AkSd様

あけましておめでとうございます。

現在持っている2台の fx-5800P のメモリが一杯になってきていて、そろそろもう1台調達しようかどうか悩んでいます。

今だと、Amazonで6千円を切っているので買い時ではあるのですが、ここの話題が気になってポチッとできずにいます。

PCでの開発環境ですが、お金を払ったのは VS6 が最後です。娘の学生証を使ったアカデミックディスカウントでEnterprise版だったという...

結局 Win XP の頃まではPCでプログラミングしていて、シェアウェアやフリーソフトを作っていたのですが、Win7 以降は開発環境をインストールすらせずに、さっぱりご無沙汰でした。

去年 VS2015 Community をインストールしましたが、これは無償で、Professional版に近いのでお勧めです。利用条件がうるさいので、個人の趣味用としてなら良いと思います。

まだあまり使っていませんが、昔ながらのインターフェースのダイアログベースのデスクトップアプリや コンソールアプリをチョコット作るくらいです。いずれも自分専用の動けばいいや的なツールばかりです。

Re: 直接お役には立てませんが...

  • やす(Krtyski)
  • 2017/01/24 (Tue) 15:55:59
AkSd様

Visual Studio Community 2015 を少し触ってみています。
C# は始めて使ってみたのですが、以外に分かり易い感じがしています。

ご参考まで...

http://egadget.blog.fc2.com/blog-entry-580.html

Re: 直接お役には立てませんが...

  • AkSd
  • URL
  • 2017/01/27 (Fri) 23:39:30
こんばんは。やすさん。お返事遅れました。

1週間ほど自宅PCが起動不能になり、毎晩少しずつ原因究明をしていました。Geforceビデオカードのヒートシンク内に大きなホコリ玉が詰まっていました。どうやらビデオチップがオーバーヒートでシャットダウンしていたようです。
(部屋も冷えているような)コールドスタート時はWindows7の”ようこそ”でフリーズしますし、再起動後のウォームスタートではBIOS画面すら出ませんでした。

ビデオカードの埃を綺麗に取り去って、スロットを挿抜し、メモリも一度挿抜して接触不良を改善し、無事復旧しました。カードエッジタイプの部品は例え衝撃や振動が無くても、熱膨張・収縮による微摺動摩耗で接触不良になりやすいという身近な例ですね。


脱線しました。私もVS2008スタンダードを購入した際に参考書を購入してVC#をかじりました。「C言語が使えるVB」と言われるように、実行時コンパイルなので起動が若干重いですが、VC++やMFCよりは分かりやすいと思いました。
2010頃から、業務用のツールやエンタープライズ向け3D-CADなどがC++からC#へと移行されたようで、初回起動にエライ時間が掛かるようになった反面、メモリ違反関係の強制終了が激減したので助かりました。

※もうセルフ組立PCはメリットが無いので、15~17インチぐらいのノートPCが欲しいです。
※ずっと休日出勤が続き、プライベートの時間が無くてツライ・・・

Re: 直接お役には立てませんが...

  • やす(Krtyski)
  • 2017/03/23 (Thu) 11:48:23
AkSd様

VS Community 2015 の C# をチョット使ってみました。
初めてC#でアプリを作ってみました。

http://egadget2.web.fc2.com/archives/Src_files/MyClock.html

http://egadget.blog.fc2.com/blog-entry-583.html

VC++の経験があるので初心者とは言えないのですが、初めて使ったC#は、バグの出にくい作りになっています。

シリアル通信用のコントロールまで準備されていて、チョット驚きです。まぁハードウェア制御でもしない限り、なかなか使いやすい言語です。

実際に使ってみた実感ですが、VC++とは別モノです。struct のように同じ用語が全く異なるものだったりします。C#の struct は構造体ではなくて、一種のクラスだったりします。

Winソフトを作ったことのある人なら、C#の敷居はとても低いと思います。お勧めです!

掲示板開設の御挨拶

こんにちは。
関数電卓に関する雑談やニュースなどを話し合う掲示板を立ててみました。

御気軽にどうぞ!

解析方法について

  • takumako
  • 2016/11/01 (Tue) 10:16:09
 はじめまして。会社での作業の効率化のためFX5800Pを使っていましたが、先日画面がチラチラした途端、電源が入らなくなりました。(分解したところDCDCコンバータ回路のコイルが破損していました。部品入手待ちです)プログラムは紙ベースで記録していましたので新しいFX5800Pを購入し、何とか数日かけて入力完了しました。この時電子記録媒体にプログラム保存ができたらなと思っていました。そんな中、この掲示板を発見して感動したところです。

 さて解析方法についてのアイデアですが、短いプログラムではなく、文法的にはエラーでも同じ命令が延々と続くプログラムを転送すれば、コード部分が判明するのかなと思っています。この同じコードの種類を変えていくと、中間コードも判明するのかなと思っています。

 もし時間がございましたら試していただけませんでしょうか。

Re: 掲示板開設の御挨拶

  • AkSd
  • 2016/11/01 (Tue) 23:22:03
こんばんは。takumakoさん。いらっしゃいませ。
昇圧回路のコイルが壊れるというのは、電卓に衝撃を与えて断線したとかでしょうか。

>文法的にはエラーでも同じ命令が延々と続くプログラムを転送すれば、コード部分が判明するのかなと思っています。

なるほど。プログラム送受信の機能は、CASIOBasicの文法チェックしていませんから、確かに連続して同じ命令を書いておけばオペコードの解析に有効かもしれません。

今のところはビット列の先頭がLSBファーストかMSBファーストなのかも解析できていませんので、プロトコルのヘッダーやトレーラー構造を見極めよう、という所です。

Re: 掲示板開設の御挨拶

  • takumako
  • 2016/11/02 (Wed) 13:44:01
 お返事ありがとうございました。チップインダクタの上部がひび割れていました。衝撃を与えた記憶はありませんが・・・・・。
休日明けから出張があり、電気街に行く時間が取れなくて部品の入手は今月末になりそうです。それまでFX5800P単体で出来る解析をしてみました。

 1データを7ビット、8ビット、10ビット、12ビットとそれぞれ仮定し試行錯誤した結果次の仮説を立てることが出来ました。
 
 1データ分は10ビットで、最初のビットはスタートビット、最終ビットはパリティビットと仮定したところ、必ず最初のビットは1となり、最終ビットはパリティとして変化しています。またLSBエンディアンとすると「Acknowledge」+アスキーコードで「0106F」となりました。2台目のFX5800Pが復活したらデジアナを使って、もう少しサンプルを増やして解析したいと思います。
参考までに仮説根拠のファイルを添付しておきます。

Re: 掲示板開設の御挨拶

  • AkSd
  • 2016/11/02 (Wed) 23:13:07
こんばんは。takumakoさん。

>1データ分は10ビット

 ワォ!素晴らしい!大きな一歩になりそうです。
送受信データブロックに60bitが7回ほど登場しましたが、これは6byte分のコマンド・レスポンス?になるのかもしれません。そして、ビット列が10bitの倍数であると分かれば観測もしやすくなります。

 それにしても先頭がスタートビット、終端がevenパリティビットとは、何故気づかなかったんだろう・・・しかもLSB先頭でしたか!
 データブロックの先頭がスタートビットで、「SCKとSDAの両方がHレベルになり、SCKが先にLレベルに変化する (先にLレベルになった方がSCKであり、送信側である)」というルールであれば、プログラムも簡単に組立てられそうな気がしてきました。

 前回の通信モニタして記録したビット列を、一部解読してみますと・・・
【送信側A】->【受信側B】※データは16進そしてASCII
1.A->B:コマンド?(6byte)
 05 30 30 30 37 30 =05h "00070"
2.A<-B:レスポンス?(※コマンド反復)(6byte)
 06 30 30 30 37 30 =06h "00070"
3.A->B:コマンド?(6byte)
 01 30 31 30 36 46 =01h "0106F"
4.A<-B:データ?(通信方向未確認)(186byteぐらい)
 02 30 32 31 30 30 41 34 47 79 33 34 30 30 30 4F ・・・ =02h "02100A4Gy344000O・・・"
5.A->B:不明 (42byteぐらい)
 (以降ログ途切れ)

プロトコルがASCII文字ベースであると仮定した場合、確かにLSB先頭ならASCIIコードが読めますね。
2番目のデータブロックが受信側Bより返答なければ“Transmit Error”と表示されますし、3番目のデータには、確かに"0106F"とASCII文字が読めました。

このファイルはプログラム名:TSTで内容も"TST"なのですが、上記の記録の範囲では"T"や"S"が出現していませんでした。きっと何処かに出現するはずだと期待して、更なる解読を進めたいと思います。

それにしても、アドバイス有り難う御座います。もしかしてtakumakoさんの方が先に解析完了してしまわれるかもしれませんね。^^;

Re: 掲示板開設の御挨拶

  • takumako
  • 2016/11/03 (Thu) 11:04:18
AkSd 様

お役に立てて嬉しです。
handshakeのやり取りが見えて来たみたいですね。
今後の解析に期待します。

少し早いのですが、ワンチップマイコンのPICを使って転送プログラムを作る構想を練っています。
市販のUSBーRS232C変換ケーブルの使用を考えましたが、どうせレベル変換回路が必要なのでUSB機能付きのPICを使おうと考えています。製作は出張から帰ってからになりますが。

Re: 掲示板開設の御挨拶

  • takumako
  • 2016/12/14 (Wed) 16:38:17
AkSd 様

 やっと出張が一段しました。
破損したFX5800Pはチップコイルを取り替えて正常になり、2台使って解析に取り掛かることが出来るようになりました。

 現在の解析状況は、Microchip社のワンチップマイコンのPIC18F14K50を使ってUSB転送でPCにプログラムを保存するところまで完成しました。

 最初は転送速度が追いつかず転送漏れがありましたが、送信バッファを2つ用意し切り替えながら転送するようにしたところ転送漏れはなくなりました。

下記は今まで分かったところです。

ハンドシーク概要(Newファイルの場合)

送信側      受信側

05h"00070" => 06h"00070"

01h"0106F" => 06h,ファームウエアの
         バージョン?、
          使用マイコン
(沖電気製ML6109)
          チックサム?等

01h,ファイル名
動作モード
(COMP BASE等)
チックサム?等 => 06h,"00070"

02h,
プログラム本体等 => 06h,"00070"

18h,"00070" => 06h"00070"

 同名のファイルが「存在する・しない」、「上書きする・しない」でハンドシェークの内容は異なりますが・・・・・・

 後はFX5800Pに転送する部分が残っていますが、取り掛かるのは来週の出張から帰ってからになります。

Re: 掲示板開設の御挨拶

  • takumako
  • 2016/12/14 (Wed) 17:12:56
AkSd 様

間違いがありました。

   誤        正
沖電気製ML6109 => 沖電気製ML610901

CASIO電卓Fx-82es、FC200Vに使われているようですが
Fx5800Pはメッセージからの推測で、実際にICチップを確かめた訳ではありません。すみません

Re: 掲示板開設の御挨拶

  • takumako
  • 2017/01/06 (Fri) 17:18:20
AkSd 様

 お正月にFX5800Pプログラム保存ツールを作成する
ためPC、FX5800Pを2台それに作成中の通信アダ
プタを持って帰省しました。

 たっぷり時間があると思っていましたが、色々
と用事があって中々予定どおりとは行きませんでし
たが、ようやく動くようになりましたので進捗状況
をご報告します。

 PICを使った通信アダプタ回路とPIC側のプログ
ラムはほぼできましたがPC側はエラー処理ルーチン
の実装が残っている状態です。

 最初ははPIC18F14K50を使って実験していましたが、
このPICは外付け水晶振動子(Xtal)が必要なため
Active Clock Tuning機能を使って外付けXtalを
必要としないPIC16F1455に変更して実験をしてい
ます。

 参考までに回路図をアップロードしておきます。

回路図では電池を使っていますが、実験ではDC
DCコンバータを使っています。

もし電池を使う場合は1.5Vマンガン電池は使え
ません。
FX5800Pの電圧に合わせるため、必ず1.2Vの
電池、例えばニッケル水素電池等を使ってください。

以上報告まで。

Re: 掲示板開設の御挨拶

  • AkSd
  • 2017/01/07 (Sat) 00:39:59
こんばんは。takumakoさん。
随分と進んでおられるようで凄いですね。

私の方は、完全に止まっています。
AtmelのATmega328シリーズにX'talで動かそうとしています。
I2Cバス接続型のキャラLCDを買いましたので、そちらのプログラミングしている所で止まってしまいました。

データが吸い出せれば、いよいよバイナリ解析ですね!リバースエンジニアの血が騒ぎます!

Re: 掲示板開設の御挨拶

  • takumako
  • 2017/01/07 (Sat) 20:57:13
AkSdさん

あけましておめでとうございます。

I2Cバス接続のLCDのプログラムミングに取り組まれているとのこと。私も年末に秋月から購入しましたが、まだ手付かずの状況です。

さてFX5800Pの方ですが、プログラムをそのままのイメージでPCに保存し、それをFX5800Pに戻すところまでできました。最終的にはPC側でプログラムを作成したり変更したりしたいと思っていますが上手く出来ません。サイズやチェックサムの場所は特定出来たので多分ここを正しくすれば上手く行くかなと思っています。
また進展がありましたら御報告いたします。

Re: 掲示板開設の御挨拶

  • takumako
  • 2017/02/17 (Fri) 14:48:23
Aksd 様

中間報告です。

転送ツールはほぼ動き出しました。

http://www.geocities.co.jp/SiliconValley/1946/index.html

に公開しました。エラー処理ルーチンが未実装ですのでデータが化けると途中でハングアップします。

3月上旬まで海外にいますので、実験もしばらくできません。テロが頻発している国に行くので、中途半端な状態の公開です。もし戻って来られない時のために・・・・・笑

タイミングが微妙にずれて転送が止まってしまう時がありますが「おまじない」ボタンを数回押すと正常転送できる場合があります。帰国したら完成版を目指してまた実験再開する予定です。

以上中間報告でした。

FX-5800Pの通信解析の進展は?

はじめまして、S.Poeと申します。
こちらで、FX-5800Pの通信の解析が始まったそうで、興味津々です。
色々と期待を込めて、ネットの通販でFX-5800Pを発注してしまいました。
NTT-X Storeで、16周年記念クーポン800円適用で5,853円です。

通信の解析、進展はありましたでしょうか?
何かお手伝いできる事あったら良いのですが…

通信の生データの解析とか、データ出ししてもらえれば、何か手がかりでも掴めるかもしれません。
現状では、以下までは分かっているんですよね?
1.A->B:(6byte)
 05h:ENQ(照会) + 5バイト"00070"
2.A<-B:(6byte)
 06h:ACK(受信OK) + 5バイト"00070"
3.A->B:(6byte)
 01h:SOH(ヘッダ開始) + 5バイト"0106F"
4.A<-B?:(通信方向未確認)(186byteぐらい)
 02h:STX(テキスト開始) + 何かデータ…

これ見る範囲では、4番はA->Bで、プログラム名+プログラム本体に見えなくもないけど、
情報少なすぎて、判別できませんね。

CASIOの方で、技術情報を公開してくれれば…とは思うのですが、開発していた方とか、
出てきてくれないかなぁ… ^^;

Re: FX-5800Pの通信解析の進展は?

  • AkSd
  • 2017/01/07 (Sat) 00:59:37
こんばんは。S.Poeさん。

FX-5800Pは単4電池仕様なのが気に入っています。
コイン電池は充電タイプが手に入らないですから。

現在、2台のFX-5800Pの通信内容をモニタし、ビット列データないしバイナリデータを吸い出してみよう、という段階であります。

組込系コンピュータは、スマートフォンから携帯ゲーム機、電卓に至るまでARM社のアーキテクチャが浸透していますので、今後登場するであろう通信ポート付き電卓もそうなる可能性が高いと思います。

つまり、CASIO独自仕様の通信ポートを解析しても将来の役に立たない見通しなのですが、それでも謎は解明したくなるのが人間なのでしょうか。
※終わりが見えている仕様なら、こっそり教えてくれても良いのになぁ。

では。

質問

はじめまして。こちらのブログを見てプログラ電卓に興味を持ち、現在並行輸入のCG-10かFX-9860GIIのどちらを購入するか悩んでいます。カシオのソフトpdfを読んだり、公式のエミュレータを動かしてみたりしていますが、いまひとつ決めることができません。
自分のやりたいことの大きなことはPCで編集したCSVを転送してグラフ描画や計算をしたいのですが、CSVデータのやりとりについてCG-10にはリスト機能にありそうですがFX-9860GIIではCSVを読み書きはできないのでしょうか?もしご存知でしたらアドバイスを願います。

Re: 質問

  • AkSd
  • 2016/11/14 (Mon) 23:19:50
こんばんは。安田さん。
お返事遅くなりました。

FX-9860GIIのマニュアルを流し読みしてみましたが、ビルトインのグラフ描画機能は入力(記憶)した式からグラフ化する機能しか無さそうです。

CSVに限らず、CasioBASICから電卓ストレージ(又はSDカード)のファイルを読み書きすることは不可能なようです。
ただシリアルポート命令はありますので、PCからデータを受信しつつグラフ描画するようなことは可能です。

又、BASICではありませんが、アドインソフトとしてC言語で開発すれば、SDKにはファイル操作関連の関数が用意されていますので、CSVファイルを読んでグラフ描画する事は可能です。

Re: 質問

  • 安田鉄蔵
  • 2016/11/15 (Tue) 10:44:26
初心者のつたない疑問にご回答いただき感謝いたします。CG-20のマニュアル3章の5にはリストをCSVとしてPCとやりとりできるとのことでこちらを検討してみようと思います。
FX-9860GIIには明示的に記述は無いのですがFA-124でのデータ転送でリストを含む相互通信があるのでそのデータを利用できるのかな?と思った次第です。

SB-62

 はじめまして。電子手帳用のケーブルがほしくて今でも、DK-700に取り付けています。相手先の電子手帳が液晶がアウトになりかけでして。

Re: SB-62

  • AkSd
  • 2016/11/01 (Tue) 23:26:34
こんばんは。藤堂さん。はじめまして。

なるほど。過去のCASIO電子手帳もΦ2.5mm3極プラグケーブルで通信していたのですね。初期の電子手帳、又は電話帳機能搭載電卓ならば、確かにデータコピーは必須だったはずです。
有益な情報感謝致します。

SB-62

  • 藤堂俊介
  • 2016/11/06 (Sun) 08:35:40
 SB-62は、もう1種類あって、カシオのワープロ専用機と電話帳、スケジュール、メモを転送するために、ワープロ側がコネクタタイプを以前はもっていました。

 両方ピンジャックのSB-62は、電子手帳と、PC-9801のRS-232C接続するFA-110、電子手帳とハガキプリンタ『ポストランド』との電話帳(住所録)を転送するために使われました。

カシオfx-5800Pプログラムのバックアップ問題を検討してみる

カシオfx-5800Pに入力したCasioBASICのプログラムファイルは、fx-5800P同士であれば転送コピーが可能とのこと。
別売の「データ転送ケーブル」SB-62(又はSB-62A、SB-62-A)¥3,024-を使うのだが、既に生産完了・販売終了となっている。

よく見ると、Φ2.5mmの3極ミニプラグ(ステレオプラグ)になっているだけなので、プラグ単体なら安く入手できそう。
e-Gadget(やすさん)のサイトに詳しい情報が出ていた。
http://egadget.blog.fc2.com/blog-entry-125.html#cm

kikkawaさんの情報では、Φ2.5プラグをクロス配線にすると(ステレオプラグのL-Rをクロスにするのか?)2台のfx-5800Pを接続できるようだ。
このタイプの3極というとRS-232C互換のCOMポート、つまりシリアルポートや、MCU内のUSARTユニット直結なことが多いと思う。
しかしfx-5800Pは2.5Vレベルのクロック同期式とのこと。独自形式なのかもしれない。クロック(SCK)は8kHz程度でデータ(SDA)のストローブはクロックエッジH->Lなのか?
※SCK:シリアルクロック、SDA:シリアルデータ

送信と受信が切替わる際にSCKとSDAが入れ替わるらしい。それでΦ2.5mm3極プラグはクロス配線にする必要があるのだろう。
【親機データ送信時】
親機 SCK -> 子機 SDA (クロック送信)
親機 SDA -> 子機 SCK (データ送信)
【親機データ受信時】
親機 SCK <- 子機 SDA (データ受信)
親機 SDA <- 子機 SCK (クロック受信)


SCKとSDAは互いに信号出力しつつ入力していることから、I2Cバス通信のようにプルアップ抵抗をオープンコレクタ(OC,又はOD)でドライブして出力衝突しないようにしていると思われる。

送受信データの内容は、テキストデータではなく中間コード(Op-Code)かもしれず、sentaroさんの情報ではfx-CG10/20のオペコード表が使えるかもしれないとのことなのでチェックしておくことにする。
http://media.taricorp.net/prizm/simon_chm/fxCG20_OPCODES.htm
(2012年12月10日時点のオペコード表)


なお、fx-9860GIIにもΦ2.5mm3極ミニジャックが付いており、取説によると「3ピン・シリアルポート」という名称のようだ。ケーブルは同じくSB-62を使うようだが、fx-5800Pとは接続できるという記載が無い。fx-9860やfx-9750、fx-7400シリーズ同士でのデータ転送のみ想定しているということなのか?

fx-9860GIIの3ピン・シリアルポートはCOMポートのようで「非同期・半2重通信」とある。ビットレートは115.2kbps、38.4kbps、9.6kbpsなど。
fx-9860GIIのMPUクロックオシレータはPLL(クリスタル?)で駆動しているからCOMポートでも通信エラー問題はないと思うが、fx-5800Pが仮にRCオシレータ駆動だったとしたら、COMポートは無理なのでクロック同期式の通信ポートにしたのだと推測する。
(8bitマイコンのオシレータをセラロックで使っていたとき、COMポートの通信エラーに悩まされたが、クリスタルに交換したらウソみたいに安定した。以後、セラロックを使うぐらいなら内蔵RCオシレータを使い、RC発振では精度が足りない時にケチらないでクリスタルを使うようにした)

通信内容を解析するには、Φ2.5mm3極プラグ(ステレオプラグ)を購入し、fx-5800Pをもう一台購入して実際にファイル転送させ、SCKとSDAをオシロとロジアナで観察する必要がある。

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/10/13 (Thu) 00:14:49
秋月電子の通販でΦ2.5mmステレオ(3極)ミニプラグを注文したので届き次第実験してみる。
もう一台fx-5800Pが必要だが、Amazonより地元のヨドバシカメラの方が安そうだ。(要ポイント充当)

ところで、fx-5800Pを購入したのはAmazonプライムだったが、同じものを注文しようと思ったらマーケットプレイスしか在庫がないようだ。プライムで欠品して再入荷無しとなると、いよいよfx-5800Pの販売終了も近いのかもしれない。

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/10/14 (Fri) 00:35:32
2台目のfx-5800Pをヨドバシ.comにて発注。
1台目はAmazonで2012年5月に購入し¥6,529-だった。
2016年10月現在は¥6,650-になっている。

ヨドバシ.comでは¥7,270-だが、10%還元で¥6,543-相当になった。(今回は貯蓄ポイントを充当して更に安価に買えた)
どの通販店舗も在庫希少になってきて、いよいよ希少なプログラム関数電卓になりつつあるfx-5800P。

それにしても、1台目を買って4年半にもなるが、大事に仕舞いすぎて殆ど触っておらず、CASIO Basicも今頃触り始めた所である。色々気づくの遅かった。

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/10/15 (Sat) 22:33:53
2台目のfx-5800PとΦ2.5mm3極ステレオプラグが届いたので、早速通信テスト。
テキスト表示(PRINT命令)のみのプログラムを作成し、親機->子機へ転送してみる。

3極のピンアサインが分からないが、ステレオプラグのLch・Rch・GNDと仮称する。通信ポートGNDはシステムGNDと同極だろうとアタリを付け電池ホルダのマイナス側と導通チェック=>ビンゴ!
あとはLchとRchの極性だが・・・

・ストレート配線してみる
【親機】【子機】(※便宜上、親機・子機と呼ぶ)
Lch -> Lch
Rch -> Rch
GND -> GND
子機を受信待機させ親機を送信したら、親機送信エラーになった。子機は受信待機のままフリーズし操作不能のため強制リセット。(親機で送信開始した瞬間に子機がフリーズ)

・クロス配線してみる
【親機】【子機】
Lch -> Rch
Rch -> Lch
GND -> GND
今度は無事に送受信完了した。どうやらクロス配線にしないと電卓ハードウェア的にも良くないようだ。
新品開封直後のfx-5800Pをハードウェア要因でフリーズさせてしまった。運が悪い。

信号電圧について。
受信待機状態、又は送信状態(通信ポートオープン)にすると、信号線に電圧がLch・Rch共に現れる。
親機-子機、非接続状態では0V->0.5Vとなり、接続状態では2.5Vになる。

次はオシロスコープに接続して信号波形を観察する。

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/10/16 (Sun) 00:57:42
通信波形観測1。
データ送信の1単位。RS-232C互換フォーマットではないので、8bit単位の通信ではない様子。

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/10/16 (Sun) 01:11:39
通信波形観測2。
クロックは9kHz前後、信号電圧は2.7Vで、H/Lパルス幅はそれぞれ54~58usだった。
クロックの立ち下がりエッジでデータを読んでいる様子。

実験のケーブルはシールドではないリード線で長さ80cmだが、まれに通信エラーが発生する。波形にノイズが載っているのが観察できるので、シールドケーブルを使った方が良さそう。

ビット列からデータ内容を観察する為に、次はロジックアナライザを使おう。

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/10/16 (Sun) 20:47:23
fx-5800P通信ポートの波形をロジアナで観察中。

クロック約9.1kHzなのでサンプリングスピード自体は追い付く。だが意外と複雑な通信手順(プロトコル)のようだ。内容が何も無いブランクのプログラムを作成して転送実験してみた。これをロジアナで観察してみるが、通信フォーマットが何も分からないので取っ掛かりが掴めない。とりあえず幾つかのデータブロックに別れているのは分かった。可能な範囲でビット数を数えてみた。

【送信側A機】->【受信側B機】
1.A->B:コマンド送信?(60bit)
2.B->A:レスポンス受信?(60bit)
3.A->B:コマンド送信?(60bit)
4.B->A:データ送信?(約1860bitぐらい)
5.A->B:コマンド送信?(約420bitぐらい)
6.B->A:レスポンス受信?(60bit)
7.A->B:コマンド送信?(約200bitぐらい)
8.B->A:レスポンス受信?(60bit)
9.A->B:コマンド送信?(60bit)
10.B->A:レスポンス受信?(60bit)

基本的にコマンド->レスポンスの2組1セットのようで、ビット数は60bitが基本。4番目のビット列が一番長いので実データが転送されているはずだが、クロックはB機が出力していてデータ方向が不明。信号方向は「クロック駆動側が送信側」と仮定して推測しているので、信号(電流)方向も解析しないと何とも言えない。
5番目と7番目もビット列は長い。が、内容がゼロbyteのデータなのに、なぜこんなにデータが多いのだろうか?固定長サイズの通信なのか?

唯一既知なのはプログラム名だけなので、その文字列のASCIIコードを探していたが、骨が折れそう。そもそもビット列はLSB先頭かMSB先頭かも分からない。う~む・・・

プロトコル・アナライザが必要であるし、何か既存のプロトコルなのか、独自なのか・・・

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/10/18 (Tue) 00:24:42
寝ても覚めても通勤中も、仕事中さえ頭の中がfx-5800p通信ポート波形で一杯だ。

通信プロトコルは何なのか?既存の何かなのか?I2Cなのか、それとも3-WIREなのか?それとも過去のCASIO関数電卓で使われていた独自フォーマットのプロトコルを継承しているのか?
もし既存プロトコルなら、それが何なのか分からないと、ロジアナのプロトコルアナライザー機能が使えない。(選べない)

「CASIO fx-5800p data Link protocol hacking」などの語句で検索すると、外国の関数電卓マニアが集うサイトの掲示板に辿り着く。
上記の通信コネクターと3極ステレオジャックの極性や信号波形について、更にはロジアナで波形を観察するところまでは既知の情報だったようだ。
しかし、それ以上情報、つまりプロトコルまで解析した情報は見つけられなかった。ここから先は前人未踏の領域のようだ。それは最後のフロンティアか・・・

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • sentaro
  • 2016/10/18 (Tue) 23:05:38
AkSd様、こんにちは!

fx-5800P外への通信は大変興味深いところでこれが出来るとなるとfx-5800Pの活躍範囲が大きく広がるのでぜひ実現できるようになって欲しい機能です。

本来はメーカー純正機能として外部と繋げるようにしてもらえるのが一番なのですが、どうにもそうなる気配が一切ないのがとても残念ですね。

うちにある2台のfx-5800Pのうち1台はちょこっといじって25%ほどクロックアップ状態に出来ているのですが(^^;
ノーマルのfx-5800Pとも問題なく通信できるので非同期通信しかありえないことが分かります。

ここから先のプロトコル解析となると守備範囲外ということもあってなかなか踏み込めないところなのですが、AkSd様を以てしても通信プロトコルの解析はなかなかに難問なのですね。

ファイル名やプログラムを一文字だけ変えた送信データのビット列を比較してみるか、ぐらいしか思い浮かばないのですが、何かきっかけがつかめるとよいですよね。

fx-5800PのCPUが何であるかの情報があれば突破口になりそうなので、10年前当時に安価に使えた8/16ビットCPUのどれかだと想像はしているのですが、皆目見当も付かずという状況です(^^;

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/10/19 (Wed) 19:27:31
こんばんは!sentaroさん!ようこそお越し下さいました。
自分一人しか居ないと、雑談目的の掲示板が進捗報告みたいになっています。blogより気軽にポストできて、意外と便利です。

さて、CASIOプログラム電卓ローエンド機と侮っていましたが、古き良き日本製組込コンピュータをfx-5800pに垣間見ました。(独自仕様の嵐) 通信プロトコルがガラパゴス的に難解です。
ロジアナの波形からノートに書き出した”1010・・・”のビット列を眺めながら、何か規則性はないのか?と思考しております。数学の天才なら何か閃いたかもしれません。

>ちょこっといじって25%ほどクロックアップ
それはスゴイ!興味深い。
以前コメントされていたように、電源電圧が高いとクロックスピードも上がるような気がします。禁断のオキシライド乾電池をば!
外部RC発振と推測するならば、RかCを取り替えてスピードUpを狙うか、RもCも取り外して発振源のシュミットトリガInput側にX'talオシレータモジュールを取付けるとか?でしょうか。非常に楽しそうなのですが、そのプロジェクトはお預けになりそうです。。。・

>ファイル名やプログラムを一文字だけ変えた送信データのビット列を比較してみる
プログラム名”OOO”(Oは0x4F->01001111b->1並びで見やすそう)、プログラム内容は”A”だけのものや”AA”、”AAA”、そもそも何も保存していない場合など、色々試しましたが、プロトコルが意外と複雑で、先ずはデータ構造から攻めようかなと。

>10年前当時に安価に使えた8/16ビットCPU
最新機種のfx-CG10/20でもSH4Aを使っているぐらいですから、CASIOは国産MCUメーカーが好きみたいですね。fx-5800p分解写真を見ると、基板に樹脂モールドで型番読めませんよね・・・SEIKO/EPSON系か、日立系、三菱系か、それとも東芝?

では。

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • sentaro
  • 2016/10/22 (Sat) 21:56:49
AkSd様、こんにちは!

>外部RC発振と推測するならば、RかCを取り替えてスピードUpを狙うか、RもCも取り外して発振源のシュミットトリガInput側にX'talオシレータモジュールを取付けるとか?でしょうか。非常に楽しそうなのですが、そのプロジェクトはお預けになりそうです。。。・

んと、25%アップというとほんの気持ち速くなったかも?っていう程度の気のせいレベルなのでお蔵入りネタなのですが、
C101とC110のCPU側を短絡
ただこれだけです。

この25%アップ以外は、10p程のコンデンサを付け足したところ一時的に2倍速以上になったことがありましたが、一発芸だった感じで再現性が無くこれは今のところ迷宮入りです(^^;
おそらく…、このコンデンサ群の容量の組み合わせで何か変わってきそうなのですが、そこに深入りする前にSH4Aと出会ってしまったので今に至るという状況です。

以前のfx-4800Pやfx-603Pはセラロックで簡単だったんですが、最近のCASIO電卓は一筋縄ではいかないですね。
とはいえ、フラッシュROMな電卓は元の状態にすぐ戻せるのでこういう実験するには便利です。

SHARPの電卓もCR発振ぽいので抵抗を小さくするだけで数倍速にはなりそうですが…こっちはあまり意味が無いという感じで(^^;


>プログラム名”OOO”(Oは0x4F->01001111b->1並びで見やすそう)、プログラム内容は”A”だけのものや”AA”、”AAA”、そもそも何も保存していない場合など、色々試しましたが、プロトコルが意外と複雑で、先ずはデータ構造から攻めようかなと。

規則的な何かが分かってしまえば簡単なことかもしれないのですが、何か暗号化でもされているとしたらまた難解ですよね。


>最新機種のfx-CG10/20でもSH4Aを使っているぐらいですから、CASIOは国産MCUメーカーが好きみたいですね。fx-5800p分解写真を見ると、基板に樹脂モールドで型番読めませんよね・・・SEIKO/EPSON系か、日立系、三菱系か、それとも東芝?

先代の関数電卓のCPUはOKI製で間違いないと思われるのですが、現行のJPシリーズとfx-5800Pの各種ベンチマーク結果を比較すると、JPシリーズはこのOKI製CPUの関数電卓っぽいらしい速度傾向ですがfx-5800Pはちょっと違う傾向なので別のCPU系列の可能性が大です。
ちなみにfx-5800Pの先代のfx-4800Pは日立製のCPUでした。その前の電卓&ポケコンも日立製がほとんどなので日立製の可能性が一番高いかもしれません。
http://www.oki.com/jp/otr/index.html
OKIテクニカルレビュー
2005年 No.203
超ローパワー8bitマイコンの開発
http://www.oki.com/jp/Home/JIS/Books/KENKAI/n203/pdf/203_R06.pdf

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/10/23 (Sun) 21:28:27
こんばんは。sentaroさん。
歓送迎会や懇親会の飲み会で(二日酔いで)土日が潰れ気味です。

fx-5800p通信プロトコル解析プロジェクトは、AVRマイコン(ATmega168シリーズ)で通信内容をモニタし、bit列->byte列変換データをPC側のモニタプログラムで観察しようとしている所です。
問題はPC側のアプリケーションで、開発をVC#かVBかで悩んでいます。VC#は殆ど触っていませんが、HyperTerm程度を作るチュートリアル本は持っています。同じランタイム環境なら、やはりBASICに拘るのも良いかなと思い始めています。

#将来的にPC<-->fx-5800pのファイル転送アプリケーション実現の見込みが出てきても、それをプログラムする技量がありません。通信用信号変換ハードは基板を起こして製作可能なので、PCのプログラムが出来そうな方に配布して助けを求めたいぐらいです。


何やらいろいろ興味深い情報を有り難う御座います。
先日、ルネサスの世界シェアが高いことを知り驚いています。が、日立時代からの自動車用(≒国産車)ECU需要が大方の出荷数だろうと見当が付きました。
私の学生時代はアマチュアで秋月H8マイコンボードの全盛期でした。しかし日立がアマチュア市場(将来の組込系エンジニアの卵たち)に殆ど興味もサポートもしていなかったのが気に食わず。研究室でSH2ボードは使われていましたが、私は天邪鬼でTIのDSPボードを使っていました。
#今更ルネサスは”がじぇるね”とか”サクラボード”と称してMAKE市場に入ってきましたが、10年遅かったように思います。8-16bit市場も32bitのARMに食われそうです。

>JPシリーズはこのOKI製CPUの関数電卓っぽいらしい速度傾向
>先代のfx-4800Pは日立製のCPUでした。
 なんと!沖製とは。電卓に特化した超ローパワーマイコンなんて、日本の伝統芸が復活したみたいで嬉しくなりました。確かに、いつかの開発者インタビュー記事で、JPシリーズからの高ドット数GLCDを駆動する為にMCUを新しくした、というのを読んだ記憶があります。次のEmbedded展は見学に行きたいです。(許可出なさそうなので有休使う)

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • akatuki
  • MAIL
  • 2016/10/30 (Sun) 18:57:02
AkSd様。どうも、お世話様です。

こうした方面の話、当方は門外漢なので何とも言えませんが、Vcc=2.7Vでしたか、レベルシフタとか使うてカセットテープにでも録音して、ってわけにはイカンですね、双方向でした。
ただ、昔のポケコン宜しく「音声フォーマット」みたいな通信でもやっておったりするのではないか知らん ?
例えば、2kHzのパルスで0, 4kHzのパルスで1,みたいな ?

当方も色々と頭をひねっとりますが、なかなかいい考えが浮かびません。ウーム。

Re: カシオfx-5800Pプログラムのバックアップ問題を検討してみる

  • AkSd
  • 2016/11/01 (Tue) 00:13:09
akatukiさん、こんばんは。

関東地方は急に冷え込むようになり、土日は熱が出て寝込んでいました。
fx-5800p通信解析プロジェクトも御覧の通り停滞しています。まずは電卓同士の通信内容をPCでモニタする為のツールを作成しております。この作業が地味であまり面白くありません。(勢い低下中)

ポケコンの音声フォーマット、懐かしいですね。
ですが、私の会社にある生産設備のコンピュータは、未だにカセットテープ・ストレージなんですヨ!
キースイッチに鍵を挿入し「ロード」に合わせてカセットテープを再生することでプログラムを読み込ませ、逆にセーブする際はプログラムをカセットテープに録音します。運転する際はキースイッチを「RUN」に切替えます。

プログラミングはどうするのか?というと、コンピュータ本体にある命令キーとテンキーを押して、1命令ずつ入力するんです。ディスプレイは7セグLEDのみ。プログラムはノートに書いて組立てますし、ラインプリンタで出力したり・・・
70年代のコンピュータみたいですよね。

プログラムできる社員は既に居ませんし、プリンタもカセットテープレコーダも故障して使えません。今は録再MDウォークマンでプログラムをロードしていますが、MDの時代も終わりましたね。

早速お邪魔します、南洲太郎

AkSd様、取り急ぎお邪魔します。「高機能電卓の情報」akatukiです。

今回はごあいさつという事で。
今後共、宜しくお願い申し上げます。

Re: 早速お邪魔します、南洲太郎

  • AkSd
  • 2016/10/11 (Tue) 23:34:38
akatukiさん、ようこそ!おいで下さいました。
こちらこそ宜しくお願いします。

ブログのコメント欄も盛り上がりますが、方向性の定まらない雑談というのも風流じゃないかなと思いまして。

投稿テスト

テストです

Re: 投稿テスト

  • AkSd
  • 2016/10/10 (Mon) 18:41:04
返信テストです

Re: 投稿テスト

  • AkSd
  • 2016/10/10 (Mon) 20:10:57
写真の投稿テスト
※投稿できる画像は、GIF・JPEG・PNG画像、ファイルサイズは、500KBまでです。