WiFiMCU
Latest Firmware Download
WiFiMCU is developed based on EMW3165 module produced by MXCHIP.INC. A Lua interpreter is builded inside with hardware support. A light weight file system and socket protocols can help to realize IoT development easily and quickly. Basically, you can load Lua scripts on your device and then run it on board with nothing more than a terminal connection.
Enjoy Programming!
; . . .___ . . __ . . ,--. ["] | |o[__ o|\/|/ `| | ,<-|__oo| /[_]\ |/\||| || |\__.|__| / |// | ] [ /o|__| [www.wifimcu.com@2015]
#Overview
- Based on Lua 5.1.4 (package, string, table, math modules)
- Build-in modules: mcu,gpio, timer, wifi, net, file, pwm, uart, adc, spi, i2c, bit
- Modules to be builded: 1-wire, bit, mqtt...
- Integer version provided
Free memory >48k bytes
##Highlights
#####Cortex-M4 microcotroller
STM32F411CE
- 100MHz,Cortex-M4 core
- 2M bytes of SPI flash and 512K bytes of on-chip flash
- 128K bytes of RAM
- Operation Temperature:-30℃ ~ +85℃
#####Multi-Interface
- 18 GPIO Pins
- 2 UARTs
- ADC(5)/SPI(1)/I2C(1)/USB(1)
- SWD debug interface
- 11 PWMs
#####Broadcom IEEE 802.11 b/g/n RF Chip
- Supports 802.11 b/g/n
- WEP,WPA/WPA2,PSK/Enterprise
- 16.5dBm@11b,14.5dBm@11g,13.5dBm@11n
- Receiver sensitivity:-87 dBm
- Station,Soft AP and Station+Soft AP
- CE, FCC suitable
GPIO index | Alternative Function | Discription |
---|---|---|
D0 | GPIO/BOOT | WiFiMCU would enter into Bootloader Mode, if D0 goes to LOW |
D1 | GPIO/PWM/ADC | |
D2 | GPIO | |
D3 | GPIO/PWM | |
D4 | GPIO | |
D5 | GPIO | SWD Flash Programming Pin: swclk |
D6 | GPIO | SWD Flash Programming Pin: swdio |
D7 | GPIO | |
D8 | GPIO/PWM | Uart1 rx pin: RX1 |
D9 | GPIO/PWM | Uart1 tx pin: TX1 |
D10 | GPIO/PWM | I2C interface: SCL |
D11 | GPIO/PWM | I2C interface: SDA |
D12 | GPIO/PWM | |
D13 | GPIO/PWM/ADC | |
D14 | GPIO/PWM | |
D15 | GPIO/PWM/ADC | |
D16 | GPIO/PWM/ADC | |
D17 | GPIO/ADC | A LED is connected on WiFiMCU board |
Tutorial
###How to Use
- Using MCU Module
- Using GPIO Module
- Using TIMER Module
- Using WIFI Module
- Using NET Module
- Using FILE Module
- Using PWM Module
- Using ADC Module
- Using UART Module
###Reference
WiFiMCU Function Refecence
WiFiMCU Tutorial
EMW3165 Datasheet(English)
EMW3165 Datasheet(Chinese)
WiFiMCU SCH
EMW3165 Datasheet(English)
EMW3165 Datasheet(Chinese)
WiFiMCU SCH
###Resource
Home site:www.wifimcu.com
discussion:www.emw3165.com
http://bbs.smartarduino.com
http://bbs.doit.am
###The IDE tool for wifimcu can be found here
WiFiMCU STUDIO(supported by WiFiMCU Team)
WMC WiFiMCU CLI Article(Thanks for Zpeters' contribution)
#Program demos ####Setup a AP
cfg={ssid='Doit_3165',pwd=''}
wifi.startap(cfg)
####WebServer
skt = net.new(net.TCP,net.SERVER)
net.on(skt,"accept",function(clt,ip,port)
print("accept ip:"..ip.." port:"..port.." clt:"..clt)
net.send(clt,[[HTTP/1.1 200 OK
Server: WiFiMCU
Content-Type:text/html
Content-Length: 28
Connection: close
<h1>Welcome to WiFiMCU!</h1>]])
end)
net.start(skt,80)
####Connect Wireless Router
print(wifi.sta.getip()) --check ip
0.0.0.0
cfg={ssid="Doit",pwd="123456789"} wifi.startsta(cfg) --sta mode connect
print(wifi.sta.getip()) --check ip
0.0.0.0
print(wifi.sta.getip()) --check ip
192.168.1.116
####Connect Remote Server
clt = net.new(net.TCP,net.CLIENT)
net.on(clt,"dnsfound",function(clt,ip) print("dnsfound clt:"..clt.." ip:"..ip) end)
net.on(clt,"connect",function(clt) print("connect:clt:"..clt) end)
net.on(clt,"disconnect",function(clt) print("disconnect:clt:"..clt) end)
net.on(clt,"receive",function(clt,data) print("receive:clt:"..clt.."data:"..data) end)
net.start(clt,6579,"115.29.109.104")
####GPIO Operation
gpio.mode(17,gpio.OUTPUT)
gpio.toggle(17)
gpio.write(17,gpio.HIGH)
gpio.write(17,gpio.LOW)
gpio.mode(17,gpio.INPUT)
=gpio.read(17)
1
=gpio.read(17)
0
####Timer
function tmr_cb() print('tmr1 is called') end
tmr.start(1,1000,tmr_cb)
tmr1 is called
tmr1 is called
####File Operation
file.open ("test.lua","w+")
file.write("this is a test")
file.close()
file.open ("test.lua","r")
data=file.read()
print(data)
this is a test
file.close()
####Auto start
file.open ("init.lua","w+")
file.write("print('Hello WiFiMCU!')")
file.close()
mcu.reboot()
####Acknowledgements
Thanks to eLua project,NodeMCU project,spiffs file system
####Doctors of Intelligence & Technology
DoIT website
WiFiMCU Dev Kit
####Version log
- MQTT module:
- Fix mqtt publish bug
- Fix mqtt publish bug
- Add string.md5calc/md5 for md5 calculation
- (under beta version)
- Mico SDK Lib:
- Update to SDK 2.4.0
- Update to SDK 2.4.0
- WiFi module:
- Add easylink and airkiss function in wifi module
- Add sethostname/sethostname function
- Add easylink and airkiss function in wifi module
- GPIO module:
- Enhance GPIO interrupt code to avoid errors in its callback function
- Enhance GPIO interrupt code to avoid errors in its callback function
- Timer module:
- Enhance Timer interrupt checking method
- Enhance Timer interrupt checking method
- Uart module:
- Use pushlstring for uart recieve data to avoid data missing
- Use pushlstring for uart recieve data to avoid data missing
- Net module:
- Improve TCP Client connect callback function
- Improve TCP Client connect callback function
- MQTT module:
- Use Mico mqtt lib(V0.1.2)
- Demo:https://github.com/SmartArduino/WiFiMCU/tree/master/Demos/12%20mqtt
- Use Mico mqtt lib(V0.1.2)
- Others:
- Rearrangement the source code files and folders
- Improve wifimcu upload function, LUA_MAXINPUT 128->512
- Support utf-8 charset
- Optimize WiFiMCU STUDIO upload file function
- Set init.lua or init.lc to start up
- Fix dofile bug in tmr/gpio
- Fix bootloader gpio initize bug,add compiling bootloader switch for MicoKit
More details see change.log
- Rearrangement the source code files and folders