マザーボードのコンデンサ交換2019/02/16 21:51:24

16年ほど前に買ったP4のPCが起動しなくなった。
確認したところマザーボードのコンデンサが液漏れしていた。
液漏れのひどいコンデンサと同じ規格のものが手元に3個だけあったので、ひどいほうから順番に交換した。
運良く?3個目で起動するようになったので一安心。
あと9個ほどコンデンサが膨らんでいるので、コンデンサを購入しておこうと考えている。

zmart DC-ATX-160W 160W ACアダプター電源 キット pico BOX ATX ITX psu2019/01/03 18:52:03

PCのACアダプタータイプの電源が故障してしまったので注文した。
あまりお金をかけたくなかったので安いほうにしたが、安物買いのなんとやらにならなければいいが...

アイネックス ケース用ファン40mm 薄型静音タイプ CFY-40S2019/01/03 18:48:52

PCのファンがうるさくなり、回転数の信号も取れなくなってきたので新しいものを注文した。
今回は静音と耐久性を求めて2ベアリングタイプのものにした。

Nexus5バッテリー交換2018/06/22 20:40:26

だいぶバッテリーの持ちが悪くなってきたので交換することにした。
バッテリーとY字ドライバーを入手。
交換後、だいぶバッテリーの持ちがよくなった。
これでしばらくは延命できるかな。

Raspberry Pi3でAQM0802Aを動かす2016/07/18 13:20:22

Raspberry Pi3B(2Bも)ではpull up抵抗の関係でLCDのAQM0802Aがうまく動作しないらしい。
参考:http://raspibb2.blogspot.jp/2015/12/blog-post_31.html
実際接続してもうまく動作しなかった。
せっかく買ったのに残念だったので、ソフトウェア(Python)でI2Cの実装をしてI2C専用GPIO(pin3,pin5)を使わないで動作を試みた。
結果としてとりあえず動作したので、そのソフトウェアを公開します。

写真の配線はすごく適当ですみません。
3.3V電源(pin1)とVDD,RESETを接続、GPIO27(pin13)とSDAを接続、GPIO22(pin15)とSCLを接続、GND(pin20)とGNDを接続しています。
AQM0802Aのpull up抵抗は有効にしています。

改版は自由に行っていただいて構いません。AQM0802Aを有効に使ってください。

LCD_test.py
--------------------
#!/usr/bin/env python
#
#http://firewall.asablo.jp/blog/
#
import RPi.GPIO as GPIO
import time

#GPIO27 = Pin13
#GPIO22 = Pin15
GPIO_SDA = 27
GPIO_SCL = 22
clock = 400000 #100000 or 400000
wait = float(1) / clock

GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_SDA,GPIO.OUT, pull_up_down=GPIO.PUD_OFF, initial=True)
GPIO.setup(GPIO_SCL,GPIO.OUT, pull_up_down=GPIO.PUD_OFF, initial=True)

def I2C_Start():
time.sleep(0.5)
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
return

def I2C_Stop():
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SDA, True)
time.sleep(wait)
return

