Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
160
The future of hearing device - 聽覺領域新的機會及挑戰
iamblue
2
300
20180918-Digitime 導入MCU設計 催熟智慧語音辨識應用市場
iamblue
0
270
Pixnet hackthon - workshop
iamblue
0
170
AI 人工智慧學校分享
iamblue
0
470
Javascript -Full stack 物聯網開發
iamblue
0
190
MCS Lite 私有雲物聯網開發
iamblue
0
340
Blockchain for IoT 應用
iamblue
1
290
2017.01.16 Embedded system
iamblue
0
180
Other Decks in Programming
See All in Programming
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
290
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
3.9k
ALB ログから Trace を気合で繋げる技術
fohte
7
880
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
270
App Intentsのビルドプロセスを支える技術
kntkymt
0
230
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
1.1k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
300
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
150
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
120
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
230
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Optimizing for Happiness
mojombo
378
71k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Done Done
chrislema
186
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
Ruling the World: When Life Gets Gamed
codingconduct
0
330
Everyday Curiosity
cassininazir
0
310
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 專案的所有同仁