The picoweb is an embedded webserver manufactured by Lightner Engineering. It is based on an Atmel AT90S8515 microcontroller but also includes a ethernet interface and a 16 or 32 kilobit serial eeprom depending on the model. The picoweb is very small, its main claim to fame. About the size of a business card, although thicker. On one end is an RJ-45 connector for the ethernet and on the other there is a power connector (regulated on-board) and a DB-25. The DB-25 is used, through a special cable, either to load firmware or to connect the picoweb to any serial device using the Atmel's built in UART.


The picoweb has 4 memories, or more if you count the ethernet buffers. The Atmel has a 4 kilobyte flash memory,a 512 byte eeprom, and 512 bytes of SRAM. Externally, there is a 16 or 32 kilobyte serial eeprom.

The picoweb has its own firmware which includes a kernel, support for various network protocols (TCP/IP, HTTP, ARP, ICMP, BOOTP, etc), and a pcode interpereter. pcode is a custom assembly-type language in which a developer can write custom cgi routines for the picoweb. Generally, the base firmware goes in the flash memory, web-pages and pcode go in the serial eeprom, the on-board eeprom holds configuration like the ip address, and the sram is used, well, as working memory.

Example Application

Say you have a weather monitoring device that communicates via a serial port and you want to make its information available on the web. Using a picoweb you would create a web-page which would include special tags to call pcode cgis. These cgis would be written to communicate with the weather device and return the information in a readable format. The cgis and web-pages would be loaded onto the picoweb. Thus, your serial device becomes a webserver.

Sounds great, but...

I'm sure some of your heads are swirling with all the cool stuff you could do with one of these. Unfortuantely they're not perfect. It seems apparent that the picoweb was originally designed just as a cool hack and turned into a commercial product afterwards. The documentation is severely lacking and bugs abound. I am currently working, or should be working rather than noding, on a fairly sophisticated application for my employer, and, believe me, it can be frustrating. One warning I will give you now: when reading or writing from seeprom, don't cross and 64-byte boundries in a single operation. Trust me.

For more information see or feel free to /msg me.

Log in or register to write something here or to contact authors.