WiFiCMU-v0.9.8-pre release
C C++ HTML Other
Latest commit ceb447a Feb 22, 2016 yichone Update change.log
Permalink
Failed to load latest commit information.
Board/MiCOKit-3165 add mqtt Dec 14, 2015
Bootloader add mqtt Dec 14, 2015
Demos update to 0.9.8 Dec 16, 2015
Document add mqtt Dec 14, 2015
MICO add mqtt Dec 14, 2015
MQTT v0.9.7-pre release Nov 30, 2015
Platform Update to V0.9.5 Sep 5, 2015
Projects/STM32F4xx update to 0.9.8.1 Feb 22, 2016
Support v0.9.7-pre release Nov 30, 2015
include v0.9.7-pre release Nov 30, 2015
lua update to 0.9.8.1 Feb 22, 2016
spiffs WiFiMCU based on EMW3165 Jul 24, 2015
.gitignore WiFiMCU based on EMW3165 Jul 24, 2015
README.md Update README.md Feb 22, 2016
change.log Update change.log Feb 22, 2016

README.md

WiFiMCU

Latest Firmware Download 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 table

GPIO indexAlternative FunctionDiscription
D0GPIO/BOOTWiFiMCU would enter into Bootloader Mode, if D0 goes to LOW
D1GPIO/PWM/ADC
D2GPIO
D3GPIO/PWM
D4GPIO
D5GPIOSWD Flash Programming Pin: swclk
D6GPIOSWD Flash Programming Pin: swdio
D7GPIO
D8GPIO/PWMUart1 rx pin: RX1
D9GPIO/PWMUart1 tx pin: TX1
D10GPIO/PWMI2C interface: SCL
D11GPIO/PWMI2C interface: SDA
D12GPIO/PWM
D13GPIO/PWM/ADC
D14GPIO/PWM
D15GPIO/PWM/ADC
D16GPIO/PWM/ADC
D17GPIO/ADCA LED is connected on WiFiMCU board

Tutorial

How to Use

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

v0.9.8.1 @2016-02-22
  • MQTT module:
    • Fix mqtt publish bug
v0.9.8 @2015-12-16
  • Add string.md5calc/md5 for md5 calculation
v0.9.7 @2015-12-14
  • (under beta version)
  • Mico SDK Lib:
    • Update to SDK 2.4.0
  • WiFi module:
    • Add easylink and airkiss function in wifi module
    • Add sethostname/sethostname function
  • GPIO module:
    • Enhance GPIO interrupt code to avoid errors in its callback function
  • Timer module:
    • Enhance Timer interrupt checking method
  • Uart module:
    • Use pushlstring for uart recieve data to avoid data missing
  • Net module:
    • Improve TCP Client connect callback function
  • MQTT module:
  • 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