自分自身のための ものづくり / 自分自身のためのものづくりメモ

突っ込みなどがありましたら掲示板にお願いします。

* サターン用RGBケーブル, 音声ノイズ, GNDの接触改善

#電子工作 #RGB #メモ
 だいぶ前に組んだサターン用RGBケーブル(純正ケーブル HSS-0109 のサターン側約15cmとSFC用純正RGBケーブル SHVC-010 を継いだもの)と、XRGB-2plusを繋いで、久々にサターンを起動した。すると、音声にずいぶんノイズが乗っていた。

 サターン側のミニDIN10ピンコネクタのフレームが曇っていたので、コンタクトZで接点を磨いたところ、ノイズは解消された。


 サターンの映像出力端子は、GNDがピンに割り当てられておらず、ミニDIN10ピンのフレームにGNDが割り当てられている。で、そのフレームはピンよりも接触が不安定だし、メッキ部が曇ったりもする。その結果、サターン・モニタ間のGNDの抵抗が増える。

 75Ω終端の映像信号は、比較的大電流の信号だ。終端抵抗に0.7Vの電圧を発生させている間は、9.3mAの電流が流れる。RGB接続なら、R,G,B,複合同期(コンポジットビデオ信号)の4本で、計37mA。

 というわけで、仮にサターン側コネクタのGNDに1Ωの抵抗が挿入された場合、映像信号がフルにスイングするとそのリターン電流のために、相互のGNDレベルに37mVの変動が生じる。


 その点、プレステのAVマルチ出力は、GNDがRGB,Video,Audioで分けられているので安心。でも、実際には機器側のコネクタでいきなり共通になっていたりして、意図どおりに機能することはあまりない気もする。

* Bad Apple!! PV-FC (2) がファミコン実機で映像が乱れる。原因は黒より暗い黒

#ファミコン
※最新版では問題は修正済

発端

Bad Apple!! PVをファミコンで再現してみた。(その2)
http://www.nicovideo.jp/watch/sm9170895
に感動した。
 エミュレータでの再生では満足できず、実機で再生するためにMMC3搭載カセットのROMを剥いでEP-ROMを載せたカセットを作成した。


事象

 RF接続した赤白ファミコン(HVC-001)では映像が乱れる。RP2C03を載せたRGB出力AV仕様ファミコン+XRGB-2plusでは乱れない。

↑MTV-2000にRF接続し、キャプチャ

調査とわかった事

 後期型ファミコンの裏蓋を外し、オシロスコープでPPUの出力を眺めた。その結果、映像の黒部分に、バースト直後の黒レベルよりも低いレベルの信号が出ていた。

↑はAV仕様ファミコン(無改造)の映像出力

黒より暗い黒

http://nesdev.parodius.com/2C02%20technical%20reference.TXT
+-----------------------+
|Video signal generation|
+-----------------------+
(中略)
Luminance value 0, mixed with chrominance value 13 yield a "blacker than 
black" pixel color. This super black pixel has an output voltage level close 
to the vertical/horizontal syncronization pulses. Because of this, some 
video monitors will display warped/distorted screens for games which use 
this color for black (Game Genie is the best example of this). Essentially 
what is happening is the video monitor's horizontal timing is compromised by 
what it thinks are extra syncronization pulses in the scanline. This is not 
damaging to the monitors which are effected by it, but use of the super 
black color should be avoided, due to the graphical distortion it causes.

 パレットについての関連参考資料。
ファミコンの詳しい話
http://www.wizforest.com/OldGood/FamiCom/FamiMisc.html

 Bad Apple!! PV-FC では、黒として 'Luminance value 0, mixed with chrominance value 13' つまり 0x0D を使っているのだろう。(未確認。VirturalNESのパレットビューアでは、どのパレットを使っているかが数値では表示されない)
 作者の門真なむさんは実機で動かしているが、RP2C05-99を積んだツインファミコンで動かしたために、普通のファミコンで映像が乱れる(モニタにもよるだろう)ことに気づかなかったのかな。

