Saturday, April 11, 2009

XBee's AT commands and API command frame

XBee (Series 2, PRO) ကိုသံုးတဲ့အခါမွာ သူ႔ကို ခိုင္းဖို႔အတြက္ Command ေတြရွိပါတယ္။ သူ႔မွာက Command Mode ၂ ခုရွိပါတယ္။ AT နဲ႔ API ပါ။ သူတို႔ေျပာထားတာကေတာ့ AT mode က default mode လို႔ဆိုေပမယ့္။ ကၽြန္ေတာ္အခုသံုးတဲ့ မွာေတာ့ default က API mode ျဖစ္ေနပါတယ္။ အဲဒါနဲ႔ ကၽြန္ေတာ္လည္း API ကိုသံုးၿပီးပဲ ဆက္ေရးပါတယ္။

တစ္ကယ္ကေတာ့ AT mode က AT command ေတြကို တိုက္႐ိုက္ေပး႐ံုပါပဲ။ သူ႔ရဲ႕ command format က ဒီလိုပါ။

API ကက်ေတာ့ သူကိုယ္ပိုင္ frame ထဲကို AT command ေတြထည့္လိုက္တာပါပဲ။ API frame ရဲ႕ပံုစံက ဒီလုိပါ။

ဒါေပမယ့္ data ေတြကို ပို႔တဲ့အခါမွာေတာ့ API frame ကိုသံုးကိုသံုးရပါတယ္။ ဆိုလိုခ်င္တာက AT mode က XBee ကို လိုအပ္တဲ့ setting ေတြခ်ေပးတဲ့အခါမွာပဲ သံုးပါတယ္။ ဥပမာ - နာမည္ (ID) ေပးတာတို႔၊ (Channel, Power level) ၾကည့္တာတို႔အတြက္ပါ။
XBee ရဲ႕ User Manual ကို ေဒါင္းခ်င္ယင္ ဒီမွာ ယူပါ။

Friday, March 13, 2009

Create Free iTunes Account without Credit Card

Jailbreak လုပ္ထားတဲ့ ဖုန္းေတြအတြက္ေတာ့ iTune Account လိုအပ္ပါတယ္။ ဘာလို႔လည္းဆိုေတာ့ iPhone Crack application ေတြကိုထည့္တဲ့အခါမွာ ကိုယ္သံုးမည့္ ကြန္ပ်ဴတာရဲ႕ iTune ကေန application တစ္ခုကို အနည္းဆံုး download and install လုပ္ေပးရပါတယ္။ မလုပ္ေပးခဲ့ရင္ ဖုန္းထဲကို crack application ေတြ ထည့္လိုက္ေသာ္လည္းပဲ ဖြင့္လို႔မရဘူးလို႔ လာေျပာေနပါလိမ့္မယ္။ တစ္ကယ္လည္း မရပါဘူး။ (ဒီျပသနာက ကၽြန္ေတာ္ ၂ ရက္ေလာက္ ၾကံဳခဲ့ရတဲ့ ျပသနာပါ။)
ခုေျပာမွာက iTune account ကို Credit card မလိုပဲလုပ္လို႔ရတဲ့နည္းပါ။ အျပင္ကလူေတြအတြက္ Credit/ Debit card မခက္ေပမယ့္ ျမန္မာကလူေတြကေနနဲ႔က free လိုအပ္ပါတယ္။ နည္းကေတာ့ လြယ္ပါတယ္။

၁။ iTune ကို download/ Install လုပ္ၿပီး ဖြင့္လိုက္ပါ။

၂။ Country မွာ US ကိုေရြးပါ။ တစ္ျခားႏိုင္ငံေတာ့ မစမ္းဘူးဘူး။ US ကေတာ့ cards မရွိပဲ လုပ္လို႔ရပါတယ္။ Singapore, Thai, ... ေတြ ဆိုရင္ေတာ့ မရပါ။


၃။ Free ေပးတဲ့ application တစ္ခုခုကို ေရြးလိုက္ပါ။ Account မလုပ္ရေသးတဲ့အတြက္ New Account Register လုပ္မယ္ဆိုတာကို ႏွိပ္ပါ။

