plbyrd Posted December 5, 2013 Share Posted December 5, 2013 What Is It? Hayesduino is an Arduino sketch that provides a bridge between the world of the Internet and small devices that do not have built-in ethernet capabilities. Old computers, such as the Commodore 64, Apple II and Atari 800 have serial ports, but do not have readily available Internet solutions with wide software support. While specialized solutions do exist for these platforms, they all require specialized software to use them and do not lend themselves to more general usage such as simply opening a socket, sending some data, and/or receiving some data. Hayesduino bridges this gap by emulating a Hayes compatible modem. This allows users to initiate Internet communications via sockets that are opened by "dialing" to a hostname and port. An example would be initiating a telnet session with a host by simply typing atdt hostname:23 and waiting for the host to respond. Using this technique, any online socket can be reached and communicated with. Hayesduino could have accomplished this without emulating a modem, but there needed to be a good way to allow the small machine to receive incoming connections. The three platforms listed above were all very popular systems for hosting BBS (bulletin board systems) which would accept calls over a telephone line via modem. Hayesduino simulates the incoming phone call whenever the software receives an inbound connection on port 23 (this is changeable in the code). When an incoming connection is detected, the Hayesduino will toggle the DCE-DCD line to trigger the remote software to answer the incoming "call". In this way a classic BBS can be hooked up directly to the Internet. http://hayesduino.codeplex.com Quote Link to comment Share on other sites More sharing options...
desiv Posted December 5, 2013 Share Posted December 5, 2013 Nice.. I have a Lanronix serial to Ethernet adapter with modem emulation and use it for that type of thing. Works great.. Really fun to get the Amiga 1000 to connect to telnet BBSes... Great work!!! desiv You know what would be an awesome addition? If you could add PPP support. So you could hook it up, but then dial from the computer into the device's IP and set up a PPP session for those devices that support PPP. Probably more the 16-bit systems (ST, Amiga, classic Mac, etc). That might be to much for the Arduino tho, might be a good option for a Raspberry Pi based similar solution?? Quote Link to comment Share on other sites More sharing options...
plbyrd Posted December 5, 2013 Author Share Posted December 5, 2013 You know what would be an awesome addition? If you could add PPP support. So you could hook it up, but then dial from the computer into the device's IP and set up a PPP session for those devices that support PPP. Probably more the 16-bit systems (ST, Amiga, classic Mac, etc). That might be to much for the Arduino tho, might be a good option for a Raspberry Pi based similar solution?? Are you suggesting that the Arduino be a PPP server? Wouldn't SLIP be more appropriate? I could look into the PPPD and SLIPD servers and see if they could be ported to the Arduino Mega. Quote Link to comment Share on other sites More sharing options...
desiv Posted December 5, 2013 Share Posted December 5, 2013 Are you suggesting that the Arduino be a PPP server? Wouldn't SLIP be more appropriate?Either one should work.. I think most of the early stacks were SLIP and moved to PPP later (I know by the time I set up a dial-in bank at work, it was all PPP.) I know the Amiga supports SLIP (and PPP) and believe the ST does as well (I believe both, but I'm not an ST guy).. (Quick google seems to show both SLIP and PPP software for the old Macs too) Not sure about most of the other platforms, but as we are talking older machines, if they support any, they probably started with SLIP. desiv Quote Link to comment Share on other sites More sharing options...
plbyrd Posted December 5, 2013 Author Share Posted December 5, 2013 OK, looked up the RFCs for SLIP and PPP. SLIP looks entirely doable, but I wouldn't touch PPP with a 10-foot pole. I'll add SLIP support to my todo list, but it'll be a while. I have to write a C64 demo for Christmas and some other projects that need my time. Quote Link to comment Share on other sites More sharing options...
plbyrd Posted August 13, 2014 Author Share Posted August 13, 2014 Howdy, long time no post. Anyways, a friend and I have designed and built the Hayesduino Mega Shield which is an RS232 shield for the Arduino Mega 2560. Hayesduino has outgrown the Arduino Uno, so we based the shield on the Mega. I will be demoing the complete package at VCFMW on September 12 in Chicago. I will try to have a couple of Hayesduino Mega Shields available for sale then. Quote Link to comment Share on other sites More sharing options...
gozar Posted August 13, 2014 Share Posted August 13, 2014 Hmmm, any thoughts on porting this to the Pi? Then you could get Ethernet, wifi, and SLIP/PPP. (Wish I could program better.... :-) Quote Link to comment Share on other sites More sharing options...
plbyrd Posted August 13, 2014 Author Share Posted August 13, 2014 The Pi only has TTL-level RS232, just like the Arduino, which means you still need level shifters to make it usable as a modem. Plus, I don't do GNU/Linux programming. Hayesduino is completely open source and written in C++, so someone could easily port it. What would you call such a port? HayesPi? Slice of Hayes? Hayesduino is just so much better. Quote Link to comment Share on other sites More sharing options...
plbyrd Posted August 25, 2015 Author Share Posted August 25, 2015 I have migrated the Hayesduino repository from CodePlex to GitHub. If someone would like to take over ownership then I'd be happy to oblige. https://github.com/plbyrd/hayesduino Quote Link to comment Share on other sites More sharing options...
scottinNH Posted September 8, 2015 Share Posted September 8, 2015 Hello. HayesDuino sounds interesting... Main question: Where are the docs describing how to build the shield? (Not step by step necessarily, but a diagram or schematic is what I was expecting). (If that's explained fully in the code, please forgive me I only poked around the repo) Second, are the Visual Micro files unnecessary to someone who is using the Arduino IDE? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.