ヒューズ(T6.3AH250Vセラミック)が飛んでいましたが、
こういう場合たいていFETも飛んでいるので1次側を追おうと思ったらランプ基板も1次側。
切り分けのため電源基板(APS-N802)だけで通電したらやっぱりヒューズ飛ぶので
FETをテスタで当たったらIPA60R199CPの1つがSD間短絡。
同じ品を購入すると本体購入価格を上回る(笑)のでTK20A60Uに2つとも交換、完了。
しかしこれ、FETとダイオードブリッジに修理跡があるんだよね。
FET並列で使ってるし、待機電力減っただけの新機種が出てるし、
まあいわゆる「設計ミス」ですな。多少オン抵抗が小さいのに交換したから長持ちしてくれるといいな。
何気なく裏面見てるとWinCEのライセンスシールが。 そういえばこの機種、Vistaのネットワークプロジェクタに対応してるんですが、 これRDPプロトコルなので、事実上WinCEマシンでないと実装できないんですよね。 USBとLANとWifiが載った別基板があり、ここにTIのDAVINCIが載ってます。
ネットワーク経由で制御できるのですが普段使いにはやっぱりリモコン、 でも別買いすると本体購入価(略)なので、WinLIRC+MCEで6万通り試すコード流したら運よく3分で判明。 学習リモコンに登録できずにubuntu+lirc+mceusb使ったりしてみたところ、RM-VL501は変調38KHzでないとだめみたい。
begin remote name RICOH_PJ #WX3230N,Toshiba TLP-WX200 flags REVERSE|SPACE_ENC|CONST_LENGTH frequency 38000 header 9000 4500 one 563 1687 zero 563 562 ptrail 563 gap 108000 repeat 9000 2250 pre_data_bits 16 pre_data 0xEB80 bits 16 begin codes #CODE2 AVMUTE 0xEE11 #5EA1 POWER 0xED12 #5DA2 ENTER 0xEC13 #5CA3 INPUT 0xEB14 #5BA4 AUTO 0xEA15 #45BA MENU 0xE41B #5AA5 RETURN 0xE21D #59A6 UP 0xBF40 #57A8 DOWN 0xBE41 #56A9 LEFT 0xBD42 #55AA RIGHT 0xBC43 #54AB RESIZE+ 0xBB44 #53AC FREEZE 0xBA45 #52AD RESIZE- 0xB946 #51AE NETWORK 0x9C63 #44BB 0 0xFF00 #CF30 1_NCE 0xA55A #4EB1 2_SIZE 0x916E #4BB4 3_GUIDE 0xFC03 #CC33 4 0xFB04 #CB34 5 0xFA05 #CA35 6 0xF906 #C936 7 0xF807 #C837 8 0xF708 #C738 9 0xF609 #C639 CLEAR 0xB44B #C43B end codes end remote
故障してなくても両側網→後面→前面(フォーカス側)→上面の順に分解。
網は細いマイナスドライバーで上部ツメ2か所を押す。
前面は、内側でも金属板経由で止まってるので銀ネジで金属板ごとはずす。
上面は金属同士を止めているネジをはずす。あとは上部ガラスはずしてそこから主鏡掃除。
なんていうか非常にコンパクトで一見華奢にもかかわらず最低限の部材で緻密に強度計算されており、
さすが東芝の系譜+リコーのカメラ技術というか。
ゲームで必要時に床置きして壁投影ってかなりいいのですが、
ここまで超短焦点だと小さなごみでも影がかなり長く出ますし、
壁って意外と平面出てないので特に上辺が歪みます。
実用上はWX4240Nぐらいが使いやすいです。
ただ、どちらも教室向けなのに取っ手がないのがダメ。
ケースで十分との判断かもしれんが、セットアップの時間が長くなるんだよ。
東芝系はPOWER+MUTE+DOWNに電源コードでランプリセットです。POWER+RETURN+MENU等の機種もあります。
begin remote name NEC_PROJECTOR #PA803U,P350W,Ricoh WX5350N flags REVERSE|SPACE_ENC|CONST_LENGTH frequency 38000 header 9000 4500 one 563 1687 zero 563 562 ptrail 563 gap 108000 repeat 9000 2250 pre_data_bits 16 pre_data 0xe918 bits 16 post_data_bits 16 post_data 0xff00 #REMOTE ID=00 begin codes PWON 0xf708 PWOFF 0xeb14 AUTO 0xf906 MENU 0xb946 UP 0x47b8 DOWN 0x43bc LEFT 0x41be RIGHT 0x45ba ENTER 0xe817 EXIT 0xda25 HELP 0xb14e INFO 0xb04f SOURCE 0xb24d TESTPTN 0xee11 VGA1 0xfb04 VGA2 0xfa05 VGA3 0xaa55 VIDEO 0xfc03 SVIDEO 0x39c6 HDMI 0xab54 HDMI1 0xe718 HDMI2 0xe619 DP 0xe51a COMPU 0xe41b HDBASET 0xe31c VIEWER 0xd827 NETWORK 0xa956 USB 0xad52 CLEAR 0xbd42 PICTURE 0xf20d ASPECT 0xef10 ECO 0xe916 PAGE+ 0xd52a PAGE- 0xd42b AVMUTE 0xb847 VOL+ 0xb748 VOL- 0xb649 FREEZE 0xb34c DZOOM+ 0x7689 DZOOM- 0x758a ZOOM+ 0xf609 ZOOM- 0xf50a FOCUS+ 0xf40b FOCUS- 0xf30c KEYSTON 0x7f80 FOCUS_Z 0x5fa0 LENSSFT 0x5ea1 #ONSCREENMUTE 0x7c83 end codes end remote
(autoexec.py) execfile('/media/DATA/start.py') (start.py) import xbmc xbmc.executebuiltin('PlayMedia("/media/DATA/Video/","isdir")') #xbmc.executebuiltin('PlayMedia("/media/DATA/Video/list.m3u")') #BOM無しUTF8で漢字ファイル名OK xbmc.executebuiltin('xbmc.PlayerControl(repeatall)')あとはPi Zeroに刺して適当にセットアップ後設定→File managerでautoexec.pyをProfile dirにコピーすれば 自動再生マシンのできあがり。 日本語ファイル名表示はSkin-FontsをArial basedに指定、 動画切替時にシークバーやビジーリングを出したくないなら標準スキン書換。
Pi ZeroついででHDMI Lag Tester
簡易版
をインストールして測定。
1080p60、eco、グラフィック、SweetVisionオフ、壁紙オフで0.5+1+0.4=1.9フレームはゲーム可ですが、
3CCDなのに明らかに赤が速い。NV1301はDLP版と共通なのでそのあたりの都合?
EIR | Decoded | 内容 |
---|---|---|
INDEX e[i]=d[i]^0x4D-d[i-1] | ||
00 4F | 00 02 | BUTTON COUNT (encode from 2nd byte) |
4B 4A | 00 07 | BUTTON1 offset |
46 08 | 00 45 | BUTTON2 offset |
08 23 | 00 6E | STRING offset |
F1 | 12 | const |
BUTTON1 (NEC format example) | ||
0E | 0E | 0x4E-length |
4C 4E 15 | 4C 4E 15 | const? |
3C | 3C | length |
10 | 01 | const? (encode from here) |
4A 7F | 06 C8 | 66MHz/carrier(38.0kHz) |
85 4C | 00 01 | const? |
6E | 22 | #of code pulses(incl.start stop pulse) |
2D | 02 | #of repeat pulses(incl.start stop pulse) |
08 | 47 | 4=Minimum Repeat Count,7=#of times |
06 5B | 00 16 | t0=22*carrier=0.579ms |
37 0D | 00 40 | t1=64*carrier=1.683ms |
0D 1B | 00 56 | t2=86*carrier=2.262ms |
F7 E6 | 00 AB | t3=171*carrier=4.498ms |
A1 17 | 01 55 | t4=341*carrier=8.969ms |
F6 54 | 06 17 | t5=1559*carrier=41.0ms |
2C FC | 0E 47 | t6=3655*carrier=96.1ms |
C7 | 43 | code start mark=t4,code start space=t3 |
0A 4D 4D 4D 4D 4D 4D 4C 4B 4B 4C 4C 4C 4C 4B 4B 4C 4C 4C 4D 4C 4C 4D 4D 4C 4C 4C 4B 4C 4C 4B 4B |
00 00 00 00 00 00 00 01 01 01 00 01 00 01 01 01 00 01 00 00 01 00 00 00 01 00 01 01 00 01 01 01 |
code data (mark time,space time in one byte) |
47 | 05 | code stop mark=t0,stop to next mark=t5 |
0A | 42 | repeat mark=t4,repeat space=t2 |
09 | 06 | repeat stop mark=t0,stop to next mark=t6 |
73 | 34 | const |
BUTTON2 (SONY format example) | ||
23 | 23 | 0x4E-length |
4C 4E 15 | 4C 4E 15 | const? |
27 | 27 | length |
25 | 01 | const? (encode from here) |
4A 2E | 06 79 | 66MHz/carrier(39.8kHz) |
D4 4C | 00 01 | const? |
4C | 00 | no code pulses;repeat pulse while pressing |
58 | 15 | #of repeat pulses |
F4 | 44 | 4=Minimum Repeat Count,4=#of times |
09 54 | 00 19 | t0=25*carrier=0.628ms |
34 63 | 00 2E | t1=46*carrier=1.155ms |
1F 13 | 00 5E | t2=94*carrier=2.360ms(not used) |
EE 92 | 01 DE | t3=478*carrier=12.00ms |
8F | 20 | start mark=t2,start space=t0 |
3D 3D 5D 3D 5D 3D 4D 4D 5D 3D 5D 4D 3D 5D 3D 4D 5D 4D 4D 4E |
10 00 10 00 10 00 00 00 10 00 10 10 00 10 00 00 10 10 10 13 |
code data last mark to next start mark=t3 (no individual stop mark for sony format) |
66 | 34 | const |
STRING TABLE 1st d[i-1] is offset LSB =6E | ||
DF 4B | 00 06 | BUTTON1 NAME offset |
47 46 | 00 0B | BUTTON2 NAME offset |
42 5D | 00 10 | MISC DATA offset |
BUTTON1 NAME 1st d[i-1] is offset LSB =06 (if NAME="", default name for machine-type/key-number is used) | ||
14 BE 21 48 4D 4A D3 | 57 58 34 31 33 30 4E | WX4130N |
BUTTON2 NAME 1st d[i-1] is offset LSB =0B | ||
04 C7 D3 06 EC 24 43 | 42 44 5A 2D 54 35 35 | BDZ-T55 |
MISC DATA 1st d[i-1] is offset LSB =10 | ||
3B AC | 06 FF | length,type ??? |
4E 4D 4D 4D | 00 00 00 00 | unknown, sometimes 00 00 00 01 |
45 BD | 08 88 | length,type Larner |
F4 32 51 47 2F 4F | 31 2E 32 34 2E 30 | 1.24.0 |
1B C4 | 06 87 | length,type File Format |
F5 32 4F 4D | 31 2E 30 30 | 1.00 |
21 AC | 1C 85 | length,type Date |
94 E4 B3 FC 41 EC F7 B5 06 5C 4B 30 41 5F 4B 4F 4B 31 41 5D 4B 41 3E 46 E7 B0 |
54 75 65 2C 20 41 75 67 20 31 31 2C 20 32 30 32 30 2C 20 30 36 3A 35 36 50 4D |
Tue, Aug 11, 2020, 06:56PM |
01 C6 | 03 84 | length,type Version |
F8 | 31 | 1 |
19 C7 | 07 83 | length,type Type |
7F CA B1 C0 DA | 4F 54 48 45 52 | OTHER |
F6 C7 | 05 81 | length,type Manufacturer |
8B CE CC | 41 42 43 | ABC |
05 CA | 05 82 | length,type Model |
87 C4 C6 | 44 45 46 | DEF |
02 C6 | 05 86 | length,type Comments |
84 BE BC | 47 48 49 | GHI |
FE BA | 0A 89 | length,type File Name |
7F BF D6 2A 32 FA BF D6 | 45 49 52 31 2E 65 69 72 | EIR1.eir |
DB 1B | 00 56 | length=0,const |
var key= new System.Security.Cryptography.Rfc2898DeriveBytes(System.Text.Encoding.ASCII.GetBytes(pin) ,System.Text.Encoding.ASCII.GetBytes(salt),1331).GetBytes(16); var aes= new System.Security.Cryptography.AesManaged(); aes.KeySize= 128; aes.Mode= System.Security.Cryptography.CipherMode.CBC; aes.Padding= System.Security.Cryptography.PaddingMode.PKCS7; var blen= password.Length/2; var user_pw= System.Text.Encoding.ASCII.GetString(aes.CreateDecryptor(key, new byte[16]).TransformFinalBlock( Enumerable.Range(0,blen).Select(x=>Convert.ToByte(password.Substring(x*2,2),16)).ToArray(), 0, blen));32文字のuser_pwが得られるので、 /v2/remote/confirm_connectionにdigest認証(user_id,user_pw)でPOSTすれば登録されますが、 普通に本体設定したAppコネクトのユーザ名とパスワードでもいいです。
{"status":0,"command":[ {"http_method":"POST","resource":"\/v2\/remote\/browser\/url","params":["force_startup","mode","power_on","url"]}, {"http_method":"GET","resource":"\/v2\/remote\/text_box","params":[]}, {"http_method":"POST","resource":"\/v2\/remote\/text_box","params":["text"]}, {"http_method":"POST","resource":"\/v2\/public\/cancel_connection","params":["access_code","current_time","user_id"]}, {"http_method":"POST","resource":"\/v2\/public\/request_connection","params":["access_code","current_time","user_id"]}, {"http_method":"POST","resource":"\/v2\/remote\/confirm_connection","params":[]}, {"http_method":"GET","resource":"\/public\/feature","params":[]}, {"http_method":"POST","resource":"\/v2\/remote\/search\/program","params":[ "broadcast_type","channel","date_from","date_to","genre","keyword","mark","pay_program","rec_storage_id","target"]}, {"http_method":"GET","resource":"\/v2\/remote\/pvr\/folders\/list","params":[]}, {"http_method":"GET","resource":"\/public\/support","params":["http_method","params","resource"]}, {"http_method":"GET","resource":"\/v2\/remote\/support","params":[]}, {"http_method":"POST","resource":"\/v2\/remote\/status\/channel","params":["channel","power_on"]}, {"http_method":"GET","resource":"\/v2\/remote\/status\/foreground_dtvapp","params":[]}, {"http_method":"POST","resource":"\/v2\/remote\/status\/foreground_dtvapp","params":["foreground_dtvapp","option"]}, {"http_method":"GET","resource":"\/v2\/remote\/status\/mute","params":[]}, {"http_method":"GET","resource":"\/v2\/remote\/settings\/channel_list","params":[]}, {"http_method":"GET","resource":"\/v2\/remote\/settings\/timeshift","params":[]}, {"http_method":"GET","resource":"\/v2\/remote\/timeshift\/list\/:channel_code","params":[ "base","count","description","duration","start"]}, {"http_method":"POST","resource":"\/v2\/remote\/timeshift\/list\/:channel_code","params":[ "cloud_user_id","duration","play","start_position"]}, {"http_method":"GET","resource":"\/v2\/remote\/timeshift\/oldest_time","params":[]}, {"http_method":"GET","resource":"\/v2\/remote\/pvr\/storages\/list","params":[]}, {"http_method":"GET","resource":"\/v2\/remote\/pvr\/play\/list\/:rec_storage_id\/:rec_content_id","params":[]}, {"http_method":"POST","resource":"\/v2\/remote\/pvr\/play\/list\/:rec_storage_id\/:rec_content_id","params":[ "cloud_user_id","duration","play","start_position"]}, {"http_method":"GET","resource":"\/v2\/remote\/epg\/:channel_code","params":["time"]}, {"http_method":"GET","resource":"\/v2\/remote\/pvr\/reserves\/list","params":[]}, {"http_method":"POST","resource":"\/v2\/remote\/pvr\/reserves\/list\/:rsv_id","params":[ "cloud_user_id","duration_series","follow","indexing","keyword_series","protect","rec_folder_id","rec_storage_id", "repeat_series","start_time_series","title_series"]}, {"http_method":"DELETE","resource":"\/v2\/remote\/pvr\/reserves\/list\/:rsv_id","params":["cloud_user_id"]}, {"http_method":"POST","resource":"\/v2\/remote\/pvr\/reserves\/new","params":[ "channel","cloud_user_id","duration","duration_series","epg_content_id","follow","indexing","keyword_series", "parental_pin","protect","rec_folder_id","rec_storage_id","repeat","repeat_series","series_rec","start_time", "start_time_series","title_series"]}, {"http_method":"GET","resource":"\/v2\/remote\/pvr\/reserves\/options\/names","params":["rec_mode"]}, {"http_method":"GET","resource":"\/v2\/remote\/settings\/cloud\/device_id\/pdid","params":[]}, {"http_method":"GET","resource":"\/v2\/remote\/settings\/cloud\/device_id\/sdid","params":[]}, {"http_method":"GET","resource":"\/v2\/remote\/play\/status","params":[]}, {"http_method":"GET","resource":"\/v2\/remote\/play\/status\/playing_action_info","params":[]}, {"http_method":"POST","resource":"\/v2\/remote\/play\/status\/playing_time","params":["milli_position","position"]}, {"http_method":"GET","resource":"\/v2\/remote\/csp\/direct_play_list","params":[]}, {"http_method":"POST","resource":"\/v2\/remote\/csp\/list\/:csp_name","params":[ "cloud_user_id","csp_content_id","csp_content_opt","csp_content_type"]}, {"http_method":"GET","resource":"\/v2\/remote\/reminders\/list","params":[]}, {"http_method":"DELETE","resource":"\/v2\/remote\/reminders\/list\/:rem_id","params":["cloud_user_id"]}, {"http_method":"POST","resource":"\/v2\/remote\/reminders\/new","params":[ "channel","cloud_user_id","duration","epg_content_id","repeat","start_time"]} ]}(jsonはスラッシュエスケープするんだ・・・これJSONPで</script>が登場しないようにするためらしいなるほどのう。CORSプレフライト万歳。)