追記

 問題が出る環境はかなり限られている模様。悪条件に相当弱い機器でなければ、はっきりした問題にはならないのかも。
 うちでは、MTV-2000にRF接続でノイズだらけになる。(MTV-2000はノンスタンダード信号に弱いので、blacker than black 以前の問題もあるかも)LGの安物VHSビデオデッキにチューナが死んだテレビデオ(普通のテレビ放送でも同期外れがたまに出るほど、同期周りが弱い)にて、同期外れが頻発。

* NEO GEO 用メモリカード(等)のSRAMの、FRAM化の検討

#NEOGEO #メモ
MCS48(8048)マイコンのページ(2007-05)
http://www.protom.org/micon/?date=200705
通常のSRAMのように扱えるので乗せ変えるだけと思いきや、これが全く動かず。しばしデータシートを眺めると、/CS(チップセレクト)端子を動かしてアドレスを内部にラッチさせないとダメとありました。この8048ボードは/CS線はGNDに繋がっているので原因究明。空きスペースにTTLの74LS08を置いて、8048からのPSEN,RD,WRでNegative-ORして/CS線に繋いであげると動き出しました。

  • FRAM Design Considerations
When designing with FRAM for the first time, users of SRAM will recognize a few minor differences. First, bytewide FRAM memories latch each address on the falling edge of chip enable. This allows the address bus to change after starting the memory access. Since every access latches the memory address on the falling edge of /CE, users cannot ground it as they might with SRAM.

 富士通の場合は、/CEがLにて/WEか/OEの↓でラッチアドレス?
 非同期SRAMと置き換えるだけでは、ダメか…。

* Windows環境にて、USB接続COMポートを、個体識別する

#メモ #プログラミング #シリアルポート #Ruby
 Windows環境(少なくともWindows XP)では、USB接続のRS-232C(正確にはEIA-574)アダプタのCOMポート番号は、差すUSBポートを変えるとコロコロ変わる。COM19になったりCOM6になったり…。とても困る。
 一方、USB接続のその手の機器は、デバイスマネージャ上で個体識別できる。ならば当然、自作プログラムでも個体識別し、COMポート番号を自動設定できる。
 WMIを介して情報を得る。Win32_SerialPortではUSB接続の情報が得られない(場合が多い?)ので、Win32_PnPEntity からCOMポートを抜き出すのが確実。

require 'win32ole'

def ports
    locator = WIN32OLE.new("WbemScripting.SWbemLocator")
    services = locator.ConnectServer(".","root/cimv2")
    ports = services.ExecQuery "Select * From Win32_SerialPort"
    ports.each do |port|
        p port.Caption
        p port.Description
        print "\n"
    end
end

def ports_pnp
    ps = []
    locator = WIN32OLE.new("WbemScripting.SWbemLocator")
    services = locator.ConnectServer(".","root/cimv2")
    ports = services.ExecQuery "Select * From Win32_PnPEntity"
    ports.each do |port|
        if /\(COM\d+\)$/ =~ port.Caption
            p port.Caption
            p port.Description
            p port.Manufacturer
            print "\n"
        end
    end
end
   


print "Select * From Win32_SerialPort\n"
ports

print "Select * From Win32_PnPEntity\n"
ports_pnp

ruby -Ks comports.rb

Select * From Win32_SerialPort
"通信ポート (COM1)"
"通信ポート"

"通信ポート (COM2)"
"通信ポート"

Select * From Win32_PnPEntity
"Prolific USB-to-Serial Comm Port (COM19)"
"Prolific USB-to-Serial Comm Port"
"Prolific"

"USB-to-Serial Comm. Port (COM6)"
"USB-to-Serial Comm. Port"
"Aten"

"通信ポート (COM1)"
"通信ポート"
"(標準ポート)"

"通信ポート (COM2)"
"通信ポート"
"(標準ポート)"


参考文献:

Kick4 BBS
USBシリアルのポート名を知る方法?
http://www.kick4.net/bbs/c-board.cgi?cmd=ntr;tree=4;id=

Win32_SerialPort Class (Windows)
http://msdn.microsoft.com/en-us/library/aa394413(VS.85).aspx
Win32_PnPDevice Class (Windows)
http://msdn.microsoft.com/en-us/library/aa394352(VS.85).aspx

