Today I learned that an LED can be used to both transmit light (the intended purpose) and also to receive light. A little bit of electricity is sent back along the anode when enough light is received by the LED.
With some clever manipulation, this effect can be used to turn an LED into a transceiver; a device to both transmit and receive data.
Here I use PJON, a free network protocol, to send (very simple) data between two arduinos using two LEDs. This is currently just a proof of concept and not much more than the example code supplied.