def I2C_WriteAddress(data):
data = data << 1
data = data & 0xFE
for i in range(8):
bit = data & 0x80
if(bit % 127 == 1):
GPIO.output(GPIO_SDA, True)
else:
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
data = data << 1
GPIO.setup(GPIO_SDA,GPIO.IN,pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
result = GPIO.input(GPIO_SDA)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
GPIO.setup(GPIO_SDA,GPIO.OUT, pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SDA, False)
return result

#動作未確認
def I2C_ReadAddress(data):
data = data << 1
data = data | 0x01
for i in range(8):
bit = data & 0x80
if(bit % 127 == 1):
GPIO.output(GPIO_SDA, True)
else:
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
data = data << 1
GPIO.setup(GPIO_SDA,GPIO.IN,pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
result = GPIO.input(GPIO_SDA)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
GPIO.setup(GPIO_SDA,GPIO.OUT, pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SDA, False)
return result


def I2C_Write(data):
for i in range(8):
bit = data & 0x80
if(bit % 127 == 1):
GPIO.output(GPIO_SDA, True)
else:
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
data = data << 1
GPIO.setup(GPIO_SDA,GPIO.IN,pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
result = GPIO.input(GPIO_SDA)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
GPIO.setup(GPIO_SDA,GPIO.OUT, pull_up_down=GPIO.PUD_OFF)
GPIO.output(GPIO_SDA, False)
return result

#動作未確認
def I2C_Read():
data = 0
GPIO.setup(GPIO_SDA,GPIO.IN,pull_up_down=GPIO.PUD_UP)
GPIO.output(GPIO_SDA, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
for i in range(8):
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
bit = GPIO.input(GPIO_SDA)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
data = data << 1
data = data + (bit & 0x01)
GPIO.setup(GPIO_SDA,GPIO.OUT,pull_up=GPIO.PDU_UP)
GPIO.output(GPIO_SDA,False)
GPIO.output(GPIO_SCL, True)
time.sleep(wait)
GPIO.output(GPIO_SCL, False)
time.sleep(wait)
GPIO.output(GPIO_SCL, True)
return data

#main
#Initialize
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x38)
I2C_Write(0x39)
I2C_Write(0x14)
I2C_Write(0x70)
I2C_Write(0x56)
I2C_Write(0x6C)
time.sleep(0.2)
I2C_Write(0x38)
I2C_Write(0x0C)
I2C_Write(0x01)
I2C_Stop()


#1行目
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x00)
I2C_Write(0x80)
I2C_Stop()

#AQM0802A
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x40)
I2C_Write(0x41)
I2C_Write(0x51)
I2C_Write(0x4D)
I2C_Write(0x30)
I2C_Write(0x38)
I2C_Write(0x30)
I2C_Write(0x32)
I2C_Write(0x41)
I2C_Stop()

#2行目
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x00)
I2C_Write(0xC0)
I2C_Stop()

#firewall
I2C_Start()
I2C_WriteAddress(0x3e)
I2C_Write(0x40)
I2C_Write(0x66)
I2C_Write(0x69)
I2C_Write(0x72)
I2C_Write(0x65)
I2C_Write(0x77)
I2C_Write(0x61)
I2C_Write(0x6C)
I2C_Write(0x6C)
I2C_Stop()

time.sleep(1)

GPIO.cleanup()
--------------------

Raspberry Pi3 model B 電源回路 の熱対策2016/05/28 15:06:59

ヒートシンクが小さかったので容量アップしてみた。
通電時のヒートシンク温度が前よりも上がらないので、だいぶ放熱している感じ。

Raspberry Pi3 model B 電源回路2016/05/21 15:08:37

可変三端子レギュレータLM338Tを使った電源回路。
12V4Aの電源装置を繋いで、5V(写真では5.02V)に電圧を落としている。
入力が12Vだとヒートシンクの熱容量が足りない感じ。もっと大きなものを購入すればよかった。

Raspberry Pi3 model B2016/05/21 15:01:06

Raspberry Pi3 model Bを購入した。
電源は5Vで2.5A以上推奨らしいので、可変三端子レギュレータLM338Tを使って用意した。
写真のような構成(ディスクプレイ、Unifyingレシーバー接続)なら1.5Aのスマホ用充電器でも起動(負荷無し)できた。

SanDisk SSD UltraII 240GB 2.5インチ2015/10/12 16:21:48

ノートPCのHDDの調子が悪くなってきたので、SanDisk SSD UltraII 240GB 2.5インチと入れ替えようかと考えている。
読み書きともに早いようなので起動時間が短くなるのを期待している。
ついでに無料アプグレード期間中のWindows10へ移行も考えている。

Raspberry Pi 2モデルB用?キーボード、マウス2015/05/17 15:23:52

Raspberry Pi 2モデルB用に使えるそうなキーボードとマウス。
ワイヤレスなので配線が邪魔にならなくていいかも。
電池の持ちも、キーボード2年、マウス1年のようです。