ArduiComm is a Windows program developed by 612 Photonics, LLC to provide a simple way to directly control your Arduino board through PC. The basic interface of this program is shown in figure 1.


Fig.1 ArduiComm interface.

To install and run the ArduiComm program, you only need to go through these 4 simple steps.

Step 1: Download the “” file, unzip it.

Step 2: Under the “\Arduino” folder, there are several hex files “ArduiCommV1_Nano.hex”, “ArduiCommV1_Mega.hex” and “ArduiCommV1_Uno.hex”, each is a compiled code for a certain type of Arduino board, and it needs to be uploaded to the Arduino board. So plug in your Arduino board and upload the proper hex file. If you don’t know how to upload a hex file to Arduino board, you can use a free tool called Xloader. It is very easy to use and can be downloaded here:

Step 3: Run the program “ArduiCommV1.0.exe”, you will see the main interface as shown in figure 1.

Step 4: Find out the COM port number for your Arduino board, put this number in the COM port number field, and click “Connect” button. If the communication is successful, you will see the “Connect” button turns green, and all the functional buttons enabled, as shown below, and you can fully control your Arduino board.


Fig.2 Arduino board connected.


We will give a few examples below to show how to use this program.  At any time if you click “Clear All” button, the interface will change back to the newly connected status as shown in figure 2.

Example 1: Turn the famous LED13 on and off. You can just click the “OFF” button to the right of D13 in the “Digital Out” group. It will switch between “LO” and “HI” and turn LED13 on your Arduino board OFF and ON, respectively, as shown in figure 3.


(a) Use ArduiComm to turn LED13 OFF;


(b) Use ArduiComm to turn LED13 ON.

Fig.3 Digital Out control.

Example 2: Check the status of a digital pin using “Digital In”. We can first set D3 in “Digital Out” as HI, so we know it provides logical high voltage. If we connect pin D3 and D13 on the Arduino board together, and click the “OFF” button to the right of the D13 in the “Digital In” group, we can get its status as HI, and the LED13 on the Arduino board will be turned ON. If we then set D3 in “Digital Out” as LO, and click to check again the status of D13 in the “Digital In” group, it changes to LO, and the LED13 on the Arduino board will be turned OFF. Figure 4 shows the interface change during this test.


(a) When D3 OUT is HI, D13 IN changes to HI;


(b) When D3 OUT is LO, D13 IN changes to LO accordingly.

Fig.4 Digital In status.

Example 3: Analog pin as Digital pin. Simply click the corresponding button and you can get what you want. The same is true for Analog In group. So we will not discuss further here.

Example 4: PWM output. If you want to set D3 as PWM output, you can simply move the slider of D3 in the “PWM Out” group, at a target location, or type in the target value in the text field of D3 in the “PWM Out” group and hit Enter, then you can get the PWM output on pin D3 as you desired. If you now connect D3 to D13 on your Arduino board, you can see the light intensity of LED13 changes smoothly with the PWM value you set. Since PWM is actually digital 1 and 0 occupying different part of time domain, if you check your D13 “Digital In” status, you can get randomly either “HI” or “LO”, as shown in figure 5, depending on what time you click the button.


(a) PWM set at 86, D13 IN read as LO;


(b) PWM set at 86, D13 IN read as HI.

Fig.5 PWM output.

The basic idea of the Arduino-PC communication used in this program is discussed in a blog “ARDUINO APPLICATION IN PHOTONICS LABORATORY – 2.3 ARDUINO-PC COMMUNICATION”. If you want to understand all the details of this program, you can purchase the program with source code on both Arduino side and PC side. The PC side code is written with Python 2.7, and compiled with py2exe.

Thanks for supporting our work by purchasing the software!