어느덧 늙어버린 아이폰6

사용중에 베터리가 1분에 1퍼씩 다는걸로 느껴져 자가 교체하기로 했어요

2년이 지난 기종이고, 아이폰X를 기다리며 큰 돈을 투자하기보다는 

마지막까지 애정을 주기 위해 자가 교체를 선택

사실 이미 액정은 몇번씩이나 자가교체를 하기도 했고...ㅎ


베터리 상태 체크를 위해 battery life 어플을 다운받아 실행해보면

충전 횟수에 따른 battery life 가 나오는데....

뚜둥 88% 로 상태가 좋다고 나오는데 체감상 전혀 아니였는데... 아무래도 통계에 의존하다보니 그런게 아닐까...

리튬이온 베터리의 특성상 충방전 횟수에 따라 베터리 용량이 줄어드는데,

어느 시점 까지는 최초의 상태와 비슷하게 보존 되다가, 갑자기 베터리 용량이 줄어듬을 확인 할 수 있어요

battery life 는 이와 같이 충방전 cycle의 횟수로 추정하게 되는데... 사용방법에 따라 실제 유효 battery 용량을 정확하게 예측하지 못할수도...


뭐 대~~~충 하루 한 번 충전한다 치고, 2년 반 썼으니깐... 한 900번 충전했을 테니.... 당장은 상태가 나쁘지 않게 측정되더라도 곧 죽어가는건 당연지사


어쨋든 교체 합니다.


베터리는 Aliexpress 에서 구매!

15000원 정도 줬어요.

우리나라에서는 2만원 정도 주면 된다 하는데, 찾아보진 않았고.. 뭐 편하실대로...


일반적으로 자가교체용 액정을 구입하든, 베터리를 구입하든 그에 필요한 드라이버 등의 수공구를 같이 줍니다.

베터리의 경우는 베터리 부착을 위한 양면테이프도 같이주고요

사진의 왼쪽 위가 베터리 부착용 양면테이프, 아이폰의 외부 잠금은 별나사(*)로 되어 있어 별나사용 드라이버 그리고 내부의 십자나사(+)를 위한 십자 드라이버, 액정모듈을 들어올리기 위한 흡착기와 액정모듈과 케이스 사이를 쑤시기? 위한 피크 등을 주네요.


자, 그럼 오늘의 수술대상자 아이폰을 대기시키고

충전 단자 양쪽의 별나사(*) 두 개를 풀고 뚜껑 따기! 뚜따뚜따

액정 모듈 분리는 흡착기로 액정을 잡아당기면서 액정과 케이스의 경계를 피크로 쑤시기!

흡착기로 잡아당기면서 피크로 슥삭슥삭 하다보면 어느덧 액정이 케이스로부터 떨어지기 시작하는데...

여기서 주의할 점!!! 액정모듈 연결하는 케이블이 액정과 케이스가 90도가 넘어가면 끊어질 위험이 있으므로 액정을 너무 당기지 말자!

액정모듈은 잘 잡아두고, 베터리 커텍터 쪽의 십자나사(+) 두 개 풀어주시고

커넥터를 분리 합니다.

여기 까지는 사실 별로 어려울게 없는데.... 바로 다음의 접착 테이프를 잘 떼야합니다.

우선 아이폰 베터리 접착 테이프의 특성이 수직으로는 접착성이 엄청 강력해 안떨어지는 반면에, 수평으로는 깔끔하게 떨어지는 특징이 있습니다.

폰을 바닥에 놓는다고 했을 때 지면으로 부터 수직 방향으로는 잡아 당겨도 떨어질 생각을 않고, 폰과 나란한 수평방향으로는 깔끔하게 잘 떨어진다는 것인데, 이를 무시했다가는 고생길이 훤히 열리고~ 그대로만 따라하면 치즈 늘어나듯 쭉쭉 늘어나서 깔~~끔하게 떨어지는 테이프를 만날 수 있습니다.

우선 테이프의 가장자리를 살살 긁어 뗴주시고

테이프를 수평 방향으로 당겨주세요!

테이프가 끊어지지 않게 천천히

늘어나라 늘어나라 쭉쭉~~~~

