One day it hit me. I wanted to connect my coffee-machine to the internet. and my television…and my desk light… There are different approaches. One of the most stupid ones was to stuff a relais-board into my pc and….greeaaat idea..absolutely….”sorry, I cannot cook coffee because I first have to reboot my computer….” nope.
One possible solution can be found at beyondlogic but to me this approach is a little bit too professional. The most obvious solution to me was taking a so called ‘printserver’. These thingies can turn an ordinary printer (with a parallel port only) into a printer with a network connector. The good thing is they are approximately as big as a pack of cigarettes. Do we need more?
The only thing missing is the circuit that will act as a printer towards the printserver. With a little research (and lots of trial-and-error) this circuit evolved. It mainly consists of a 74ls373 (shift register, parallel i/o) and a 74ls00 (nand-gate). The circuit, the software, the description and a few pictures can be downloaded here (zip, 4,8 MB).
The power supply comes directly from the printserver. Hotglue doesn’t come with style but who cares – it works. The software is rather simple visual basic stuff. Basically the value for the output byte of the lpt port is sent to the network address of the printserver. Nice to see when things come up that easy.
B.t.w: cost of material is at about 2,50 €uros. The printserver was sold very cheaply by a friend of mine. Someone has to undercut that!
Meanwhile some people became attentive to this project. One of them is matthias dierolf who found this project via the microcontroller-forum. After some basic questions he not only was able to rebuild a working interface himself but also rewrote the software and the circiut diagram completely. Now it’s way better to read and understand. The fact that he uses a printserver from a completely different vendor shows that this should hack work with every device capable of communicating via the so called RAW-format
All the project-files (from Matthias and me) including photos can be found here (zip, 4,8 MB).
Important note: should you ever get the idea of switching 110/220 V (or more) with this thing think about what you will be doing BEFORE. Pay attention to galvanic separation, safety regulations, etc. Due to the fact that there are no security mechanisms implemented it’s basically possible for everyone on the internet to switch your TV, coffee-machine, toaster,…..
I won’t take any responsibility for what you will be doing. Don’t say I didn’t warn you.
[February, 2nd, 2007]
Finally, the little thingy made it into youtube:
You can see the circuit with the printserver on the one side. they are connected to a latop via an ordinary switch. the laptop runs a ‘ping’ to verify the existing connection. the software on the left side to the screen is set to light the first for digits / pins.
I already said it before: a few days ago this thing has been featured at Hack-A-Day. This did not only cause a gigantic increase in my hitcount but it also gave me the possibility to get into contact with people being interested into this. Boyan Biandov was one of those who had the idea to drive an LCD with the circuit.
He already had a display lying arround from earlier experiments and just tried to attach it to the lpt-port of his Jet Direct ex3 Box. The result is that he is now able to connect to the box via netcat and port 9100 and…see for yourself:
Yes, it is a network-operated display. Great. The display he uses is a IEE 03601-96 2×40 VFD. Datasheet and connection diagrams will be added to the archive soon. Boyan told me he plans to use this thing to control his camera rack.
After seeing his success I wanted to try this myself but due to availability and price I preferred to try it with an HD44780 compatible lcd.
It took me one night of work but then….
Right: What you are seeing jere is an HD44780 compatible lcd that can directly be connected to a network.
The trick (which truely isn’t one) is to operate the display in 4bit-mode. This means it only takes 6 lines for operation (4 data lines, control and enable). All in all you only have to sacrifice 5 data-lines because the ENABLE signal is dirived from the inverted STROBE signal which is created by the printserver when data are being sent to its lpt-port.
This is nearly too easy =-))
Caused by my lack of knowledge concerning the operation if these displays (last night was the first time I ever dealt with this topic) the operation is still a a little scetchy. Means: The 4bit nibbles are created by clicking them together with the tool that’s normally taken to control the leds and then sent to the device- nibble by nibble.
Takes some time but at least it works.
Despite running various test I culdn’t manage to operate an HD44780 compatible display without the shift-register and the nand-gate. I think this is related to timing problems. If an lcd is directly connected to the lpt port (of cause with some pull-down resistors, etc) nothing will happen even though a clean initalization squence is run. debugging without an oscilloscope looks a little difficult to me so I am taking into account that I have to solder two more parts.
As soon as the Content is uploaded and I get to recoordinate my private life I will create a program for controlling the lcd. circuit diagrams, archive etc will also be updated as soon as possible.
Unfortunately I don’t have too much time at the moment to work on this project. At least I was able to restructure (and translate) the documentation, circuits, etc and pack them into a neat archive. The scripts which were send to me during the last weeks are also included. As soon as I have a little more time to spend I will pick up the work on this. righ now I have to say at least one big ‘Thank You’ to all the people who participated in this project up to now.
Download (6,3 MB)
It’s kind of unbelievable but there are still people contacting me with questions about this device. This surely IS cool and you can all feel free to ask me as much as you want – I’ll give my best to help you all. But meanwhile new possibilities to realize such a device have been developed. My favourite solution to control basically anythting via network is the Arduino platform. If you didn’t hear about it yet: It’s an open source microcontroller platform. The Controller is programmed in a C-like language which is easy to learn. The IDE is based on JAVA and is available for all major operating systems. There is already a huge amount of extensions available. They are called ‘Shields’. The Ethernet Shield has become one of the most important ones for me. Arduino plus Ethernet Shield are roughly about 60€ here in Germany. For that price you get a fully customizable ethernet platform. It is, for example, easy to implement inputs from the network. Something that I never managed to realize with printservers. Do yourself a favour: Try it. Arduino website