Using Router SoCs as WiFi Modules (Yet Again)

8-bit AVRs and 32-bit ARMs do one thing, and one thing well: controlling other electronics and sensors while sipping power. The Internet of Things is upon us and with that comes the need for connecting to WiFi networks. Already, a lot of chips are using repackaged System on Chips to provide an easy way to connect to WiFi, and the USR-WIFI232-T is the latest of the bunch. It’s yet another UART to WiFi bridge, and as [2XOD], it’s pretty easy to connect to an AVR.

The module in question can be had through the usual channels for about $11, shipped straight from China, and the only purpose of this device is to provide a bridge between a serial port and a wireless network. They’re not that powerful, and are only meant for simple tasks,

[2XOD] got his hands on one of these modules and tested them out. They’re actually somewhat interesting, with all the configuration happening over a webpage served from the device. Of course the standard AT commands are available for setting everything up, just like the ESP8266.

With a month of testing, [2XOD] has found this to be a very reliable device, logging temperatures every minute for two weeks. There’s also a breakout board available to make connection easy, and depending on what project you’re building, these could be a reasonable stand-in for some other popular UART -> WiFi chips.

34 thoughts on “Using Router SoCs as WiFi Modules (Yet Again)

  1. “Yun is actually a complete 400mhz system on chip. There is irony in the fact that the powerful system on chip’s only duty is to serve the lowly AVR.”

    I actually disagree with that statement from the linked article…it doesn’t have to be that way. Can be the other way around. You can SSH into the Yun’s router, and do lots of full-on Linux stuff. Install programs from a package manager, write code in Python or whatever. It’s much easier to do IoT stuff with a module that has some standardized tools, like the ability to negotiate and HTTPS connection, process a lot of text quickly, etc.

    These smaller modules look really cool, though…can’t beat the price, if you are ok processing everything inside the microcontroller and don’t need to access secure servers.

    1. The lesson to be taken from this is to design the system to fit the need, not to design the need to fit the system.

      I’ve designed “unbalanced” systems where there was more horsepower in the peripherals than in the Master unit. For example, it’s far easier to get precise timing and responsiveness when you’re counting cycles at the bare metal than to try and get rid of any latency with an OS to contend with.

    1. As far as I know, people are still trying to work out how the ESP8226 actually works. The docs are in Chinese.

      With this module [2XOD] has done the hard work for us and there’s an easy to use web based config settings.

          1. Seems pretty easy to use to me, but the docs are bad. If its helpful to you I can bundle up my notes and put them up on github or hackaday.io- they’re cobbled together from the rest of the internet but should be a reasonable guide on all the various steps.

          2. What a difference six months make. There is a thriving community around the ESP8266. Multiple firmwares to suit any application, notably NodeMCU and port of FreeRTOS. You won’t find *anything* close to these with the usr-wifi232 family of modules.

      1. I recently had the displeasure of encountering a predecessor to this module from the same company and the firmware was crap. The ESP8266 is lightyears ahead of these things both in terms of openness and functionality.

  2. Can someone explain to me how you use these modules to get from RS-232 to HTTP (for example).

    I know HTTP well as I develop web based code. I know the basics only of TCP/IP because I don’t need to know more that that as web servers do it all for you.

    What do i have to send over RS-232 (serial) to request a web page?

    GET 192.168.1.200/ HTTP/1.1 ???

    1. you open a TCP connecting to port 80 on the remote server, then you give it a HTTP command “GET / HTTP/1.0\r\n”./

      If you’re using windows you can basically do the same thing with putty ( other oses’ similar)

      open putty
      put retro.hackaday.com into the name, change the type to telnet, set the port to 80
      change close window to never, set telnet negotiation mode to passive
      then connect and type

      GET / HTTP/1.0
      Host: retro.hackaday.com

      press enter twice.

      this is what it does with the uart to wifi.

      1. Dam! I wish I knew it was that easy earlier.

        I see that it can run as an access point (AP) and station (STN) at the same time. I thought it would just be ad-hock networking.

        I will definitely be getting some of these.

        So I just put into serial –
        GET / HTTP/1.0\r\n
        Host: google.com\r\n
        \r\n

        And presto I have the web page coming back over serial.

        Thanks, Charliex.

        1. No. That text is approximately what you would send over a TCP socket to implement an HTTP request, i.e it is what this device is sending out over the air when making a request.

          The serial protocol to control these kinds of things is a little different because most of the commands necessary are for authenticating against an AP and getting an address+route, but you can find it with 5 minutes of googling. They also implement HTTP for you, I believe.

          Anyway. What I want to know is why we have all these crazy proprietary Chinese chips that implement serial/WiFi bridges; even ST is doing the same thing and selling closed wifi/serial boards with a whole ARM dedicated to the HTTP/TCP/IP/802.11 stack. Why can’t I buy a Cortex-M3 with a MAC on-chip, PHY next to it and link the network stack into my code? All this tail-wagging-the-dog business over RS232/SPI is stupid, why can’t we just write code directly on the dog? ;)

          1. Its pretty much send exactly what i wrote, it’s two AT commands, one to open the TCP port 80, and the other to send the request string. you can even put it in a mode where you can just type in the text and it’ll echo whatever you type/it sends.

            there are lots of cortex-m3’s with built in PHY/MAC’s, ti, wiznet etc

    1. Have you used the hlk-rm04 by chance, i’m looking for such a module and i’ve been waiting on the vocore to arrive, i basically am looking for a module i can put a pentest setup on. this is about the same price too.

  3. Ok, so what is the difference with other WiSoC-based modules (AR9331, RT5350 or MT7620) available for more than 2 years and that you can get down to $7? Most of these can run OpenWRT already, so this looks like old news!

        1. No, I mean by 10 pieces, my comments with link is awaiting moderation, but search for “TopLink” or “V-Solution” on Alibaba and you will find them.
          Don’t just rely on the announced prices/MOQ, if you want to get an idea, ask for a quote.

          My hobby is to port OpenWRT on these, currently a dozen different models :)

  4. I have been using these with a Leo, powered by solar/18650 to read DS18B20s in a grain bin for about 3 months. Reads the temps until my server requests an update, then sleeps for about 90 seconds and repeat.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.