테이프를 잘 떼고 나면 베터리는 쏙 빠진 답니다.


새 베터리를 놓고 조립은 분해의 역순으로!

접착용 테이프를 먼저 베터리에 붙여주시고

혹시 모를 미래를 위해 다시 테이프를 뗼 수 있도록 까만 부분은 베터리 밖으로 빼주세요~


베터리를 자리에 넣고 케이블을 결합 후 나사 조립해 주시면 됩니당!

여기서 주의하실 점!

액정 모듈 닫으실 때는 위쪽(스피커 부분) 을 먼저 걸어주시고 아래로 눌러 끼워주시면 되는데, 액정은 충격에 약하니깐 너무 세게 누르지마세요!

특히 액정의 네 꼭지점 부근은 더더욱 약하니 누르지 마시길!


베터리 교체 후 Battery life 어플로 베터리 측정 결과!


당연하겠지만, perfect 가 나오네요. 굿굿!!


베터리 자가 교체 어렵지 않아요~

베터리 가격: \15000

베터리 기다림: 3주

자가 교체 소요 시간: 5~10분

남는 것: 뿌듯함+내폰의 생명력+내폰에 대한 애정


*아이폰6s 의 경우 교체 방법이 다르지는 않으나, 아이폰6용 베터리와 아이폰6s용 베터리는 다르므로 주의가 필요하고,

본체와 액정을 분리 할 때, 양면테이프로 고정되어 있다는 사실을 참고하자!









OrangePi Plus 2 의 장점 중 하나

SATA interface 를 가지고 있다는 점

SATA 3.0 은 아니여서 아쉽긴 하지만, 그래도 3Gbps 의 대역폭을 갖는 SATA2.0

2TB 까지 인식 가능하다고 하니, 용량걱정은 별로 안해도 될 듯 하다.


SATA cable 은 Aliexpress 에서 구매! (Power cable 이 일반적인 PC 에서 사용하는 것과 달라 Aliexpress 말고 다른 곳에서 구매할 수 있는지는 잘 모르겠다.)

2천원 정도 하는 듯 하다.


Aliexpress 에서 구매한 SATA Cable과 2TB 이하의 하드디스크 또는 SSD를 준비하면 되는데,

어차피 SATA 2.0 이니..... 굳이굳이 돈 들여 SSD 사지 말고 집에 노는 HDD 활용하자!


일반적으로 Hot swap 방식이 아니기에, HDD 를 인식하기 위해서는 재부팅이 필요하다.


Booting 과정에서 Boot source 를 자동으로 설정을 해놓은 경우

HDD에서 부팅을 시도하다가 시스템이 죽는 경우가 생기므로,

Boot source 를 SD 카드 또는 eMMC로 고정 해두자!


Boot source 를 SD 카드로 설정하는 방법

OrangePi 에서 Boot configuration 은 script.bin 파일을 통해 설정을 한다.

bin 파일은 binary 이므로 인간이 알아 들을 수 없기에, sunxi-tools 를 이용해 fex 파일로 변환 후 

수정해야한다.

우선 sunxi-tools 는 github에서 다운 받을 수 있다.

$ git clone https://github.com/linux-sunxi/sunxi-tools

github로 부터 받은 소스를 make 해주면 bin 파일을 fex 또는 fex 파일을 bin 파일로 변환 할 수 있게 된다.

$ cd sunxi-tools

$ make all


script.bin 파일은 /boot 디렉토리에서 확인 할 수 있다.

심볼릭 링크로 연결되어 있는 파일을 확인하자!


우선 bin 파일을 fex 파일로 변환하고

$ sudo su

$ ./<sunxi-tools>/fex2bin /boot/script.bin script.fex

Boot source 부분을 확인 후 SD 카드로 설정한다.

script.fex

...

[target]

boot_clock = 1008

storage_type = 1

;storage_type 1 is for SD_card

;            -1 is auto detection

...

다시 bin 파일로 변환하고 재부팅 하면 적용 된다.

$ sudo su

$ ./<sunxi-tools>/bin2fex script.fex /boot/script.bin


HDD 마운트 하기

