RTK5RX65N、未実装部品、SDカードの利用

次はLCDと宣言してたが、その前に未実装部品についてまとめておきたい。
また、SDカードを使う為にカードソケットを追加で取り付けた。

このボード、未実装の部品がある。
(1)SDカードソケット「SD/MMCカードソケット:101-00565-64(AMPHENOL COMMERCIAL PRODUCTS製)」
(2)SDカード電源用ゲートIC「ISL61861BIBZ」
(3)JOYスティック「SW3(JOYSTICK):SKQUDBE010(ALPS製)」
(4)イーサーネットコネクタ「RJ45_J3011G21DNL」
(5)イーサーネットPHY「LAN8720A」
※主に、上記部品で、SDカードソケット、JOYスティックは、部品が判らなかったので、
ルネサスに問い合わせをした。

もちろん、自分で部品を実装したら、保障は受けられなくなるのだが、機能があるのに使わな
いのは勿体無い。
一番困難なのは、表面実装部品で、DNFパッケージだが、これは、後々、手順などを整理し
たいと思う。(基板の実装屋さんなら簡単だと思う)

多少問題なのは、上記部品で、SDカードソケット、JOYスティックは、製造が終了してお
り、現在部品の入手が難しい。(入手できても割高になってしまう)
※代替部品を探したが、適当な物を探せなかった、また、日本では、やはり入手が困難だと思
われる。

特に、SDカードは、このような機器では必須のI/Oなので、マイクロSDカードを使って
代用させる方法を考えた。
ソケットは、秋月電子製、マイクロSDカードスロットDIP化キットを使う。
多少細かい、配線は比較的簡単ではあるが、強引な方法なのでお勧めできないのだが、他に良
い方法を思いつかない。
また、RTK5RX65Nでは、SDカードの電源をマイコンによって制御しているのだが、
電源制御につかっているIC(インターシル製)は、入手できるが割高なので、とりあえず
直接接続しておく事にする。

※自分は、「セメダイン SuperX」で、基板を接着した。
※強力両面テープでも良いかもしれない。

※マイクロSDには、ライトプロテクトが無いのでオープンにしてある。
※ほぼ、ストレートな結線なので配線は簡単だが、電源系は、熱が拡散するので、容量の大
きいハンダコテが必要と思う。

SDカード関係のソフトSPIでの定義

    // カード電源制御は使わない場合、「device::NULL_PORT」を指定する。
//  typedef device::PORT<device::PORT6, device::bitpos::B4> SDC_POWER;
    typedef device::NULL_PORT SDC_POWER;

    // Soft SDC 用 SPI 定義(SPI)
    typedef device::PORT<device::PORT2, device::bitpos::B2> MISO;  // DAT0
    typedef device::PORT<device::PORT2, device::bitpos::B0> MOSI;  // CMD
    typedef device::PORT<device::PORT2, device::bitpos::B1> SPCK;  // CLK

    typedef device::spi_io2<MISO, MOSI, SPCK> SPI;  // Soft SPI 定義

    typedef device::PORT<device::PORT1, device::bitpos::B7> SDC_SELECT;  // DAT3 カード選択信号
    typedef device::PORT<device::PORT2, device::bitpos::B5> SDC_DETECT;  // CD   カード検出

    typedef fatfs::mmc_io<SPI, SDC_SELECT, SDC_POWER, SDC_DETECT> MMC;   // ハードウェアー定義

    MMC     sdh_(spi_, 20000000);

-----
以前に自作のRX64Mボードで、SDHIのドライバーを実装しようと、色々やったが、
どうやっても動作せず、また、ルネサスのサンプルも無いようだったので、あきらめていた。
だが、よくよく調べると、RX64Mマイコンには、SDHIインターフェース内臓版と、そう
では無いバージョンがある事がわかった。
実験で使ったデバイス「R5F64MFCFDC」は、SDHIは「無し」なので動くハズは
無い。
※SDHIインターフェースのバージョンを取得するレジスターは読めて、それらしい値だった
ので、てっきりSDHIがあるものと思っていた。

