• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Stop wasting time looking for files and revisions. Connect your Gmail, DriveDropbox, and Slack accounts and in less than 2 minutes, Dokkio will automatically organize all your file attachments. Learn more and claim your free account.



Page history last edited by Bjoern Hartmann 10 years, 9 months ago

Wiznet Serial-to-Ethernet Gateway


Bought this from Saelig for $35.88. User Guide (pdf)


The Wiz110 can act as TCP server, TCP client, or it can send UDP packets (not sure if it will receive them as well).  To configure the mode, I downloaded configuration utility from wiznet (Windows only).

(I encountered a strange Office 2007 Error 1907 - some font can't be installed. But in the end the utility works fine after hitting cancel a few times.)


Hardware Setup

Powered with a center-positive barrel jack conected to 5V supply from Arduino. Wiz110 draws 180mA according to datasheet -> Arduino itself needs to be powered with 9V center-positive wall wart (or 9V block battery).

Connected Ethernet port to local switch.


To connect the Wiz110 to Arduino, we need to build a level-shifter circuit from RS-232 (12V) to TTL level (5V). The Maxim MAX202CPE is a standard chip for this task - it needs 4 external 0.1uF caps. In some ways this is redundant since we get TTL RX/TX on board, but those are transformed to RS-232 levels with an on-board MAX232 chip. An alternative would be to grab the TTL Tx/Rx signal directly from the J4 and J5 pads on the underside of the Wiznet's PCB. Connect the pad labeled J4 to the Arduino's Rx, and J5 to the Arduino's Tx.



Here's the final setup:

Arduino with Serial-to-Ethernet Gateway 1


Simple Telnet test (no Arduino involved)

Configured Wiz110 to act as TCP server, port 5000,  and manually set the static IP I assigned in netDB (our network database).

The field "Server IP" (i.e., IP of the remote server it should connect to) not relevant here since the Wiz itself is acting as server.

Connected a serial cable from the Wiz110 to my Vista PC, launched Realterm, and opened the serial port. Then opened a terminal on the computer and telnet into the Wiz with:

telnet xxx.xxx.xxx.xxx 5000

I could now type in telnet and see lines appear in realterm, and vice versa. Telnet usually works in line mode; to send single characters, enter command mode with Ctrl+] and enter mode character.

To see hex values of messages over TCP in telnet, configure as follows:

set inbinary

set netdata

set prettydump


Firmata-over-TCP test (succeeded)

I loaded Firmata 1.0 onto the Arduino. Configured Wiz110 to act as TCP server. Loaded As3Glue library and simpleIO example into Flash CS3. (Had to patch Arduino.as to accept non-localhost server IPs). Both input and output worked. Yay.

OSC-over-UDP test (failed)


I tried to run my arduino_osc firmware on the Arduino and receive UDP OSC messages in OSCulator on my Mac.  The correct bytes are transferred to the PC - the problem is that the chunking of the byte stream into UDP packets is incorrect. There are two failure cases: Either multiple messages get bunched into a single packet or a single message gets split into multiple packets. In either case, PC software that expects each packet to contain a complete message considers these packets garbage. The crucial variable on the WIZ110 is the "data packing time" in the setup utility (the timeout after which buffered bytes are dispatched as a packet). I only managed to get this to work at a serial speed of 9600bps with 20ms timeout in Wiz firmware and 10ms timeout in Arduino firmware, and only for single intermittent button presses. So high-throughput OSC messages (e.g., analog sensor data) will not work. It may simply not be possible to set the provided dials right to guarantee correct mapping from byte stream to packets.


To watch packet size and content, I used:

sudo tcpdumpo -i en1 "udp port 8000"



Comments (0)

You don't have permission to comment on this page.