여기까지 문제 없었다면, 하드디스크가 잘 잡힌 채로 부팅이 됐을 것이다.

fdisk 로 확인하자

$ sudo fdisk -l

하드디스크의 이전 상태에 따라 다를 수 있지만, 일반적으로 시스템을 옮겨온 하드디스크는 포맷하여 사용하는 것이 좋다.

하드디스크 포맷 후에는 fstab 에 등록하여 마운트 하여 사용하면 된다.

$ sudo su

$ fdisk /dev/sdX

Command (m for help): n

Partition type:

p    primary (0 primary, 0 extended, 4 free)

e    extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-1000215215, default 2048): 2048

Last sector, +sectors or +size{K,M,G} (2048-1000215215, default 1000215215): 1000215215


Command (m for help): w

$ mkfs.ext4 /dev/sdX1

$ sudo vi /etc/fstab

...

UUID=HDD_UUID_FROM_FDISK /MOUNT_DIR ext4 default 0 0

...

$ cd /MOUNT_DIR

$ sudo mount -a

UUID 는 아래 명령으로 확인 할 수 있다.

$ sudo blkid


'Programming > OrangePi' 카테고리의 다른 글

sftp 네트워크 드라이브 연결  (0) 2018.04.05
OrangePi 에 Telegram Bot 구축하기  (0) 2017.09.16
OrangePi Fan on GPIO  (0) 2017.09.15
U+ 공유기 포트포워딩 문제  (0) 2017.09.09
OrangePi Plus 2 Ubuntu 설치  (0) 2017.06.17

OrangePi 를 Telegram Bot 으로 활용하는 방법~


Telegram 은 카카오톡과 같은 메신저라고 생각하면 되는데,

API 가 잘 Open 되어 있어 다양하게 활용되고 있다.


Telegram Bot 은 사람이 아닌 Telegram User 로 생각하면 되는데, 

서버에서 구동하는 Code 로 사람인 User들과 interface 를 담당한다.


아래는 Python 기반의 telepot 을 사용해 telegram bot 을 만드는 방법이다.

우선 python을 설치 해 주고, package install 을 위해 pip 도 설치해 준다.

$ sudo apt-get install python python-pip python-dev build-essential

repository 에서 pip를 찾을 수 없는 경우 아래와 같이 설치 하면 된다.

$ sudo apt-get install python-setuptools

$ sudo easy_install pip

pip 로 telepot 을 설치 한다.

$ sudo pip install telepot

$ sudo pip install telepot --upgrade


telepot 을 설치하면 telepot 을 import 해 python 코드를 만들면 된다.

이때, telegram bot 에 할당되는 Token 이 필요한데, token 은 BotFather 에게 발급 받으면 된다.

telegram 메신저로 @BotFather 에게 /newbot 이라 메시지를 보내면 BotFather가 token을 발급해 준다.


아래는 telepot 을 활용한 기본적인 Bot code이다. (메시지를 보내면 같은 메아리를 보내준다.)

Bot.py

import sys

import time

import telepot


def handle(msg):

content_type, chat_type, chat_id = telepot.glance(msg)

print(content_type, chat_type, chat_id)


if content_type == 'text':

bot.sendMessage(chat_id, msg['text'])


TOKEN = 'INPUT YOUR OWN TOKEN HERE'


bot = telepot.Bot(TOKEN)

bot.message_loop(handle)

print('Listening ...')


while 1:

time.sleep(10)

* https://recall2300.github.io/2017-01-01/telegram-bot/ 을 참고하였슴다

아래와 같이 python 을 실행하여 Listening ... 이 출력되고, telegram 으로 나의 Bot에게 메시지를 보냈을 때 메아리가 들려오면 이상 무!

$ python bot.py


'Programming > OrangePi' 카테고리의 다른 글

sftp 네트워크 드라이브 연결  (0) 2018.04.05
OrangePi Plus 2 + SATA  (0) 2017.10.02
OrangePi Fan on GPIO  (0) 2017.09.15
U+ 공유기 포트포워딩 문제  (0) 2017.09.09
OrangePi Plus 2 Ubuntu 설치  (0) 2017.06.17

+ Recent posts