The micro web server project

The focus of this project are devices connected to the PC with a serial interface. Rather often with embedded projects, there are customized graphic user interfaces (GUI) on the PC to control this particular device. While the device evolves over multiple generations, so usually does the GUI. So after a couple of years there are multiple firmware versions and multiple GUI versions. With some luck, the GUIs are downward compatible. With some less luck, customers refuse to keep up to the latest GUI, for reasons of certifying medical devices or similar. Meaning there is some sense in supplying the GUI with the device itself. Our approach here is by having a standard visualizer, nowadays common on multiple platforms in the form of an internet browser. The only missing part is now the ethernet interface as browsers connect to TCP/IP. A doable solution is some kind of middle ware, a software that connects the serial port with a TCP/IP socket on the same computer.

We're aware that faster (32bit) controllers tend to have an ethernet interface together with a web server. Unless the data transfer rate justifies an ethernet interface, we believe a serial interface to be the more cost effective solution.

Elements of the setup

element current solution alternate solution
platform for the visualizing interface tied to usually just one platform, eg a PC, PocketPC, Psion, and such wherever a browser runs, any of PC, MAC, PocketPC, Palm, Smartphone, ...
visualizing interface custom GUI web browser
interface converter not required middleware (software),
converts serial stream to TCP/IP
link serial, USB-serial serial, USB-serial, blue tooth
zigbee planned
firmware on embedded communicates through custom protocol http requests (web server),
custom industrial protocols planned

Since the browser is a standard piece of software, and the middleware doesn't contain any intelligence, the only part to be adapted is the firmware in the embedded device. Servicing http requests instead of a custom protocol, the firmware now contains a web server.

The webserver

The web server has already been successfully implemented on an AVR, a Mega32. Taking in the order of 8k bytes of code, a lot of flash is retained for the the original functionality of the device. A set demo pages has been loaded into the code space as well. The webserver implements a server side scripting language that allows the pages to interact with the hardware. Any number of pages are held in the code space with a kind of read only filesystem. External flash is planned to support user writeable pages. Some computational work can bo offloaded to the browser with Javascript. Adding AJAX (asynchroneous Javascript and XML) to the pages further helps to reduce the required bandwidth and yet provides fast loading pages. A version for the PIC18 family and/or dsPIC is planned.

The middleware

The middleware connectiong the serial port with a TCP/IP port is provided by Ajaxup. A version supporting Bluetooth is working and Zigbee is planned. The implementation of an idustrial protocol between the embedded webserver and the middle ware to enhance the the quality of the data transfer is also planned.

Further down the pipeline

A credit card size retrofit serial webserver is in the queue to provide a web server interface to devices that don't have the capacity to contain the webserver themselves.

projects page

last updated 21.april.07 or perhaps later

Copyright (99,2007) Ing.Büro R.Tschaggelar