၄။ ေအာက္က ပံုေလးေတြအတိုင္းလိုက္သြားၿပီး Credit card ေရြးတဲ့ေနရာေရာက္ရင္ None ကိုေရြးပါ။ က်န္တာေတြကိုေတာ့ လည္သလိုသာထည့္လိုက္ပါ။

၅။ ၿပီးသြားတဲ့အခါမွာ ခုနေရြးထားတဲ့ application ကိုသူ႔ဟာသူေဒါင္းပါလိမ့္မယ္။ ၿပီးသြားရင္ ႀကိဳက္တဲ့ crack application ေတြကိုထည့္သံုးလို႔ရပါၿပီ။

(crack application ေတြ ထည့္လို႔ရေအာင္ ဖုန္းကို MobileInstallation patch လုပ္ရပါေသးတယ္။ ေနာက္တစ္ပို႔စ္မွာ ထပ္တင္ပါဦးမယ္။)


Jailbreaking iPhone with QuickPWN 2.2.5

Jailbreak ဆိုတာေတာ့ ဘာလည္းလို႔ မေရးေတာ့ဘူး။ သိၿပီးသား ျဖစ္ၾကဖို႔မ်ာပါတယ္။ ကၽြန္ေတာ္ေျပာမွာက iPhone ကို Jailbreak လုပ္တဲ့နည္းပါ။ တစ္ကယ္ကေတာ့ သိပ္မခက္ပါဘူး။ ဒါေပမယ့္ စလုပ္ရင္ေတာ့ ေၾကာင္တတ္ပါတယ္။ ကၽြန္ေတာ္အခုေျပာမည့္ နည္းေတြကေတာ့ ျမန္မာႏိုင္ငံက လူေတြအတြက္လည္း အဆင္ေျပမည့္နည္းပါ။ လိုအပ္ခ်က္ေတြကေတာ့ ...

၁။ ေဒါင္းလုတ္ လုပ္ရမည့္ Software မ်ား။ (QuickPwn, iPhone Firmware Version 2.2.1, WinSCP, MobileInstallation 2.2.1, iTune)
၂။ WiFi Access။ (ဒါကေတာ့ ျမန္မာႏိုင္ငံမွာ အခက္အခဲ နဲနဲရွိႏိုင္ပါတယ္။ ဒါေပမယ့္ ကၽြန္ေတာ္သိသေလာက္ တစ္ခ်ိဳ႕အင္တာနက္ ကေဖးေတြမွာ WiFi ရႏိုင္ပါတယ္။ အဲဒီကေနတစ္ဆင့္ သံုးရင္လည္း ရပါတယ္။)
၃။ iTune Account။ (ဒါကို ေနာက္ထပ္ ပို႔စ္တစ္ခုမွာ ထပ္တင္ေပးပါ့မယ္။ ရွည္သြားမွာစိုးလို႔ပါ။)
၄။ သံုးခ်င္တဲ့ iPhone Cracked Application မ်ား။ (အဲဒါေတြကေတာ့ ကိုယ္တုိင္ေဒါင္းခ်င္လည္း ရတယ္။ ရွိၿပီးသားလူဆီက ကူးသံုးရင္လည္း ရပါတယ္။ ကၽြန္ေတာ္ ေဒါင္းထားတာေလးေတြလည္း ျပန္တင္ေပးပါဦးမယ္။)
*** အေရးႀကီးတာတစ္ခုက ကိုယ့္ဖုန္းရဲ႕ Firmware version ကိုအရင္ၾကည့္ပါ။ တစ္ကယ္လို႔ Version 2.2.1 ထက္နိမ့္ေနခဲ့ရင္ iTune ကိုသံုးၿပီး Upgrade လုပ္ေပးပါ။ အဲဒီကိတ္စက ၾကာႏိုင္ပါတယ္။ ခုန Firmware 2.2.1 File ကိုသံုးၿပီးေတာ့ လုပ္ရင္လည္းရပါတယ္။ လုပ္တဲ့နည္းကို ကၽြန္ေတာ္ ထပ္တင္ေပးပါမယ္။ ***

ဒီပို႔စ္မွာ ၁ အတြက္အရင္ ေရးပါမယ္။ နံပါတ္ (၁) အတြက္ လင့္ေတြကေတာ့ ...
QuickPwn 2.2.5, iPhone Firmware Version 2.2.1, WinSCP, MobileInstallation 2.2.1, iTune

