The software.

The software for networking (normally called the stack) is complicated. There is a lot going on to make and maintain a network connection. Its not a piece of software you would want to write for your self! Traditionally you would buy this from a software supplier who would charge a lot for it (in the form of a library.) You can still do this, but there are now other ways:

  • Some microprocessor manufacturers will give you the software. They do this as a way of selling more microprocessors.
  • Use Opensource software available free to download from the internet.

The first is a good way to go. The code has been tested by the manufacturer with their hardware and it should work out of the box. A possible disadvantage is that if you need to change to slightly different hardware in the future the software library may not be available.

The Opensource route is more controversial. Can a piece of software written by a disparate group of people spread around the Internet really be any good? The answer seems to be a definite yes.
For instance, the network stack called LWIP was started by one man (Adam Dunkels). It was found to be so useful, that a number of people stared to use it, modify it, improve it and to write applications with it. It now has a thriving community of users and developers. It has been used in a wide range of commercial projects and is being actively maintained and improved. Best of all, there is a mailing list where you can ask questions and expect to get a useful answer within the hour! There are not many commercial companies who can provide that kind of support. The software has been ported (made compatible with) a wide range of hardware and can be tested running on Windows or Linux systems so you can get experience using it.

So what can we do with the network (now we have got it) that will so improve your products?