Yesterday I wrote a short tutorial for NodeMCU board, and one visitor mentioned WiFiMCU board that has a similar form factor as NodeMCU, and while it is more expensive at about $10 on Aliexpress or Ebay, it is also more powerful and provides more I/Os thanks to its EMW3165 module including an STM32 Cortex M4 micro-controller with 128KB RAM, 512KB flash, a Broadcom WiFi module, and 2MB SPI flash.
- MCU – STMicro STM32F411CE Cortex-M4 microcontroller @ 100MHz with 128KB RAM, 512KB flash
- Storage – 2MB SPI flash
- WiFi – Broadcom 802.11 b/g/n RF Chip:
- Modes – Station, Soft AP and Station+Soft AP
- Security – WEP, WPA/WPA2, PSK/Enterprise
- 16.5dBm@11b, 14.5dBm@11g, 13.5dBm@11n
- Receiver sensitivity – -87 dBm
- 2x 15-pin headers with
- 17x GPIO Pin
- 3x UARTs
- 5x ADC, 1x SPI, 1x I2C, 1x USB
- SWD debug interface
- 11x PWM
- Misc – Boot and Reset buttons
- Power Supply – 5V via micro USB port
- Dimensions –
- Certifications – CE, FCC
- Temperature Range – -30 ~ +85 (operating)
- The firmware includes a Lua Interpreter just like NodeMCU firmware, and you can connect to the terminal via the micro USB port @ 115200 8N1. The company, DoIT.am (Doctors of Intelligence and Technology), also provides WiFiMCU Studio debugging and firmware upgrade tool available for Windows only.
Source code, schematics (PDF), and documentation for WiFiMCU are available on Github, and look pretty decent. For example you can check out WiFiMCU tutorial (PDF) in perfectly understandable English. Around 48KB memory is available once the firmware is installed, so you’ll have a bit more memory to play with some features like https, which seems hard (but possible) to implement on ESP8266.
WiFiMCU did have a Kickstarter campaign that failed to reach a paltry $3,000 goal earlier this morning, but it’s probably because of the lack of promotion as I can’t see it discussed on any other blogs. While the development status is not quite as advanced and community as large as for ESP8266 modules, WiFiMCU developers and EMW3165 community are said to work on Espruino (JavaScript for MCU), MicroPython, mbed platform and Arduino IDE support.
You may also obtain more details on WiFiMCU.com website, as well as WiFiMCU sub-forum on EMW3165 community website.
Thanks to Andrew for the tip.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
I didn’t find any further information about the wifi chip. As I want to know if the this module can be programmed by ARM gcc (CooCox or uVision) because i find lua inconvenient.
Are there anyone who knows more about this thing?
Any reason why you’d want this instead of the cheaper and better known one that has an ESP8266 ?
@Abdullbasit
Documentation about EMW3165 is available @ https://github.com/SmartArduino/WiFiMCU/tree/master/Document
Better search and ask on EMW3165 forums though.
ESP8266’s been spreading all around and has a very strong community. So I think no any platform can catch up this movement.
@Marius Cirsta
Because it has more powerful 100 MHz Cortex-M4F MCU with floating-point , more ram and more peripherals like 12-bit/2.4 MSPS ADC, USB, ,3 usart, 3 spi’s , 2 i2c’s , 16-ch. DMA ,a Bunch of advanced timers and many many advanced features
and of course STM32 MCU’s have better support (compilers , debuggers , programmers, …etc).
@Abdullbasit
OK, now it makes sense. Not sure I need all this but it does make sense now
Oh and yeah I think Lua or anything other than C/C++ for embedded is a bad idea so if I get this the first thing I’ll look for is a way to do native programming.
Yes, Lua is extremely inefficient for real-time applications like driving an rgb led matrix panel as I’m struggling for the last few days getting it to work without flickering even in one color , not to mention the full color (using pwm for each color to mix the color you want). and after this experiment i begun to search for an alternative to the ESP8266 so I guess i’m buying on of these nice boards from aliexpress (may be this one: http://www.aliexpress.com/item/WiFiMCU-Wireless-WiFi-Development-Board-Using-Lua-From-EMW3165/32462953770.html ?)
I have to say Broadcom is a HUGE red flag for this this product’s chances as far as hobbyist uptake.
Even ignoring Broadcom, this platform’s flagship firmware, the WifiMCU firmware linked above, requires IAR Embedded Workbench V7.20 to recompile. So $6K entry price to modify or contribute, which is basically the same thing as saying there’s no interest on WifiMCU’s part in building community involvement.
And if you instead want to develop your own firmware from scratch, (e.g. the MicroPython port mentioned) and want to use that Broadcom WiFi, you’ll either need to use the MXChip WNET SDK and binary blob, which is not actually available (but can maybe be ripped out from the WifiMCU firmware repository), or you can use the Broadcom WICED SDK and binary blob, which you aren’t allowed to redistribute or even really talk about. Both options present problems to trying to actually make an open-source project. Someone actually asked in the Broadcom WICED forums about Broadcom reconsidering allowing distribution of the WICED SDK for open-source projects, and Broadcom’s only reply was a tone-deaf legal notice that redistribution is strictly prohibited.
And since it’s a multi-chip solution including a Broadcom chip, there’s no way to remix the PCB like Adafruit and SparkFun and countless kickstarters have done with the ESP8266, because Broadcom doesn’t want to waste their time selling chips to “small” companies like SparkFun or Adafruit, much less a random kickstarter project. So no Broadcom chips for you, everything will have to be based around this single module.
And since it’s Broadcom, you know they’re going to lose interest in their current limited push towards hobbyists via the WICED project after a while, and the next chip after the BCM943362 is going to be back to no-public-information at all, no SDK without an NDA at all, and continuing the usual Broadcom act of no availability at hobbyist-accessible distributors and the sales office not willing to even answer the phone if you’re not ready to place a 100K-unit order TODAY.
The whole thing just has way too many chances to end up being a dead-end, all because of Broadcom.
@John S.
Why are you not optimistic about this ? May be the WifiMCU code can be ported to gcc and I think it’s not that hard .
I think it sucks that this is a two chip solution, the beauty of the ESP8266 is that as far as I understand it’s just a one chip solution which seems to be much more open than this one here so I guess unless you need the features this one offers which I don’t really think I do ….
@Marius Cirsta
Actually the ESP8266 contains an Espressif wifi + xtensa core, connected together via SDIO interface, but they are on the same die.
Broadcom WICED SDK has been ported to EMW3165, which is more “open” than ESP8266 currently containg many binary blobs in the SDK.
> Actually the ESP8266 contains an Espressif wifi + xtensa core, connected together via SDIO interface, but they are on the same die.
Prooflink that it’s connected via SDIO? ESP8266 has a single crystal (hi-res photos are on the internets), so using SDIO is strictly optional there.
> Broadcom WICED SDK has been ported to EMW3165, which is more “open” than ESP8266 currently containg many binary blobs in the SDK.
WICED is not just binary blob, it’s “chip blob”, where all WiFi functionality runs on a separate chip, with idiotic and ridiculous restrictions (also bugs, and security issues – all unfixable by anyone but Broadcom). Whereas what’s inside ESP8266 “binary blobs” is by now well understood – 75% of it are open-source projects like lwIP, axTLS, net80211.
@Paul
I was wrong about the SDIO interface. The single Xtensa core should handles all WiFi related activities.
But like Broadcom, I think Espressif will not public their WiFi stack either. All “un-fixable bugs” will still hold by them. The WiFi firmware in WICED is for BCM43362 WiFi chip, the M4 core is freely to use.
WICED also use open source projects like LwIP or FreeRTOS, SDIO interface source is also available. You can port/implement anything we want on the M4 core and debug it with an ST-Link.
@Marius Cirsta
Yes! This has an ARM core. ARM is the most common microcontroller on the market. MicroPython is written for STM32 ARM cores, which this has. So is Espruino. Writing code for the Xtensa core in the ESP8266 is a little wonky, since it is a far less common core type.
Once the community gets a little momentum behind it, this is going to be the winner. ESP8266 is neat, and cheaper, but having an ARM core will be a major advantage. In the early days of the ESP8266, there was much pain in getting an Xtensa gcc cross compiler built from source and distributed. It is OK now that said compiler is rolled into a board support package for Arduino … but for the WifiMCU, the existing ARM gcc compiler is already there.
Adding arduino support (sans wifi …) for this board would only take a day or so. If no one else does it, I will do it … once I am not an impoverished, guilt-stricken graduate student anymore.
> MicroPython is written for STM32 ARM cores, which this has.
MicroPython is written for everything from microcontrollers and up, and run on any architecture (including Xtensa/ESP8266).
> Writing code for the Xtensa core in the ESP8266 is a little wonky, since it is a far less common core type.
Code is written in C, and the way you write it is about the same for any architecture.
> It is OK now that said compiler is rolled into a board support package for Arduino
Any compiler, for any architecture, are available in GCC source tree. And there’re tools like crosstool-NG to build complete toolchain easily.
> If no one else does it, I will do it … once I am not an impoverished, guilt-stricken graduate student anymore.
Such things are exactly much easier to do for a student with too much free time on hands, so take your chance ;-). Then work, family, kids and other boring things start.
Interesting platform, but development under Linux doesn’t seem supported. I don’t need a full featured IDE, just a way to compile C programs written on a terminal editor such as vi. Is (will) it be doable?