Olimex PIC-WEB board
This PIC18F67J60 based PIC-WEB rev. B is pretty cool and the Microchip TCP/IP stack is quite easy to use... once it works. I tried creating a project using the latest version of the Microchip C18 compiler (3.37) with the latest version of their application libraries (v2010_10_19, TCP/IP stack v5.31). Cue a bunch of bizarre problems, including but not limited to malformed ARP packets, malformed DHCP packets and microcontroller resets.
All this was instantly fixed, with no other changes to my project, by using an older version of the compiler (3.36) and libraries (TCP/IP stack 5.0). Just reverting one wasn't enough, both had to be reverted to an older version. Such are the thrills of embedded development.
A nice thing about using v5.0 of the TCP/IP stack is that it allows Olimex's patch to be applied. This aids in configuring the hardware (not that difficult to do yourself) but more importantly adds support for the Atmel flash chip on the board, which can be used for web page storage. This is nice as the chip itself doesn't have very solid flash memory: only certified for a minimum of 100 writes with 1000 on average (this is 100,000 for the chips I normally use).
Microchip doesn't provide many older versions of their files, so here are the correct ones for future reference:
- Microchip C18 Compiler v3.36 (Student/Lite edition).
- Microchip TCP/IP stack v5.00.
- Olimex PIC-WEB rev. B patch for TCP/IP stack v5.00. Apply by running it from a cmd.exe shell which you've started as an administrator.
- Stack v5.00 with the above patch applied.
Finally here you can download a bare-bones demo project I made. The standard stack demos are quite involved, which is handy if you want to look up how to add support for certain functionality, but it doesn't show the minimum required setup to get the board online. This project is just that. It configures the stack with only DHCP and ICMP support. In other words, after plugging in the board it'll be given an IP address by your router (determine this using an IP scanner) at which it can be pinged. The project was built with the patched v5.00 stack installed to 'C:\microchip', to use another installation location the project's include file directory will need to be changed and the stack .c files will need to be re-added.
Personally I'm using the board to offer a web interface which can send commands and receive status packets over the chip's UART. This data is exchanged with another chip that in turn runs a DCF clock and controls various house automation tasks such as heating.