RTK5R65NボードのRXマイコン「R5F565NEDDFB」は、SDHI「あり」の
デバイスなので、SDHIインターフェースを使ってSDカードのアクセスを行う事が出来る。
4ビットモードを製品として使う場合は、SDアソシエーションとのライセンス締結が必要なよ
うだが、自分がリリースしているテンプレートドライバー、フレームワークは無保証なので、こ
れらには関知しない。
※SDHIには、ライセンスが必要無い1ビットモードもある。

現在、SDHIドライバーは開発中であり、とりあえず、動作確認の為、SPIのソフトウェア
SPIドライバーを使って、動作を確認してある。
RTK5 SD カードアクセス、サンプル

RXマイコンの開発環境 gcc のビルドと不具合

現在カレントとして使っている gcc は「4.9.4」最新の gcc は「7.3.0」まで
進んでいる。
gcc は超巨大なプロジェクトなので、不具合も結構あるようで、ある特定の場合に正しく
動作しないなど、依存関係など色々な問題がある。
※時間が経つと、マイナーバージョンアップで解決されたりする。
※gcc とは分離されているツール binutils など、相性も関連している場合もある為、新
しい gcc を運用する場合、組み合わせも配慮する必要がある。
また、クロスコンパイラをビルドする gcc のバージョンも以前の環境とは異なっている
と思われる。
※過去のソースをビルドする場合、最新のMSYS2環境では、同じものがビルド出来な
い状況になっている場合も考えられる。
「4.9.4」で特に不具合は無いのだが、C++ の場合、新しいコンパイラでは、最適化がより
良くなっている場合もあるので、なるべくなら新しいバージョンを使いたいと思ったりも
する。
※C++17 に移行したい、最新の C++ コンパイラを使いたい。

以前に、6.2.0を別のPCでビルドして、RXプロジェクトをコンパイルしたら、
r_net_T4(ルネサスが提供する、ネット・スタック)を使ったプロジェクトが動作しない
(原因は調べて無いので不明)という現象が発生した。
※RXのプログラムは通常通り起動するが、PC側からRXマイコンに接続が出来ない状
態(ping など不通になる)、DHCP クライアントは動作していて、DHCP アドレスを取得
している・・・

奇妙なのは、自宅のマシンでビルドした「6.2.0」では、問題なく動作するバイナリ
ーが出来る。
この違いは「何だろうか」と考えた結果、binutils、newlib のバージョンが、自宅マシン
でビルドした時と、違う(新しいバージョンを使った)点に気がついた。

そこで、要因を見極めるべく、色々な組み合わせでビルドを行い試してみた。
※非常に時間がかかり、操作を間違うと台無しになるので慎重に作業する必要がある。

※必ず MSYS2 環境で作業を行う。

binutils-2.27
gcc-4.9.4
newlib-2.2.0

割と最近の MSYS2 環境を使い、この組み合わせで、動作するバイナリーが出来た。
※2018年3月くらい

とりあえず、これを安定版としておいて問題無いだろうと思う。
※ 4.9.4 なら、C++14 がとりあえず使えるし、最適化もそこそこ良いと思う。

gcc をビルドする場合、その gcc がリリースされたタイムスタンプを考慮して、それ
より少しだけ古い判の binutils、newlib を使うようにすれば問題無いようだ、つまり、
binutils や newlib だけ、最新の物を組み合わせると問題が起きる場合が多いと思われる。

次に5系の最終版である 5.5.0 をビルドしてみる。
この時、binutils、newlib のバージョンは変更しない。

binutils-2.27
gcc-5.5.0
newlib-2.2.0

これも、問題無い、正常動作するバイナリーが出来た。

次に、newlib だけ newlib-2.4.0 に上げてみる。

binutils-2.27
gcc-5.5.0
newlib-2.4.0

これも、問題なし。

じゃぁ今度は、gcc-6.4.0 で、他は同じでビルド。

binutils-2.27
gcc-6.4.0
newlib-2.4.0

これも正常!

binutils-2.28
gcc-6.4.0
newlib-2.4.0

大丈夫だ、問題無い!

binutils-2.30
gcc-6.4.0
newlib-2.4.0

これも問題無し!、とゆー事は、newlib のバージョンで何か起こるとゆー事か・・・

今回は、とりあえず割と新しい gcc を使える事が判ったので、ここまでにしたい。
また時間に余裕が出来たら、調査を続けたい。


この組み合わせはNG・・・