အဲဒါေတြရၿပီဆိုရင္ ပထမဆံုး QuickPwn ကိုဖြင့္ပါ။ ေအာက္ကပံုေပၚလာပါလိမ့္မယ္။

iPhone ကိုကြန္ပ်ဴတာမွာ တပ္ထားၿပီးရင္ OK ႏွိပ္ၿပီး Button မွ်ားေလးထပ္ႏွိပ္လိုက္ပါ။ ေအာက္ကပံုထပ္ေပၚလာမယ္။ (အမွန္ျခစ္အစိမ္းက ခုအခ်ိန္မွာ မေပၚေသးပါ။)

အဲဒီမွာ Browse ထဲကေန ခုနေဒါင္းထားတဲ့ iPhone Firmware Version 2.2.1 ဖိုင္ကို လင့္ေပးလိုက္ပါ။ ခနေစာင့္လိုက္ရင္။ ဖုန္းေပၚမွာ အမွန္ျခစ္ေလး ေပၚလာၿပီး မွ်ားကို ဆက္ႏွိပ္ပါ။ ေအာက္က ပံုထပ္ေပၚမယ္။ Install Cydia, Install Installer ကို ေရြးပါ။ ၿပီး မွ်ားကို ႏွိပ္ပါ။

မွ်ားေလးကိုပဲ ထပ္ႏွိပ္လိုက္ပါ။ ေနာက္ Screen တစ္ခုထပ္ေပၚလာမွာပါ။ အဲဒီထဲမွာပါတဲ့ အဆင့္ေလးေတြအတိုင္း ခလုတ္ေလးေတြ ႏွိပ္သြားပါ။

- Recovery Mode ထဲ၀င္သြားဖို႔ ခနေစာင့္ပါ။ (ေရာက္သြားတဲ့အခါ ေနာက္အဆင့္တစ္ခုကို အလုိလို ေျပာင္းသြားပါလိမ့္မယ္။)
- Home button ကို 5 seconds ႏွိပ္ထားပါ။
- Home ကို မလႊတ္ပဲ Power Button (Wake-up button) ကို 10 seconds ထပ္ႏွိပ္ပါ။ ႏွိပ္ထားပါ။ (အဲဒီအခ်ိန္မွာ ဖုန္းက restart ခနျဖစ္သြားပါလိမ့္မယ္။ ဂ႐ုမစိုက္ပါနဲ႔။)
- Power ကိုလႊတ္လိုက္ၿပီး Home ကို 20 seconds ႏွိပ္ထားပါ။ (ဒီအဆင့္ေတြက သူ႔ထဲမွာလည္း အလိုလိုေျပာင္းသြားတာပါ။ မွတ္စရာေတာ့ သိပ္မလိုလွပါဘူး။)
- အဆင့္အားလံုးမွန္ရင္ သူ႔ဟာသူ ဆက္ၿပီး Jailbreak လုပ္ေနပါလိမ့္မယ္။ ၿပီးသြားရင္ ေအာက္ကပံုအတိုင္း ျဖစ္သြားပါလိမ့္မယ္။ (မမွန္ရင္ေတာ့ ျပန္စရမွာေပါ့။)

ဖုန္းမွာေတာ့ ေအာက္ကပံုေလးေတြ အဆင့္ဆင့္ေပၚေနပါလိမ့္မယ္။ ကိုယ္က ဘာမွဆက္လုပ္စရာ မလိုေတာ့ပါဘူး။













ေနာက္ဆံုးမွာ ဖုန္းက Restart ျဖစ္သြားၿပီး Cydia နဲ႔ Installer ဆိုတဲ့ icon ၂ ခု အပိုပါလာပါလိမ့္မယ္။ ဒါဆို Jailbreak လုပ္တာၿပီးသြားပါၿပီ။ Cydia store ထဲမွာ Free ေပးထားတဲ့ application ေလးေတြ အမ်ားႀကီးပါပါတယ္။ Vido Recording, Blacklisting, Forward mail စတဲ့ Application ေလးေတြ Free ေပးထားပါတယ္။

iPhone Cracked Applications တင္တဲ့ ကိတ္စကို ကၽြန္ေတာ္ေနာက္ ပို႔စ္တစ္ခုမွာ ထပ္တင္ပါမယ္။
(iPhone Buttons and Interface)
“ လုပ္နည္းေတြကို သင္ေပးတဲ့ ကိုေက်ာ္မ်ိဳးလိွဳင္ ကိုေက်းဇူးပါ။ ”

