2009年3月29日 星期日

Beagleboard demo

Demo for the last four days developement.






[beagleboard hacking note] HDMI monitor

I tried to use my LG TV as the monitor of beagleboard for three days, after some turning it works fine with Angstrom distribution. However, not in Android.
I tried to hacked around the driver/video/omap/lcd_omap3beagle.c but without successful. Just cannot see the Android screenshot. :(
After a long try, I almost sure every setting in my kernel is correct.And by checking the log, Android run very well. I thought it may be a problem from my TV, therefore I bring my beagle board to a 3C market and ask for testing a new HDMI monitor. It worked like a charm!! Oh my god, the LG TV waste a lot of my time. :( I bought that monitor without second though immediately.

Finally, I can play Android with my beagleboard. :-)
From beagleboard


But it seem need some other hack to simulate the touch panel events. I am considering write a fake device and sending touch panel event to kernel. (Is that a good idea? I doubt. Any Idea?)

A tiny program read signal from rs232, and translate message to positions and write to a device, and that device triggers input event report of touch panel. XD Hmm.... It's a pure dirty hack. Any suggestion? I don't want to buy another touch panel. I already bought too many stuff. Orz...

murmuring

2009年3月28日 星期六

[beagleboard hacking note] OE references

OE: openembedded a very powerful and complex build system.
beagleboard google code beagleboard info and download center.
Angstrom Distribution a good embedded distribution maintained by Koen, and that is what I am mainly used, and hacking on.

DSS reference a very good document to control the omap fbs


my local.conf of building beagleboard demo image

Filename: local.conf

MACHINE = "beagleboard"
DISTRO = "angstrom-2008.1"
BUILD_ARCH = "x86_64"
#INHERIT += "rm_work"
PARALLEL_MAKE = "-j 3"
BB_NUMBER_THREADS = "1"
TMPDIR = "/home/tick/OE/build/tmp"
BBFILES := "/home/tick/OE/openembedded/recipes/*/*.bb"


> bitbake beagleboard-demo-image
and have fun

[beagleboard hacking note] Bluetooth network

Because of using USB OTG mode, connecting beagleboard with keyboard and mouse. I cannot use usb0 as ethernet card. Therefore, I can use bluetooth dongle to simulate ethernet card.

1. modify the kernel configure, to allow usb bluetooth dongle works.
@@ -455,7 +455,7 @@ CONFIG_BT_HIDP=y
#
# Bluetooth device drivers
#
-# CONFIG_BT_HCIBTUSB is not set
+CONFIG_BT_HCIBTUSB=y
CONFIG_BT_HCIBTSDIO=y
# CONFIG_BT_HCIUART is not set
CONFIG_BT_HCIBCM203X=y

2. After boot, plug the dongle.
determin if bluetooth device detected or not.
> hcitool dev
scan surrounding bluetooth devices
> hcitool scan
If everything goes fine, we can try to connect bluetooth devices (e.g. mouse)

3. make your laptop a network access point (NAP) a very good document you should check
On your laptop with bluetooth RF on
a. turn off /etc/init.d/bluetooth
> /etc/init.d/bluetooth stop
b. modprobe bnep
c. pand -s -r NAP
On beagleboard:
a. finding the baddr of your laptop
> hcitool scan
b.connect to your laptop
>pand -c XX:XX:XX:XX:XX:XX:XX
c. Setup your beagleboard network
> ifconfig bnep0 192.168.0.202
> route add default gw 192.168.0.200
d. On your laptop set, let your laptop becomes an NAT gateway:
> ifconfig bnep0 192.168.0.200
> echo 1 > /proc/sys/net/ipv4/ip_forward
> iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
Enjoy the wireless network :-)

[beagleboard hacking note] USB OTG line

Beagleboard supports USB OTG mode, however beagleboard cannot run OTG mode with normal 5 pin mini USB lines.

It needs to short pin 4 and 5. and so that you can play with OTG mode. Therefore I bought a B type mini usb line and remove the cover and short pin 4 and 5, and I can play with OTG mode happily.

From beagleboard


From beagleboard

BTW, beagleboard can play as client with normal mini usb to USB A line as ethernet card. (USB0)

[beagleboard hacking note] Null modem

The first step of hacking beagleboard. You need to connect to beagleboard first.
.You will need a null modem line to connect beagleboard RS232 port and your PC.

My way is very straight forward: just buy a USB to RS232 line, three thin wires, one 2.5mm 5x2 pin slot, and a RS232 female head.

From beagleboard


Actually you only need to connect three wires, pin2 pin3 and pin5, and remember switch pin 2 and 3. Check here!

After made the line for beagleboard, you can use cu , minicom, or even screen to connect beagleboard. Baud rate is 115200n8.

From beagleboard


Therefore you can access the beagleboard u-boot and console.

2009年3月15日 星期日

Taipei App Engine Sprint 2009

感謝 Ping 的邀請,我們團隊的其中三人昨天去 Google 玩了一整天。
也做了一個小玩具 (我就知道大家會把它拿來找正妹)和大家分享。
享受了腦力激盪、高速開發及實踐想像力的快感。
當然,也吃了過量的 Hogan Doz,和鼎泰豐。
感謝 Google Taipei 舉辦這個好玩的活動。
對我們來說是一次非常好的經驗。