* press-n-peelとMDプリンタ

#プリント基板 #Press-n-Peel #途中経過
 マイクロドライプリンタでも、Press-n-Peelブルーを使える。

 ファインブラックでうまくいった。
 黒リボン1回では、うまくいかない? ラミネータでは熱が不足なのかも。
 ファインブラックは、CMYKでリボン4枚重ねで厚くなるのか、パターンの潰れが少々生じた。

MD-5500で印刷した



切り取った



貼り付けた



ラミネータを数回通した



水につけた



剥がした





切り取った



エッチングした


* MDプリンタとラミネータによる転写プリント基板の作成の試み

#途中経過 #プリント基板
 満足する結果はまだ得られていないが、なんとかなりそうな感触はある。




 ラミネータを使うと、アイロンより楽に安定した転写ができる。
 紙を使う場合、転写後に紙を剥がす際に転写パターンを痛めるのが難。

・ALPS純正の「ハイグレードペーパー」は、耐水性が高いのが災いするのか、剥がれにくい。
・「KOKUYO カラーレーザー&カラーコピー用紙 光沢紙 A4」は、そこそこ剥がしやすかった。
・手元にあった適当なFAX用熱転写ロール紙は、薄くて平滑なのが幸いして、いい感じに転写できた。薄いので比較的剥がしやすい。
 以上はどれも、剥がすのに水につけて指で擦る必要がある。その際に、パターンが滲む。

 素直に、Press-n-Peelを使うのがいいかも。マイクロドライプリンタを使った例は、探した限りではWebで見つからなかったけど、いけそうな気がする。

 MDプリンタの必殺技の一つ「ページ合成」により、パターンを5回重ね塗りした。
(詳細設定にてチェックをつけると、その後は用紙が排出されない。再び詳細設定を開くと、チェックが自動的に外れ、排紙される。)
 5回重ねは多すぎたかも。剥がす際に擦ると、こすれて広がる。

参考:
【自作】 オリジナルプリント基板製作スレ 5層目
http://science6.2ch.net/test/read.cgi/denki/1220190927/
298 名前:774ワット発電中さん 投稿日:2009/01/09(金) 16:07:26 ID:3o2nXDNa
>>191です。
パターン書いたんで先日の改造ラミネーターでP-N-Pを試して見ました。
プリンターはCanonLBP3210、トナーは詰め替えのパチモノです。

ラミの温度は最高に設定。1,2回ではあきらかに一部しか張り付いていませんでしたが、
基板が熱くなるまで5回ほど通した所、見た目にもぺったりと完全に張り付きました。
しかもアイロンでしばしば問題となるパターンの広がり(押し潰れ)もまったくありません。
そして、現れた転写パターンはサンハヤトの感光膜もかくやと思われる
クッキリぺったりした艶のある大変美しいものでした。

一部パターンに欠損が有りますが、すべて埃が挟まった事が原因です。
この点に気を付ければパーフェクト…と思ったらパターンを裏焼きしている事に今気づいたorz
191 名前:774ワット発電中さん 投稿日:2008/12/23(火) 01:55:36 ID:kZ8NPRV5
>>180です。いいだしっぺなので近所のカインズホームでラミネーターを買ってきました。
やはりそのままではt=1.6mmは通りませんですた。

分解してみたところ、引っかかるのは前後のガイドで、
ローラーはシリコーンゴムだからなんとかなりそう。
というわけでガイドを外したら通りました。
出口の最後でゴムの弾性ではじき飛ばされますが通ってます。

転写はまだしてみていません。
圧力が強すぎて潰れるようならローラーの間隔を広げる改造が必要でしょう。
180 名前:774ワット発電中さん 投稿日:2008/12/20(土) 16:59:07 ID:vchQMyrX
アイロンじゃなくてラミネーターでうまく行った方います?
ttp://www.pulsarprofx.com/PCBfx/main_site/pages/start_here/index.html
これなんかどう見てもラミネーターなんではありますが、
買おうか買うまいか迷ってます(普通のラミネーターを)。

* Becomebot再排除

#Web #RandomNote
 RandomeNoteの検索履歴が、またかき回された。犯人はBecomeBot。

