Expanded internet access. Most homes in Sicily as well as around Naples, Italy are still wired using mainly spaghetti and in some cases linguine, as was standard until 1956.
I recently did something similar - tunneled IP over an RF protocol that was definitely not designed for such nonsense, and was convinced that PPP would be a much more appropriate link protocol. It even handles IP address assignment and encryption out of the box.
Was SLIP chosen for its simplicity here? Genuinely curious.
According to who? Many companies outside of this region sell products called "spaghetti" and I didn't find any info suggesting the name had been reserved somehow.
Took me a bit to see what it was actually doing. In the doc folder it has some pictures. It appears to be sort of a linear actuator that pushes the spaghetti forward or backward, which makes/breaks the light path in the optical sensor on the other side.
Would someone mind explaining, for people who aren’t familiar with electrical engineering and/or physics, is it actually possible to transmit information over spaghetti or this is just a very elaborate April-but-not-in-April fools joke?
It is actually possible. It is possible to transmit information by moving a thing (which is sensed by the optical sensor, as shown here). So we can transmit information by moving spaghetti. It is not a particularly efficient method, though.
It's both. Obviously, it's a silly April-but-not-in-April fools joke; but it also seems that it would work (but not be practical).
The spaghetti is just a stick. At one end a relay[1] wiggles the strand of spaghetti to transmit information. At the other end an optical sensor[2] sees the tip of the strand of spaghetti wiggling and receives that information. There's such a setup going in each direction[3] so that each side can receive and transmit.
When I saw the title, and the picture, my thought chain was going fast!
* Is it electrical? No, impossible, dry spaghetti is not a good conductor
* Is it optical? It could make sense, maybe spaghetti behaves like an optic fiber, trapping the reflections inside?
* Oh my god, it's mechanical!
So what happens here is, there's a relay (electromechanical device) modified to be able to poke a metal rod when a signal is applied.
This rod pokes the spaghetti.
The receiving end watches the end of the spaghetti for movement - with an optical sensor. When it moves back, more light will get through the sensor, than when spaghetti is in the way. So the bits are represented by physical movement back and forth of the spaghetti noodle (is noodle a correct term here?).
This is brilliant! I would be interested in reading an analysis of IP performance in this kind of pasta-net versus using homing pigeons (RFC 1149/2549).
While solids are transmitting sound waves much faster than air, spaghetti is also very prone to mechanical destruction. A dense metal rod would do better, but at the cost of requiring more actuation force.
Reading the Arduino firmware suggests a data rate of 40 bits/s on the actual spaghetti strand.
Allowing for a start and stop bit, that's 4 bytes/second. Given a typical ping packet length of 56 bytes, and a negligble SLIP encapsulation overhead, I'd expect the outbound ping request would take 14 seconds to transmit, and the ping reply would take another 14 seconds after that, making 28 seconds in total (plus the processing latency, which should be negligible). The only way I can see it taking twice that time would be if the ping packets had truly unfortunate content of bytes that SLIP would need to escape into byte pairs, which seems unlikely.
I'm surprised the author didn't go for direct transmission of a 9600 baud signal; it wouldn't be too hard to use a DIY voice coil actuator to drive sound waves down the spaghetti at that frequency, and not too much DSP processing to amplify and clean up the measured movement at the optical sensor into a clean digital signal.
61 comments
[ 3.4 ms ] story [ 193 ms ] threadhttps://www.youtube.com/watch?v=tVo_wkxH9dU
Was SLIP chosen for its simplicity here? Genuinely curious.
"Uno spaghetto" (one), "due spaghetti" (two) and so on...
or at least not to my knowledge! I'm not Italian
https://www.google.com/maps/place/Campana+d'Oro/@46.064371,1...
or strand?
I had a chuckle when I read the plural “spaghetties”.
Also, if you find plain spaghetti too bland then bites 12 through 15 give you the sauce address.
https://upload.wikimedia.org/wikipedia/commons/6/60/IPv4_Pac...
[0] https://en.m.wikipedia.org/wiki/Tomato_(firmware)
This is one of these rare instances where you can have hardware recursion.
I didn't read beyond the README and I thought it's using the sphagetti as a fiber optic cable with an LED on one side and a photoresistor on the other
"Channel Capacity of Short-Range Ultrasonic Communications in Air" https://ieeexplore.ieee.org/document/8089735
https://en.wikipedia.org/wiki/Air-gap_malware
The spaghetti is just a stick. At one end a relay[1] wiggles the strand of spaghetti to transmit information. At the other end an optical sensor[2] sees the tip of the strand of spaghetti wiggling and receives that information. There's such a setup going in each direction[3] so that each side can receive and transmit.
[1]: https://github.com/peterheinrich/InternetOverSpaghetti/blob/... (the strand of spaghetti that stick going off the screen to the right)
[2]: https://github.com/peterheinrich/InternetOverSpaghetti/blob/...
[3]: https://github.com/peterheinrich/InternetOverSpaghetti/blob/...
* Is it electrical? No, impossible, dry spaghetti is not a good conductor
* Is it optical? It could make sense, maybe spaghetti behaves like an optic fiber, trapping the reflections inside?
* Oh my god, it's mechanical!
So what happens here is, there's a relay (electromechanical device) modified to be able to poke a metal rod when a signal is applied.
This rod pokes the spaghetti.
The receiving end watches the end of the spaghetti for movement - with an optical sensor. When it moves back, more light will get through the sensor, than when spaghetti is in the way. So the bits are represented by physical movement back and forth of the spaghetti noodle (is noodle a correct term here?).
Reading the Arduino firmware suggests a data rate of 40 bits/s on the actual spaghetti strand.
Allowing for a start and stop bit, that's 4 bytes/second. Given a typical ping packet length of 56 bytes, and a negligble SLIP encapsulation overhead, I'd expect the outbound ping request would take 14 seconds to transmit, and the ping reply would take another 14 seconds after that, making 28 seconds in total (plus the processing latency, which should be negligible). The only way I can see it taking twice that time would be if the ping packets had truly unfortunate content of bytes that SLIP would need to escape into byte pairs, which seems unlikely.
I'm surprised the author didn't go for direct transmission of a 9600 baud signal; it wouldn't be too hard to use a DIY voice coil actuator to drive sound waves down the spaghetti at that frequency, and not too much DSP processing to amplify and clean up the measured movement at the optical sensor into a clean digital signal.