Trying to port WifiMCU to TinyCLR

Hello friends,

I’m trying to port TinyCLR to wifimcu dev board (STM32F411CE) which using EMW3165 SoC from MXCHIP, but always fail.

I use @valon_hoti_gmail_com porting calculator to modify deviceselector file.

• Consists of a Cortex-M4 microcontroller and an IEEE 802.1™ b/g/n chip
• Cortex-M4 core at 100MHz (STM32F411CE)
• 2M bytes on-board SPI flash and 512K bytes on-chip flash
• 128K bytes RAM
• Operation voltage:3.0V~3.6V
• Crystal clock I am not sure, 26 Mhz ?

Here is the link to the porting calc. :

1 Like

I don’t see pin PA12, PA11 (D+, D-) are exposed in the breakout (WifiMCU). Should I use the EMW3165 SoC only ?

I use this pins to debug and deploy my app to TinyCLR

no need just PA12-PA11 look at Nucleo F401/F411RE port
you could use PA2-PA3 or default STLINK usb throught SERIAL

and for @mifmasterz

as far i now STM32F411xxx have just 512 kb - with 128 kb
WIFI have other “but is not included” so port for ==> Nucleo F411RE
should work
so you just need to set up your pins properly and crystal clock properly

I have tried to use your port for STM32F411xxx but no luck…

Here I attach the flash map from it’s original bootloader

Do I need to use FEZ Bootloader or just flash the firmware ? I have tried both options, still no luck.

this is detail information about emw3165…

no just you need to flash on address 0x08000000 as bootloader (since TinyCLR include bootloader)
so SPI flash need to be used as storage (like SD CARD - USB FLASH …,with apropriate drivers or need to create them)

ok, I’ll try it once again. Thanks for your help…

there’s you have instruction to flash with ST-LINK too

(on doc i see pin 35 = Pa11 , pin 27 = Pa12 so this could be used as OTG - USB directly)

  • PA11 - link on D-
  • PA12 - link on D+
  • GND - link on GND

but be sure MCU have 5V tolerant otherwise use level converter

you should set on DFU mode to use with those pins

I’m stuck, no detail documentation about the pins for WifiMCU (not EMW3165),

I don’t know which one is PA2 and PA3 in WifiMCU.

pin reference : GitHub - SmartArduino/WiFiMCU: WiFiCMU-v0.9.8-pre release

I have tried several ways:

  1. Create new devices, copy from NUCLEO-F411RE, change SYSTEM_CRYSTAL_CLOCK_HZ to 26 Mhz, build and flash the bin file to 0x08000000

  2. Use NUCLEO-F411RE bin file and flash it to the same address.

  3. Use FEZCLR Bootloader, no result

What else I can do ?

You need to see how to access with st-link
usart1(pa9,pa10)or usart2(pa2,pa3) or usart6 (pa11,pa12)

But how i see on doc as i described above you have access on pa11,pa12 (if those pins are 5v tolerant no need for ttl converter from 5v to 3.3v)so cut an usb (another part you do not use for pc) and use (an ttl converter from 5v to 3.3v)

Usb Green wire connect [to ttl converter (5v pin) another one of ttl converter (3.3v pin)] to pin 27 on mcu

Usb White wire connect [to ttl converter (5v pin) another one of ttl converter (3.3v pin)] to pin 35 on mcu

Usb black wire (
of Gnd pin on ttl converter gnd which you) connect on mcu gnd

Red wire 5v No need to use

To enter on Dfu mode you should need to connect pin boot0 and vcc(3.3v) with an jumper

Thanks @valon_hoti_gmail_com, I successfully run TinyCLR on WifiMCU.

First, I can’t find BOOT0 so I cannot enter DFU mode. So, I try to use ST-LINK V2 to erase and flash the new firmware (.bin). I use the same file with NUCLEO-F411RE, but I change “SYSTEM_CRYSTAL_CLOCK_HZ” to 26 Mhz in deviceselector.h

it has CP210X, so in Visual Studio you should change transport to Serial and select a correct COM port.

and then I try blink code to pin PA4 (LED), and yes… it works like charms… :wink:

Now, we have better language to program WifiMCU…

Thanks GHI Team, great job !!

Note: this is a link to WifiMCU documentation : WiFiMCU/Document at master · SmartArduino/WiFiMCU · GitHub


And do you have access to TCP/IP now too ?

I’m still waiting too… :slight_smile:

One thing you may find easier is to start with the device ports in the dev branch. We’ve made a lot of improvements from what is currently in master. The device selector file should be a lot easier to use, modify, and understand now.


take new sources from [HERE] (GitHub - ghi-electronics/TinyCLR-Ports)
and try to port your board with new latest changes

and also you need to flash the firmware at address 0x8000000. Now, how to use the BCM43362 driver (GitHub - wlljk2002/bcm-wiced-sdk: WICED SDK Releases from Broadcom) ?