Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
Over almost exactly the past seven days, I have been working on globalCALCnet (heretofore gCn for the sake of simplicity), a longstanding project of mine to connect CALCnet2.2 networks and their constituent calculators over the internet. It can work as simply as connecting two individual calculators as if they were right next to each other, or at the opposite extreme link together many networks, each consisting of many calculators, into a single virtual hub. As you might imagine, such a system is quite complex, and once I finish working out glitches and kinks, I will probably write a Cemetech whitepaper to detail the system. Here's the executive summary of the different pieces:

CALCnet2.2 network: One or more calculators linked together with a Cn2.2 network, requiring only the calculators and a handful of unit-to-unit cables.
AVR-based microcontroller board with FTDI: For the prototypes I've made, I'm using the widely-popular Arduino Duemilanove board, offering a 16MHz AVR with 32KB of EEPROM and 2KB of SRAM. This board pretends to be a calculator participating in the network, but passing incoming frames up to a connected PC via serial/USB, and injects frames into the network from the PC.
C++ gcnclient application: The gcnclient application connects both to the local Arduino and to a remove gCn virtual hub aggregator. The gcnclient is responsible for moving 1-to-1 and broadcast frames from the Arduino to the remote server and vice versa.
Python gcnhub server daemon: The gcnhub, or virtual hub aggregator, acts as one or more virtual hubs linking together groups of remote gcnclient applications. There is currently a single gcnhub server, but if gCn becomes more popular, it would be easy to distribute this program so that users could set up their own servers.

Frames (the CALCnet equivalent of packets) travel from one CALCnet2.2 network, through the connected Arduino, to the gcnclient and through the internet to a gcnhub, which routes the packet as necessary to another gcnclient, which hands off the frame to its Arduino and therefore its connected CALCnet2.2 network. I have successfully demonstrated Flourish running between a pair of single-calculator CALCnet2.2 networks, connected by a 12-mile round-trip over the internet but acting as if they were directly connected; my testbed can be seen below.

Please post all kinds of questions, suggestions, comments, and insults in the attached topic. I would especially appreciate users who have an Arduino to spare who would like to help me test globalCALCnet. Cheers!



KermMartian wrote:
Please post all kinds of ... insults in the attached topic.
I hate you so much you're dumb.

Anyway, that looks great. What was the speed like for that 12-mile round-trip?
Very nice Kerm, one day I'm going to have to put together my Freeduindo and test this for you Wink Maybe I can get my dad to bring it this week >.> I also second the insult and question Smile
merthsoft wrote:
KermMartian wrote:
Please post all kinds of ... insults in the attached topic.
I hate you so much you're dumb.

Anyway, that looks great. What was the speed like for that 12-mile round-trip?
To be honest, I have no way of checking yet, because due to whatever glitches are still present in my Arduino handoff software, the SpeedTest program won't work yet. I'll be sure to benchmark very carefully as soon as I get that bit working.

Edit: @_player: Yes, you definitely should. And thanks for the seconding on the insult.
*cough* tard muffin *cough*
Silver Shadow wrote:
*cough* tard muffin *cough*
No constructive comments or questions on globalCALCnet? Razz Oh, and I should also mention that people looking to test gCn should make sure their calculators are running Doors CS 7.1.1, which fixes a stupid checksum error in CALCnet2.2 from DCS 7.1; the problem didn't surface until I tried to make my Arduino communicate with the calculators and it didn't work. Smile
Maybe add the DCS 7.1.1 dependency to the 1st post?

Anyway, great work! Are the servers currently local, or can you do this over the Internet?
Silver Shadow wrote:
Maybe add that to the 1st post?

Anyway, great work! Are the servers currently local, or can you do this over the Internet?
It's working over the internet. I'm running the Python 'gcnhub' daemon on a server six miles away, and although both Arduinos are plugged into my laptop, each is connected to its own 'gcnclient' program instance, so the round trip between the calculators is at least twelve miles, probably more if you take the ISP into account.
Any possibility of making this use just the normal USB cable for 84+ users?
Silver Shadow wrote:
Any possibility of making this use just the normal USB cable for 84+ users?
It could never just use the direct USB cable, because CALCnet2.2 is not at all compatible with USB, unless someone built a z80 version of CALCnet2.2 that would encapsulate it in USB, something that I personally don't plan to do. However, it may be possible to run it via SilverLinks; I need to research it more.
Hm, interesting. So, I see that you need a Aruduino and software. Will the final product involve the need of the software?


and as for insults: THIS PROGRAM IS SO GOOD, YOU ARE AN IDIOT FOR IT. GTFO NOOB
qazz42 wrote:
Hm, interesting. So, I see that you need a Aruduino and software. Will the final product involve the need of the software?
"Involve the need of the software"? No, it'll magically learn to work without the programs that pass frames along each step of the way. Wink

Quote:
and as for insults: THIS PROGRAM IS SO GOOD, YOU ARE AN IDIOT FOR IT. GTFO NOOB
Thanks Qazz.
KermMartian wrote:
qazz42 wrote:
Hm, interesting. So, I see that you need a Aruduino and software. Will the final product involve the need of the software?
"Involve the need of the software"? No, it'll magically learn to work without the programs that pass frames along each step of the way. Wink

Quote:
and as for insults: THIS PROGRAM IS SO GOOD, YOU ARE AN IDIOT FOR IT. GTFO NOOB
Thanks Qazz.


oh, I see, I assume that you will release the program later on when gCn is in the final stages Smile
i will probably release it soon, once I've ironed out some of the bugs, like the one I'm trying to track down right now. Smile I'll also be more than happy to give the current builds to anyone with an Arduino, a calculator, and an internet connection that's interested in giving me a hand with testing.

Edit: At the behest of TIFreak8x (and others), here are the parts for just the gCn bridge (not a Cn2.2 hub):
(1) Arduino Duemilanove or Uno, with USB cord
(optional) 3 330 ohm 1/4watt resistors and 1 RGB LED, for status indication

Building a gCn hub could be done with either sockets or plugs; if you wanted to go sockets, so you don't have to cut apart link cables, the following is an example that would work:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=4831.2300-ND
on the first pic in your first post, can you circle which is what part? It would help me understand a little better Smile
qazz42 wrote:
on the first pic in your first post, can you circle which is what part? It would help me understand a little better Smile
The two blue boards at the top with the bright LEDs on them are my two Arduino boards. The white breadboard in the center is just for cross-connections, and the calculators should be obvious.
ah, ok, I see now. I assume Imma need a socket then (cant cut up my link cable atm, will need it)
qazz42 wrote:
ah, ok, I see now. I assume Imma need a socket then (cant cut up my link cable atm, will need it)
Assuming you had an Arduino, then yes. That link I had two or three posts up is an appropriate component.
This is too awesome beyond my understanding.
0rac343 wrote:
This is too awesome beyond my understanding.
Hahaha, thanks. Smile I should come up with a small phrase to explain this, something like "connecting calculators over the internet".
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 6
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum