Introduction: Transmit and Receive Morse Code Using Light With Arduino and Smartphone's Camera

About: Creative Electrical Projects

This device allows you to send any message using morse code.

(you don't need to know morse code for this projects)

Step 1: Watch the Video to Get an Idea What We Going to Build!

In short: you send morse code with ESP8266 or Arduino and receive it with a smartphone's camera.

Step 2: Get Necessary Components

1. The brain of the project can be Arduino, or ESP8266, ESP32, etc. The code is compatible with all of that.

2. DC-DC converter, that is because ESP8266 needs 5V, if your board can handle 12V you don't need this.

3. MOSFET IRL540N or similar. If your board uses 3.3V logic the MOSFET you use should have "Gate Threshold Voltage" is lower than 3.3V. IRL540N has 2V "Gate Threshold Voltage" so it is good for 3.3V boards. MOSFETs like IRFZ44N has 4V "Gate Threshold Voltage" so it is not good for 3.3V boards, but it is still good for boards that use 5V logic (most Arduino use 5V).

4. 12V LED, it can be just 10W or even 100W or more, it depends on the MOSFET and your power supply. For example, IRL540N can handle 36 Amps so 100W is not a problem for it. (Powerful LEDs need heatsink).

5. 1K resistor 0.25W (power doesn't matter here use what you have)... just put some resistor 0.1K - 10K it is not that important.

Links to buy components:


DC-DC Converter:

Powerful 12V LED:



Step 3: Upload Code to Your ESP8266 or Arduino

If you don't want to build anything and you just want to blink morse code with the build-in LED on ESP8266, then make sure that the variable "isInverted" set to true, because the build-in LED is inverted on ESP8266. For other cases set it to false.

You can download code here, or on GitHub

This line defines the message you want to send: String DefaultTextToSend = "Hello world, I'm Morse code beacon"; Change it to what you want!

P.S. I am not a programmer, what do you think about my code? it is short and looks good to me, I want your opinion :)

Step 4: Build Everything According to the Circuit.

A powerful LED needs a heatsink because it makes a lot of heat.

Use Dupont wire between ESP8266 and DC-DC converter.

Use a soldering iron to solder other wires according to the circuit.

Step 5: ​Receive Morse Code Using a Decoding App on Your Smartphone

Apps that work:

1. Morse Code Agent (Standard) (set speed in code with "int oneUnitDelay = 80;" can be from 80 to 300 for this app)

2. Morse camera light chat receive send text torch (set speed in code with "int oneUnitDelay = 250;" can be from 250 to 300 for this app)

Step 6: Receive It From a Long Distance (Just to Have Fun)

I was able to receive it from 160 meters (534 ft) at night, watch the video to see that.

Have fun! :)