The idea was born somewhere in 2015 when I acquired my first solar cells. One of the questions I had is what happens when you connect a buzzer to the solar cell. Will it produce any sounds? Is it powerful enough? How big does the solar cell need to be?
I quickly realised that actually, the buzzer is quite sensitive and would start producing sounds in a room or relatively far away from a regular incandescent lightbulb.
The discovery amazed me as this was basically a reasonable light detector that was able to give an audio feedback to the amount of light. It didn't measure photons, but it did operate in the human day to day light levels. It would be very quiet at low light levels and then have a linear region of loudness increase as you would expose it to more light and then it would saturate and end up being really loud. Pretty much as you would expect from a solar panel.
I didn't think much of the practical use for the instrument and just had it as a neat "power of light" demonstrator. But, at some point couple of days later, I felt like I had a genius idea!
Can I make it change the frequency depending on the amount of light?
This was a turning point for me.
As at the time I have just started using Arduino and was learning more and more about microcontrollers, I decided to give it a shot in the digital domain.
One of basic ideas I had was this: let's use a low-ish voltage Zener diode and hook it up to an analogue input pin. Then let the solar cell power the microcontroller. At some point really early on, I decided to use a nice little 8 pin DIP package ATtiny13 for this project.
This way I can make it small and cheap.
The code was also really simple. Read the analogue pin, do some maths to get a usable range and change the delay time in the code main loop. The other bit was to turn on and off outputs to the Piezo speaker. This would of course have the effect of changing the audible frequency.
To my surprise, it worked! In fact, it worked quite well considering it was a simple 8 bit microcontroller with even simpler code.
I realised I have made a sort of a digital Theremin that operated on light.
Then, for some time, I had abandoned the project until a year or so later when I had the next organic idea. That was to quantise the linear progression as it was a bit sensitive to play and I always wondered how would that sound. Has anyone ever played a quantised Theremin? Also I wanted to make it sound better as the tones didn't sound as clean as I thought they should or could sound. They had a bit of a tonal noise in them. Not surprising considering how the system worked.
This made me work on a second prototype and this time I decided to make it serious, not just a gimmick. The new prototype was to have Ultra Low Powered PIC microcontroller, power supply filtering, diode, capacitors and MOSFET Piezo speaker drive.
This gave me the opportunity to finally explore the sounds of a quantised note progression and to see how good can this actually sound. The code complexity has also increased significantly as now I had to decide which note to play, make sure there is enough range but also not too sensitive. By experimenting I came to conclusion that it is probably possible to implement only two octaves. That was a compromise I could not get away from.
Also the decision was made that it is absolutely necessary to have both the quantised playing option as well as the linear option. I felt that that is something that musicians might appreciate and after all, that was the original idea. This was accessible via the onboard jumpers.
Also somewhere in that time I have coined the name SolarSounds. It just sounded modern and appropriate and the prototype worked like a charm.
This was the point I decided to make a proper PCB for the electronics and to make a simplification of the design using the knowledge I have gained by building prototypes and experimenting with PIC microcontroller features. One of the main simplifications was to remove the external Zener diode and work with internal Fixed Voltage Reference instead and to remove the discrete Piezo driver. One other consideration was to evaluate whether the Numerically Controlled Oscillator function was any good for making notes. To my disappointment, that was not precise enough so the old method using timers had to be used as it just gave a superior sound quality because of the way Microchip's NCO feature operates. Other major change was to add switches to enable the user to select notes. The idea was good but unfortunately, once I had the board built I realised how silly miniature the switches are and that there is actually not enough of them to realise my idea.
That was a turning point where I decided that I need to sit down and seriously reconsider the design and features of the board. That is when the final SolarSounds was conceived.
Final version of SolarSounds was to have a big set of switches that will represent a full octave. With these switches, user can choose notes from an octave that he wants to be played. They can also double as menu selection switches. I also realised that there can be some extra features I have not considered like having preprogramed chords and scales, and to let user record his own note settings and arrange them on extra buttons that will allow the user to shuffle between the settings.
All of this meant a lot design work and this became a serious device and a project of mine.
Little by little the design was coined and soon the first boards were manufactured.
For the next half a year, and even a bit more, I was working on software. This had to be done right because much of the feel of the device was in the software operation and I wanted everything to work smooth and reliable. And so, this was how the first proper SolarSounds was made! It had all of the features I wanted and a fairly complex user interface with EEPROM memory to store user settings.
The next thing I started to look into was the unnatural and complex way of playing the instrument. I realised that even though it is ground-breaking by just using the solar panel to power a musical instrument, I have also invented a new way of selecting notes and playing them. My thought was that this might not sit well with musicians and they might object to the way it was meant to be played. One other issue that I couldn't get over was the inability to play multiple notes at the same time. That was intrinsic to the way device worked, there was just no scope to play two notes at the same time, but if I made a more standard keyboard layout, you could at least press two or more notes.
This is how SolarSounds piano was born
A new keyboard layout was made, which used buttons instead of switches. This enabled the board to be played like a conventional piano style musical instrument, hence the name.
I also decided to remove all features related to the note quantisation and memory storage from the software as all of these bits were implemented in the SolarSounds and were not easily translatable to the new design.
This version finally had the ability to play two notes at the same time! The board was also simplified by removing the extra buttons with feature that were not to be implemented here. As a consequence, the software ended up being significantly simpler and as the buttons were cheaper than the switches, the price of the device ended up being lower. This was not to be the updated version of SolarSounds, just another version so that they can be side by side.
What the future holds?
I have been thinking of an idea to make something bigger and a bit more complex in the future. This would be battery powered, but still have a solar panel for charging and modulation. It would have an actual speaker and would synthesise sounds rather than just simply driving the Piezo transducer. I would also get rid of the buttons and switches and have just touch sensitive areas but this idea is just a concept and I would like to hear from you whether that would be a good idea.
This has been my journey with SolarSounds so far and I hope you liked the story behind the instruments. If you are interested in more information about SolarSounds, visit our online shop and download section for the User manuals.
Please share and leave a comment and thank you very much for reading,