robots.txt BecomeBot締め出し
http://baku.homeunix.net/WiKi/rnx/index.rb?1138996756.txt

deny from 64.124.85.0/24
http://baku.homeunix.net/WiKi/rnx/index.rb?1171846535.txt

…にて排除していたのに。
 サーバ変更で色々再構築して、ついでに.htaccessの使用は最小限に抑えたためだ。

 さようなら、BecomeBot。
iptables -A INPUT -j DROP -s 64.124.85.0/24

* 掲示板へのspam投稿が、久々にチェックをすり抜けた

#掲示板spam対策 #Web

1204215628 Fri Feb 29 01:20:28 JST 2008
HOST 201.86.240.210
page 0


1204215664 Fri Feb 29 01:21:04 JST 2008
HOST 201.86.240.210
rep_num 0
pass XXXXXXXX
page 0
jikan 1204215628
do post
name jammarlibre
data Very good web site, great work and thank you for your service.
mail http://enavivo.info/cookie-monster
subj cookie-monster

 name="mail"なのにURLを書いてきたのは、狙ってのことか?!
(ReadMore...)

* SSOP(ピン間0.65mm)の石なんて嫌いだーっ!

#電子工作 #RGB #部品調達

 石だけが小さくても、手作りの片面基板じゃその他の部品等で場所を食うから、石自体の小ささほどには基板が小さくならないし。


 2.0x1.25mmのチップ抵抗がひどくでかく感じるのは奇妙に感じる。とはいえ、1608にしても、扱いがぐっと面倒になる割には回路全体は小さく作れないだろうしなぁ。


 手作業では、ただのSOP(ピン間1.25mm)あたりが、小ささと作業性のバランスが取れていると思う。

 RSオンラインで買える高速オペアンプで一番安い(@280)と言うことでLT6206を買ったのだけど、SOPのを扱っているLMH6682MA(@340)かLMH6683(3回路、@560)がいいか?
 あるいは、RGBにバイアスがかかっていないSG-1000II等なら、利得2倍固定3回路のLT6550をピン間0.5mmは我慢して使うか。

* 無神経な根こそぎGetの馬鹿やろーっ!

 RandomNoteの検索履歴をしっちゃけめっちゃかにかき回していきやがって…。
 まぁ、こっち側で対策するべきことではあるが、どうやって区別したものやら…。

 あと、根こそぎ巡回するのは別にかまわないのだが、秒間2アクセスとかは勘弁してくれ。これは問答無用でツールとその利用者が悪い。
…って、ログを調べるとUAを色々変えつつ(詐称?)766回のクエリかよ…。悪意はないんだろうけどその無神経さは許容範囲の外だな…。

 ま、ここまで無神経なアクセスは滅多にないので、対策はべつにいいか。


2008年1月12日追記
 zia-httpmirrorの作者と利用者のばかやろーっ!!!
 上に書いたのよりはマシだけど、履歴が滅茶苦茶になるのは同じだ。せっかく、「超整理法」的に出番が多いのが上になっていたのに。
 とりあえず、.htaccess をいじって、/から閉め出すことにした。

 上に書いたようにこーゆーのは滅多にない、けど、時々は確実にあるんだよな…。

#RandomNote #Web

* RandomNoteの敵はspam投稿用クローラ

#RandomNote #掲示板spam対策 #Web

2007/09/23

 久々に、RandomNoteをspam投稿ロボットが引っかき回していった。
 対策が必要とは思ってるのだけど、たまにしかないし、投稿その物はBASIC認証で弾かれるしで、面倒なので1年以上放置してる。

 後述のような感じで、2時間半にわたり、GETとPOST合わせて800回以上のアクセスを行う酷いロボットだった。
 401で弾かれているのに延々と試行するのは無駄で、馬鹿なプログラムだと思う。ふつー、エラーが出たらとっととあきらめて他の無防備なBBSとかblogとかWikiを探すよう組むと思う。

(ReadMore...)

* リファラspam?