binutils-2.30
gcc-6.4.0
newlib-3.0.0

RTK5RX65Nにシリアル通信など追加

仕事が重なって、凄く忙しく、なかなか趣味のマイコン関係が進まない・・・

「RTK5RX65N」のLCD関係を進めているのだが、ドライバーテンプレートを
自分で作りたいので、デバッグ環境を何とかしたい、このボードには、「PMOD」と
呼ばれる汎用インターフェースがついていて、コネクタも最初から付いている、このコ
ネクタには、SCI9がアサインされているようなので、とりあえず、これでデバッグ
用のシリアル通信を繋げてみた。
最初は、USB経由のシリアル通信で行う事を考えたが、フラッシュの書き換えなどに
USBポートを優先したいのと、切り替えが面倒なので、あえて、別のポートを使った。

俺俺テンプレートドライバーでは、非常に簡潔にインターフェースを定義できるように
工夫してある。
ポートのマッピング、消費電力制御、割り込みなど、雑多な制御は、全てコンパイル時
に行う事が出来るようにしてあり、ポートのマッピングを別の経路に変更したい場合で
も可能なような仕組みを用意してある。
テンプレートの良い所は、内部で、プログラムによって、切り替えをしていないので、
その切り替え等によって生じるオーバーヘッドや余分なメモリを消費せず、最適化され
た状態になる点で、基本的に「#define」を使っていない(プロセッサシリーズの切り替
えでは使っている)ので、プログラムも読みやすくシンプルになっている。

    typedef utils::fixed_fifo<char, 512>  RECV_BUFF;
    typedef utils::fixed_fifo<char, 1024> SEND_BUFF;
    typedef device::sci_io<device::SCI9, RECV_BUFF, SEND_BUFF> SCI;
    SCI     sci_;

SCIの起動は、割り込みレベルと、ボーレートだけでOK!
※現在は、8ビット、1ストップビット固定になっているが、変える必要性を感じない。

    {  // SCI 設定
        static const uint8_t sci_level = 2;
        sci_.start(115200, sci_level);
    }

また、C言語の関数、「printf」が使えるように(C++では使わないが・・)stdio
経由の出力が可能な仕組みを用意してある。
printf では、POSIX の「write」関数に対して、文字列を出力する、この際のディスク
リプタ「stdout」は、通常固定になっているので、「syscalls.c」で実装してある、
「write」関数で、SCI の文字出力に繋げておけばOKとなる。
※「C」の関数から呼ぶ為、「extern "C"」にしてある。

extern "C" {

    void sci_putch(char ch)
    {
        sci_.putch(ch);
    }

    void sci_puts(const char* str)
    {
        sci_.puts(str);
    }

    char sci_getch(void)
    {
        return sci_.getch();
    }

    uint16_t sci_length()
    {
        return sci_.recv_length();
    }
}

※C++の「iostream」も使えるけど、このライブラリをインクルードすると、とてつも
なく多くのメモリを食うので、「common/format.hpp」を用意してあり、このテンプレート
クラスで、「boost::format.hpp」と同等な操作が出来る、このテンプレートは、他に依存
しないように利便性を追求してあり、IEEE754 浮動小数点フォーマットのバイナリーを
デコードできるよう独自の実装を行っている。
※安易に「sprintf」を呼ぶような事をしていない。

gcc 「__attribute__((weak));」は、外部で定義されていれば、その関数を呼ぶが、定義
が無い場合、そのソースに置かれた関数を呼ぶ仕組みで、POSIX 関係の関数を外部で定義
してオーバーライトする事が出来るようになっている、「syscalls.c」にも同様な仕組み
を用意してあり、シリアルの入出力と標準入出力を繋げる仕組みに使っている。

void sci_putch(char ch) __attribute__((weak));
void sci_putch(char ch) { }
char sci_getch(void) __attribute__((weak));
char sci_getch(void) { return 0; }

今回はここまでー、次は頑張ってLCDを動かす・・・

RTK5RX65Nの最初の一歩

溜まった仕事が、ひと段落したので、少しだけ、RX65N搭載のキットを触ってみた。

このボードの良いところは、前回説明したので、とりあえず、俺俺 C++ フレームワーク
を使って、簡単な動作検証と、開発環境を試してみた。

