活動大綱
時間:12/25 20:30 - 22:00
方式:臉書線上聊天討論
活動主旨:陪伴新手聊 - 如何成為 open hardware maker (LinkIt Smart 7688篇)
發起人:哈爸
主答顧問:
顧問團:賴建宏, 曾吉弘, Yu-Hsian Sun, 陳柏儒, Vincent Hsu, Michael Huang, 黃傑, 郭長祐, Smallp Tsai, Powerbear Wang, Horng-Yih Lai, Polo Wu, Bang Min Shiue, 黃正全, Ozzy Chiu, 黃偉峻
活動內容:翻轉教育,沒有教學,陪你聊天,給你問
聊天 Agenda
聊天規則
進門請禮貌打招呼,離開也請打招呼再離開,線上活動,不介意大家隨時離開
請先報到,如果有正在做東西,可分享的,請跟大家分享
很多人一起聊天,容易混亂,聊完也無法有效收集成果。
所以嘗試用共筆的方式,看看能不能聊出點花樣。
所有地方都是開放大家隨意編輯,請大家多多貢獻與分享,相信來的能人很多,請大家一同幫助 Maker 的新手
覺得這樣聊天對您有幫助,立即邀請您線上好友參與。也可分享 hackpad 資訊,方便大家參與
共筆注意事項
請注意,此為公開的紀錄,可公開分享的才寫在這裡。其他在臉書閒聊就好
為減少可能的爭議,本共筆著作係採用 創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權。
文件生命週期
準備期:會前
線上共筆期:會中
會後整理期:會後一星期
結束封存期:會後一星期之後
顧問準備事項
在當天討論之前,本篇主要是給顧問團提前準備相關的 Q&A, 以及互相認識,聯絡感情之用,希望在當天之前,只有顧問才能看到內容(準備時期,保持點神秘感)。當討論開始,就會開啟權限給所有人可讀寫
顧問白板
此區讓大家認識這次的顧問團,請顧問們自行填寫。建議列上正在做的東西,推薦的臉書討論區等
[ 顧問在這裡分享 ]
哈爸
參與人員報到區
請報到,歡迎提供聯絡方式(臉書,Email),需要保持神秘感,可用綽號
[ 在這裡報到 ]
Maker1
Maker 的玩具
請參與者,有再做東西的,可以分享一下。比較容易找到同好,也容易得到別人的幫助
[ 分享在這裡 ]
參考
問與答
為方便追蹤與解答,發問時請直接在此文件中加入新的提問,之後,可將同一個問題發到聊天區,提醒大家已提問。
本問答為個人淺見,僅提供參考。由於是共筆型態,也歡迎大家持續補充與修正
Q2 : 那麼多種 Maker 可以做,為何要做 Open Hardware Maker?
A2 : 參考以前哈爸給你問
Q3 : 有那麼多 Open Hardware, LinkIt Smart 有什麼特色?
我想特色主要在於這是一個介於單板電腦跟微控制器中間的segment,當然在這個區段也有很多開發版,而LinkIt Smart 7688的主要想法是讓Linux Wi-Fi開發版盡量以符合community的SW stack來使用,所以才會找OpenWrt的社群人士來幫忙,而不像一般的Wi-Fi開發版,大多會自己branch出自己一套SW Stack。
Q5 : 有沒有什麼人在教?
課程滿多的
Q7 : LinkIt Smart 7688 和 7688 Duo 有什麼差別?
Smart 7688上面有MT7688AN,從MT7688AN拉出USB/Ethernet,I2S(Audio),I2C,SPI(跟SPI Flash共用),不支持Analog Input。
而7688 Duo多加了一顆ATMega32U4,拉出I2C/SPI/Analog Input。USB/Ethernet同樣從MT7688AN拉出來。沒有拉出I2S介面。
所以,如果你習於使用Arduino來連接I2C/SPI/ADC,或是你需要一個可以完全獨佔的MCU,Smart 7688 Duo會是比較好的選擇。
如果你有透過I2S播放Audio的需求,或是你並不需要一個獨立的MCU,只想要用Linux做事情,Smart 7688會是比較好的選擇。
Q8: 有什麼配合的周邊?
MTK並沒有做什麼周邊,但Seeed Studio有出三張Breakout Board可以轉接Grove系列的周邊。
Q9: 有什麼特別的應用?
KitchBot打算拿來煮牛排,但還在開發中
LASS 正在上 7688, 請期待
Q13: 問目前有沒有已經完成的專案?
https://hackaday.io/project/8623-lightsaber-stand-for-hackers
Q14 : 因為之前一直強調 7688 有很完善的 node.js 執行環境。想請問是指你們提供比較大的 RAM/FLASH 空間 (相對於目前市面上的 Yun 等等)。使得 node.js 的服務可以在 7688 上有空間發揮。還是說其實你們有針對 node.js 做一些神秘的最佳化?
主要還是在於RAM/Flash空間,另外打通了Node.js一小部分我們覺得比較重要的package在OpenWrt上面的支持(並且讓它回到OpenWrt Trunk)。其餘並沒有什麼外星科技。
Nodejs 不太需要在 linux 上做什麼最佳化,就 follow Node.js 社群架構成長即可。
Q15:7688使用node.js,最小的延遲時間是多長?
請問這邊指的延遲時間是指?
Q15-1:Delay function
目前spec上面並沒有這樣的數字,需要測試才能夠知道。能否推薦一個test case呢?
ds18b20的需求延遲是us等級的,可以試看看
一般講 packet delay 都是 ms 等級的。hardware 的部分都是 local 處理的,跟 node.js 的 delay 沒有關係
了解,如果是說1-wire要使用的話,那麼跟node.js就比較沒有關係,主要是系統的schedule latency,但就經驗來看,Linux上面要穩定驅動1-wire是比較困難的 - 就算是Realtime scheduler也會有搶佔的問題
Q16:7688使用DS18B20溫度感測器,除用使用DUO外,直接上7688的可能性高嗎?
upm 有打算在 0.5 版本支援 (目前是 0.4.1),屆時我們可以看看
Q17:7688使用WS2812燈條,除用使用DUO外,直接上7688的可能性高嗎?
我想應該會跟Galileo初代一樣,會有thread被搶佔時間的問題。1-wire相關的應用還是透過獨佔MCU來做會比較保險些。
Q18:目前要將7688外接WIFI USB卡的話,有沒有推薦的?
可能還是要回到OpenWrt支援哪些Wi-Fi USB dongle來看,不過想請問需要在Wi-Fi開發版上面再插USB Wi-Fi dongle的目的是要用於哪種應用呢?
Q18-1:有沒有大神已經用過確定可以的呢?
基本上市面上 USB wifi adapter 大多都是 Ralink 5350 系列(特別是Edimax公司出的)確定一下就可以了,至於怎麼做可以參考這個 config: https://gist.github.com/iamblue/00f0c5cf6e987f1b7834
Q19:7688外接USB UART(FT232RL)來控制UART,目前可行嗎?還是待擴充?
1) 7688自己就有兩組UART可以使用了
2) USB-Serial device有kmod-usb-serial可以試試看,我沒有試過~
Q20:7688可否接USB BT4.0的裝置呢,目前可行嗎?還是待擴充?
OpenWrt本身有bluetooth的支持,不過就我知道會有一些問題要打通,待有心人士來補完
OpenWrt 可以使用 bluez package .
Q21:7688做為零件包的話,何時可以普及化?
不是很確定這問題要問的是什麼呢? 是說目前供貨的區域嗎?
Q21-1:是的,何時在台灣可以容易買到
iCShop 我昨天下單,已經寄出了
Q22:7688是LINKIT系統少數沒有電池支援的系統,是否有電池系統相關開發板可以擴充呢?
電池可以自己使用穩壓電路即可,不過7688本身是作為Gateway來設計的,功耗並不低,所以在使用時間上面應該會受限。
Q23:7688目前都沒提到的功率方面,如果做為一個感測器節點,是否有測量它的功耗了呢?
Wifi打開7688待機狀態大概200~300mA
wifi打訊號的瞬間(<幾microSeconds)大概500mA
其他scenario Developer’s Guide裡面有:
http://labs.mediatek.com/fileMedia/download/87c801b5-d1e6-4227-9a29-b5421f2955ac#page=13
另外我想補充的是,這測試是經過內部的LDO把5V降成3.3V,所以如果你用比較好一點的Switching power supply,耗電量會再降低
但200~300這個等級,真的只能做gateway,一直插著電
Q24: 有睡眠模式嗎?
就我所知沒有特別的low power / power domain的設計,Chipset本身會在idle的時候降頻,不過不像手持裝置會特別切割出可以獨立關閉的domain,或是由SW命令HW降壓的機制。
Q25: bootloader 有釋放源碼嗎? 是否有保護,可否修改?
Here.
https://github.com/MediaTek-Labs/linkit-smart-7688-uboot
Q26:7688當SERVER的娮,如何做到用192.168的IP或用手機架的網路,然後外網可以連到的方法呢?
這跟7688就比較沒關,而是7688所屬網路的gateway本身如何做到port forwarding或是proxy的功能 - 能否再詳述一下你的網路環境的配置呢?
我有個想法,就是7688架一個SERVER,走到那帶到那,手機開AP模式給他連,然後其他人可以連進來看資料,或是修改資料,像是:有個LED燈牆,大家可以送字串一來顯示之類的
Q27:其實我想自已做一個底板,用I2C接,ARDUINO,然後ARDUINO用原本的IDE來寫,這樣MCU反應可以比較即時,有必要這樣做嗎?因為我聽BLUE說,用7688去接ATMega32U4時,其實沒很即時性,還是DUO的ATMega32U4也可以用ARDUINO環境開發呢?
Duo可以使用Arduino IDE寫程式。
Duo的ATMega32U4上面預載是Arduino bootloader沒錯,可以使用Arduino IDE去program。MT7688AN跟ATMega32U4中間通道是UART,還有幾隻GPIO接著。可以參照Developer’s Guide http://labs.mediatek.com/fileMedia/download/87c801b5-d1e6-4227-9a29-b5421f2955ac#page=68
用I2C就已經是不即時的Protocal了,而且Atmega32U4就是Arduino Leonardo所使用的MCU
我所謂的即時是,ATMega32U4在內部自已處理IO,判斷和決定,而不是所有的資料要通過UART回到7688再決定,就慢了。
你當然可以讓Atmega32U4自己做處裡,就像是有個Leonaodo在板子上一樣,而不用經過7688
只是說中間兩個的通訊要自己來而已
I2C是很慢的.....400khz和1UART的1 mbps比起來真的慢很多,更不˙用說一堆Overhead在那
Atmega32U4的UART可以上1MBPS,不是只有115200喔!
請參閱Atmega32U4的Datasheet,其中Crystal找8Mhz的表格
謝謝,剛剛K完了DATASHEET,我發現走SPI最高可以是High Speed Operation (fXCKmax = fCK/2)
所以SPI可能才是最快的選擇,哈,不過DUO可以用ARDUINO開發,其實沒必要麻煩了
走UART就好,這速度也不慢,如果真的要用到那麼快的速度,那會很吃throughput,而且即時反應應該是MCU端就要處裡那些Data,而不是往後送給7688處裡再丟回去,而且有那麼大量的資料要回傳的話,我會建議直接接上7688
by the way,即時不等於throughput.我是認為先用UART,真的沒有辦法了再換
另外還有占用SPI對Flash的問題..基本上這張板子的接線方式是SPI Slave接到MCU,所以MCU要回傳資料...用SPI會有點麻煩
另外要提醒一下,Linux端做處理,如果是寫在user space都會受到scheduler的影響,就算throughput足夠,latency也可能不合乎即時的需求。建議還是做在MCU端,或是就要直接去寫Linux kernel driver來佔用ISR(但這樣比較容易搞爛系統...)
Q28: 7688的USB Host若要接一個以上的device,是否大部分要接有外接電源hub? 市面上有看到一接三的OTA線能用嗎?
建議要外接電源,我有看過OTG一接三,然後有留一個孔可以從外面灌電源進去的。畢竟7688本身peak就會到接近500mA了
Q29: 7688 同時 AP / Station Mode有時程表嗎?
應該是不支持此功能,請問大概在什麼樣的場景下面使用呢?(不然就是再插一個wi-fi dongle....)
Q30: 如果7688想要像小米MiniAP那樣,透過Wifi連上別的AP,然後自己再當AP分享出來,要怎麼做呢?
目前看到的做法是自已連別的AP,然後再裝一張USB網卡,分享出去。
外差 usb 做法可參考上面的:https://gist.github.com/iamblue/00f0c5cf6e987f1b7834