Tuesday, March 10, 2009

Key Bouncing Problem on Switches and How to Debounce

Bouncing problem ဆိုတာကေတာ့ Embedded application ေတြမွာ ျဖစ္တတ္တဲ့ ကိစၥပါပဲ။ သေဘာကေတာ့ ခလုတ္ (switch/ key) ကို တစ္ခ်က္ႏွိပ္ေပမယ့္ pulse ေတြအမ်ားႀကီး ၀င္သြားတဲ့ ျပသနာပါ။ Keyboard ခလုတ္ ကပ္သြားသလို ျဖစ္တာေပါ့။ အဲဒါကို key bouncing လို႔ ေခၚပါတယ္။ အဲဒီ ျပသနာကို ျပန္ေျဖရွင္းတာကိုေတာ့ debouncing လို႔ေျပာတာေပါ့။

Microcontroller application ေတြမွာ Debounce လုပ္တဲ့နည္း ၃ မ်ိဳးရွိပါတယ္။
၁။ ပထမဆံုး Key (pulse) တစ္ခ်က္ ႏွိပ္တာကိုပဲ အတည္ယူပါ။ ေနာက္ထပ္ ၀င္လာတဲ့ pulse ေတြကို ignore လုပ္ပစ္ပါ။ (ေနာက္ထပ္ Key မလႊတ္မခ်င္း လုပ္ငန္း မၿပီးေသးဘူးလို႔ သတ္မွတ္ၿပီး ဘာမွဆက္မလုပ္ပဲ ရပ္ (nop) ထားပါ)
၂။ တစ္ခ်က္ႏိွပ္ၿပီး ခနေစာင့္ေနပါ။ ( ၁ စကၠန္႔၊ ဒါမွ မဟုတ္ ၀.၅ စကၠန္႔ေပါ့။ Switch ရဲ႕သဘာ၀ေပၚမူတည္ၿပီး ေစာင့္ရတဲ့ အခ်ိန္ကို ညွိပါ)
၃။ ပထမ Key တစ္ခ်က္ႏိွပ္ရင္ အလုပ္လုပ္ၿပီး ဒုတိယ Key တစ္ခ်က္မႏွိပ္ခင္အထိ ေစာင့္ခိုင္းထားပါ။

Bouncing ကို Hardware ေရာ Software ေရာနဲ႔ ထိန္းလို႔ ရပါတယ္။ Software နဲ႔ကေတာ့ ပိုလြယ္ပါတယ္။ Hardware နဲ႔ဆိုရင္ေတာ့ ေအာက္မွာ ျပထားတဲ့ အတုိင္း တပ္ဆင္ၿပီး ထိန္းလို႔ရပါတယ္။ HCF4093 ကေတာ့ အိုင္စီပါ။

Software နဲ႔ဆိုရင္ေတာ့ ေအာက္မွာ ျပထားတဲ့အတိုင္း ေရးလို႔ရပါတယ္။ ဒီ program မွာက active low ကိုယူထားပါတယ္။