まず、ボード上には、「E2 Lite」が内蔵されている為、プログラムを転送するのに不便
は無い、ボード上のDIP-SWを切り替える事で、「E2 Lite」を有効にして、ルネサ
スのフラッシュプログラマーで書き込み等が出来る。

とりあえず、上記写真のように「SW1-1」を「ON」にして、USBを接続すると、
「Renesas Flash Programmer」から認識でき、接続する事が出来る。
・「新しいプロジェクトの作成」を選ぶ
・「プロジェクト名、作成場所」などを設定する
・「ツール」で「E2 Lite」を選ぶ
・「接続」ボタンを押すと、「RTK5RX65N」に接続する事が出来る。

一応、出荷時に書き込まれているデモプログラムを読み出して、保存しておく。

次に、LED点滅プログラムを実装してみる。

#include "common/renesas.hpp"

namespace {
    typedef device::system_io<12000000> SYSTEM_IO;
    typedef device::PORT<device::port7, device::bitpos::b0> LED;
}

int main(int argc, char** argv);

int main(int argc, char** argv)
{
    SYSTEM_IO::setup_system_clock();

    LED::DIR = 1;
    while(1) {
        utils::delay::milli_second(250);
        LED::P = 0;
        utils::delay::milli_second(250);
        LED::P = 1;
    }
}

※上記プログラムは「hirakuni45」の RX マイコン用 C++ フレームワーク上で、gcc 環境で
コンパイル出来る。
※開発環境の構築や、その他の情報は、GitHub RX に詳細な説明があるので参考にしていただきたい。
※RTK5_first_sample

RX65Nは、120MHz動作可能ではあるが、RX64Mなどのように、120MHzで
はフルスピードで動作しないようで、メモリーウェイトを入れる必要があるようだ。
ただ、ウェイトを入れた状態でも、おおよそ、10%減の速度では動作しているようなので、
実用上は問題無いと思える。
※「system_io」クラスは、工事中ではあるが、12MHzのクリスタル、120MHzの速度
で使う場合は問題無い。
※RX65N用にコンパイルすると、自動でメモリーウェイトを入れるようになっている。
※LEDは、ポート7のビット0にある。

RX関係のコードを github からチェックアウトしたら、「RTK5_firest_sample」へ移動して、

make

とすれば、実行ファイル(.mot)が出来るので、「Renesas Flash Programmer」を使って、転送
すれば、動作する。
※転送後、リセットを自動で解除するには、「接続設定」、「ツール詳細」、「モード端子設定」
で、「切断時のモード端子」で、「リセット端子をHighレベル」を選択しておく必要がある。

今回はここまで、次回はいよいよLCDの設定や描画を実験してみたい。

RL78、gccリンカースクリプトの改造

今年の初めから、大幅に遅延していたプロジェクトに係りきりになり、凄く忙しく、
立川から、兵庫の三田(さんだ)に毎週のように通い、最近ようやく、見通しがつき、
他の作業もようやく進みだした。

その中で、RL78を使った機器のプログラムを実装していたのだけど、その過程で
リンカースクリプトを改造していたので、覚書程度に紹介しておく。

RL78は、非常に沢山の種類があるのだけど、1つのグループでも、リソースが異
なるデバイスが沢山ある。
プログラム・フラッシュ・メモリーの容量が、異なるのは良くあるのだが、データ・
フラッシュの容量も色々ある。
以前は、Makefile から、容量を与えていたが、デバイス固有のリンカースクリプトに
記述した方がシンプルでスッキリするなぁーと思っていた。
ただ、リンカースクリプトは、イマイチ、記述方法が判らない部分もあり、敬遠してい
たのだが、色々実験して、ようやく方法を理解した。

多分、他に、より良い方法があるのかもしれないが、とりあえず、以下の方法で解決し
た。
まず、「メモリー」で、データフラッシュの領域を記述する。

MEMORY {
    VEC (r)   : ORIGIN = 0x00000, LENGTH = 0x00002
    IVEC (r)  : ORIGIN = 0x00004, LENGTH = 0x0007C
    OPT (r)   : ORIGIN = 0x000C0, LENGTH = 0x00004
    SEC_ID (r): ORIGIN = 0x000C4, LENGTH = 0x0000A
    ROM (r)   : ORIGIN = 0x000D8, LENGTH = 0x0FF28
    RAM (w)   : ORIGIN = 0xFDF00, LENGTH = 0x01F20
    DATAF (W) : ORIGIN = 0xF1000, LENGTH = 0x02000
    STACK (w) : ORIGIN = 0xFFE20, LENGTH = 0x00002
}

