Suggestion for Google who agrees?

Before i run off to google with this suggestion....who thinks this would be a good idea to implement for google... now please bare with me ok, might take a little to get the concept but here goes...

Step 1. Create a an Emulated Arduino Server, running on a server. [All your standard virtual pins for all the major boards]

Remove all components because it's going to be really simple, infact i might write a simple arduino virtual clone in windows as a server if i get chance i might to it tomorrow.

Step 2. Connect to the Server hosting the virtual arduino: Seblah Port: Blah

Step 3. Call the library (The hard part i've never written a .cpp/.h ever no idea still learning)

Step 4. Tell it how you want to connect, through the Virtual Arduino Client on Windows/Linux etc, eg over Com Port, or over Ethernet (which means you don't need computer/client).

Step 5. When you turn a pin off or a pin on, 200 miles away, the same pin on the arduio board turns on / off.

as far as google or anyone else who takes on this challenge is concerned, the harder part is going to be managing the database of all the virtual mega and uno boards new boards could be added, you then are allowed to join groups just to see how it's wired up and you too could build the same circuit and join others, if all 10 of you all had the same instructions you could all interact with each other in a new medium, i think this may be the eureka moment in bringing the existing community closer together but on a global scale no matter where you are you can interact make code changes and if accepted all of you get the new source code (only when modifications are all confirmed will your board give you an upgrade alert and cease to run until upgraded)

hundreds of virtual boards linking up prototypes everywhere without even the need of being there, how much money would that save on flying to the other side of the planet to prototype your new board, you can have someone remotely proxy it for you set it up and have the identical same thing happen both ends be on screen or computer, the virtual board hosted on the server bridges the cloud and real world, i think this could if developed take us to some interesting places....

sounds like an arduino cloud ....

I don't like it, not because it is a bad idea but because working with a real Arduino is an existential part of the experience (for me), feel the wires, turn the potmeter, see the bright led flashing your left eye, see that crawling servo etc

And I just cannot run a virtual arduino in my greenhouse with a virtual ds18B20 and a virtual servo to open the window ;)

Think there will be a market for this idea, classrooms etc. beware that the usability depends heavily on the user interface..

PS, existential is no typo ;)

so, what can I do with a virtual arduino?

Off the top of my head... the virtual arduino is linked to say 5 mates here on the forum or a complete stranger.. say 4 of us.. we look through a list of active projectsl And pick something to be try out..

  1. small game when you push a button a message gets sent to the server and everyone whos running intrrfacing with the virtual arduino (just a basic server to telay packets to others)

eg turn on a relay and boil the kettle turn on a light /tv if you're out Invent new games people can build and play with others remotely demonstrate a prototype

Ability to recompile and modify own code without affecting the operation of the other arduinos connected to the server

eg Digitalwrite(.....) Avs (aurdino virtual server).. so we can instruct it and relay it. avs.update(pin1); avs.updateallpins(); //each client the gets a packet p1,0,p2,1....* and the event happens to everyboard linked

Games, security, prototyping (remotely), watch scary movies and make an evil pair of eyes come to life, in the loop it polls for any incoming data and carries it out you could then do it back at certaib timed..

leave digital messages for each other

fix bugs and when approved have win/linux update the program for auto bug fixes.. bored look for a new project.. create a sensor network have 100 people all feeding real time data to each other .. .. or simply virtually connect virtually press a button have the event carry out on all the real arduinos connected connect to grandmas house switch on the heating turn on the lights or alarm boil the kettle check sensors all via a remote server.. no router virtual server required it will even run behind a network..

use your imagination :p

use your imagination :p

Feels good ;)

There exists a reverse service where all information SENSED BY arduino or alike are SENT TO a server and you or anyone else can listen to the stream of data. It is called, let me think while typing, pachube. Most of these sensors are simple ones connected to arduino but the idea is pretty cool. I still don't know how to use a stream :(((

I think your idea has its merit. I agree with Rob too that you want to touch the wires. But having a server means you don't have to find logistics of connecting to a remote actuator or sensor array. The logistics right now has been ethershield and some wireless shield. You can use these to connect to google server or cloud to receive commands. Sounds like we are finally building skynet, after these many years.

If i could get some help with c++ side ill write a server and host it as proo :grin:f of concept for now ill code a small client / server for windows and do just the 1 virtual board to connect to with up to say 20 people what happens your end will happen to everyone else and visa versa... keep it cheap and easy for now...

I think I don't get it. How can a virtual device "turn on a relay and boil the kettle"?

are you talking about a virtual kettle?

so I assume you are talking about physical Arduinos. Who then connects the relay to the arduino and where is the kettle?

and why would I want it to boil?