感謝大家的欣賞我們的作品和團員之間的無間合作,很高興得到了比賽的第一名。
特別感謝昨日加入我們的 Denial ,補足了我們在於 Web design 經驗上的不足。
畢竟,一群做 Linux Embedded System 的人突然跑來玩 Web,缺乏相當多的 domain knowledge。

昨天不只一次被問到:你們是如何做到一天之內衝出一個網站的? 你們是如何分工的?

其實這也道出了相當多人的相同問題。
這個問題回家想了很後,其實我的答案還是:團隊合作。

事實上大家都知道團隊合作的重要性,可是不知道如何做到。
其實,我個人認為這是沒有標準答案的。

試著把自已的想法寫下來,供自已分析和與大家分享。

人最重要:
當初決定留在台灣,就是抱著一個願望:在台灣,打造出一個有國際一流水準的軟體團隊。
我個人對於自已的 career path 的許多重大決定也是為了完成這個夢想。
很幸運的,在多年的尋覓之後,我們找到了一些有共同想法的伙伴,一群想追求一流而且真的很努力的 FOSS developer 找到了彼此,組成團隊。

事實上,我們之中的任何一個人,都是可以獨當一面的軟體工程師,技術能力也和歐美 hackers 同步。但我們也相當了解,在現在的軟體世界中,要和世界一流的團隊比,我們每個人的時間體力和專長真的不夠多。要真的做出什麼,我們必需互相信賴。
每一個人的專長都不相同,興趣領域也不同,不過都有所專精。
最重要的,信任和分享是我們相當大的特色。

John 特色擅長於洞悉情勢,有相當驚人的觀察力,對問題提出精確的看法
Tick 擅長結構性的思考,演算法選用,軟體系統架構分析和軟體風險估計及開發
Olv 對於新技術的理解能力一流,對於面對的技術可以快速的確實掌握
Erin 擅長提出破壞性思考,提供大家不同面向的思考和刺激
Jeremy 擅長把任務完成,面對問題可提出相當好的分析和實作
Julian 擅長於感性的思考,為技術帶來來自外太空的創意和美感

昨天是 Olv, Erin 和我三人受邀參加活動。面對這個題目,三人對於 App engine 各自 survey 結束後,我們開了一次的 brain storm meeting。我可以對不同題目所需要的技術可以快速的提供 scope 和風險分析,而 Erin 提出了相當多很有意思的想法和 Idea,Olv 很快速的理解問題的核心並提出更進一步的看法。當 Erin 說出 "依時間搜尋照片" 七個字時,我和 Olv 兩人都突然不說話了,思考著這個 idea 的可能性。害 Erin 以為這個 idea 不好。我和 Olv異口同聲的說出,“不,這個 idea 很棒。” 是的,這個題目的可能性很高,還不知有人做過,資料相依性應該很高,也是我們能力所及的。
再來就依著這個題目開始做了各種可能性的 brain storm。這是一個我們三個人一天可以做完的題目,我列出這個題目及各種可能性所需的所有技術項目,針對各個項目提出可選擇的技術和風險分析,Olv 針對著這題目提出許多更進一步的看法,和可能性。我們最大的風險是,我們沒有 html 和 javascript 的專長。
題目和項目決定後,我提出一個可以從很小很小的結構開始長大的軟體架構提出 API,把所有問題切成小塊小塊的,並立刻把 framework 實作出來。一個小時後, Olv 和 Erin 就可以進入開發,大約在兩個小時內,我們已經進入遞迴開發的階段,我維持軟體架構的彈性,Olv 神快的把每個小問題解掉,並找出我沒有想清楚的地方提出漂亮的修正。
很幸運的,昨天在活動中找到了一位 web 的開發者 Denial 加入我們的開發,對於 html 及javascript 的風險立刻變得相當的低。活動開始後,我們立刻把開發環境架好,開始把針對 web 這方面開始開發。並提出每個項目完成優先順續,和重要性,並把工作分配下去。在開發中,我們快速的交換各自分配到的 topic 所學到的 infomation。提出問題,和分享自已所了解的東西。其中“腦力激盪、分析、尋找答案、提出想法、實作”是不停的約以一個小時為週期巡迴發生。開始兩個多小時後我分配到的部份就做完了,過沒多久 Olv 的部份也實作完成,再來就開始把 nice to have 的部份一一補上,測試,美化以及互相 support。幫忙把沒做完的地方做出來。
因為得到了 Denial 的技術支援,和 Google Jeff 的 information sharing,我們做出來的比
本來估三人個可以做到的部份還要多。還把本來列為 nice to have 的地理資訊部份實作了出來。Olv 在完成工作後,也開始發揮幽默,把我們本來很工程師的形式的網頁改寫成山寨 Google theme。最後兩小時,大家全力衝刺收尾和 javascript 的部份。

這也是我們團隊成員第一次一起參加這種限時的軟體比賽,証明了我們的團隊能力,對於我們團隊有相當大鼓舞作用,也一再的讓我們深深的體會到,雖然每個人的能力都很不錯,如果能團隊運作起來威力是加乘的。

最後,感謝 Google 舉辦這個活動,和大家的欣賞。