Introduction: Presentation Magic Wand With Arduino

This device is intended to be used in a presentation to extend the presenter's access to the computer utilities without directly control the computer using a mouse or a keyboard. By swiping the magic wand in many different ways, the presenter is able to toggle a computer's workspace (screens), switch presentation pages, and execute up to two customized system commands. It also draws interest from the audience and creates fun.

How it works and how to use it:

When the magic wand power-up, the magic wand creates an access point called "Wand_presentation." To get access to the magic wand's LAN, connect to the access point with password "Wand123456." The magic wand also creates a TCP socket server with an IP of, To connect to the TCP server, executing the python client program is required. Once execute the python client program, it will ask to configure custom commands. Configure custom commands by entering the desired corresponding system commands, and the client will start connecting to the TCP server. If the magic wand is connected to the client running the python program, the LED on the tip of the magic wand will shine green. Finally, swipe a few times to verify, and you're good to go.

1. Connect to "Wand_presentation" from WIFI list in your computer GUI, enter password "Wand123456"

2. Run python client program

3. Configure first system command (the command that triggers when you swipe the magic wand two times)

4. Configure first system command (the command that triggers when you swipe the magic wand three times)

5. Swipe a few times once connected to verify the response. Your computer should switch workspace once you swipe it left or right.

How to use while presenting:

Swipe left: switch the workspace (screen) right

Swipe right: switch the workspace (screen) left

Swipe up: press and leave space button once

Swipe down x1: press and leave left button once

Swipe down x2: execute custom command 1

Swipe down x3: execute custom command 2


1x Arduino nano 33 iot

1x short micro-USB to USB wire


1x single-celled NCR18650B battery power supply


3D printed shell

Step 1: Prepare Your Software

Arduino code:


1. Open a terminal window, type the following commands:

git clone

mv Magic_wand.git ~/Documents/Arduino/

2. Using Arduino editor, upload the code using either the online editor or offline editor

3. if you can not import pyautogui in the python program, run "pip install pyautogui" in terminal.

Step 2: Creating the Circuit

Step 3: Printing and Assembling the Shell

Making the outer shell:

Using a 3D printer, print out the following stl files:

R5 x1

R6 x1

R7 x1

R8 x1

R9 x1

R10 long x1

R10 short x2

R11 x 2

R11 bumped x1