DIY Arduino Nebulophone Synth

66K29461

Intro: DIY Arduino Nebulophone Synth

I originally wanted to purchase a Nebulophone but, my El-Cheapo price range didn't like the tag. I realized that I could program my own AtMega 328 by using ArduinoISP Then I found out that if the code was Arduino compatible, why not just use the Arduino as a Nebulophone? Well it was kind of a waste of Arduino but at least I could simplify circuitry. I recently built my DoAnything Shield and could now have access to any pin I wanted.

I looked at the schematic and realized that Dr. Bleep had left plenty of things missing such as where did the stylus go and, where were the keypads and so I emailed him and after a long string of emails everything was cleared up. 

I don't have that many photos but the photos I did take explain a lot. 

Here is a video of the original updated one:





Here is my video:

STEP 1: The Bits and Pieces Needed

You Will Need:
3 Potentiometers (I used these but they aren't neccessarily the best pots I've used so I am switching them out with these.)
10cm of copper tape (You should get 11cm in case of any trouble...Really any measurement will work; you just need to make it fit your board)
1 alligator clip 
1 SPST/SPDT slide switch (Any type of switch that can move from one position to another until pused again work (Toggle, Rocker, etc.) It doesn't matter whether it is SPST or SPDT the second connection is nothing.) 
2 Pushbuttons (Tactile works nicely.)
1 5mm LED (Really any size will work. This is the Arpeggio LED)
1 LED and Photocell assembly (I got mine from here but I didn't realize that the same website had this which is much cheaper although untested. You could also make your own by bending an LED over to a photocell that can range from 10k to 200k. and then covering it with some black tubing. I'm not sure the one I had is exactly 10k to 200k but it worked.)
1 speaker and amplifier
1 Rail to Rail Op-Amp (the article said tlc2262 but I improvised with tlc2272 and it works fine. IT MUST BE A RAIL TO RAIL OP-AMP)
1 row of male headers
1 DoAnything Shield (Really it is only an adapter...you don't have to use one.)
1 Piece of Large PerfBoard (This or this SHOULD work.)
3 0.1uF Capacitors
1 220uF Capacitor
1 8 pin IC Socket
1 Audio Jack (For output. You should use the size that fits your speaker and amplifier)
1 Power Supply (For the Arduino, of course. (9v battery, USB Cable, Wall Wart, etc.))
1 IR LED (Use the clear side-firing type) (I didn't add this; I don't own any other Andromeda Space Rockers or Gieskes )
1 IR PhotoTransistor (See IR LED)
1 HUGE BUNDLE OF WIRE (You will need both solid and stranded wire.)
1 Arduino

STEP 2: Program.

This is the step where you take your Arduino and Program it. The code was written by Dr. Bleep.

REMEMBER: This is a large sketch. If it takes longer than a millisecond to program it it is because it is so big.

If all goes well, then you should have a dim flicker from the built-in LED on Pin 13.

Save the code in your Arduino Sketchbook folder

UPDATE: IF THE CODE (NEBULOPHONE V11) DOES NOT WORK, THEN TRY NEBULOPHONE.ZIP

STEP 3: Build.

This is the tougher part. I have less photos here so I am sorry but I will do my best to explain thoroughly.

The first picture is the circuit. Click on the "i" in the upper left hand corner to view the circuit better.

NOTE: I will assume you have found a way to bypass the fact that the distance between Digital Pin 7 and Digital Pin 8 is not the standard 0.1".

  1. Take your male headers. You will want to move them towards the shorter side. This will enable it to plug into the Arduino more easily.
  2. Solder them face down so that the long side protrudes below the board as in Picture Three and Four. The black holder should be above. Next, solder the headers down.
  3. You can now start placing components according to the schematic.You can follow my layout, Dr. Bleep's layout or your own layout.
  4. The way I soldered wires to connection was I took the wire and stripped the end and wrapped it around as in Picture 8. I then soldered it as in Picture 9.
  5. Now comes the tedious part. Take your copper tape and with a small knife (X-acto) Score at an interval. Because I had 15 cm to use I had 1 cm pieces with 0.5cm in between each one. (Approximately.)
  6. Once scored I tediously did it again on the other side to make it look like Picture 9.
  7. Now, cut the copper tape into the individual keys.
  8. Next, tape it on and then tin the tops so that the wires can stick. Soldering to a length of copper is not easy. It takes a while before it heats up to a high enough temperature. An example is Picture 10. However after you tin or solder it, DO NOT TOUCH. IT IS VERY HOT.
  9. The schematic went through multiple revisions before it was working. I am assuming that you have placed all your components except for the stylus and keypads. The keypad pins on the Arduino's Digital Pins are, from left to right, lowest pitch to highest pitch, as follows: 9, 10, 12, 0, 2, 4, 5, 6, 7, 8. Solder each pin to each pad. I found that if you strap down each wire with a component lead while soldering it helps keep the wire down as in Picture 11. Afterwards, you can remove it and reuse it for the next one.
  10. Once those are all soldered, the stylus needs to be installed. Take your stranded wire and cut a good length. Then, solder it to the alligator clip as in Picture 12.
  11. Solder the other end to ground.
  12. Whatever components you did not solder yet solder in. That includes output wires or jack. I soldered my pots last because they were the tallest.
  13. Now, install the Op-Amp.
  14. Plug it into the Arduino board.
  15. You're done!

STEP 4: Finished!

At last we have completed it!

Analog 5, unlike the schematic is the Arpeggio pot. Analog 4 is the LFO Pot. Analog 3 is the Waveform pot.

I hope you enjoyed this Instructable.

Leave a comment if you have any questions or comments.

59 Comments

Genius! I scorched-earthed my KIT Version last year, this is a great way to get over that tragedy. Thank you.

There is a minor error in the schematic: ARP switch is shown as being connected to ANALOG_0 and SHIFT button to ANALOG_1

Both the PCB layout and the Nebulophone v.11 code have this reversed.

Hiya, I'm all breadboarded and still can't figure a couple things out. Which LED's are supposed to be interacting with which? is one supposed to be right next to the CDS? which two LEDs on e the schematic are you saying should be taped together? which ones are mandatory and which are only for networking?

Sorry for the late response! I believe LFOLED is the one that needs to be hooked up to the CDS cell, though I'm not 100% sure. You can try hooking up each LED to see what it does and if it is a desirable effect. Who knows? Maybe you'll find an unintended cool effect...

I'm sorry but I have another problem: the declaration of waveTable seems to be missing. How do I declare it?

I updated the code to the newer version on Dr. Bleep's site. Make sure you open keep Nebulophonev11.ino and all the accompanying files in the Nebulophonev11 folder; if you double click the Nebulophonev11.ino it should open in the IDE with several tabs which is what you want, try uploading then. Also make sure that you are using the latest version of Arduino (1.0.6).

Ok so now i've managed to get it working, except that the shift button doesn't do anything. The Led changes, but the sequencer doesn't start and the scale doesn't change either. Does anyone have advice?

Do you happen to remember what you did to fix the issue?

I would double check your wiring to see if the shift button was wired up properly and for that matter to the right pin. If not, you can make a quick change in code or resolder it.

Be sure to post pictures or a video of your Nebulophone when you get it working!

Sorry to bother again. There are quite a few things on the schematic that I still don't quite understand yet.
1. In the schemactic,
the TLC2262 is put after the photocells, and there's another one
without label before the photocells. Does it mean two op-amps, or just different pins of the same op-amp?
2. Is the ARP switch just connecting A0 to ground? No resistor needed to avoid short circuit?
3. In the schematic, pin 13 is connected both to IR LED and LFO LED. Is that a mistake?
4. It seems the keys are not arranged in a simple ascending order. I wonder how I can change it, but I can't find it in the code.
Thanks a lot!

Sorry for the delayed response! I got caught up in a bunch of stuff and I didn't have much time to respond. Either way, here goes:

1. It's actually the same Op Amp chip, but two different op amps. There are two amplifiers inside the TLC2262, and you can see them in the data sheet here on page 3. All you have to do is wire it up properly (e.g. the photocell and C2 before the second op amp).

2.Yes, the Arp Switch is connecting the circuit to ground. In that specific case, the Analog pin is acting as a digital input, so grounding it pulls the pin to 0 volts, which is detected by the Arduino.

3. Not really a mistake. The LFO LED [2] is really just a visual repeat of what is being set over IR, for confirmation that the IR is working, if you choose to use it.

4. In short, I advise you not to change it, because the way the code is set up is somewhat confusing, especially if you aren't too experienced in Arduino or other coding languages. However, if you do want to have a look, I believe the key assignments are under the Key.ino file where it says keysb = (PINB & B00010111);

Thanks a lot, that's very detailed explaination! I've finally got all the parts needed. Let's see how it goes.

I read the PCB diagram on Bleep Labs once more, and it seems the IR LED is actually connected in parallel with the ARP LED (the green one) instead of the LFO LED (the white one). And the alligator clip is connected to ground I suppose?
It is confusing that the alligator clip is not shown on the schematic at all. While the PCB diagram shows two different places for connecting the alligator clip (one on the top right, the other one just beneath the atmega328 chip). I suppose that is actually a mistake, that he has probably put two versions of diagram together.

hey there did you have any problems with noise or low output volume? how did you remedy these?

No, I didn't encounter this issue when making this. Are you using a Rail to Rail Op Amp?

If so, then my next best bet would be to check your wiring, specifically the speaker connection. In other previous projects I did encounter an issue where the output was virtually non-existent unless hooked up to a huge amplifier. After some troubleshooting I found that the speaker output had a poor connection to ground. So maybe check that with a continuity meter or something similar.

Is the alligator clip mainly for holding the note while you adjust other knobs? Is the keys capacitive sensors that respond to fingers too? Thanks!

Hello! Yes, the alligator clip is indeed mainly used to hold the note. Essentially, the pad is a Digital I/O on the Arduino, and the alligator clip is grounding it, much like a switch. You could easily replace the alligator clip and keypad set-up with buttons by connecting the Digital I/O on the Arduino to one end and ground to the other. On the other hand, if you would like to do capacitive sensors with only one pin, that may require more circuitry. You can look to this project some ideas.

Thanks for the prompt reply! I hope I can make one and try it.

More Comments