This week I reached a point where the prototype low-cost sample was functioning well on a breadboard, with power supplied by an Arduino. The moment I switched over to battery power and disconnected the Arduino, the circuit appeared to malfunction. After some exploratory testing, I discovered that the issue was caused by the prototype not having a connection to ground. This was previously being provided from my laptop power supply, via the USB socket the Arduino was connected to. One single connection from the GND rail of the prototype and the ground of my laptop USB socket was all that was needed to get the prototype operational again. Some more comments on grounding and surrounding issues can be found on the ‘Capacitive Sensing Library’ page. Although it’s a shame for a standalone, battery-operated device to have a requirement to be physically connected to ground, in the interest of time this is a compromise I’m willing to make. Particularly as the Makey Makey board has this very same requirement There are other ways to implement capacitive touch sensing without this requirement, smartphones are proof of this. However, there appears to be some complexity in the implementation.
Whilst tinkering with the prototype I noticed a couple of things which are worth mentioning.
- A failing battery can cause audio interference. The circuit is designed to be powered by a 9V battery. If the battery provides under 9V then audio interference might occur. As the circuit only allows me to listen to recorded audio via the onboard speaker, I was unable to determine if the interference is present when recording, on playback or both.
- A low pass filter is applied to the audio signal. The cutoff frequency is dependent on clock speed. This essentially means that I need to be mindful about the clock speed I configure the ISD1820 to default to as this has an effect on audio quality.
Additionality when running from battery, the PN2222 transistor being used to control loop functionality started to misbehave. Switching on Loop resulting in the loop LED being lit but did not result in the transistor switching. Adding a 220Ω resistor between the loop LED and the Base of the transistor resolved the issue.
I proceeded to draw the schematic in Eagle. I found a useful tutorial on the Sparkfun website which I would recommend to anyone new to Eagle. The image below shows the finished schematic. I moved on the to the second half of the Sparkfun tutorial which is concerned with board layouts. After switching to the board view I found components stacked on top of one another amongst a cluster of ‘air wires’. The main image above shows how far I managed to get, placing the copper traces on the board. I had hoped a single layer board would suffice for this design, however, it soon became evident that I needed to make use of at least two layers. Unfortunately, even with Eagle’s automatic routing capabilities, I was unable to create traces for every connection. I think my next (slightly drastic) step will be to start the schematic again from scratch but, rather than wait until the schematic is finished before I begin the board layout, I will lay the board at the same time. I’d like to also look into moving the ISD1820 into the schematic. It currently sits on a slightly hacked, prefabricated board. I feel that the interconnections between the two boards are adding complexity to the design. I had previously encountered noise when breadboarding the ISD1820. I think this was perhaps due to a failing battery so with a fresh battery it should work as expected.