Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Linkit smart 7688 與 Node.js 的邂逅
Search
blue chen
December 11, 2015
Programming
2.6k
14
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Linkit smart 7688 與 Node.js 的邂逅
blue chen
December 11, 2015
More Decks by blue chen
See All by blue chen
RelaJet Caption
iamblue
0
150
The future of hearing device - 聽覺領域新的機會及挑戰
iamblue
2
290
20180918-Digitime 導入MCU設計 催熟智慧語音辨識應用市場
iamblue
0
270
Pixnet hackthon - workshop
iamblue
0
150
AI 人工智慧學校分享
iamblue
0
450
Javascript -Full stack 物聯網開發
iamblue
0
170
MCS Lite 私有雲物聯網開發
iamblue
0
340
Blockchain for IoT 應用
iamblue
1
270
2017.01.16 Embedded system
iamblue
0
160
Other Decks in Programming
See All in Programming
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.1k
ふつうのFeature Flag実践入門
irof
7
4k
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Creating Composable Callables in Contemporary C++
rollbear
0
130
CSC307 Lecture 17
javiergs
PRO
0
320
Oxlintのカスタムルールの現況
syumai
6
1.1k
さぁV100、メモリをお食べ・・・
nilpe
0
140
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
3Dシーンの圧縮
fadis
1
770
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
780
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
190
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.7k
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.8k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Statistics for Hackers
jakevdp
799
230k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
210
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
390
Accessibility Awareness
sabderemane
1
140
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
Rails Girls Zürich Keynote
gr2m
96
14k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
290
Transcript
LinkIt™ Smart 7688 與 Node.js 的邂逅
Blue
點下⾯面的 more
None
None
• 去年這時候⼀一堆超低價硬體專案 • 硬體不賺錢,靠背後的服務,但軟體都還沒做完公司就快倒了 • 就算做出來,終端 maker 量產也是問題 前⾔言
玩物聯網的 Node.js maker 都有共同⼼心聲... Node.js 不在僅是跑在 server 上
希望他可以跑在你我周遭的任何事物上
> npm install express …. ran out of memory
… npm install 耗⽤用極⼤大 memory npm install ⼤大約基礎會耗掉接近 60 mb 的 memory
> opkg install node …. no space … 硬碟只有
16 MB, 只剩 4 mb 可⽤用空間 nodejs 在各平台⼤大約基礎會耗掉 6~8 mb 的 space
• MT7688 • 128MB DDR2 • 32MB Flash • Chip
Antenna (default) • IPEX Ext Antenna • microSD • USB Host • JTAG LinkIt Smart 7688
• MT7688 + ATmega32U4 • 128MB DDR2 • 32MB Flash
• Chip Antenna (default) • IPEX Ext Antenna • microSD • USB Host • JTAG LinkIt Smart 7688 Duo
MT7688& ATMega32U4+ Sensor USB device LinkIt Smart 7688 Duo MT7688&
Sensor USB device LinkIt Smart 7688
MPU ( Microproccess Unit) MCU (MIcrocontroller Unit) 1. ⼯工作時脈幾百MHz
2. MB 等級的 RAM 3. 可以跑完整的 Linux 1. ⼯工作時脈 100MHz 以下 2. KB 等級的 RAM 3. Real-‐time OS : freeRTOS …etc
MT7688& ATMega32U4+ Sensor USB device LinkIt Smart 7688 Duo MT7688&
Sensor USB device LinkIt Smart 7688 MPU, 邏輯端運算 MCU, Real-‐time control
先從⼀一般基本跑得動 javascript 情境來談 OS 想像⼀一下各位現有的 server 如何跑 javascript ?
Linux, openWRT…etc
先從⼀一般基本跑得動 javascript 情境來談 Nodejs OS 硬碟⾄至少要 1X mb, RAM
建議⾄至少要 64 mb 想像⼀一下各位現有的 server 如何跑 javascript ? Linux, openWRT…etc
先從⼀一般基本跑得動 javascript 情境來談 Nodejs OS Applicaton 想像⼀一下各位現有的 server 如何跑
javascript ? 硬碟⾄至少要 1X mb, RAM 建議⾄至少要 64 mb Linux, openWRT…etc
先從⼀一般基本跑得動 javascript 情境來談 Nodejs OS Applicaton 想像⼀一下各位現有的 server 如何跑
javascript ? 規格 架構 硬碟⾄至少要 1X mb, RAM 建議⾄至少要 64 mb Linux, openWRT…etc
先從⼀一般基本跑得動 javascript 情境來談 Nodejs OS Applicaton 想像⼀一下各位現有的 server 如何跑
javascript ? 規格 架構 Linux, openWRT…etc 硬碟⾄至少要 1X mb, RAM 建議⾄至少要 64 mb
MT7688& ATMega32U4+ Sensor USB device LinkIt Smart 7688 Duo MT7688&
Sensor USB device LinkIt Smart 7688 MPU, 邏輯端運算 MCU, Real-‐time control Node.js 跑在這
關於開發版的外型
Power USB device Sensor 拿掉不必要的介⾯面 符合 Node.js ⼯工程師習慣:⽤用到即載⼊入
總結硬體介⾯面上 7688 擁有三個領域的玩法 USB device Sensor Wifi, OS driver/pkg
Node.js需要有其他的軟體架構擴充 對嵌⼊入式開發板⽽而⾔言 1.PWM, GPIO, I2C …. etc 2.跟
MCU 端溝通 3.USB device
Node.js需要有其他的軟體架構擴充 對嵌⼊入式開發板⽽而⾔言 1.PWM, GPIO, I2C …. etc ( libmraa )
2.跟 MCU 端溝通 3.USB device
Node.js需要有其他的軟體架構擴充 對嵌⼊入式開發板⽽而⾔言 1.PWM, GPIO, I2C …. etc ( libmraa )
2.跟 MCU 端溝通 ( node-‐serialport, firmata ) 3.USB device
Node.js需要有其他的軟體架構擴充 對嵌⼊入式開發板⽽而⾔言 1.PWM, GPIO, I2C …. etc ( libmraa )
2.跟 MCU 端溝通 ( node-‐serialport, firmata ) 3.USB device ( node-‐hid )
NodeJS ( v0.12.7 ) node-serialport node-hid Firmata, cylonJS Your
application OpenWRT OS (Wifi, driver) (MCU 溝通) (MCU 溝通) mraa (USB)
USB device Sensor Wifi, OS driver/pkg 全部交給 OpenWRT mraa, node-‐serialport,
firmata node-‐hid
7688 OpenWRT OS 完全開源 1. OpenWRT 創始⼈人之⼀一親⾃自操⼑刀使⽤用最新 15.05 架構製作
2. 全部開源在 github 上 3. Upgrade all lib/pkg version
OpenWRT 重點玩法 1. full stack wifi: AP mode, Station mode
2. wifi Router/gateway 玩法 3. 超級豐富的 package, driver community
1. full stack wifi: AP mode, Station mode 2.
wifi Router/gateway 玩法 3. 超級豐富的 package, driver community OpenWRT 重點玩法
7688 Duo 外網網路孔 外部網路(有線網路) <-‐> 7688 Duo <-‐> 家⽤用裝置
外部網路(無線網路) <-‐> 7688 Duo <-‐> 家⽤用裝置 接外部 Wifi 7688 當
AP 分享網路
1. full stack wifi: AP mode, Station mode 2.
wifi Router/gateway 玩法 3. 超級豐富的 package, driver community OpenWRT 重點玩法
OpenWRT package management > opkg update > opkg install
套件名 我們提供 opkg 清單: http://mirror2.openwrt.org/mt7688_v0.9/packages/
ruby, python, nodejs, lua, perl, php, erlang, javm,
opencv, ffmpeg, bluez … 找不到? 來 contribute 吧!
Demo (mjpg-‐streamer)
Demo (CD-‐player) opkg update opkg install kmod-‐scsi-‐cdrom opkg
install kmod-‐scsi-‐core opkg install kmod-‐scsi-‐generic opkg install kmod-‐fs-‐isofs
NodeJS ( v0.10.27 ) node-serialport node-hid Firmata, cylonJS Your
application OpenWRT OS (Wifi, driver) (MCU 溝通) (MCU 溝通) mraa (USB)
USB device Sensor Wifi, OS driver/pkg 全部交給 OpenWRT mraa, node-‐serialport,
firmata node-‐hid
Demo (keyboard)
USB device Sensor Wifi, OS driver/pkg 全部交給 OpenWRT mraa, node-‐serialport,
firmata node-‐hid
MT7688& ATMega32U4+ Sensor ( mcu, mpu溝通) USB device LinkIt Smart
7688 Duo MT7688& Sensor ( libmraa ) USB device LinkIt Smart 7688
如何讓兩個晶⽚片溝通? Duo 上玩 Arduino Sensor
Arduino sensor MT7688& ATMega32U4+ LinkIt Smart 7688 Duo Digital 0~13
PWM i2C
Arduino sensor MT7688& ATMega32U4+ Linkit Smart 7688 Duo Firmata 把每個通道都打通
Digital 0~13 PWM i2C
相同的 baudrate下 Firmata 把每個通道都打通 Arduino sensor MT7688& ATMega32U4+ Linkit Smart
7688 Duo Digital 0~13 PWM i2C
node-‐serialport 接收對話 Firmata 把每個通道都打通 Digital 0~13 PWM i2C
Arduino sensor MT7688& ATMega32U4+ Linkit Smart 7688 Duo 相同的 baudrate下
MPU Atmega32U4 Application 101010000000 node-‐serialport framework Digital 0~13 PWM
i2C Arduino sensor Firmata 把每個通道都打通 LinkIt Smart 7688 Duo 相同的 baudrate下
Framework 的選擇
firmata 的效能及市場性問題 Duo 上玩 Arduino Sensor
firmata 的效能及市場性的問題 Firmata is not a good pattern MPU Atmega32U4
Application 101010000000 node-‐serialport framework Digital 0~13 PWM i2C Arduino sensor Firmata 把每個通道都打通 LinkIt Smart 7688 Duo 相同的 baudrate下
Firmata is not a good pattern MPU Atmega32U4 Application 101010000000
node-‐serialport framework Digital 0~13 PWM i2C Arduino sensor Firmata 把每個通道都打通 LinkIt Smart 7688 Duo 相同的 baudrate下 1 且所有運算都在 MPU 端 很多 sensor 只有 C 不提供 JS parser 2 firmata 的效能及市場性的問題
None
挑戰⼆二如何讓兩個晶⽚片溝通 ? firmata ? Firmata is not a good pattern
MPU Atmega32U4 Application node-‐serialport framework Digital 0~13 PWM i2C Arduino sensor LinkIt Smart 7688 Duo 相同的 baudrate下 運算在 MCU 端處理好
挑戰⼆二如何讓兩個晶⽚片溝通 ? firmata ? Firmata is not a good pattern
MPU Atmega32U4 Application 這是 blue 的指紋 node-‐serialport framework Digital 0~13 PWM i2C Arduino sensor LinkIt Smart 7688 Duo 相同的 baudrate下 運算在 MCU 端處理好
讓兩顆晶⽚片各司其職
Demo (指紋辨識機)
USB device Sensor Wifi, OS driver/pkg 全部交給 OpenWRT mraa, node-‐serialport,
firmata node-‐hid (指紋辨識機) (web cam, CD-‐player) (keyboard)
mcs.mediatek.com
Demo (遠端坦克⾞車)
Demo (智慧偵測喝⽔水器) 在88上寫 JS 的邏輯運算
⼩小秘訣時間
關於硬碟 ⼩小秘訣時間
關於 npm ⼩小秘訣時間
addon ! Compile engie (v8) libuv node-‐gyp
Nodejs 很重要的三個部分
如何去 compile Node-gyp module? 參考: https://github.com/openwrt/packages/blob/master/lang/node-‐serialport/Makefile 歡迎⼤大家⼀一起貢獻 opkg !
所有 Opkg lib 現存狀況: http://sdwalker.github.io/uscan/
關於 Node.js 對底層 OpenWRT 操作 ⼩小秘訣時間
你不會想要買 A 廠商商品結果看到 MTK 介⾯面吧?
NodeJS ( v0.10.27 ) node-serialport node-hid Firmata, cylonJS Your
application OpenWRT OS (Wifi, driver) (MCU 溝通) (MCU 溝通) mraa (USB)
1.提供 RPC , 可透過打 API 的⽅方式操作 OS 底層介⾯面 2.session/
token 驗證沿⽤用 OpenWRT Luci auth 3.提供給⾃自造商更好客製化⾃自⼰己 webUI/ application • RPC demo: https://github.com/MediaTek-‐Labs/linkit-‐smart-‐7688-‐webUI/blob/master/rpc_demo_files/rpc_demo.html • Linkit smart 7688 WebUI https://github.com/MediaTek-‐Labs/linkit-‐smart-‐7688-‐webUI
操作過程請以燈號為判別主要依據 ⼩小秘訣時間
關於Debug,建議多買 FTDI 及 USB OTG ⼩小秘訣時間
/PEFKTປᆜTVQQPSU 48)8ປಆῘჷ -FWFSBHFBMM"SEVJOPTFOTPS 䌉ࡄ֥≐ڛ↩ⅴ⇼ ൲ᾁӑьၒ ಸၞΆೆਈ㸗ᾲ؍
Make it big with something small
None
None
None
https://www.youtube.com/watch?v=diB0LCikDSw
感謝所有參與 LinkIt smart 7688 專案的所有同仁