810nm 10Hz LED Pulsing Flashlight




This flashlight was made for educational purposes in order to find out if it is possible to replicate consumer electronic devices for a fraction of the cost they are sold for. The flashlight is made to match the same specifications as the Vielight 810 Infrared therapy device. The real Vielight is a non laser intranasal light therapy device used to stimulate your brain. The flashlight I made is in no way supposed to be used as a medical device, it is only a proof of concept device used to show that electronic devices can be made for less than they are sold. If you decide to replicate my design, it should not be used for any type of therapy. Do not insert the 810nm flashlight into your nose or any other part of your body as it has the potential to cause harm. I am in no way responsible for any harm caused by the use of this device. THIS IS NOT A MEDICAL DEVICE AND SHOULD NOT BE USED AS A REPLACEMENT FOR THE VIELIGHT.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Determine Specifications

In order to replicate the Vielight we must determine the specifications of the device. According to the website (http://vielight.com/product/vielight-810/) our device must meet the following requirements:

  1. The LED must have an 810nm infrared wavelength
  2. The LED must pulse at a frequency of 10hz with a 50% duty cycle
  3. The device must output a power of 13mW/cm^2

Step 2: Materials

These are the items needed to make the flashlight:

  • LED: Digikey 810nm LED
  • Arduino Nano: Nano
  • Old USB cable to salvage wires from
  • USB Micro B cable to power the Arduino
  • Electrical Tape

The case can be made with many things. I chose to use an old mint tin as I had one on hand. However, the final product could be made to look more professional if heat shrink tubing (Shrink tubing) were used to cover the Arduino instead.

Some of these materials can be found for lower costs than the links provided. The links just provide a reference to the materials I used in the device. The total cost of materials for the flashlight is around 20 dollars.

Step 3: Program the Arduino

    !!Update!! It was brought to my attention that the code previously uploaded flashes at 5 Hz the new code now flashes at the required 10 Hz

    • In order to make the LED flash at 10Hz, a simple code must be uploaded to the Arduino. In order to upload the code you must download and install the Arduino program from https://www.arduino.cc/en/Main/Software.
    • Then open the program on your computer and plug in the Arduino Nano using the Micro USB cable. This will allow the drivers to install.
    • Make sure that your device is set to Arduino Nano and the correct COM port is selected under the tools tab on your computer.
    • Copy the following code into the editor and upload it to your Arduino Nano.
    <p>const int ledPin =  13;      </p><p>int ledState = LOW;            </p><p>unsigned long previousMillis = 0;        </p><p>const long interval = 50;           </p><p>void setup() {
      pinMode(ledPin, OUTPUT);
    }</p><p>void loop() {
      unsigned long currentMillis = millis();</p><p>  if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis;</p><p>    if (ledState == LOW) {
          ledState = HIGH;
        } else {
          ledState = LOW;
        }</p><p>    digitalWrite(ledPin, ledState);
    • If the code uploads successfully your Nano is ready for the next step.

    Step 4: LED Part 1

    • To connect the LED to the Arduino Nano we are going to use an old USB Cable.
    • To prepare the cable for soldering the connectors must be cut off from both ends.
    • Since we only need two wires for this project, the green and white wires can be removed from the inside of the cable.
    • Now remove one inch of the outer housing from each side of the cable.
    • Strip a quarter inch of coating off of each end of the red and black wires to expose the bare copper.
    • Use a soldering iron to tin each of these wires.
    • The black wire can now be soldered to the cathode(-) of the LED and the red wire to the anode(+).
    • Use electrical tape to insulate these joints so they don't short out.

    Step 5: Attaching LED to Arduino

    • The other end of the cable can now be attached to the Arduino Nano.
    • It is important that the red and black wires are soldered to the correct pins on the Arduino or the device will not work.
    • Solder the red wire to Digital Pin 13.
    • Solder the black wire to a Ground Pin.
    • If attached correctly, the LED should blink a soft red when the Arduino Nano is plugged using the USB cable.
      • The led appears red because most of the light that it emits is on the infrared spectrum which is invisible to the human eye.

    Step 6: Case/Housing

    As stated before, there are many ways that the case can be made. Here are two options:

    1. Mint Tin Case
      • Cover the Arduino Nano with electrical tape to insulate the connections.
      • Line up the USB end of the Arduino with one side of the mint tin and mark where it meets.
      • Use a drill or a punch to create an opening for the USB connector.
      • Drill a hole on the opposite side of the mint tin to allow the led to pass through.
      • Use hot glue to attach the Arduino into the mint tin.
    2. Heat shrink tubing
      • Cut a portion of heat shrink tubing to the same length as the Arduino Nano.
      • Slip the heat shrink tubing over the Arduino Nano.
      • Use a lighter or heat gun to carefully shrink the tubing.
      • Use hot glue to fill in the open ends.

    Step 7: Warning

    1. This is NOT a medical device.
    2. This flashlight should NOT be used as a medical device.
    3. This flashlight should NOT be inserted into your nose or any other part of your body.
    4. I make NO claims that this has any effect on your body nor benefits you in any way, it is simply a flashlight.
    5. I am NOT responsible for any harm caused by this flashlight, should you choose to make it.

    Arduino Contest 2016

    Participated in the
    Arduino Contest 2016

    Epilog Contest 8

    Participated in the
    Epilog Contest 8

    Be the First to Share


      • CNC Contest

        CNC Contest
      • Make it Move

        Make it Move
      • Teacher Contest

        Teacher Contest

      14 Discussions


      Question 4 months ago on Step 3

      Hello! This is really nice!! Is it also possible to have an array of LEDs instead of just one? Thanks in advance!


      1 year ago

      My NANO keeps getting an error message when I try to download the program.

      "expected unqualified-id before '<' token" And it highlights this part of the code-

      }</p><p>void loop() {

      as being somehow wrong.

      Any ideas of what Im doing wrong?

      3 replies

      Reply 9 months ago

      I have also encountered the same issue, and am sad to see that your reply hasn't been addressed 6 months later.
      Maybe when the author went back to make it 10hz instead of 5hz they deleted too much or added too much in.
      I definitely don't think the "</p><p>" stuff was meant to be left in the arduino code so I took it out, but this is the first time I am doing this and have no idea what the heck I'm doing.

      I came across these which tried to explain but maybe it's better to just re learn from the ground up at this point:

      https://forum.arduino.cc/index.php?topic=490504.0 (previousMillis was not declared in this scope)
      https://forum.arduino.cc/index.php?topic=365466.15 (exit status 1)


      Reply 9 months ago

      ah yeah I removed all the formatting with <>
      I also deleted a space between previous and Millis in the beginning because I read the code and learned how you need to set the variables.


      Reply 9 months ago

      Hopefully you were able to figure out the problem you had with the code. I’m sorry that you feel that it is my responsibility to support this project independently, however with school in full swing, I simply don’t have the time to do so, nor am I really an active instructables user at the moment. I’ve also never claimed to be an expert programmer, all I can say is that I am able to compile and flash the code provided without any errors. I certainly don’t have the knowledge or skills to troubleshoot any errors that you might have encountered. My account is left up and running so the diy community can have access to my projects. Good luck, I hope you are able to figure it out, have a nice day.


      Question 1 year ago on Step 3

      My NANO keeps getting an error message when I try to download the program.
      "expected unqualified-id before '<' token"
      Any ideas of what Im doing wrong?


      1 year ago

      The Digi-Key description of the IR LED is > Infrared (IR) Emitter 810nm 1.55V 100mA 14° Radial. The Arduino Nano is only capable of putting out 40mA. Is this a mistake? Or can an Arduino Nano still power a 100mA LED with 40mA circuit?

      I'm not sure if this is and oversight or if it has to do with the 50% duty cycle or the code that is uploaded to the Arduino Nano. Please help anyone. Thanks


      1 year ago

      l try to make more led blinking on the same time,normal LED are working,but when l change LED to Digikey LED,only pin13 working,could you tell where are wrong


      2 years ago

      How did you determine the flash rate. I assume "interval" is your timing variable. If you wanted a 40 hz rate, how would you do this.

      1 reply

      1 year ago

      This does not work for me as I can not see any light at all with a phone camera. Infrared should be visible with the camera. I do not see anything with naked eye either. I built this with parts from the links provided and I can measure 2.3 volts coming off of pins 13 and ground if I slow down the flashing by changing the "interval 50" to a lower value but no light. I actually ordered 4 of the leds and none of them work so either something is wrong with the design or I got 4 bad leds from digikey.

      1 reply

      Reply 1 year ago

      yep...it was bad led.


      2 years ago

      Thanks for the instructions, shall try to make it in the next weeks, would be nice if I can succeed, never worked with arduino before! picor


      2 years ago

      thank you! great project, will be making it soon!