Skip to content

Circuit Cellar WIZnet Design Contest

WizNetModuleAre you ready for Ether net on your microcontroller? Circuit Cellar Magazine and WIZnet have teamed up for a design contest with $15,000 in prizes. But you win just by entering the contest! Once your contest entry is accepted, they will send you an evaluation module. This is all you need to get your microcontroller connected to the Web. Circuit Cellar Magazine puts together some of the best design competitions and this one is no exception. WIZnet makes single chip TC/IP solutions. These chips basically take care of the Ether net interface for your micro.


WizNetModuleBottomI just received my parts! Pictured above are the WIZ810MJ module and the optional a W5100 chip. The module has the surface mount W5100 installed with all the support parts. You just need to interface via the provided header connectors. One bad thing though, the connectors will not work with bread boards as they are not 0.1″ spacing. The good news is that you can interface using SPI so maybe we don’t have to adapt to many pins.

Magazine Plug:
I want to put in a good word for Circuit Cellar Magazine. They really are one of the best magazines for the electronics hobbyist. I personally subscribe to only three magazines and I cant wait to get my Circuit Cellar each month. The other two are Make and Nuts and Volts. I highly recommend all three. [no I don’t get paid for this :)]

WIZnet Arduino:
I plan to interface the WIZnet module to the Arduino. I may even do a PCB spin for the chip to make a module which is better for the bread board. The module is not expensive, about $12, which should not be a problem but for about $12 we should be able to make a breadboard compatible module. The chip is about $4.50/each. You really only need to add a few discrete parts and a RJ45 Jack with built in magnetics. The RJ45 Jack on the module is labeled “PPT RJ113BZ” but I can not find this part online. Let me know if you have a source.

The neat thing about the WIZnet W5100 is that handles all the Ethernet and TCIP stack concerns. You basically just open a connection to the IP Address you need or open a listening socket and wait for request. The part can be interfaced in three ways, two use an 8-Bit bus mode and require a considerable number of I/O lines. This is ideal for external memory designs and would allow for maximum throughput to the Ethernet interface. I plan to use the serial (SPI) interface feature which minimizes the I/O pin count. The part has large internal TX and RX buffers but I don’t expect to do very high speed transfers.

WIZnet provides driver code for PIC microcontrollers and application notes for such things as Internet Radio using their modules. This would make a great project for the Arduino. I am contemplating ideas for an entry but have not decided yet. If you have any suggestions please make a comment. I know the project will use an Arduino Combatable Modern Devices Bare Bones Board but that is about all I have figured out so far.

Circuit Cellar provides an article called “iEthernet Bootcamp” which introduces the WIZnet W5100. It looks like a walk in the park to get Ethernet going on a microcontroller project using this part.

Have any of you used the W5100 in a project? Do you have a project entry suggestion? Is there any existing code for the Arduino and this chip/module? Any other magazines like Circuit Cellar, Nuts and Volts, or Make you would recommend?

Posted in Contest, Microcontroller, Projects.