※「DATAF」が、データフラッシュの、アドレスと領域の設定。

続いて、rdata セクション内に、データフラッシュのサイズを置いて、アクセスできるよ
うに、シンボルを宣言しておく。

    PROVIDE (__dataflashsize = .);
    SHORT(LENGTH(DATAF));

これだけだ・・
新しいのは、「LENGTH()」で、「DATAF」の「LENGTH」を参照している。
領域は、「uint16_t」サイズで置いてある。
※「uint32_t」サイズで欲しい場合は、「LONG()」を使う。

「C、C++」からは、

extern const uint16_t _dataflashsize;


で参照できる。
ただ、リンクしないと参照出来ないので、コンパイル時には参照はできない変数となって
いるので、プログラム起動後に参照するような構成にしなければならない。

中古住宅(リホーム:レバーハンドルの付け替え)

最近、仕事が詰まっていて、リホーム関係が全く進んでいない・・・
※寒い事もあるのだけどー

今週末(既に週は開けたけど・・)昼間は凄く暖かく、今年の初めに注文して、
新潟の大雪が落ち着いた頃に到着した、リホーム関係の品物(ドアのレバーハン
ドル)を取り付けてみた。

ドアハンドルは、特に壊れている訳ではないけど、長年使われてきて、塗装が剥
がれていたりする。
それと、ハンドルの形状が、好きでは無い、角張ったのが好みでは無い。
川口技研製と思われる(生産終了品?)

そこで、去年くらいから、色々物色していたのだけど、「株式会社シロクマ」製に
好みのタイプがあった、しかし、少し値段が高いのと、バックセットが50mmと
なっていた。

※「バックセット」とは、ハンドルから、ドアの端までの距離で、以前の物は60
mmとなっている。

でも、10mmくらいの違いなら、どうとでもなると思い、ネットで安い所を探し
て買ってみたのだった。(自分の買ったタイプは3200円くらい、定価は5750円)
ActiveKusakabe WebShop

まず、以前の物を外す:
ネジ留めされているだけなので、簡単に外れる、ドアロックは「チューブラ空錠」
と言い、メーカーによって微妙に機構やサイズが違うのだが、大抵は、少しの加工
で、取り付けできるようだ。
シロクマのレバーハンドルに付属していた空錠(LLC-15)は、川口技研のと
は少し形状が異なり(少し大きい)そのままでは、取り付けできない物だった。
※但し、取り付けのネジ位置は、全く同一で、穴を広げるだけでOKだった。
ノミで、穴を広げて、空錠が入るようにした。

続いて、ルーターを使って、ハンドルの芯棒が入る場所を広げた、10mmの違い
だが、元の穴が15mmくらいあるので、5mmくらい広げればOKだった。

そして、「取り付け座」をネジ留めする穴を開けて、取り付ける。
シロクマ製のハンドルは、取り付け座を、表、裏で貫通ネジで挟み、固定するタイ
プなので、非常に頑丈に固定できる。
※ただ、二箇所のうち、一つは、バックセットの貫通穴を使っているが、挟みこむ
タイプなので、ずれる事なく取り付け出来た。

Before:

After:

以前のレバーハンドルを止めていたネジ穴が目立つが、これは、パテ埋めして、色
を塗れば目立たないと思う。

-----
このレバーハンドル、凄く気に入ったので、今後、全てのハンドルを付け替える予
定だけど、トイレ用は、少し考えないと・・・
シロクマ製のは、「鍵」付タイプは値段が倍くらいになるし、川口技研製に比べて
加工が大変そうだ・・・

「RX65N Envision Kit」の紹介

Arduino や ARM には、よそ見をしないで、ルネサス製マイコンのみを扱ってきたが、
最近、ようやく、面白そうなガジェットが出てきたー

ARM界隈では、コスト度外視、メーカーでなければ出来ないような評価ボードを色々
出していて、そんなのが出る度に、ARMerたちがそこに注力するとゆー構図があった。