I think your idea is interesting, I want to get it, but I just don"t understand the point - could you try again? I m really not trying to be a troll here.. but it just doesnt make sense to me yet.

ok let me simplify this let's suppose someone in your family has an illness or a disability, you could get a laptop or use theirs and on windows or linux, you run a piece of software, this software interfaces with your arduino, everyone shares from the same instruction sheet, pin 2 goes to LED BLUE + pin 3 goes to GND etc etc until you have built whatever it is you're building/built you prototype it, you prototype it with led's at your end, eg if a relay comes on you could use an LED to indicate you're operating a relay.

at the other end, it's connect to a real relay which i dunno turns on the kettle, your circuit then turns on another relay opening the cutrains, your circuit now shows a green light, this could be applied to many houses not just 1, the arduino then turns on an alarm to alarm the person of danger or warning or some kind of sound/visual aids, at your end you light a little buzzer and another led.

this time you use it with 5 others, this time the 6th person decides to build this same system for himself as he finds out he has a disease, he pays someone to come and install it, now the programmer thinks that the alarm clock should be disabled, he can go into the code, remove the line of code for the alarm/radio other than that the program runs identically, he modified the code, recompiled and uploaded to the board.... but in the source code there are routines you can call to issue pin commands, switch on / off, you talk over the com port (usb) the client relays the signals to a server the server then relays that command to all the arduinos connected, when you join the server the board which is held virtually dictates the pin values and states...

arduino > com port [usb] > computer > com port [usb] > arduino, all of the devices are in sync with each other. the events go off and get sent to all the other arduino's are only allowed to come from sensors or human input, eg a button.

ok arduino1 and arduino2 and arduino3 (real hardware real life) are all connected to the virtual arduino server side.

//isbuttonpressed() { SendEvent(buttonpress); digitalWrite(LedPin1,TRUE); }

// Void OnRecvPacket() { //check the serial for incoming data //get the data if (datastr=='LedPin1') { digitalWrite(LedPin1,TRUE); }


and we have the beginnings of a game, so every LED turns on, on every board, make more led's make sounds, and what game can we play? 5 players, 10 players who cares, multiplayer hardware games, like the 80's programming boom, this could be the start of something fun and new.

Right then, i'm going to write a "Tag you're it" if you're 8 like sometimes i feel my mental age is...

Very simple game, components needed, 1 LED 1 Resistor.. 1 Client (not yet written) and 1 Arduino.

I'll do my best to get it done soon, i'll have the server support 20 players. the rules will be made soon, and i'll post what needs to be done to make it all work and i'll do it as painless as possible.

description - when you see the LED's come on, you've been tagged, the server will time how long the LED has been on (for later usage, might not even bother to begin with, infact i wont, i'll keep it simple for now) the LED turns on, you've been tagged, you go over to hit the button (no cheating or the founder of the the virtual arduino can kick you, although it's not arduino it;'s just remember all the server pin states for when it makes a connection and the arduino is synced to the rest.

so we now have a pyshical game where you have to get up off your seat, the server then picks another rand person to tag and their LED comes on, so because of the randomness, the light could come on twice in 5 seconds or twice in 5 minutes depending on who keeps getting randomly tagged.

a more expensive version could be a Card Game.

etc etc, bridging the real world and the virtual world, now someone who does not have an arduino could login with the client in windows, connect to your hosted server game and see all the pin values and data being sent around (ie, card names etc) and then decode it to display on the computer screen as a virtual game which interacts with the real thing, and he too could interact with your real games virtually, a 4 player game of cards allowing the game open to anyone with a computer and an arduino.

so we are talking about a protocol which manages and connects multiple arduinos :slight_smile: now I get it. yes. that’s pretty cool.

though as luidr mentioned, there are similar systems around. one of them being pachube

but … if you put in the time… I’ll play tag with you. I actually love the idea.

pm me or send me instructions once you’ve written the server

I've started writing a server which i'll host at port 1234... i've started it so hopefully have a basic client / server going i just got to desolder a button from an old router now lol... ok then ill keep you posted

i have an arduino ready and most of the basic components lying around, so as soon as you have a setup, I can mirror it. just post here or pm me once you have instructions for me on how to connect.,102960.0.html

posted source code and binaries to everything (it's attached, just extract the contents and read the readme.txt)

you can now communicate to multiple arduino's via pins 2 - 7, and if you wish, you can modify the ino file and add support for anything else, like wpm or to read analouge data...

ok my led's pins 2 - 7 are waiting to be lit ....

sorry - was busy and now im away for the weekend. i will be able to give it a shot monday or tuesday night, if you still have your board connected.


I got bored so i started writing something else ill... ill run the server and client again a bit later on for you to try...