วันพฤหัสบดีที่ 17 กันยายน พ.ศ. 2558

Code Debug Card

code debug card ในนี้ ok -->

http://www.capetronics.com/pdf/DC-0020.pdf


http://itguest.blogspot.com/2013/06/code-debug-card-mainboard.html

http://www.bioscentral.com/postcodes/awardbios.htm

รวม Code Debug Card Mainboard

สำหรับช่างซ่อมคอมมือใหม่ที่มีเครื่องมือ Debug Card เป็นตัวช่วยแล้ว บางครั้งอาจจะไม่รู้ว่าค่า Error Code นั้นคืออะไร ผมได้สืบหาข้อมูลและเขียนเพื่อเตือนความจำของตนเองไว้ เพราะไม่ค่อยได้ใช้ตัว Debug Card นี้เช่นกัน นานๆครั้งมาใช้นั้น ค่อนข้างที่จะค้นหาข้อมูลอย่างลำบากเช่นกัน ผมจึงได้รวบรวมข้อมูลมาจากเว็บที่หาข้อมูลได้ ขอขอบคุณเจ้าของข้อมูลด้วยครับ

CODE : ความหมาย
00 : ไม่มีสัญญาณให้เช็ค CPU หรือลองหา CPU ตัวใหม่มาเปลี่ยนดูครับ
01 : CPU TEST รอบที่ 1
02 : CPU TEST รอบที่ 2
04 : TEST Memory รีเฟรช ของอุปกรณ์ ต่าง ๆ 
05 : Key board controller อาจมีปัญหา
07 : BIOS battery อาจจะหมด
0B : TEST cmos checksum
0D : เช็ค VGA CARD Interface
C0 : ทดสอบหน่วยความจำและ slot(ลองฉีด สเปรย์สารพัดพิษดูครับ)
0E : เช็คหน่วยความจำ VGA(ลองหาตัวใหม่มาเปลี่ยนดูครับ) 
11 :อาจมีปัญหาที่ DMA controller
41 : ให้ตรวจสอบ FLOPPY Drive
42 : .ให้ตรวจสอบ HARD DISK
43 : ค้นหาและตรวจสอบ serial และ parallel port
45 : ให้เช็ค Mainboard ว่าเข้ากับ CPU ได้หรือเปล่า เช่น CPU ใช้ FSB สูงกว่าที่ Board รองรับหรือไม่)
FF,D0 : เครื่องปกติ
ไม่มีตัวเลขอะไรขึ้นเลย : BIOS เสีย
ข้อมูลจาก : บทความ IT

CODE ความหมาย
C0-C7 : ลองแฟลชไบออสดู ไม่ก็ แล้วลองตรวจสอบระบบอีกครั้ง บางครั้งแรมอาจติดต่อกับ N/B ไม่ได้
D0 : ลองตรวจสอบไฟ CPU ว่าปกติหรือเปล่า หรือไม่ก็ซ็อกเก็ต CPU ว่าต่อกับ CPU จริงหรือเปล่า
D1-D7 : ลองตรวจเช็คแรม ไม่ก็ ไฟแรม สล็อตเสียบแรมแน่นหรือไม่
90-AD : สลับกัน แล้ว 90 จะดับ แต่จะค้างที่ AD แสดงว่า Data ของแรมไม่สามารถติดต่อกับ N/B ได้ แนะลองใช้แปรงทาสีทำขาความสะอาดที่ช่องสัญญาณของสล็อกตแรมดู ถ้ายังไม่หายก็แสดงว่า Address บางขาของ Ram เกิดการซ็อต ต้องเปลี่ยน N/B
2A : ส่วนมากเป็นที่สล็อต AGP/PCI-E เสียไม่ก็ หรือตัวทรานซิสเตอร์ข้างๆ AGP/PCI-E เสีย แนะนำเปลี่ยนทรานซิสเตอร์ก็น่าจะหาย
75-85 : เข้าไบออสไปแล้วตั้งค่าเป็น Set Default ที่มาจากโรงงาน
00 หรือ FF : ถ้าปรากฏเลขฐานสิบหกตัวนี้ถือว่าเมนบอร์ดปกติ

CODE ความหมาย
00 - 04 ตรวจเช็ค CPU & RAM
05 - 06 ตรวจเช็ค CPU & BIOS
07 - 0C ตรวจเช็ค VGA & BIOS
0D - 0F ตรวจเช็ค CPU & MAINBOARD
10 - 1F ตรวจเช็ค MAINBOARD & BIOS & RAM
20 - 2D ตรวจเช็ค CPU
2E - 3F ตรวจเช็ค CPU & MAINBOARD
40 - 49 ตรวจเช็ค MAINBOARD
4A - 52 ตรวจเช็ค RAM & MAINBOARD
53 - 5F Reserved
60 - 6F ตรวจเช็ค MAINBOARD & BIOS
70 - 7F ตรวจเช็ค MAINBOARD
80 - 8F Reserved
90 - A5 Reserved
A6 - AF ตรวจเช็ค MAINBOARD
B0 - B8 ตรวจเช็ค CPU & MAINBOARD
B9 - BF ตรวจเช็ค CPU & MAINBOARD & BIOS
C0 - D4 ตรวจเช็ค MAINBOARD & RAM
D5 - EF ตรวจเช็ค MAINBOARD
F0 - FF ตรวจเช็ค MAINBOARD & VGA
ข้อมูลจาก : Mainboard Service