#Web #掲示板spam対策
 ApacheLogViewerを用いてアクセスログに目を通していたら、リファラspamらしきアクセスがあった。
 一見、人間がIE6を使って普通に閲覧したように見えるが、色々不自然。
  • そもそも、リファラのアドレスに当該ページへのリンクが無い
  • 画像を含めて、間髪入れずにほぼきっかり1秒の間隔をおいてアクセス
  • /dolls/2003_0810/へのアクセスのリファラはhttp://baku.homeunix.net/dolls/2004_0227/とあるが、そういうリンクは張ってない

 リファラにあるページはコスプレ衣装の販売サイトのナコルルの衣装。
fairyのサイトはリンクフリーです。 リンクは、http://fairy.cosnet.to/ にお願いします。
とあるのに、直接リンクを張られることを期待してリファラspamを行うとは、笑わせてくれる。

 リファラspamって、効果あるのかねぇ? 関連する単語による検索で引っかかるページに関連する内容のページのリファラにてspamってのは無差別よりも効果的とはいえ…。
 リファラを公に表示するWebページってHNSによる日記ぐらいしか思い浮かばない。…訂正。tDiaryによるblogもあるな。HNSよりもずっと多そうだ。
 あるいは、サイト管理者が「アクセス解析」からアクセスする事を期待しているのかな?だとすれば、わざわざ画像にもアクセスしていることの説明にもなる。

 リファラ周りのバグという線は、たぶん、無いと思う。Windows版IE6.0にそんなバグは無い…はず。
 まず、繰り返しになるけど、アクセス間隔がほぼ1秒おき(画像を含め、ファイルサイズ問わず)ってが猛烈に胡散臭い。また、ほぼ同じアクセスが2回繰り返されてたのは謎だが、人間のアクセスっぽくなく、やはり胡散臭い。(以下では片方しか挙げていない)

以下は当該ログ
(ReadMore...)

* iptables -A INPUT -s 66.232.96.0/19 -j DROP

#掲示板spam対策
deny from 66.232.96.0/19
http://baku.homeunix.net/WiKi/rnx/index.rb?1171520140.txt
にて、403を返すようにしても延々POSTし続けて、実にうざい。全て失敗するのでたいした害はないが、いいことは全くない。
…というわけで、TCP/IPレベルで接続を蹴ることにした。これでaccess.logも少々すっきりするだろう。

* deny from 64.124.85.0/24

#Web
 再び、BecomeBotに検索履歴をかき回されたので、.htaccessにて排除することにした。
robots.txt BecomeBot締め出し
http://baku.homeunix.net/WiKi/rnx/index.rb?1138996756.txt
にてのけ者にしたはずなのだが、BecomeJPBotは別物というわけか。え゛ー。
 ちなみに、robots.txtは最初にちゃんと読んでる。

 20秒に一度のアクセスだったり、UAの項に載っている http://www.become.co.jp/site_owners.htmlは「お客様が指定されたページは見つかりませんでした。」だったり、かなり感じ悪い。
(ちなみに、正しくは、http://www.become.co.jp/site_owner.html だそうだ。その辺の食い違いも感じ悪いぞ)
 また、他の多くのクローラの挙動と違ってリファラを送る点で、RandomeNoteの敵。

↓はた迷惑なアクセスの記録
(ReadMore...)

* deny from 66.232.96.0/19

#掲示板spam対策
 連投がウザイ(*)ので、丸ごと.htaccessでBBSから排除。

$ cat /var/log/apache/access.log | grep POST | grep 66.232 | grep '16/Feb' | cat -n | tail -1
139 66.232.113.98 - - [16/Feb/2007:22:49:40 +0900] "POST ttp://baku.homeuni
x.net/BBS/BBS.cgi HTTP/1.0" 403
 2月16日だけで139件かよ…。

 この範囲の人がこのサイトを見て更に掲示板に書き込みを行おうとする可能性は、無視してもいいだろう。個人向けプロバイダでもなさげな雰囲気だし(唯一逆引きできたアドレスのホスト名は"host.a1hosting4u.com")。

$ whois  66.232.118.177

Country:    US

NetRange:   66.232.96.0 - 66.232.127.255
CIDR:       66.232.96.0/19

*連投の例
(ReadMore...)