Networked, Language Interpreting Device

An embedded Jabber (XMPP) Internet Messenging Client that you can talk to and control things with

NetLID (formerly "ujab") started as a project by 4 Computer Science & Engineering students at the Bucharest Polytechnic to build a small device that one can talk to over the Internets using a Messenger program.

The chosen protocol was XMPP (eXtensible Messanging and Presence Protocol), also known as Jabber. We decided to use it because it is open, standardized in RFCs 3920 and 3921, and has a large user base. It is supported by many clients, such as Pidgin Internet Messenger (which also supports a lot of other popular protocols, so you can use a single program to chat over multiple networks transparently). A lot of very good Jabber-only clients also exist. XMPP-to-* gateways also exist that can translate to other protocols for use with popular messanging clients on proprietary networks.

NetLID is a small box that you plug into an Ethernet switch, assign an IP address via DHCP, and talk to by messenger. You can tell it to control devices you attach to it, such as turning the lights on or flushing the toilet for you, or you can ask it to interpret data from sensors you attach to it, such as asking it what's the temperature at home when you're away at work.

NetLID is a revolutionary step in human-machine interfaces, where one can chat with an embedded computer over the Internet using a standard, familiar interface, instructing it what to do using natural language. It is one step away from actually talking to it using voice (using a protocol such as SIP).

NetLID's practical applications are only limited by one's imagination. It can do building automation and monitoring, "smart home", smart office, make coffee, turn on your home computer from your mobile phone, control and monitor industrial equipment and so on. It does all this through a familiar interface, without needing special software installed on the PC one's working on. You can chat with friends and do useful work using the same program.

The hardware is based on an ATmega microcontroller (AVR architecture), but the firmware should run on any decent microcontroller. It joins the Internet using an ENC28J60. Part of the project was designing and building the board itself. Actually, the first version was reused from another project.

The version 0.2 NetLID, (Revision 4 "microJabber") uses an ATmega128, 32/64KB of external RAM and has 4 TIA/EIA "RS-" 485 ports for controlling smaller, cheaper slave devices. It was intended as an ATmega development board and features lots of connectors and an ISA-like expansion bus.

The version 0.1 NetLID-B (Revision 1 "nanoJabber") uses an ATmega8 with 1KB of internal RAM, features one 232-485 serial port and is smaller than a pack of cigars. The software is not yet capable of running on it, but it should be after certain enhancements are carried out. It can run a custom req-ack protocol over UDP with ease, and should be able to run a stripped-down TCP.

The code will be available once it's cleaned up and decent. It's been tested with simple commands such as "hi" and "led on", and still needs a lot of work. It will be released under the GNU GPL. The hardware design will be released under a similar license as soon as I find the time.