顯示具有 Works 標籤的文章。 顯示所有文章
顯示具有 Works 標籤的文章。 顯示所有文章

2013年7月24日

[Works][FW][Tool] Toshiba/IBM TCxWave Self-service system


For this case, I'm in charge of two parts of this system, they are head I/O board and control panel board respectively :
1. Front Control Panel : In front of the system, there are two major functions on it, power button and brightness adjustment with capacitor sensor.
     a. Firmware Development
     b. Boot-loader Development
     c. Firmware update scheme designed
     c. Host side Firmware Update Utility Development
     d. Function Evaluation Utility Development
2. VFD/MSR board : This is a module with a LCD on it, and a track for swiping card
     a. Firmware Development
     b. Host side Evaluation Utility

2012年12月27日

[Works][Tool] USB HID Device Enumeration Tool

In order to communicate with HID (Human Interface Device),
We may need some API to help us to call the driver and send and receive data to/from HID


Necessary head file and library file as follow:
1. hidsdi.h / hid.lib
2. hidpi.h
3. setupapi.h / setupapi.lib
4. hidusage.h

The HID enumerate flow with visual C++ as follow:
1. use HidD_GetHidGuid to fetch the GUID of HID
2. use SetupDiGetClassDevs to fetch the HDEVINFO that contain the device list of HID
3. use SetupDiEnumDeviceInterfaces to get the device interface data
4. use SetupDiGetDeviceInterfaceDetail to get the  SP_DEVICE_INTERFACE_DETAIL_DATA
5. Now we can use SP_DEVICE_INTERFACE_DETAIL_DATA to create file use CreateFile function and get a handle
6. Process step 3 - 5 repeatedly until the return value of SetupDiEnumDeviceInterfaces  is false with different  index

2012年12月11日

[Works][FW] Vibration Sensor Use AVR ATmega

簡單的利用AVR上面的ADC功能,便可以做出一個具有震動偵測的系統~
當系統偵測到有震動反應時,LED燈便會點亮並維持200ms後熄滅~
我們所需要的是一個震動感應器,一顆AVR ATmega MCU,再加上電池及一顆LED燈~




我簡單畫了一個電路圖來說明~
當今天MEAS感應到震動,會造成正負兩支針腳有壓差出現~
方便起見我用正級接到AVR的PC4這隻PIN上~
利用AVR的ADC功能去偵測電位差的產生~
當產生電位差時~會發出中斷訊號進入ISR~
在ISR裡~我做了兩件事情~第一件事是去清除interrupt flag~
第二件事情是去設定PD6為low~此時LED就會亮起~
我再另外利用一個Timer去處理LED燈點亮的時間~
最後我只需要一顆電池~便能夠讓MCU以及LED有穩定的供電~

暫存器設置:
ADMUX = 0b11000101
ADCSRA = 0b10101100
ADCSRB = 0b00000000
DIDR0 = 0b00111111

Note:
1. 必須要在開始做conversion前先Enable ADC function, Set ADCSRA |= (1 << ADSC)
2. 在每次中斷時必須去清除Interrupt flag, Set ADCSRA |= (1 << ADIF),如果為Free run模式,即便沒有清除還是會繼續下一次的conversion。 
3. 要注意使用的single ended input不能有pull-up,否則都會detect到0x3FF(意即Vref)
4. 所偵測的電位必須介於GND ~ Vref之間


2011年12月1日

[Works][Tool] Genuine AVbody M650 BIOS Logo Change

First Software project I'm in charge.
The goal of this software is to change BIOS logo.
The way I use is that replace the ffs file in the BIOS via SMI function call.


2011年9月19日

[Works][APP]BLACKBOX 行車資訊紀錄APP介紹

        BLACKBOX是我試做的第一個Android平台的application,核心目標為簡單,可靠簡單就是使用者不需要去做複雜的設定,當程式被執行時便可以順利的開始使用,有別於一般行車紀錄器專注於影片的錄製,BLACKBOX除了整合了許多行車資訊 (EX.時速,位置,錄影,事故等等)以外,最重要的是具備了符合OpenGeo SMS規範的緊急求救簡訊功能。

當行車的過程中,不幸的發生了碰撞的事故,BLACKBOX可以偵測到並且將預先設定的求救簡訊內容發送給指定的聯絡人,達到求救的功能。收到簡訊的人可以藉此得知事故的地點並把握第一時間的救援時機點,例如當事故發生後駕駛者陷入昏迷的情況,更能彰顯此功能的重要性。


沒有複雜的設定以及功能,一切以簡單易用為目標,BLACKBOX的開發目標是提供一個如同飛機黑盒子般的行車資訊紀錄裝置,一上路只要將手機插上電源並且固定在車架上,可以讓你在開車的過程當中更多了一層保障,當開始錄影紀錄的過程中如果有來電,BLACKBOX可以退到背景去執行不會被中斷。

    BLACKBOX支援工研院所提出的OpenGEO SMS格式的簡訊架構,未來也許可以進一步發展成為一套緊急救援的軟體,透過緊急簡訊的發出,消防隊收到簡訊經過分析可以馬上得知事故的發生地點,省去經由第三人發現撥電話求援的時間,把握救援的黃金時期

目前軟體還在開發當中,只能利用工作之餘的時間去寫這個軟體(累阿!!),期望能夠早日順利寫完這個軟體,讓更多人能夠善用科技帶來的方便性,畢竟,擁有了一台全功能的智慧型手機,如果不能完全的發揮他的功能,是一件很可惜的事情!!



2011年9月1日

[Works][EE] Genuine AVbody M650

進公司後以HW Engineer身分參與的第一個案子,負責Daughter Boards Schematic Design.
這台AIO具有許多的特色:

=> Embracing Sound 認證,相較於一般的AIO擁有更好的音質
=> Proximity Sensor,可以利用手勢去觸發聲音亮度調整
=> Light Sensor,可以感應使用者是否離開電腦前面自動關閉螢幕,達到節能的效果