49 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. follower says

    Some interesting statistics on this competiton:

    (And some wholesale content reproduction in the other blog posts.)


  2. Daniel says

    Renesas is having a design contest. This is a good opportunity to get some free products. They are having a design contest and are giving away free demo boards for use in contest. You don’t actually have to enter the contest. Their are two free boards.


  3. follower says

    [Hmmm, posting less than signs apparently causes problems… :-/]

    Quick update:

    The “demo of the moment” is four simultaneous echo server connections which is pretty cool–and also something that the Xport can’t do…

    The code required (all up about 8.9KB binary):

    | // This uses the 1-argument constructor of EchoServer and supplies it with 7 for each instance.
    | EchoServer servers[MAX_SOCK_NUM] = {7, 7, 7, 7}; // This will break if MAX_SOCK_NUM changes.
    | while (1) {
    | for (int i=0; i<MAX_SOCK_NUM; i++) {
    | servers[i].next();
    | }
    | }

    or, without using the ‘EchoServer’ class:

    | NetworkConnection conn = Network.listen(7);
    | Serial.println(“Waiting for connection…”);
    | while (!conn.isConnected()) {
    | delay(500);
    | }
    | Serial.println(“Connected…”);
    | while (conn.isConnected()) {
    | if (conn.available()) {
    | conn.print(;
    | }
    | }
    | Serial.println(“”);
    | conn.close();

    More details here:

    @t11s: Yep, an Arduino PCB shield with Ethernet (along with the needed Arduino code to drive it) *would* be nice… πŸ˜‰


  4. follower says

    Quick update:

    The “demo of the moment” is four simultaneous echo server connections which is pretty cool–and also something that the Xport can’t do…

    The code required (all up about 8.9KB binary):

    | // This uses the 1-argument constructor of EchoServer and supplies it with 7 for each instance.
    | EchoServer servers[MAX_SOCK_NUM] = {7, 7, 7, 7}; // This will break if MAX_SOCK_NUM changes.
    | while (1) {
    | for (int i=0; i

  5. Thomas H. says


    I design a new version of the pcb (V1.2) where PB0 is connected to the SPI_EN and PD7 is connected to RESET of the WIZ810MJ module. In the next software i have new subs for WIZ5100_reset and WIZ5100_spien so anybody can control these pins by software.

    The new software i build is complete new, little code, websites in data lines and variables can be used.

    A bascom version for the EVAL Boards V1.0 and V1.2 i will present on my website.

    Now i think i will design a complete new board for atmega128 with some relais, one sd-card slot and so on on it.

    The new board will work with 3,3V so no level shifter would be used πŸ˜‰

    But actually i dont`t find a cheap way to get more WIZ810MJ modules πŸ™

    If anybody can tell me where i can get 2 new modules for a good price in europe please tell me.

  6. t11s says

    Congrats on trying to go Arduino to WizNet! If someone can make an Arduino PCB shield with Ethernet (along with the needed Arduino code to drive it), the world would be a better place!

    I’ve got to admit that I’m a fan of the Lantronix Xports. They are abstract UDP and TCP connections by looking more like a modem with serial in/out and you can even use “ATDT” style commands to “dial up” connections to various IP addresses. My “touching over IP” project used Comfile CUBLOC with a Lantronix Xport:

    However now Lantronix has the Xport Direct which is only $28 in quantity 1, so it is unclear if a Wiznet approach would actually be cheaper.

    On 2mm boards, check out the Schmartboard 2mm board, it is $5 and you can even pick it up at Fry’s:

  7. Ben Zijlstra says


    If you are going to change the layout of your board I suggest you could add a single line from Atmega168 to Wiz810MJ module for the reset. I added a few lines in the Bascom-code to get a real reset while starting up and it works without any problem. I also made a PCB with some extra’s on it and will be entering the Circuit Cellar contest with it….

  8. Thomas H. says

    Hello all together,

    i use a STK200/300 compatble parallel-port programmer without any problem, i think that what Jim says could be the problem.

    A workaround can be to not solder the resistor from SPI_EN to 3,3V. Then you can connect SPI_EN to a pin if the ATEMGA and enable then SPI_EN after programming the ATMEGA.

    In my next pcb revision i will do this workaround by design.

  9. Jim says

    Have you seen this..?

    Seems that the wiznet module drives MISO even when /SCS is high – there’s a workaround detailed.

  10. Frank Zhao says

    Hi Ben,the module is powered and it’s probably messing with the programming signal, I think connecting the module to the Atmega with 10k resistors and connecting the programmer to the Atmega without any resistors should make the programmer work while the module is plugged in.

    |—-\/\/\-[WIZnet Module SCLK]
    | |
    A| |_______[Programmer SCLK]
    M|—-\/\/\-[WIZnet Module MOSI]
    E| |
    G| |_______[Programmer MOSI]
    |—-\/\/\-[WIZnet Module MISO]
    | |
    | |_______[Programmer MISO]

    Hope that helps

    Hi David, these are awesome!

  11. dfowler says


    Any idea why Ben has that problem? Did you intend for the AVR to be programmed in place?

  12. Ben Zijlstra says

    Have build the WIZ810MJ-board from Thomas and it is working fine. Also the software Thomas has made is running well. Got a minor problem with my programmer, have to take out the Atmega168 and program it in another board. My programmer (STK200 – compatible) doesn’t recognize the Atmel when connected to the WIZ810MJ module.

  13. dfowler says

    @Thomas H.
    Your WizNet board looks great. You have several interesting board designs there.

  14. Thomas H. says

    I build a new webpage with information and sourcecode for my WIZ810MJ-ATMEGA168 EVAL Board, you can find it here ->

  15. s fisher says

    There’s an adapter board on eBay. Item number 260183521149 or search for wiz810mj.

  16. follower says

    This was mentioned in the Arduino forums:

  17. follower says

    Just noticed a breakout/adapter PCB design on the competition forums:


  18. Ben Zijlstra says

    Hi XSmurf. I have seen a little error on your board on
    For VCC, and the other sides of the LED’s you are using pin 22. This pin is Data6. Pin 24 is VCC.

    Do I see it correct?

    Ben Zijlstra

  19. s fisher says

    Here’s the datasheet provided by PPT for the RJ113BZ. It is in the form of an Excel spreadsheet.

    PPT is at

  20. follower says

    Ok, I’ve now updated the page:

    with library binaries and demo source for echo server. (Version 0.0.3)

    It’s all rough at present but should be enough to get you started.

    I’d be interested in feedback from anyone who tries it.


  21. follower says

    …and one minor driver fix later it’s receiving happy as Larry too… Will update page later… πŸ™‚ But it’s now functioning as a echo/loopback server… Yay. πŸ˜€

  22. Thomas H. says


    Yes i mean the W5100 Datasheet, i think that if it is correct to pull the SPI_EN down to GND by using a 4K7 resistor for diabling the SPI mode it must be correct to use the 4K7 resistor to pull the pin up to 3,3V for enabling the SPI mode πŸ˜‰

    I think you go right by unconnect the reset pin and make the reset only by software. So i disconnect it in the pcb.

    For the future i will spend an jumper so that anybody can
    connect the reset pin to the switch if wanted.

    I now send the new layout and schematic to david for use
    the pcd in the give away program.

    Thanks to all who helped me.

  23. follower says

    Oh, I also started a thread on the Arduino boards about all this:

  24. follower says

    Which datasheet are you referring to? The W5100 or the WIZ810MJ? The W5100 datasheet seems to only state SPI_EN should be pulled high via an unspecified value resistor. The WIZ810MJ only seems to refer to a “unmounted” 4.7K pulldown resistor to ground in the schematic. But that schematic also shows SPI_EN being connected to the S “select” input on the multiplexer ( So overall, I’m somewhat confused–but I’ve not got the multi-meter out yet. πŸ™‚

    I had wondered myself about resetting both chips at once (as I’ve encountered issues with a similar situation before) but from further reading of datasheets and Q&A it seems that for SPI WIZnet suggest only doing a software-reset and not using /RESET at all. It’s also worth noting that the reset only “resets the registers” not the memory buffers.

    I’ve got data being sent *from* the module seemingly okay using the ported driver. I can *receive* data okay if I bypass the driver routines but I only get one character successfully if I use the driver–the rest is garbage. This could well be because it’s late and I’m missing something obvious. πŸ™‚ I’ve updated the usual page with code (telnet-able psuedo-“echo” server) and more details of the saga it was to get to this point!

  25. Thomas H. says


    Seen in the Datasheet i now connect SPI_EN by a 4K7 resistor
    to 3,3V, that seems to be correct.

    You know if it is right to reset the ATMEGA and the WIZ810MJ
    together by using one switch against GND connected to the two
    reset pins?

    Nornmaly it must be correct.

  26. follower says


    Just as a side note, it’s xSmurf’s PCB design, not mine–I’m just using jumpers currently. πŸ™‚

    Also, PCB design & give-away sounds cool. πŸ™‚


    I have nothing connected to SPI_EN and it seems to work okay. I believe xSmurf has connected SPI_EN high.

    From memory xSmurf also required a level shifter to get the output from the WIZ810MJ–I think he’s using a Arduino NG.

    I didn’t seem to need the level shifting with the Arduino Deci I’m using–note also that the Deci can supply the 3.3V directly so a regulator is unnecessary in that case. (I think xSmurf used a resistor network to get 3.3V from his 5V supply.)

    I’m yet to get back to the driver so still no data transfer yet…

  27. Thomas H. says


    I send you an email with the eagle board file of the WIZnet
    Board and specialy i send you an eagle board file for an
    board for use with enc28j60, USB, SD-Card. The last board is good as prototype board for enc28j60. Ive you can use it for the give away programm it will be fine πŸ˜‰

  28. dfowler says

    David of uCHobby here…
    I will have the PCB’s made on condition that I can give them away as part of the uCHobby give away program. I will order and pay for the PCBs and send the originator several of the boards, lets say 1/4 of the ones I receive in the first shipment. If you want a specific number of them just let me know. I may reorder the boards if they turn out to be popular and the creator will always be credited.

    The first step here will be to confirm your PCB design with a prototype. It would really suck to order a PCB and find that it did not work. Then generate the Gerbers and check them over in a viewer, make sure they are correct. Finally send me ( all the design files and Gerbers. I have Eagle, if you don’t have Eagle or don’t want to supply all the files, at least supply PDF files of the schematic, a text or csv file of the BOM, preferably an Octopart parts list with public link, and the Gerber files. Also include any conditions you have for reuse of the PCBs and some statement that you approve of uCHobby’s use of your design. Please use “uCHobby PCB Submission” in the subject line of the email.

    Assuming everything is correct and acceptable, uCHobby will order the PCB’s and send you several, up to 1/4 of the boards received. I would like to combine Thomas’s and Follower’s PCBs on one order. The cost to uCHobby would be about $130 and we would get a fairly even spread of 144 square inches of PCB made. That would likely be a total of about 30 boards, 15 of each. I would send 3 of each to the creators, keep 2 for myself, and give the rest away, about 10 of each, as part of the uCHobby give away program.

    Does that seem fair? I might make this a regular offer for hobbyist at uCHobby. Of course the PCB would have to be of interest to the electronics hobby community. I am dreaming up a new kind of give away program… What do you think?

  29. Thomas H. says

    Hello again,
    in my last post i mean /SPI_EN not /SCS !

  30. Thomas H. says

    Hello all together,
    is it O.K. to connect /SCS to +3,3V every time for use
    SPI mode? I build a little PCB with Atmega 168 and the
    WIZ810MJ and i read different connections off /SCS.

    IΓ m looking for anybody who want produce the board for
    other people, the pcb is 2-layer with 3,3V Low Drop
    Regulator and the WIZ810MJ can directly connected to
    the pcb.

    The .brd File will be posted if i know what to do with the
    /SCS PIN πŸ˜‰

  31. follower says

    (Oh, and xSmurf got my other code running on his WIZ810MJ PCB with the help of a level shifter.)

  32. follower says

    I’ve ported to some degree the WIZnet W5100 driver source so it runs on the Arduino/Atmega168 combo with ~5KB spare in its current state. Unfortunately while I can create a listening socket it doesn’t seem to send/receive data but it does detect connections and disconnections.

    The code is on the usual page. πŸ™‚

  33. follower says

    Updated with ping demo video and code.

  34. follower says

    Writing registers, configuration for networking and responding to pings work! Plan to upload code when i return.

  35. follower says

    I’ve successfully read register values via SPI without having SPI_EN connected. I only had SCLK, /SCS, MOSI, MISO, /RESET, VCC and GND connections.

    Off to try writing and pinging… πŸ™‚

  36. xSmurf says

    Fair enough. I’ve remade the PCB in bought SMD and through-hole version. Not having any SMD parts at hand (or a heat gun to salvage some) I’ll be trying the through board again later today. Hopefully I’ll be able to dig up some better paper. I’ll keep you guys posted πŸ™‚

  37. follower says

    I’ve been taking some notes on getting the WIZnet module to run with the Arduino here:

    My progress so far has been to connect the module to the Deci’s 3.3V source and manually trigger the /RESET line to get the module to light both the LEDs when a cable is inserted.

    I’m currently using some 1×2 2mm pin pitch jumpers from a junked floppy drive and breadboard jumper wire to connect to the pins. (And a couple of 1×2 and 1×3 2mm cables from a junked CD-ROM drive but they don’t fit across from each other as well as the jumpers.) (Side note: 2.5″ IDE drive cables might be 2mm pitch…)

    Until there’s a PCB I would suggest finding some 2mm pitch header connectors and soldering directly to those–I’d be inclined to have someone verify the pins needed either by testing the PCB or the solder direct-to-headers approach.

    Unfortunately sleep calls now so I can’t see how easily SPI will be to get working… πŸ™

  38. dfowler says

    If you will test and make sure your board layout will do the trick then I will order and pay for the boards. I think we can get 30 or so for about $100 and it will take about 3 weeks. Once the boards come in, I would send you 10 and give the rest away here at uCHobby. What do you say to that?

  39. xSmurf says

    Woops the image was stripped off:

  40. xSmurf says

    Ok, so as Follower pointed out I was wrong, SPI_E it pulled to Vcc with a 4.7k resistor. Also, the reset pin is probably a good idea to pull out.

    I’ve rigged up the following PCB. I tried making one with the toner method but it didn’t come out too good. My paper’s just not that great (magazine paper) and 48 straight holes is pretty hard without a drill press and using cheap diamond bits :p. More over the first version had JP2 a little off to the right. I’m not sure I want to try again though :/ We’ll see. It’s a small PCB, maybe we could pitch in to make a batch? How much would that cost?

    (as usual I’m always on the #arduino channel)

  41. xSmurf says

    Did you ever make a breakout PCB? I’d be really interested, there’s not enough solder for the pump to suck the solder so I can de-solder the headers… As far as I can see only 6 pins are needed (SPI_E) can be enabled permanently on the pcb. Does eagle have compatible headers in the default library?

  42. xSmurf says

    w00t I’ve just received mine πŸ˜€

  43. Ben Zijlstra says

    The next lines are used in SPI-mode.

    PWR, GND, CLK, MOSI, MISO, CS and INT. SPI_EN should be high.

    Shouldn’t be that difficult (the hardware that is… πŸ˜‰

    Have fun
    Ben Zijlstra

  44. Frank Zhao says

    Yes! I got an email from them and I’m getting a sample.

  45. pK says

    Seems to be a good new toy to play and have lot of fun πŸ™‚

  46. dfowler says


    I dont yet have experience with the part but I do think you can get buy with jus the SPI and an interrupt pin. Maybe even without the interrupt pin.

  47. Ben Zijlstra says

    Will be a nice contest. Will make a board for the WIZ810MJ module with a Atmega128 on it. Programming language Bascom-AVR. I am wondering if it is possible to just use the SPI-pins and perhaps an interrupt. May the best man win!!!

    Ben Zijlstra

  48. xSmurf says

    (I only mentioned PPPoE as an illustration of my amazement in front of completeness of the features!)

    As for the entry… gosh what to choose, weather station, home automation, how about a device that can pool the network to check for failures, remote chat client? Ethernet “voip” intercom? Or the mendatory ethernet enabled RGB lamp? What about the bootloader? πŸ˜€

  49. xSmurf says

    Wow did I read well or this chip can do PPPoE 0.o That’s incredible! So long ENC28J60 it seems πŸ˜‰ That’s very cool. I can’t wait to see what you’re going to use it for!