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
170
The future of hearing device - 聽覺領域新的機會及挑戰
iamblue
2
300
20180918-Digitime 導入MCU設計 催熟智慧語音辨識應用市場
iamblue
0
280
Pixnet hackthon - workshop
iamblue
0
170
AI 人工智慧學校分享
iamblue
0
470
Javascript -Full stack 物聯網開發
iamblue
0
190
MCS Lite 私有雲物聯網開發
iamblue
0
350
Blockchain for IoT 應用
iamblue
1
300
2017.01.16 Embedded system
iamblue
0
190
Other Decks in Programming
See All in Programming
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
120
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1k
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
520
Intent as Code
shoppingjaws
6
1k
Building an Out-of-Order CPU
latte72
1
790
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
500
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
210
AHC070解法紹介
eijirou
0
120
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
730
SREの越境 / SRE Collaboration
y0hgi
2
250
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
150
Featured
See All Featured
From π to Pie charts
rasagy
1
370
Writing Fast Ruby
sferik
630
63k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Code Review Best Practice
trishagee
74
20k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
430
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
400
YesSQL, Process and Tooling at Scale
rocio
174
15k
What's in a price? How to price your products and services
michaelherold
247
13k
Chasing Engaging Ingredients in Design
codingconduct
0
320
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 專案的所有同仁