ジャンクMSXを買いました

ヤフオクでジャンクMSXを購入しました。Panasonic製のFS-A1というFDDのないMSX2です。

FDDありとなしとではヤフオクの価格がだいぶ違いますようです。FDDなしのMSX2だと1万円くらい、FDDありだとMSX2でも1.5万〜2万くらいしますね。

しかも、この FS-A1 の電源アダプタは特殊で、AC18VとDC9Vという聞いたことがない3端子のものですが、今回はアダプタなしのものを買ったのでかなり安く購入することができました。

この FS-A1 を選んだ理由の1つは、解析されて回路図が公開されていることでした。そのサイトはすでに閉鎖されているのですが、archive.org で回路図を取得することができます。先人の偉業に感謝。

また、MSX界隈では有名人のにがさんのHPで、FS-A1の電源を単電源化する改造方法が載っていたので、これを参考に電源周りも改造しようと思っています。

今回の目的は修理できるようなら修理して使い、修理できなかったらROMの吸い出しと主要な部品を取り外そうと思っていたので、起動すればラッキーという感じで購入してみました。

購入したMSXがこちら。約8000円くらいでした。

なつかしい・・。Panasonic製のMSX(FS-A1WSX, FS-A1GT)を使っていたので、キータッチの感じが似てますね。

年代物なので、端子の腐食やホコリなど、汚れがそこそこある状態でした。

アダプタもなく動作確認できないので、早速開けてみます。

…続きを読む

格安SPI/I2C ReaderをLinuxで使う

仕事で SPI Flash の読み書きが必要になって、個人的にもSPI Flashのライターが欲しいなと思っていたので、色々と探してみたらAmazonで格安のSPI Flash / I2C リーダライタ を発見。

HiLetgo CH341A シリーズ SPI フラッシャー USBプログラマー 24 25 EEPROM BIOS ライター USB to TTL
HiLetgo

買ったときの値段は忘れてしまったけど、現在の価格は送料込みでたったの 325円 !!
怪しいくらい安い。でもこのくらいなら失敗しても痛くないので買ってみた。
中国からの発送で2週間位かかったと思う。

見た目はこんな感じ。写真は撮ってないけど他にもSOP-DIPのピッチ変換基板が付いてきた。

こういうDIPソケットってめちゃくちゃ高かった気がするから、貧相な安物だろうと思っていたら、ちゃんとTEXTOOLだった。すごいな。この値段っておかしくないか?

裏面はこんな感じ。

裏面のシルクのように、ソケットの位置でSPIフラッシュとI2CのEEPROMを使い分けるようになっている。TX, RXもあり、USBシリアルとしても使えるらしい。

Windows版のプログラムは以下からダウンロードできるみたい。おそらくここがオフィシャル?のツールだと思う。

英語ページよりも中国語ページのほうが内容が充実しているので、中国語ページをgoogle翻訳したものを見るといいかも。

ただ、上記でダウンロードできるツールは、いくつかのアンチウィルスソフトで「トロイの木馬」と検出されるらしい。誤検知らしいんだけど、こういう前例があると会社では使えないよね。

色々探してみると、Linux版のツールも見つかった。

SPI Flashライタツール

どちらも CLI のツール。flashromの方は ubuntu のリポジトリにも入っている。

flashromの方が対応しているFlashデバイスが多く、SFDP にも対応しているみたいなので、対応リストに入っていないFlashでも使える可能性は高い。基本的にはこちらを使っていれば問題はないと思う。

ただ、どちらのツールも4byteアドレスには対応していないので、16MBまでのFlashしか読み書きできない。
また、クロックがそれほど速くないせいか、大容量のFlashだと読み書きに結構時間がかかるようだ。

I2C EEPROMライタツール

Linux用で見つけられた唯一のツール。

24c32 と 24c64 にのみ対応している?のかな?
違う容量のEEPROMの場合はソースの修正が必要になるかも。

パーツボックスに転がっていた 24LC64 は問題なく Read/Writer/Erase できていそうだった。
24LC64 (8kB) で Read が 0.3 秒、 Erase が 3.3 秒、 Write も 3.3 秒だった。

USB I2C kernel driver

kernelドライバとして実装されているので、kernelが持っているI2Cデバイスのドライバ(温度センサやタッチパネルとか)が使える。

これは試してみてはいない。

USBシリアル kernel driver

USBシリアルのドライバとしてはすでにメインラインに取り込まれている。ubuntuでも使えるかも。

シリアルとSPI Flashライタツールを同時に使うことはできるのかなぁ。
kernelドライバとlibusbで同時に1つのデバイスを操作できるのだろうか。

 

軽く使ってみた感じでは、CLIであればLinuxでもまぁまぁ使えることがわかった。値段の割にはちゃんと使えるので、ライターが欲しい人にはいいかもしれない。

でも裸だと雑に扱えないからケースがほしいなぁ。アクリルで作ってみようかな。

HiLetgo CH341A シリーズ SPI フラッシャー USBプログラマー 24 25 EEPROM BIOS ライター USB to TTL
HiLetgo

ZeroPlus LAP-C の EEPROM を Linux から書き換える

なんの脈略もなくロジアナの改造ネタです。

ZEROPLUS 社製のロジアナ LAP-C の型番を書き換えるために Windows を起動したものの Windows7 では書き換え用のドライバがインストールできず、悔しくて Linux 用の書き換えツールを探したが、ちょっと使いにくかったので改造して github で公開したぜという話です。

 

だいぶ前に買って以来、部屋に技術者っぽい雰囲気を漂わせるためのオブジェとして大活躍だったロジアナの LAP-C16032 ですが、最近使いたい用途が出てきたので引っ張り出してきました。

それでふと、LAP-C16032 の内蔵 EEPROM を書き換えることで上位機種相当に改造できることを思い出して、本来の用途そっちのけでまず改造をすることにしました。

情報元は Illegal function call さんの以下のエントリです。

# Illegal function call とは何て懐かしい響き・・・

早速EEPROMを書き換えようとしたのですが、Windows 7 では上記エントリで配布されている libusb のドライバがインストールできませんでした。

Windows XP 機なんて持ってないし、XP mode インストールするのも面倒なので、Linux で書き換えることにしました。

上記エントリに

『今回はGL660USBを解析した外人さんがいるが、
元はLinux用だったり、ちょっと扱いが面倒なので、こんなソフトを作ってみた。』

って書いてあったので、元になる Linux のコードがあるんだろうと探してみたところ・・・見つけました。

zerominus という Linux から LAP-C を叩いて計測データを取り出そうというプロジェクトのようです。

そのプロジェクトの中に  zeroprog という EEPROM を読み書きするツールがあります。きっとこれが元ネタだと思います。

早速ビルドして使ってみました。

一応使えるのは使えるのですが、すんなりビルドできなかったり、バックアップはできるのにリストアができなかったり、バックアップファイルのエンディアンの問題でダンプが読みにくかったりと、いろいろ使いにくかったのでチャチャッと改良してみました。改造したコードは github で公開しています。

ビルド方法などは上記ベージの README.md に書いてあるので割愛します。

リトルエンディアンに変更しているのでバックアップファイルを hexdump すると、文字列が普通に読めます。

オリジナル zeroprog

00000010 5a 1b 52 45 50 4f 55 4c 20 53 65 54 68 63 6f 6e |Z.REPOUL SeThcon|
00000020 6f 6c 79 67 43 20 2c 4f 4c 2e 44 54 ff ff ff ff |olygC ,OL.DT....|

改造後 zeroprog

00000010 1b 5a 45 52 4f 50 4c 55 53 20 54 65 63 68 6e 6f |.ZEROPLUS Techno|
00000020 6c 6f 67 79 20 43 4f 2c 2e 4c 54 44 ff ff ff ff |logy CO,.LTD....|

また、一番重要な restore コマンド (-r) を実装したのでいくらでも失敗ができます。

–help で resutore コマンドが出てきていたのでてっきり使えると思って安心して書き換えていたのですが、いざ restore コマンドを使ったら

// not yet implemented, sorry

なんて冷たくあしらわれてしまったので、仕方なく実装しました。

で、結果的に Product ID と Model string を変更することで LAP-C16128 として問題なく動作させることができましたとさ。めでたしめでたし。

