REVIEW: Sure electronics WiFi web server module

We covered Sure’s WIFI web server module previously. This board has a MRF24WB0MB wireless module and a PIC24FJ256GB106 with USB (host and slave) capabilities. As a bonus the board also has a mini-sd connector for storing webpages. At a first glance the board looks very clean and well designed with a nice silkscreen. Cost was $59.90 plus shipping.

The package also contains a USB cable and an external antenna. The quality of the external antenna is a bit poor, but it will probably perform better than the PCB antenna. Both the usb connector and the mini-sd slot are mounted on the opposite side of the PCB antenna. Sure provides a modification guide for choosing between internal and external antenna. We didn’t try it, but it looks easy with a hot airtool and soldering iron.

After unboxing it is time to power up and see how it performs. We wrote the webserver files to a flash card and powered up the board by plugging in the USB cable. On our board the USB receptacle could barely hold the usb connector, but for prototyping it will serve. We mailed them about the problems we found, and they promised a gift on our next order. We’ve been promised gifts before, and we’re still waiting for it to arrive…

Review continues below.

MOSI --> RxD
MISO --> TxD
GND  --> GND
Vpu  --+
3V3  <-+

A serial UART is used to configure the wireless settings, we used our trusty Bus Pirate.   Don’t get fooled by the silkscreen that says 5v and use this as pullup voltage! After we saw the schematic of this board (just recently added to the Sure Electronics download page) we found out it is input only.

We are using WPA2-phrase as encryption on our accesspoint, which took a while to calculate by the WiFi module. In order to speed thing up,  we found this page to convert it and offload the processor on the WiFi module.

We discovered the unit IP address on the serial console but used the Netbios name to browse its internal pages. The  internal page toggles the 4 LEDs and displays the temperature.

Overall is the board ok, but we like to see the unused pins broken out. Soon we’ll open a topic in our forum to display the progress with this board, where we try to control digital cams through WiFi.

