I think this is a broad question. I'm currently implementing visible light communication with Arduino. I'm using a laser as my transmitter and LDR as my receiver. I'm able to transmit a text from one side to another. But I would like to go further on this project. I want to modify the system to transfer an audio file and live stream(play) on the receiver's side.

In order to play the stream in real time, data communication must happen much faster than simple text transfer.

(Like audio with 8KHz sampling rate with 16 bit per sample). Need transmission speed of 8*16/8= 16,000 Bytes/s

I have identified a few barriers to achieve such as

  1. Arduino has a 64-byte buffer.(can lead to buffer overflow)
  2. LDR response time(min delay for the pulse is 10ms for text transmission project)

I wonder If this is a possible project to do with Arduino. If it's possible, I would like to know about changes to reach that kind of transmission speed. I'm sorry for my poor writing skills.

Thank You!

  • 1
    You should move to a better microcontroller board (there are many commonly used ones depending on your other requirements; you could try a Pi Pico for only about 4€) and you should use a phototransistor instead of the LDR (the response time is the reason why the receivers for IR remotes, which is a similar use case, use phototransistors).
    – chrisl
    Nov 14, 2021 at 17:42
  • 1
    "Arduino has a 64-byte buffer." - What buffer do you mean here? The buffer of the Serial object? I believe you can increase that. Though the speed will be your bigger problem.
    – chrisl
    Nov 14, 2021 at 17:43
  • @chrisl Yes, the buffer of the serial object. If I can consume the buffer with much speed, then there will be no overflow(I guess). Thank you very much for the advice.!! Nov 14, 2021 at 18:54


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.