ขอขอบคุณข้อมูลจากทั้งสามแหล่งครับ

วันพุธที่ 9 กันยายน พ.ศ. 2558

adb command 3 iq5.3 mod2g capture-the-screen



http://stackoverflow.com/questions/13984017/how-to-capture-the-screen-as-fast-as-possible-through-adb
เครดิตจากเวป

มาเพิ่ม Internal storageให้เป็น 2GB กันครับ  iQ 5.3
http://droidfriend.com/forums/index.php?topic=2712.0



Calling Android services from ADB shell
Many android automation recipes contain references to the "service call" command: 
# service
Usage: service [-h|-?]
    service list
    service check SERVICE
    service call SERVICE CODE [i32 INT | s16 STR] ...
Options:
  i32: Write the integer INT into the send parcel.
  s16: Write the UTF-16 string STR into the send parcel.


The command is indeed very useful. But the problem is that the calling "CODES" are android version specific and recipes often get out dated sometimes even after a minor version update. I am frequently being asked to update those codes for my recipes. I decided to share a small bash script I have been using to look up service codes for specific Android versions: 
#!/bin/bash
ADBShell () { adb ${2+-s }$2 shell "$1" | tr -d '\r'
}
GetAndroidVersion () {
    local ALL_TAGS=$(wget -qO - "$GOOGLE_SOURCE/$REPO/+refs/tags/?format=text" | \
    tr -d '^{}' | cut -d/ -f3 | sort -u | grep -vE -- '-(cts|sdk)-' | grep -v "_r0")
    TAG=${1:-$(ADBShell 'getprop ro.build.version.release')}
    echo -e "ANDROID_SERIAL=$ANDROID_SERIAL\nro.build.version.release=$TAG" 1>&2
    TAG=$(echo "$ALL_TAGS" | grep -- "android-${TAG//./\.}" | head -n 1)
    echo -e "TAG=$TAG" 1>&2
    [ "-$TAG" != "-"  ] && return 0
    echo -e "TAG not valid!\n\nList of valid tags: "$ALL_TAGS 1>&2
    exit 1
}
GetServicePackageName () {
    SERVICE_PACKAGE=$(ADBShell 'service list' | grep "\s$1: \[" | head -n 1 | tr '[]' '""' | cut -d\" -f2)
    echo -e "SERVICE=$1\nSERVICE_PACKAGE=$SERVICE_PACKAGE" 1>&2
}
GetGoogleSourceFile () {
    #echo -e "\t\E[31mdownloading\E[0m $GOOGLE_SOURCE/$REPO/+/$1/$2" 1>&2
    [ "-$1" == "-" ] && return 1
    wget -qO - "$GOOGLE_SOURCE/$REPO/+/$1/$2?format=text" | base64 -d
}
GetAllServices () {
    ALL_SERVICES=$(GetGoogleSourceFile "$TAG" "Android.mk" | tr -d ' \\\t' | grep "\.aidl$" | \
    sort -u | grep -v "^gen:")
}
ParseServiceAIDL () {
    GetGoogleSourceFile "$TAG" $(echo "$ALL_SERVICES" | grep "${SERVICE_PACKAGE//.//}\.aidl$" | head -n 1) | \
    tr -d '\n\r' | gcc -P -E - | tr '{};' '\n\n\n' | grep -v ^$ | sed -e '1,/interface\s/ d' | cat -n
}
AbortIfExecutableMissing () {
    BIN=($@)
    MISSINGBIN=$(for B in ${BIN[@]}; do [ "$(which $B 2>/dev/null)-" == "-" ] && echo $B; done)
    [ "${MISSINGBIN}-" == "-" ] && return 0
    echo -e "Can't find the following executables: "$MISSINGBIN
    exit 1
}
AbortIfExecutableMissing "adb wget gcc tr sed awk cut grep basename dirname head base64"
GOOGLE_SOURCE="https://android.googlesource.com"
REPO="platform/frameworks/base"
GetAndroidVersion
GetAllServices
GetServicePackageName $1
ParseServiceAIDL
exit 0

This script checks the Android version of your phone and the java package name of the service you specified as a parameter. Then the script downloads the service AIDL file for your phone's Android version from https://android.googlesource.com and parses it. So obviously it only works for the standard Android services it can find the source code for.

This is how I usually run the script. For example let's find out the calling code for "getCallState()" method of the "phone" service. I usually have multiple phones connected to my system so I need to specify which one to use by setting the ANDROID_SERIAL variable first. If you have just a single phone connected you can skip that part: 
~$ ANDROID_SERIAL=XXXXXXXXXX ./get_android_service_call_numbers.sh phone | grep getCallState
ANDROID_SERIAL=XXXXXXXXXX
ro.build.version.release=4.4.4
TAG=android-4.4.4_r1
SERVICE=phone
SERVICE_PACKAGE=com.android.internal.telephony.ITelephony
    32 int getCallState()


10|shell@android:/ $ dumsys iphonesubinfo2
dumsys iphonesubinfo2
/system/bin/sh: dumsys: not found
127|shell@android:/ $ dumsys iphonesubinfo
dumsys iphonesubinfo
/system/bin/sh: dumsys: not found
127|shell@android:/ $ dumpsys iphonesubinfo2
dumpsys iphonesubinfo2
Phone Subscriber Info:
  Phone Type = GSM
  Device ID = 866389014717292



D:\mobile>adb shell am start http://www.kapook.com
Starting: Intent { act=android.intent.action.VIEW dat=http://www.kapook.com }

D:\mobile>adb shell am force-stop com.android.chrome

D:\mobile>adb shell am start -a android.intent.action.MAIN -c android.intent.cat
egory.HOME

am start -a android.intent.action.VIEW "sms:numberhere" -e "sms_body" "hello"


svc wifi disable

วันเสาร์ที่ 5 กันยายน พ.ศ. 2558

hatari พัดลม ตรวจซ่อม มี capacitor 2 ตัว 1.ที่ตัวพัดลม 2.ที่กล่องสวิทย์ควบคุม

เผอิญว่า วันนี้ผมได้ ช่วยที่บริษัท ซ่อม พัดลมฮาตาริ 16 นิ้ว เพดาน ดังรูปที่ผมส่งไป   เลยนึกถึงวิชาที่เรียนกับ อ. มาช่วยซ่อมให้ที่บริษัทฯ แต่เจอเคส พิเศษหน่อย เพราะที่ตอนที่เรียนกับ อ. จะมี คาปา แค่ตัวเดียว  ที่พัดลมชุดนี้  มีคาปา 2 จุด คือที่ ตัว main coil กับ ที่ กล่องสวิทควบคุม  ปัญหาของ อาการพัดลมนี้คือ กด เบอร์ 1 กับ เบอร์2 ไม่หมุนหรือแทบไม่มีแรงหมุนเลย แต่เบอ3 แรงปกติ  ตอนนี้ก็เช็คก่อนที่ สวิทย์ ว่า หน้าสัมผัสสกปรกไหม สัมผัสกันดีไหม  ปรากฏว่า ที่แท้มีคาปาตัวหนึ่งทำหน้าที่แทน coil 2 ขุด  เพื่อกำจัดกระแส คือรูปที่ส่งไปให้คับ และตัวนี้เองที่เกี่ยวข้องโดยตรงกับสวิทย 1 และ2 ก็เลยจัดการไปซื้ออะไหล่ที่ร้าน อุดม มีนบุรี  capa3เส้น ตัวละ 45 บ ซ่อมไป 2 ตัว สุดท้าย ก็แก้ไขได้สำเร้จ เบอร์1 กับ เบอร 2 กับมาหมุน แรงปรกติ เพราะได้ควมรุ้จาก อาจารย์ ต่อยอดไปอีก ขอบคุณคับ

ภาพพัดลม และกล่องควบคุม โดยย่อในไฟล์ pdf ลิงค์ล่าง

https://drive.google.com/file/d/0BzjoxIwEMrM-WVJ3SDNBVVVuREE/view?usp=sharing





เครดิตจาก เวป

















เครดิตจากเวป


วันศุกร์ที่ 4 กันยายน พ.ศ. 2558

ip2770 เปลี่ยนตลับสีแต่เจาะช่องสีแดงแบบปรกติไม่เยื่อง ทำให้ error ไม่รู้จักตลับสี

http://talk.ict.in.th/11262

เคื่องปรินส์เตอร์ Canon Ip 2770 error ไม่รู้จักคาร์ทริดหมึกต่อไปนี้ ทำยังไงดีครับ
.ใช้แผ่นกาวสองหน้าติดดรงท้ายตลับสิทับสัก4แผ่นอัดเข้าไปไม่ต้องไปเจะที่อื่นตรงฯเลยลองทำดูไม่เสียของด้วย

ปัญหา คือ ซื้อตลับสี เจาะมาเรียบร้อย แต่เจาะตรงแบบปรกติ ช่องรูบนสีแดง มาใช้กับ เครื่อง mp237  
คือต้องการน้ำมาใช้กับเครื่อง ip2770 ให้แก้ไขโดย ใช้เทปกาว 4 ชิ้นแปะซ้อนกันติดไว้ท้ายตลับสี  โดยไม่ต้องบากตัวล็อค ซึงเมื่อปิดฝาล็อคจะทำให้ electronic contact เชื่อมติดกันพอดี อาการ ไม่รุ้จัดคาร์ทริดจะหายไป