Join the Conversation


  1. Thanks for the review.
    Always it’s better when comes from someone as realiable and expert as DP.

  2. Please let us know further development of this device and when you get the fourm topic going. I want to use this as a part of a robotics platform when the io pins are pulled out better.

    1. If you can’t wait the schematic is available at sure. Together with their code and the latest microchip stack you should have the basic design up and running in no-time. Adding some extra ports are a breeze :)

  3. Would be nice to have the MRF24WB0MB on a shield based board…

    Also, does the MRF24WB0MB TCP/IP stack can be moved to a non PIC processor?

    1. I really doubt if there will ever be a (I guess you meant an arduino) shield based on this board. The microchip stack completly hides the lowlevel interface of the MRF24WBOMA/B board and there is no official description of the internal registers.

      For arduino or other processors there are better alternatives like modules from roving networks which provide a much simpler (documented) interface and onboard TCP/IP stack.

  4. I’m not a fan of the “hidden” registers etc. It seems this is true on many of their products…

    Thank you…

    1. It seems to be true for more wifiboards (other brands). I guess it has to do because they have done certification of the modules and tweaking the registers would break that certification.

      AFAIK are most other product well documented (except some wireless stuff they sell).

  5. Several clicks and page loads later (multiply that by thousands of viewers repeating the same thing)… Regular price is $59.90, on promo it costs $55.70, plus shipping.

  6. My Wifi Development Board arrived that week – It works fine but is of limited use: there are no I/O or other ports available except MCLR/PGD/PGC which seem to be ports for programming the eeprom.
    Via rs232 it is possible to configure the board to access any Wifi access point (even using WPA2). It is neccessary to store the html-code onto a micro SD card BUT if you modify the code you’ll run into troubles if the file increases !? Unfortunately I’m not a specialist to fix these problems as I have no experience with the microchip tcp/ip stack.

    1. I dunno. I only used their code to check if the board is functioning. There are some hardcoded assumptions in the code (i.e. to display the status of the leds) that can get in the way.

      I managed to get the new stack running on this one with only the use of their hardware profile.h and the init functions in the main.c. Was pretty easy once you learn to see through ;)

  7. I ordered the board without really looking at it (and the schematic was not available) and I was shocked when it arrived. I could not believe someone would design a dev board like this without breaking out some ports…. I’m confused, I can turn on few leds via web and I can read temp of the board – period ?! I cannot read anything (no pins taken out from mcu to outside connector ?!?!) nor I can set any output .. the only comm board can do is serial … now this is I believe the most stuped thing I ever spent money on :( … it’s noone’s fault but mine for not watching what I’m purchasing ..

    1. I believe the pins are PPS, so you can do a bit, although you lose the serial debugging.

      I totally agree on the lack of pins (but it is sold as demo board BTW) How was the quality of your board?

      1. quality … donno, do not look too bad but does not look very good neither … usb connector is loose, antenna is “weird”… other then that it is just another pcb .. nothing specially wrong nor good about it …

        as for the wifi part, it is shitty, the ap is 2m from my desk, I had to set my ap to 1Mbps fixed so I can connect, if I let it accept all speeds up to 54Mbps the wifi board connects and after few minutes loses the connection (and I turned off all power savings so that should help but it didn’t) … also I use OPEN/WEP with 128 bit encription, the stupid firmware do not allow you to ented 26 hex digits for the 128 bit key, looks like the firmware bug .. possibly the serial read buffer is not big enough .. so I had to turn off any encription to test the pcb …

        all in all, completely useles piece of hardware, if you want to do something yourself, MRF module is not using some unsolderable bga or some high pitch, it is easy to solder by hand so make your own pcb, add your own mcu and use the firmware … this board is really just a bad investment … I don’t understand why the hack noone tought of exposing the unused pins, more then 40% of pins on this PIC are just not connected to anything :( .. and the board is 6×4.5cm they could use 5x5cm offer from same company itead/seeed use to get board super cheap and would have plenty room to export all the pins to a header ..

      2. I have the newest stack working on the board, and it looks like the networking performs better. I never got the serial programming mode to work, but I don’t need that so I don’t bother.

        I’m currently designing a board using this module, but I think I gonna use a 2.4Ghz ceramic antenna using the cable. (will be in the project logs part soon)

    1. Nick, I don’t think there is any “hack” there … they just used similar syntax to what every unix does since 30 years ago.. it is easy to check out the source

  8. I use Flyport from, it’s much better! More pins available and the free IDE. The SD slot is missing, but it’s smaller

  9. I am looking to get the supplied-as-source-code Stack application working, I have it compiling and programming fine, but as soon as I send a web-request it stops responding to pings and the CLI stops…

    Please can anyone help me with working source? I have the one off sure’s website and its just locking up at the 1st web request… I

    I bought this as a step-up in processor from the one Sure supply to drive their LED panels..! I dupont’d the SPI-like pins om the panels (Data, clk, cs123&4) to the TX-RX CTS lines and managed to drive LED’s using it!!! THe idea is that I want to make it a wifi-web-page-updatable message board!

    Another idea is to try and read a SCART signal (or one of the SVideo signals) using one of the analogue ports (The ICSP connector has at least one of the processor’s analogue port that is attached directly so I can tag on that) and display the “picture read” on an LED, possible?

    please get in touch if I can help or if you can help me please
    Kind regards
    NEAL! :-)

  10. I bought the wifi board from sure electronics. At first it worked well, but after few modifications to the webpage, it stopped working. Now the board is not working the serial communication became extremely slow. I didn’t caused any discharge or short, I inspected the board and it looks fine. Has anyone experienced the same? I don’t have experience with PIC mcu’s. I use to work more with freescale. I’m planning to reprogram the PIC to see if that fixes the problem.
    I was planning to blue wire to the ADC port, currently connected to a thermistor, to measure an external weight sensor.

  11. Have you got ICSP access to the board? Can you get the HEX file re-programmed on it?

    Just to check, I bet you’ve tried different SD card, etc… What lights are flashing from startup? I’ll compare it to mine if it helps… If it worked and then stopped I’d suspect a physical fault, but it is not too old I am sure SURE-Electronics will swap it out, their returns department are excellent…!

    I’ve just managed to compile AND MAKE WORK!!! the sourcecode provided by Sure for this board…

    Its been a right struggle. Funnily enough, on Windows based MPLAB and C30, I got it to compile and program, but the board locked up (no ICMP or Serial CLI) on 1st web request…
    Compiling THE SAME SOURCE CODE on the SAME MACHINE but in a redhat unix VM with MPLABX and C30 gave working results! I can breakpoint areas in the code and alter them, I’m so happy!!!
    This board is going to control a bank of Sure LED Matrix panels as a step up from their supplied-for-the-job PIC16f723 board…! I’m well happy, thanks sure…

  12. I’m happy to hear that you were able to compile the software.
    I tried different sd cards, D2 is flashing once every 2 seconds. All others LEDS are ON.
    I still don’t have the programmer for this chip but as soon as I get it I’ll reprogram it with the hex file provided by sure electronics.
    Thanks for your advice

  13. If the serial port is slow, but legible, the system clock must be running OK for the Baud rate to be OK… When you get your programmer, I think you’ll be OK to be honest.

    My 1st light flashes continuously too (blue tack helps dim this a bit :), and the other ones are under my control on my webpage.
    By setting everything up in the source-code I have got it to connect to my home wifi and get a DHCP address (or static) with no CLI input. I’ve added the Mime Type for Video/WMV to the code trying to get it to serve a WMV file but am struggling still with that, but basically I’m pleased but hopefully I’m going to write a “Directory Browsing” bit into the HTTP server so I’ll be able to put my camera SD card straight in then…

    If I make this card its own Ad-Hoc network, and add #Define DHCPServer I can probably make it really easy to connect to too… I’m well pleased… One of the best toys I’ve had recently. I’ll be especially pleased when I get it to drive a matrix of 64×128 LED’s under web-page control..

    I still dont understand why it works compiled in Linux and not Windows….?
    NEAL :-)

  14. It is a very good dev board, full of features and easy access to pins… It was a pain compiling in MPLAB X but its handling of the DEFINE’s that run the Explorer Board code become much clearer, it grey’s out the Not Defined bits, superb…

    Excellent bit of kit, I love it.. If you can’t get their code to run try it in MPLAB-X and in a unix VM if that fails…!

  15. Using from-scratch code I’ve had it driving LED Dances on Sure’s SPI panels, using what should be the serial interface’s pins redwired to the CLK, SDO and CS lines, bitbanged. Just having the processor on the one task is not the idea though.. The idea is that I make the stack app update the display through a webpage, I’ll have it under control by 2012 I hope.. I can practive making a USB HID interface on it, reading SD cards, reading USB flash-disks etc… If it had the memory chip on the board it would be even better, I’m going to stick one in its place one day, just simple 8pin…
    It is based on a common MicroChip layout, the explorer 16board, and code for that seems to give good ideas of what is going on… I’m glad most of the wifi functions are handled by the chip and hidden from us, it could be a bit tricky otherwise,,,


  16. Guys anyone can suggest me 2 WiFi development boards which can run web server and FTP server and also programmable….

  17. Their samplecode for this doesnt mention FTP in the as a code so you’d have to write it… Its close enough to HTTP to be possible I am sure…
    These are the switches in the TCPIPConfig.h, straight from the MicroChip stackcode

    //#define USE_UART_SHOW
    #define STACK_USE_UART // Application demo using UART for IP address display and stack configuration
    //#define STACK_USE_UART2TCP_BRIDGE // UART to TCP Bridge application example
    #define STACK_USE_ANNOUNCE // Microchip Embedded Ethernet Device Discoverer server/client

    #define STACK_USE_HTTP2_SERVER // New HTTP server with POST, Cookies, Authentication, etc.
    #define STACK_USE_TELNET_SERVER // Telnet server
    //#define STACK_USE_ICMP_SERVER // Ping query and response capability

    //#define STACK_USE_DYNAMICDNS_CLIENT // Dynamic DNS client updater module
    //#define STACK_USE_ICMP_CLIENT // Ping transmission capability
    //#define STACK_USE_SMTP_CLIENT // Simple Mail Transfer Protocol for sending email
    //#define STACK_USE_DNS // Domain Name Service Client for resolving hostname strings to IP addresses

    #define STACK_USE_DHCP_SERVER // Single host DHCP server
    #define STACK_USE_DHCP_CLIENT // Dynamic Host Configuration Protocol client for obtaining IP address and other parameters
    //#define STACK_USE_SNTP_CLIENT // Simple Network Time Protocol for obtaining current date/time from Internet
    //#define STACK_USE_DNS_SERVER // Domain Name Service Server for redirection to the local device
    //#define STACK_USE_REBOOT_SERVER // Module for resetting this PIC remotely. Primarily useful for a Bootloader.
    #define STACK_USE_NBNS // NetBIOS Name Service Server for repsonding to NBNS hostname broadcast queries
    //#define STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE // HTTP Client example in GenericTCPClient.c
    //#define STACK_USE_GENERIC_TCP_SERVER_EXAMPLE // ToUpper server example in GenericTCPServer.c
    //#define STACK_USE_UDP_PERFORMANCE_TEST // Module for testing UDP TX performance characteristics. NOTE: Enabling this will cause a huge amount of UDP broadcast packets to flood your network on the discard port. Use care when enabling this on production networks, especially with VPNs (could tunnel broadcast traffic across a limited bandwidth connection).
    //#define STACK_USE_TCP_PERFORMANCE_TEST // Module for testing TCP TX performance characteristics

    So there is a lot of “changable” bits in there… The telnet server would be a good start towards an FTP box…..

  18. I also bought the wifi board from sure electronics.It worked well, with programming the sure hex file.
    But after compiling it by myself it worked first, but stopped after the 1st web-request. I have MPLAB for windows only.
    Any idea ?


  19. The way I got it to work was in a linux VM running MPLABX!!!

    So, I’d download VMWare Player, Redhat (fedora) and MPLABX, and recon will be OK.. Mine is *beaut*… I’m going to try and tag the serial port’s “direct to processor” (through a resistor) processor ports (TXD, CTS) to try and make it display on a VGA monitor…. Any ideas? Would make an ideal ethernet-ramdac, to be controlled through IP somehow…! :-)

  20. Debugging will always be a pain with the timer interupt structure, there is a document specifically on the subject in MicroChip’s forum area for the ‘mb-cm’ WiFi Module and lots of code that works on it ethernet/wifi wise…

    please i get a problem when try to connect to a router with wpa encryption whereas i am able to connect correctly when the nework is protected with wep encryption or is open. I have used the link above to convert passphrase to key.

    more than this when i deploy this application in my own card (having pic24FJ256GB106) i got the same “404 NOT FOUND” but i have successufully copy the web projet in sd-card

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.