Possible to build with Arduino?


I stumbled over the Arduino platform these days and found out there’s even an Ethernet shield for it. However, I’m not sure if something I’d like to build is doable with this. (I also thought about using one of Atmels ARM9 chips, running Linux, where I think the software side could easily be done.)

My plan is to basically build a minimal console server with power (and reset line) switching functions.

The tasks would be:

  • DHCP/BOOTP would be nice, but I’d live without it.
  • Offer a TELNET-like TCP connection, which is basically bridged to a RS232 serial port. Support for RFC2217 style port control would be nice.
  • For logging purposes, also write every byte sent to or received from the serial port to a syslog server. (If possible, it would be cool to get the syslog’s server from the DHCP server. Could be hard-wired if there’s no alternative.)
  • Offer to change the baud rate etc. via a smallish web interface or on a second TCP port (with some minimal commands). If this cannot be implemented, I’d live with hardcoded line characteristics.
  • Offer like two or three I/O pins that can be switched on/off by either a minimal web frontend or through a command (as above for the RS232 line parameters). This is used for switching power on/off (of the machine connected to the RS232 line) and to trigger the Reset or TOC buttons.

I’d like to build a number of these thingies to switch to work on all those machines I’ve got downstairs in the basements. That’s a hughish number of old VAXen where I’m working on a Linux port.

If something like this cannot be build with the small Atmel controllers, are there any hints for a different chip family? And it shouldn’t kill my pocket if I build like 50 of these :wink:

– Jan-Benedict Glaw

Interesting project. Sounds like my kind of basement.

Have a look at Bitlash, which you will find at http://bitlash.net -- it may be helpful for some of the console and i/o handling.

You might also find a use for the serial-to-network proxy "bitty.py", which can be found at http://bitlash.net/wiki/bitty.py


-br http://bitlash.net http://entropymouse.com

Bitlash might be a nice start for command parsing (though I don’t fear hacking that myself.)

My biggest concern is to find a TCP/IP stack that fits into one of the Atmels and offers DHCP along with two listening TCP sockets and output (UDP) to a syslog server. The surrounding hardware (relay driver etc.) isn’t much of a problem.

For those who already run an Arduino with the Ethernet shield: Can you listen to two TCP sockets? And send UDP packets? Is DHCP implemented? Including parsing of the syslog option (that probably can easily be added). However, I fear the memory constraints.

Once it’s a settled design, maybe even a small series could be produced (there are a number of friends also hacking on non-PC hardware who’d like to use something like that:D)

bitty.py however seems to be the reverse of what I’m trying to do: From my reading, it makes the Arduino available over network, instead of the Arduino making a connected computer’s serial console available to the net.

You know that these days you can buy "one port ethernet to serial gateways" for about the price of Ardunio+ethernet shield. Some of them are production plug-and-go devices, some must be programmed by the user but come equipped with appropriate libraries, and some are hybrids. There are both modules for embedding in other circuitry, and boxed devices...

Lantronix: http://www.lantronix.com/device-networking/embedded-device-servers/?tab=0 http://www.lantronix.com/device-networking/external-device-servers/?tab=0

Wiznet: http://www.ewiznet.com/goods_list.php?Index=271

TI/Stellaris: http://focus.ti.com/docs/toolsw/folders/print/mdl-s2e.html

Digi: http://www.digi.com/products/consoleservers/

Netburner: http://www.netburner.com/products/serial_to_ethernet.html

And of course you have you usual multiport terminal server boxes from the older vendors, usually starting at 8 or 16 serial ports. I don't think that most of these have kept up with the small device servers; their price per port tends to be alarmingly high (especially our poor cisco boxes that we try to slot into that service these days.) There are also open source terminal server projects aimed at turning old PCs into multiport terminal servers (supporting all manner of odd and rare async cards...)

Why not put a single linux machine (i.e. plug computer, or other embedded device) to take the telnet/ssh session, and a bunch of cheap I/O control devices (possibly arduinos) to it to control the machines? For example, you can get a teensy (http://www.pjrc.com/teensy/) which has USB slave support. You can connect 128 of those to a single USB port on your linux box, so you could theoretically control 128 machines with 128 teensies. If you want to control 50 machines, You’ll spend 1000 bucks just on buying a bunch of teensies though, and obviously cabling would become a problem as you’d have to run a bunch of USB wires through your basement and set up hubs everywhere :slight_smile:

Also, if you use a USB protocol to communicate with the I/O device, you have an added bonus of separating the UART stream to/from the vax from other I/O such as reset, power on/off, etc. You could also solder input pins to the leds so you can even monitor led status upstairs.

Sure you can use up to 4 tcp/udp sockets, control several i/o lines and receive commands from serial or ethernet connection. You can implement your own command interpreter. It´s not hard to do.

If you need any help , Let me know, sure i can give you some advice.

best regards jesus davila


Do you know how to limit the max sockets to 2 instead of 4 so we can make use of the 4kb RX buffer instead of 2kb!?