自分は日本人なので、「日本製マイコン使え!」と言ってはいたが、中々胸を張って、
「これはイイですよと言えない」状況が続いていた。

そんな折、マルツさんのメールニュースで、「Renesas Synergy Target Board Kit」
のアナウンスがあり、ARMベースのルネサスマイコンで、興味は無いのだけど、
リンクを観に行った。
そこで、見つけてしまい、思わず購入してした。
※自分の好きなRXマイコン、120MHz動作、液晶付、など目一杯盛り込んでいて
5000円!、しかも、何かガジェットを作った場合に、コンパクトにまとめられる
ように配慮された基板サイズ。

このボード2017年11月頃に発表されていたボードのようだが、丁度仕事が忙しく
情報を漏らしていた。

このボード、海外のソフトウェアーベンダーが音頭を取り、製作したようだが、この価格
でこの内容は、コストパフォーマンスが良すぎる。
しかも、インサーネットやSDカードを後から付けられるようにもなっているし、かなり
練られた設計となっていて好感が持てる。

ボードの特徴など気がついた部分を列挙する。
・RX65Nマイコン120MHz動作
・2MBの内臓フラッシュ
・256KB+320KBのRAM
※このメモリー空間は別なので、液晶のフレームバッファで、320KBは利用不可と思う。
・インサーネット対応「N」バージョン
※物理層PHYは乗っていないが、後から乗せられるようにパターンがある!
※25MHzのクリスタルは乗っているので、PHY(LAN8720A)、パルストランス
付コネクタ(表面実装タイプ)を取り付けるだけと思う。
・エミュレーター(簡易バージョン)内蔵なので、フラッシュの書き換えや開発が容易。
・480×272ピクセル、タッチ機能付液晶付
・RX65N内に、液晶の制御と、描画エンジンなど内臓(パフォーマンスは現在不明)
・拡張コネクターや、未使用端子の取り出しランドなど多数。
・SDカード接続用パターン有り
・マイコン用3.3V電源用に、同期整流式のDC/DCコンバーター
※5Vから降圧で動作し、効率が高い(安易なシリーズレギュレーターでは無いのが凄い!)
※液晶用バックライトもDC/DCコンバーターを内臓
・USBコネクター装備(RXマイコン用と、エミュレーター用)
・モード切替用、DIPスイッチ4ビット分(1ビットはユーザー利用可能)

今は、仕事が忙しいのだが、これをベースに色々な物を作りたいと思う。

AD9833(周波数シンセサイザ)のテスト

マイコンでA/Dコンバーターを使った、ストレージオシロぽぃ物を作る過程で、
機能検査を行う必要があり、手頃な信号発生器を探していた。

最近は良いデバイスがあるもので、ワンチップで、最大12.5MHzまで出力
可能なDDSモジュールが安く売られていたので、早速注文した。

※基準発信器付きで小さいモジュールとなっている。
※中華、船便なので、それなりの時間がかかるが格安。

早速、AD9833のライブラリをネットから取得して、自前のシステムに合うよ
うに、テンプレートクラスとして整形し直した。

このデバイスは、SPI通信で内部設定を行うので、マイコンで制御する必要があ
る。
そこで、とりあえずR8C/M120ANを使ってテストしてみた。
※このIC、3.3Vでも5VでもOKのようだが、とりあえず3.3Vで動作確
認。(モジュールに付いてるOSCはArduino系が主なので5Vと思えるが、
ちょっと調べた限りでは、どの電圧で動作するのか記述が見つからない・・)

サンプルは1KHzのサイン波を出力している。(起動するとデフォで1KHzの
をサイン波を出力する)

実用的に使うには、出力にアンプを追加したり、レンジ切り替え、周波数切り替え、
高性能なエイリアシング除去フィルターなど工夫が必要だと思うが、とりあえず、
機能を実験するだけのシンプルな構造になっている。

ソースコードは AD9833 Sample に上げてある。
※AD9833.hpp テンプレートは chip ディレクトリーにある。
※このデバイステンプレートは、他のマイコンでも修正無しで使えるはずだ。

-----
シリアルポートと57600(8ビット、1ストップ)で接続する事で、対話形式
で、周波数、波形の変更ができるようにした。

freq 2000     ---> 2000Hz
form tri      ---> 三角波
help          ---> ヘルプ

