Introduction: ElectrOcarina

As many, i am a big fan of The legend of Zelda Ocarina Of Time, which i recall as one of the best video game i ever played (if not the one).
For that reason i always wanted an ocarina and few years ago i decided to make an electronic one. Well... by that time i failed. Anyway i recently found out that a company made some. But it's not really what i would call an ElectrOcarina : youo can't even blow in it!
So as i realized that there was a Music Instrument contest on instructable i decided to fight back with the wires.

This Instructables will explain and give you the files to make your own electrocarina.
It has 7 buttons, plays 8 tones and is powered by a simple Arduino Nano.
To realise this project you will need:

Fusion 360

A 3D Printer

An Arduino Nano

Some electronic components (BOM will be detailed below)

Time & Love


Step 1: 3D Modeling

First thing first : let's design an Ocarina.
To do so i used Fusion 360, i am not that proud of that file : too much steps in my opinion.

Anyway here is the process i went through to make this model :
-Drawing the shell of the main body
-Drawing the mouthpiece
- Fillet to smooth out the junctions
- Make the holes for buttons
- Offset a Construction Plane
- Offset the profile of the object inward
- Extrude to create a "clamping border"
- Drawing for the speaker
- Extrude to create the space for the speaker
- Draw inner junctions to recieve screws
- Extrude them
- Cleaning the end of the pipe
- Revolve to create space for the Piezo
- Split the body in two halves
- Combine one with the "clamping Border"
The rest of the modelling steps are about creating rooms for the electronic inside.
Take a look at the file all these steps will seems clearer

As i said, i ain't proud of this model:
-Too many steps
-Forgot the hole for the toggle switch ON/OFF
-The place for the battery is not finished
-The bed for the arduino didn't fit well, i'm thinking of a different way to hold it

For these reasons i will work again on the file and therefore you might find something a little bit different than what i presented today if you dowload it.
I would recommand to try to make your own file but if your not comfortable with 3D modeling, please feel free to download the fusion file from here.
(Couldn't reupload my file! Gotta update this asap)

On the bright side
i made some parts of the design parametric so you can change the size of the holes if your buttons don't match mine, idem for speaker and piezo dimensions.
To make those modifications easily you can go to Modify >Change Parameters (see last picture)

Step 2: 3D Printing

Once the model is ready we can 3D print it!
Not much to say about this part

Once you're done fighting with the supports, you can use an aerosol sealant (not sure of the english name for this).
It will allow you to smooth the surface of the print. Basically it goes like :
- Let it dry
- Use sandpaper
-Start Over
Watch out, this part is long, but the longer you spend time on this step the nicer your paint will be (don't be lazy like me).

Step 3: Electronic

So here is the Bill Of Material :
-Arduino Nano
- Perforated electronic board (optionnal)
- 9V Battery
- Battery Hook Up
- On/Off Switch (which i forgot! :o )
- 10K Resistor
- 1M Resistor
- Piezo Buzzer
- 8Ohm Speaker

++++ The list below can simply be replaced by this board ++++

-LM386 (low power audio amplifier)
-10 kohm potentiometer
-10 ohm resistor
-10 µF capacitor
-0.05 µF (or 0.1 µF) capacitor
-250 µF capacitor

There is 4 parts in this circuitry :
-Blow Sensor
-Amplifier + Audio Out

Let's check them out.


Nothing really special, just keep in mind that you will need an extra line from the battery to the amplifier.
See Pic above.

Blow Sensor

In my early trials i used a microphone, but the results were so messy and random. I kinda gave up on this and decided to use a simple Piezo : That's cheap and efficient. You just have to plug it between an analog pin of the arduino and the ground. Watch Out a 1MegaOhm Resistor is plugged in paralel with the piezo. You should also be careful to find out which pin is + and whichi is ground on your piezo. I made a very simple code to check out reading the values on the monitor and trying the component in both ways :

void setup () {
pinMode (A0, INPUT);
Serial.begin (9600);

void loop(){
Serial.println (analogRead (A0));
delay (20);


While released, buttons should be connected to ground through a 10k resistor.


To be fair i simply reproduced the circuitry from this page

Step 4: Code

The code uses the library "The Synth" made by DZL it can be downloaded from this github page.
Regarding the part i wrote, this is a fairly simple code :
It checks if there is a blow.
if so it check if a button is pressed, then play a note.
though if no buttons is pressed but there is a blow it plays the base pitch.
If there is no blow it does nothing.

Check the code ;)

Step 5: Assembly

Time to solder everything and dive into the wires...
It's been messy...
Give quite long wires to your buttons it will help during the assembly .

Step 6: What's Next?

It was a lot of fun and despair to make this project.
But that's only a v1 for it can be improved in so many ways!

Here is the list of future developments :
-Include a extra button to play semi-tones
-Besten the sound quality
-Remake the 3D file
-Prepare a ready to plug shield

Hope you enjoyed the project, and please let me know if you made one! :)

Instrument Contest

Participated in the
Instrument Contest