AD00031のネジを手回し式に交換

ここのところ AD00031 のネタが続いていますが、今回も AD00031 です。

秋葉原にオペアンプなどのパーツを買いに行ったついでに AD00031 の前面パネル用のネジを買ってきました。

いろいろなサイトで不評な前面パネルのネジですが、これを手回し式に変更します。電池交換するためにドライバーが必要になるためです。

ちなみに、電池交換の際にボリュームツマミの六角ネジは緩める必要はありません。ツマミがついたまま基板を引き出せます。

ということで秋葉原の西川電子部品(西川ネジ)で買ってきました。

ローレットネジ2種割付き段付きローレットねじ2種 (綾目、平目)

こういう手で回せるようのネジをローレットねじというそうです。
ツマミの滑り止めの加工の種類により綾目(菱型模様のもの)、平目(縦線模様のもの)の2種類があり、更にドライバーで回せるようなスリットがあるものは「割付き」というそうです。また、つまみ部分とネジ部分の間に段があるものは「段付き」というそうです。

ということで、M3x6mm の綾目、平目の割付き段付きローレットネジを2つづつ買ってきました。

計4つで税込 192 円でした。安いですね。

実はローレットネジですが、これで2個目なんです。最初に10mm の割なしのローレットネジを買ったのですが、2つの失敗がありました。

1つ目は、長すぎたこと。
AD00031 にもともと付いているネジは12mm くらいあるのですが、タッピングネジということもあり、ネジ山間が広いので少ない回転数で取り付けられます。しかし、このネジはネジ山が狭いので 10mm あるといくら回しても進まなくて大変でした。

2つ目は、割なしだったこと。
ケースのかみ合わせの部分をネジ止めする関係で、AD00031 を落としたり衝撃を加えるとネジが固く締まってしまい、手では回せなくなります。なのでそういう時でもドライバーで回せる割付きにしました。まぁペンチで回ばいいんですけどね。

ということで、6mm くらいの割付きのローレットネジをおすすめします。

装着するとこんな感じになります。

ローレットねじに交換ローレットネジに交換しました

平目より綾目のほうがカッコよかったので綾目にしました。

うーん、カッコイイ!! 高級感が増した気がします (^^)

ただ見て分かるとおり、AUDIO OUT とネジの距離が近いので、プラグ部分が大きいヘッドホンだと干渉してしまうかもしれません。ご注意ください。

AD00031のホワイトノイズをやっつける(その4)

すでにこのシリーズ4回目。 また AD00031 のホワイトノイズを減らすべく試行錯誤していきます。

前回までの検証で色々と部品を変更しても自分の耳では聞き分けられないという、ガッカリな耳の持ち主だったという結果でしたが、今回は部品の変更ではなく、回路をいじってみます。

ということでこの回路です。

AD00031の回路の概要

とりあえずよくわからない電流帰還部を取っ払ってみます。上側のループの抵抗です。基板上ではR4とR6です。

取り外して聞いてみると・・・。お、ホワイトノイズ減ってる
若干は残るもののほとんど気にならないレベルまでホワイトノイズが減りました。

そうなると電流測定用の抵抗(回路図一番右の抵抗)もいらないので外してジャンパーでショートさせます。

こんな感じ。

普通の電圧アンプ化AD00031 を電圧アンプ化(笑)

5つ並んでいる抵抗の真ん中を取り外し、上部のインピーダンス調整用の抵抗を抵抗の足でショートさせています。

おー。こりゃいいや。曲間のホワイトノイズが気にならない!!

でも電流帰還をしないとこのアンプの意味が・・・。

もともと AD00031 通して聴くのと iPod touch 直で聴くのとであまり違いがわからなかったので、これでもいいのかなぁ。いや、ますます iPod 直で良くなってしまうような・・・。

それにしても電流帰還するとなぜノイズが増えるんでしょうね。そこが分かれば解決の道も見いだせそうなんですが。

正帰還してるから?? ノイズとか誤差が正帰還されて増幅されちゃうのかなぁ。

とりあえず、しばらく電圧アンプ化した AD00031 で聞いてみようと思います。