hira のすべての投稿

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路」で「ホタル」がある、ホームセンターで、
スイッチだけ購入して、入れ替えた。




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

中古住宅(リホーム:混合水栓の交換)

「混合水栓」の前に、トイレの「ボールタップ」を交換(結局1階、2階、両方)
した。
これが結構な値段で、1個4950円、痛い出費だったが、以前の物は、かなりや
れてて、リークはするし、手を洗うとこから水が出ないとか、もう駄目な状態だっ
た。

最初、ホームセンターに買いに行ったら、種類が沢山あり、どれを買うべきか判ら
なかったが、店員に聞いて、タンクの型番が判ればどれが適合するか判ると言って
いたので、出直した。
何でも、各メーカー(特にTOTO)、微妙に仕様の違うタンクを作りすぎて、製
品が溢れてしまい、部品の種類が多くなりすぎて管理できないような「無双」状態
らしい、それでも最近ようやく一本化したとか・・・
又、TOTOはパッキン類なども独自仕様(他メーカーに使えないようにしている
らしい)で、他メーカーと共通化していない為、TOTO製の蛇口や水周りの部品
を修理する際注意が必要らしい。
※TOTOって結構クソメーカーだったんだなぁー・・・


まず、今回購入した中古住宅の水周りで大きな問題が見つかった。
排水口の処理がいいかげんで、キッチン、洗面所で、排水パイプ(60パイ)に繋
がるホースが、ただ差し込んであるだけで、ガバガバな状態、普通はゴムのパッキ
ンなどで隙間を塞ぐが、それもしていない状態だった。

洗面台などは、そのおかげて、湿気が上がり、洗面台の下の空間がグズグズになっ
ていた、洗面台の下にある蛇口は、サビサビで、固着して使えない状態だったので、
新品に交換、洗面台も棄てて、新規に購入した。
※不思議なのは、前のオーナーは、何故、ほおっておいたのだろうか???
今回、排水パイプへの接続は、隙間の生じないタイプを見つけたので、色々加工し
て無理やり付けたが、水漏れは無い。




※エンビ用接着剤を使って、ジャバラホースとパイプなどを接着してある。

この交換は、洗面所のフローリングを修理した後にするので、今回は触れない。

さて、「混合水栓」の交換だが、かなり難儀した。

まず、古いやつはパッキンが駄目で、リークする為、最初はパッキンを交換すれば
良いと思ったが、既に製造を終了しており入手出来ないと聞いた。
そこで、最新の「混合水栓」を購入しておいた。

※ボールタップ地獄の真相を知る前だったので、TOTOを買ってしまった・・・
シャワーヘッドが外せて伸びるタイプで、水のフィルターも入っている豪華な
仕様だ、住宅を買った喜びで浮かれて高い買い物をしてしまったが、使ってみ
ると凄く便利で使いやすい、まぁこれはこれでいいかーー


古いタイプは、裏側に大きなナットがあり、それを外す必要がある。
※ここも、TOTOの製品乱発地獄の影響を受けたようだ。
このキッチンで混合水栓裏にアクセスするのは、非常にスペースが狭い。
目視の確認も出来ないので、水栓をネットで調べて、ナットの径を調査した。
その結果38mmと判り、一番安いレンチを購入したのだが、全然合わない・・
よく調べると、44mmとか46mmとか色々なバージョンがあるようだ・・・
※実際は46mmだった

また、レンチを買うのもバカバカしいので、プライヤーで回す事にして、裏板のベ
ニヤを少し切って広げ、手が入るようにしたのだが、非常に硬く締まっていて、か
なり頑張ったが、ビクともしない。

「もういいや古い水栓を破壊しよう」と言う事で、ディスクグラインダーで、切り
刻んで、無理やり外した、最初からそうすれば良かった・・・
※真鍮にメッキがしてあるのが判った。
※金属の粉だらけになった・・・

キッチンの側はステンレス製だが、0.3mmくらいのペラペラで、水栓を取り付
ける穴の裏に合板が当ててあるのだが、これがグズグズになっており、ボロボロ崩
れてくる。
このボロボロになった木屑をあらかた取り除いて、硬い合板(10cm四方10m
m、ホームセンターの木っ端売り場で購入した、フローリングの切れ端)に穴をあ
け(35mm)、接着剤を塗り、キッチンの裏に当て、混合水栓の取り付け金具を
固定した。


※裏からの作業なので、目に木屑が入らないようにゴーグルをして作業したが、口
に木屑が入った・・・


最新型の混合水栓は、固定方法が良く考えられており、5mmのボルト二本を使い
金具ではさんで固定するようになっている、金具は、上から入る(横にして入れる)
ように配慮された型をしており、落下しないように配慮されており、下からアクセ
ス出来なくても取り付けが出来るように工夫されている。

やはり、最新の「蛇口」は良くできている~

-----
モンキーレンチの正しい使い方?:

よく、車やバイクの動画で、「モンキーレンチの使い方が違う」とか鬼の首を取っ
たかのようにコメントする「ヤカラ」がいるけど、自分で整備をした事も無い、口
だけ達者な無知蒙昧なのかと思う。
と言うのも最近のモンキーレンチは、右周りでも左周りでも大丈夫なように設計さ
れており、可変サイズでも、「ガタ」が出ないような構造にしてある。
また、スパナと同じような角度がついている事で、回す角度が取れないところでも
裏、表と使う事ができるようになっている。
自分が使っているバーコのモンキーレンチもどちらで使って、力をかけてもも大丈
夫なタイプだ。(15年以上前に既にそうなっている)
また、ナットをゆるめる以外の使い方で、板を曲げたりもしているが全く問題無い。
「使い方が違う」と言っている人は、モンキーが壊れる(痛む)とか、ナットを舐
めやすくなるとか言いたいのだと思うが、それは、全く当てはまらない。
モンキーレンチは、工作精度や、仕組みを改善して、工具メーカーが進化させた新
しい工具の一つなのだ。
※こんな基本的な事は、知らなくても、使っていれば判る事なんだけどね・・