//////////////////////////////////////////////////////////////////////
void init_ports(void) {
TRISIO = (1<<5);>// set as output except bit 5 GP5=i/p

//////////////////////////////////////////////////////////////////////
int get_key(void) {

// Is GP5 low - no so exit
if (GPIO & (1<<5))>

delay_ms(1); // wait for key to settle

// Is GP5 high ? yes so exit = false key.
if ( (GPIO & (1<<5))>0 ) return 0; // was a false key so restart

return 1; // key ok so return valid
}
//////////////////////////////////////////////////////////////////////

Monday, February 16, 2009

RTC, Timer And External Oscillator

RTC နဲ႔ TIMER ေတြ အေၾကာင္းကို ကၽြန္ေတာ္ ခဏခဏ ေရးေလ့ရွိပါတယ္။ အခုေျပာျပခ်င္တာက RTC ကို Timer နဲ႔ေရးတဲ့အခါ လိုအပ္တဲ့ လိုအပ္ခ်က္ေတြပါ။ အမ်ားအားျဖင့္ RTC သံုးခ်င္တဲ့အခါ External RTC chip ကိုသံုးေလ့ ရွိၾကပါတယ္။ ဒါေပမယ့္ Hardware overload ကိုေလွ်ာ့ခ်ခ်င္တဲ့ အခါမွာျဖစ္ျဖစ္၊ Boom Price ကိုေလွ်ာ့ခ်င္တဲ့အခါမွာ ျဖစ္ျဖစ္ RTC ကို routine ေရးၿပီးသံုးၾကပါတယ္။

အဲဒီအခါမွာ Timer တစ္ခုကို သံုးၿပီး ေရးရပါတယ္။ ေအာက္မွာ RTC ေရးရတဲ့ Assembly source codeကို ျပထားပါတယ္။ C language အျဖစ္လည္း ေျပာင္းၿပီးေရးလို႔ရပါတယ္။ ဒါေပမယ့္ RTC routine အမ်ားစုကို Assembly ေရးေလ့ရွိပါတယ္။ Instruction cycle ကိုေလွ်ာ့ခ်ခ်င္လို႔ပါ။

အဲလို ေရးတဲ့အခါမွာ Timer ရဲ႕ အခ်ိန္ကို တိက်ေအာင္ External Crystal (Oscillator) တစ္ခုကို ခ်ိတ္ဆက္ေပးရပါတယ္။ ေအာက္မွာ ျပထားတာကေတာ့ Timer1 ကိုသံုးၿပီးေတာ့ RTC routine ကိုေရးတဲ့အခါ လိုအပ္တဲ့ Crystal ခ်ိတ္ဆက္ေပးရတဲ့ ပံုပါ။



Friday, February 6, 2009

PIC18F85J90 Plug-In Module

TQFP (Thin Quad Flat Pack) MCU ေတြနဲ႔ အလုပ္လုပ္တဲ့အခါ။ Mass production (standard PCB လုပ္ၿပီးတဲ့အခါ) မွာေတာ့ သိပ္စဥ္းစားစရာ မလိုေပမယ့္ R & D လုပ္တဲ့အခါမွာေတာ့ တစ္ခ်က္စဥ္းစားရပါတယ္။ အဲဒါက TQFP ေတြက prototype PCB ေပၚမွာ solder လုပ္ဖို႔ အရမ္းခက္ခဲပါတယ္။ ရတယ္ထားဦး ၾကာမယ္ေလ။ အဲဒီေတာ့ သူ႔အတြက္ Daughter board (Plug-In Module) ေတြရွာရပါတယ္။ အဲဒီ Module ေလးေတြက Demo, Evolution Board ေတြမွာတပ္သံုးတာပါ။ ရွိရင္ေတာ့ အိုေကပါတယ္။ မရွိရင္ေတာ့ prototype board မွာပဲရေအာင္ solder လုပ္ရမွာေပါ့။ ဒါကေတာ့ အလုပ္ကေလး တစ္ခုလုပ္ဖို႔ ကၽြန္ေတာ့ အတြက္လိုအပ္တဲ့ PIC18F85J90 PIM ပါ။ သူက I/ O pin ေတြကို ေနာက္ေက်ာမွာ ထုတ္ေပးထားတဲ့အတြက္ က်န္တဲ့ Device ေတြနဲ႔ I/ O pin ေတြကေနတစ္ဆင့္ ဆက္ေပး႐ံုပါပဲ။ ဒီ Module ကေတာ့ LCD Interface အတြက္အဓိကပါ။

သတိထားရမွာက Interface တစ္ခုခ်င္းစီအတြက္ အဓိကထားၿပီး PIM ေတြက ရွိတတ္ပါတယ္။ ၀ယ္ရင္ေတာ့ ေသခ်ာစစ္ၿပီးမွ ၀ယ္သံုးပါ။

7 Segment LED Vs 7 Segment LCD

7 Segment LED နဲ႔ 7 Segment LCD ရဲ႕ ကြာျခားခ်က္ကို ေျပာခ်င္လို႔ပါ။

7 Segment LED Module က LED base ျဖစ္တဲ့အတြက္ General I/O ေတြသံုးၿပီး Display လုပ္လို႔ရပါတယ္။ Multliplex လည္းလုပ္လို႔ရပါတယ္။

LCD မွာေတာ့ ျပႆနာနဲနဲရွိပါတယ္။ LCD မွာ Dynamic နဲ႔ Static ဆိုၿပီး LCD ၂ မ်ိဳးရွိပါတယ္။ Static ကေတာ့ LED နဲ႔ခပ္ဆင္ဆင္ပါ။ ႐ိုး႐ိုး General I/O နဲ႔အလုပ္
လုပ္လို႔ရပါတယ္။ ဒါေပမယ့္ ေစ်းႀကီးပါတယ္။ Dynamic ကေတာ့ Oscillate လုပ္ေပးမွ Display ဆက္တိုက္ေပၚပါတယ္။ ႏို႔မို႔ဆို Dim ျဖစ္ၿပီး တျဖည္းျဖည္းေပ်ာက္သြားမွာပါ။ အဲဒါေၾကာင့္ Dynamic LCD နဲ႔ software ေရးတဲ့အခါ သံုးတဲ့ MCU ကိုသတိထားေရြးပါ။ LCD support လုပ္တဲ့ MCU ကိုေရြးခ်ယ္ရပါတယ္။ ဥပမာ - PIC ဆိုရင္ PIC16F91X, PIC18F85J90 series ေတြက LCD အတြက္ support လုပ္ပါတယ္။

ရွိၿပီးသား LCD Module (ေအာက္ကပံု) ေတြကိုသံုးရင္ေတာ့ အေပၚကကိစၥေတြ ထည့္စဥ္းစားစရာ မလိုပါဘူး။

Short Notes (3)

(1) Electrical အင္ဂ်င္နီယာ အမ်ားစုက Power နဲ႔ Ground ၾကားက Volt ကိုတိုင္းေလ့ရွိၿပီး၊ Electronic အင္ဂ်င္နီယာ အမ်ားစုက Reference နဲ႔ Ground ၾကားက Volt ကိုတိုင္းေလ့ရွိပါတယ္။ သေဘာကေတာ့ P - G က Power ေရာက္မေရာက္အတြက္ျဖစ္ၿပီးေတာ့ R - G ၾကားကေတာ့ Signal ေရာက္မေရာက္ကို တိုင္းတာပါ။ တစ္ခ်ိဳ႕ ပစၥည္းေတြ (ဥပမာ Sensor ေတြက ပါ၀ါေရာက္ေသာ္လည္း Signal မထြက္တာ ျဖစ္ႏိုင္ပါတယ္)။ အဲဒါေၾကာင့္ ၂ မ်ိဳးလံုးတိုင္းၿပီးမွ ေကာက္ခ်က္ခ်ပါ။

Wednesday, January 28, 2009

Eclipse E-Books - 2


Eclipse Rich Client Platform
Official Eclipse 3 FAQs
Professional Eclipse 3, For Java Developers, 2005

Eclipse E-Books - 1


Contributing to Eclipse, 2003
Eclipse Cookbook
Eclipse Distilled

Tuesday, January 27, 2009

JAVA programming (Swing, Graphics) - 2


Software Visualization, 2007
Swing Hacks
SWT A Developers Notebook, 2004
SWT and JFace in Action, 2005

JAVA programming (Swing, Graphics) - 1


Fifthy Rich Clients
Java Swing
Killer Game Programming

Command and Conqure Rad Alert (3)


ဒီ ဂိမ္းေဆာ့ေနလို႔ ပို႔စ္ေတြ ဆက္မတင္ျဖစ္တာပါ။

Tuesday, January 20, 2009

Assembly Language E-Books









Assembly Programming သမားေတြ အတြက္ပါ။

Assembly Language Step-By-Step
Assembly Language

မွတ္ခ်က္ ။ ။ ျမန္မာ့မွ်ားနတ္ေမာင္ ဖိုရမ္(Myanmar Cupid Community Forum) မွ ကူးယူေဖၚျပပါသည္။

DOE Fundamentals Handbook (Electrical Science) Volume 1, 2, 3, 4


Electrical Energy နဲ႔ပါတ္သတ္တဲ့ Handbook အတြဲပါ။

DOE Fundamentals Handbook (Electrical Science) Volume 1.
DOE Fundamentals Handbook (Electrical Science) Volume 2.
DOE Fundamentals Handbook (Electrical Science) Volume 3.
DOE Fundamentals Handbook (Electrical Science) Volume 4.