BOSCH(ボッシュ) 高圧洗浄機 AQT33-11 ホースジョイントの改造

以前に、ボッシュの高圧洗浄機を買ったのだけど、賃貸の水道は勝手に使えないと判り、
放置してあったが、一軒家に引っ越したので、水道を自由に使えるようになった。

ただ、この高圧洗浄機のホースジョイントは、ニップルが特殊な形状になっており、専
用の物で一般的な「タカギ」製と互換性が無い、それでは、不便なので、改造してみた。

良く調べるとニップルの先端が、数ミリ余分に出っ張っているだけで、これを削ると、
タカギのジョイントが使えると考えた。


※赤いジョイントが、ボッシュ専用、透明(ポリカーボネイト)なのが、高圧洗浄機の
「ニップル」。
※先端を切断、削った後。

そこで、先端を削ってみたら、無事フィットするようになった、これで、タカギ製の、
色々なアタッチメントも使える~

中古住宅(リホーム:電灯スイッチ交換)

実際は、中古住宅購入後、真っ先にDIYした事だが・・
引越しと仕事が重なってブログを書く余裕が無かった。

パナソニックは、家電が主力なのかもしれないが、細かい部品も非常に優れた物が
多い。
それを感じたのは、何十年も前の小学生の頃だった。
親父に、コンセントが壊れたのでお使いを頼まれて、たまたま、パナソニックのコ
ンセント(部品)を買って帰ったのだが、凄く怒られてしまった、値段も少し高か
ったと思う。
※以前の物と形や大きさが違う為だった(同じものを買ってきて欲しかったと思う)
ところが、親父が、コードをネジで止めて、修繕が終わった頃にはご機嫌になって
いて、さっき怒った事を謝っていた。
なんでも、内部の細かい「出来」や「品質」、「設計」に関心した為だった。
※直ぐに、以前の物より格段に良い物だと感じたと思う。
それ以来、パナソニックの電気部品には、特別で最上のプライドを感じている。
今でも、細かい改造、改修が続けられており、より良い物に洗練され続けている。


中古物件とはいえ、スイッチが壊れていた訳ではないが、前からこのスイッチが気に
なっていたので、早速交換した。

これは、パナソニック製のほたるスイッチ「コスモワイド21」シリーズの物で、
多分、世界中探しても、この値段でこれ以上の物は存在しないとまで言えるくらいの
優れものと思っている。

※アマゾンでは、一般的な「ニ路」より「三路」の方が安いので、交換するなら「
三路」を買って、二本だけ繋げば良いと思う。

「ほたるスイッチ」は、「消灯」時にスイッチの場所を照らす淡い光が灯るもので、
以前は「ネオン管」が使われていたようだが、最近はLEDになっている。
消灯時に光らせる為、照明機器に微弱な電流を流す必要があるので、電気代が微妙に
かかるのだけど、利便性を考えると納得できる、また、スイッチは極限まで大きくて
押しやすく、とても使い勝手が良い。
また、沢山のバリエーションがあり、それらを組み合わせて、自由にカスタムが出来
る。
※当然「ほたる無し」のバリエーションもある。


4路スイッチ:
自分は工業高校の電気課を出ており、「電気工事士」の国家試験を受けて合格してい
るのだが、既に何十年も前で、又、実際にプロとして働いた経験は無い。

1つの電灯を1階、2階の二つのスイッチでON/OFFする方法は知っていた。
ところが、この中古住宅には、中二階があり、3つのスイッチで、1つの電灯を
ON/OFFしている。
どうやったらそんな事が出来るだろうと、考えたが、良い方法を思いつかない。
ネットで調べると、どうやら「4路」スイッチなるものがあるらしい。
結線図を見ると、「あーナルホド」と関心してしまったwww。
当然「コスモワイド21」にも「4路」で「ホタル」がある、ホームセンターで、
スイッチだけ購入して、入れ替えた。




交換は簡単なのだが、古いスイッチを外す際、コードのリリースボタンが固着してい
て、押しても感触が無くまったく外れない個体がいくつかあり、電線を切断して対応
した。
ビンの蓋を利用して、スイッチ金具を壁に当ててリリースボタンを押すと、力が入り
やりやすい。

Just another WordPress site