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 として問題なく動作させることができましたとさ。めでたしめでたし。

m4s0n501

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 で聞いてみようと思います。