(home)

Learning About Arduino and WIZ810MJ

(See also: Netduino)

Get the code

Ensure you have svn installed and then run this command:

$ svn checkout http://svn.mlalonde.net/cral/branches/follower

Then take a look at the README file. (Thanks Hyphenex :-) )

Notes

(See "Progress" below for progress I've made...)

Circuit Cellar Design Competition

Links

Progress (chronological order)

bash-2.05a$ telnet 192.168.2.105 5555
Trying 192.168.2.105...
Connected to 192.168.2.105.
Escape character is '^]'.
w00t> 
delay.s: Assembler messages:
delay.s:2249: Error: symbol `L_US' is already defined
delay.s:2347: Error: symbol `L_US' is already defined
Demo with old-style library: 9986 bytes
Demo with in-progress (non-functional) library: 8442 (Actually, not SPI...)
Demo with in-progress (untested) library: 9762 (SPI)
Demo with in-progress (Arduino compiled SPI) library: 9782

avr-gcc -mmcu=atmega168 -Wall -Os -fsigned-char -combine -c socket.c w5100.c -o wiz810mj.o

avr-strip --strip-debug --strip-unneeded wiz810mj.o # What did I use last time?
http://192.168.2.105/010100110011000111000111010101001
__follower_ib (6:39:03AM): __follower_ib crosses his thumbs....
__follower_ib (6:39:11AM): wait for it...
irc (6:39:34AM): Arduino has joined arduino
arduino (6:39:35AM): Hello, world!
buZz (6:39:41AM): hehe
__follower_ib (6:39:46AM): wooo!!!!!
__follower_ib (6:39:54AM): it actually worked!
buZz (6:40:03AM): \o/
buZz (6:40:06AM): cool
buZz (6:40:09AM): irc from arduino?

Library Design

Some experiments in designing an API for a library: (Aiming to match Arduino HardwareSerial.cpp functionality..?)


Network.setup(ip,mask,gateway,mac); // Hmmm, how about 'NetworkInterface' class ===> 'Network' standard object.

 .setIP(ip)        // default local-link? 169.254... http://www.ietf.org/rfc/rfc3927.txt
 .setMask(mask)    // default 255.255....?
 .setGateway(gw)   // default 0.0.0.0
 .setMAC(mac)      // default ....

Network(ip,mask,gateway,mac);

Network.listen(port); // Return 'Socket'? Clashes with library? 'Connection' instead? (Implies connected though?) 'ServerConnection'/'ClientConnection'? Which is which? 

Socket // + SocketStream?

 .connected() // Or .isConnected()
 .available()
 .read() // .readMatch(...)? or skipBytes(...)? .readUpTo(...)?
 .write()

CommandServer

EchoServer

WebServer

 .requestAvailable() // Or just .available()
 .readRequest() // Or just .read()

Demo video

Arduino with WIZ810MJ demo video (Higher quality--66MB)

code@rancidbacon.com