About this project
The goal of the Goldilocks Analogue is to bring a sophisticated analogue and audio input, output, and storage capability to the Arduino environment.
The Goldilocks Analogue has all the analogue input and output options covered, together with sufficient data storage options available, to delve into the world of musical direct digital synthesis, human auditory augmentation (super power hearing), sound activated systems, signal processing, and analogue process control.
Some example projects have been implemented already including a triple oscillator digital synthesizer, a digital walkie-talkie, and many further projects such as talking clocks, sound sensing alarm systems, and Internet connected baby monitors are easy to build.
I love to prank my dog by recording him into a long audio delay loop; playing back his own barking 15 seconds later drives him crazy!
Goldilocks Analogue is a Hackaday 2015 Quarter Finalist.
Using the smartphone compatible 3.5mm socket, a microphone input and headphone outputs can connect your sounds into the Arduino world. Samples of sound can be played back from on-board SRAM, or recorded on to the EEPROM to be recovered later. Up to a minute of telephone quality audio can be stored (less for higher quality), or played back using the on-board chip storage. The MicroSD card can store and play back hours of audio if desired.
My project video shows an example application; a triple oscillator direct digital synthesiser implemented using a Gameduino 2 touch interface (available in a bundled reward).
To make all of this analogue power easy to use, the Goldilocks Analogue will be fully supported by the Visuino IDE for drag and drop patch-panel signal programming. One licence for Visuino will be included for each board. If you are not keen on programming all of the libraries, drivers, and configurations, then Visuino will allow you to connect the dots with visual signal flows, and use the Goldilocks Analogue without writing a line of code.
You will need at least two Goldilocks Analogue devices to replicate a Walkie Talkie project, for example. This is Kickstarter will lead to future availability on Seeed Bazaar, but that will happen only after all Kickstarter pledges are fulfilled. So please make sure that you capture all the devices that you think you will need in the short term.
Is it for me?
If you have interest in sound and music, and have used an Arduino previously, then the Goldilocks Analogue is for you.
Even if you haven't previously used an Arduino, but you want to dive into producing computer audio, full support through Visuino will ensure that you will hardly need to write any code to be able to use all the advanced capabilities.
If you have an interest in the Internet of Things, and want to acquire audio or other data to integrate into an IoT cloud service, then the Goldilocks Analogue is for you. The extensive non-volatile storage (256kBytes of EEPROM & MicroSD Card) lends itself to storing large samples of audio (barking dog, noisy neighbours, etc) and then sending this "big data" to an IoT cloud provider using WiFi or Ethernet Shields (Shields not-included), for detailed analysis.
If you love the classic Arduino environment, but you're starting to simply run out of space (RAM or Flash) when building your bigger projects on an Arduino Uno or Leonardo, then the Goldilocks Analogue is for you. With twice the RAM of the Arduino Mega and 256kBytes of SRAM available, long samples of audio, IPv6 packets, or other large data can be managed and processed.
Finally, if you just want the greatest classic Arduino compatible board available, then the Goldilocks Analogue will suit you perfectly, as perfection was the essential design goal. No corners were cut during the design of this personal tool.
The applications for all of the capabilities contained on the Goldilocks Analogue are endless. It is like a classic Arduino, but with superpowers.
My 2013 Goldilocks Project was specifically about getting the "Goldilocks" ATmega1284p MCU into a pin-out format equivalent to the Arduino Uno R3, to support applications requiring more RAM and code space than would fit on the 328p MCU.
The Goldilocks project achieved that goal, but the resulting platform still lacked one capability that I believed was necessary; high quality analogue input and output, for the real-world.
I've been iterating through prototypes now for over 18 months, each one bringing improvements and adding new features to the platform. Following the successful testing of the fourth prototype, I'm currently working on pre-production devices to clean up the final few issues prior to the Kickstarter production run.
The core of the Goldilocks Analogue, the ATmega1284p, is a great Atmel megaAVR MCU that has a number of significant feature advantages over the Arduino Uno ATmega328p, whilst maintaining compatibility with the classic megaAVR Arduino platform.
- 16kByte SRAM = 8x Arduino Uno R3 & 2x Arduino Mega
- 4x Flash Memory & 2x EEPROM of the Arduino Uno R3
- 2x Programmable Serial Ports
- Independent Analogue ADC Platform
- Timer 3 (Extra 16bit timer)
- JTAG Interface
- Real Time Clock Timer, equipped with 32kHz Crystal
- Better PWM pin access
- Extra I/O pins
The external analogue output platform has been optimised to provide dual channel (stereo) output at up to 48k samples per second. To achieve this sample rate the ATmega1284p MCU is overclocked to 24.576MHz. Choosing this crystal frequency permits the use of an 8 bit timer to accurately (15ppm) generate any sampling frequency that is a factor of 384,000, from 2,000 right up to 48k samples per second. Overclocking the MCU by 22% means that it may not work at the extremes of the specified temperature range from -40 Celcius up to +85 Celsius. If overclocking is a problem for you, please don't support this project.
The MCP4822 12bit DAC provides dual (stereo) channels with output voltage range from 0V to 4.095V, which is fed to both a high current capable TS922A Op Amp and a dedicated TPA6132A2 Headphone Amplifier. These options allow optimal reproduction of audio, and DC level referenced analogue outputs.
The DAC is driven by the ATmega1284p USART1 in Master SPI Mode. This frees up the normal Arduino SPI bus to access the MicroSD card, or either of the two on-board SPI interface memory devices, 23LC1024 256kByte SRAM and AT25M01 256kByte EEPROM, without any timing constraints.
Audio input is managed by a MAX9814 AGC Microphone amplifier. Gain is adjustable from 40dB (default for typical smartphone headset microphone) up to 60dB, which also lends support electro-cardio or other high sensitivity applications too. Additionally, a level shifted line-in is provided to support AC line level signal input. These signals are connected to the Arduino A7 and A6 pins respectively, and can be sampled by the integrated AVR 10bit 15k samples per second ADC capability.
The main AP6503 SMPS power supply is rated at well over 2A, and is filtered by a 2nd order LC network to provide clean 5V for the analogue platform. The Goldilocks Analogue also incorporates a CJA1117 3.3V 1A regulator for the MicroSD card, and 3.3V shields. The negative supply for the Op Amp is provided by a LTC1983 -3V inverting charge pump regulator and it is filtered by a 1st order LC network.
The Goldilocks Analogue will be shipped pre-programmed with an Arduino (wiring) compatible bootloader, and the necessary Board and Pin description files will be available to provide the classic Arduino IDE R3 experience. Additional support for early model I2C Shields (anything prior to the Uno/Leonardo R3 standard), is provided by simply closing a solder-bridge on the back of the printed circuit board.
To replicate the capabilities of the Goldilocks Analogue you would need integrate and test all of these devices and break-out boards:
- Arduino Mega ~ A$80
- 2x Adafruit Wave Shields with SD Cage ~ 2x A$33
- Adafruit MAX9814 Mic Amp Breakout ~ A$10
- 8x Adafruit 32kByte FRAM Breakouts ~ 8x A$15
- Visuino Programming Tools ~ A$15
- Filtered 2.4A 5V SMPS, 1A 3.3V, and 100mA -3V power supplies.
Totaling over A$290 of expense.
Alternatively, there are also some high quality DAC options already in the market, which I've personally tested and I would recommend if you just want a great DAC, without all the other integrated hardware goodness.
Open Music Labs Audio Codec Shield in market for A$45
Very high quality capability shield, but not compatible with Arduino Uno R3 or the Arduino Mega. It is controlled by I2C on A4/A5 (non-R3) and audio data flows over the standard SPI interface making it difficult to use with any external SPI storage.
Digilent / Stanford / TI Analogue Shield in market for A$70
A flexible shield with high resolution DAC and ADC devices, but there is quite a bit of power supply noise fed into the board from the underlying Arduino platform, which means that the 16 bit DAC resolution is hidden below the noise floor. Also, the DAC is driven by the standard SPI interface, making use of external high capacity storage quite challenging.
None of these other products are an integrated, fully thought through solution for sampling, generating, and storing analogue signals, within the Arduino environment, like the Goldilocks Analogue.
Over the past 8 months, I have been working with Ivy, Eiki, Shuyang, and Xiaofeng at Seeed Studio to bring the Goldilocks Analogue to production readiness. Never having been involved in electronics manufacturing before, I am continually surprised at the amount of detailed work required to get an idea from prototype through the manufacturing process and out the door at the end.
The current version Prototype 4, is almost production ready. On the testing page, the few remaining errata can be noted. These have been resolved in the design, and the next step is to manufacture pre-production samples following the successful Kickstarter process. Pre-production manufacturing will happen in December 2015.
During January 2016 I will be testing and confirming that the pre-production samples are correct in every way, finalising the testing scripts that Seeed will be doing prior to shipment, and writing documentation.
The production version will be manufactured during February 2016 and, if all goes well, shipments should hit backers mail boxes late in March 2016.
Boian Mitov is already working with Prototype 4 to integrate all of the features into the Visuino platform, and he will have beta support available in December 2015. I will be working with him in January 2016 to ensure that everything is working as designed.
Risks and challenges
I have been testing and revising the Goldilocks Analogue for eighteen months through multiple versions. Changes have been made to make it more functional, more durable and simpler to manufacture.
I hope that this extended development cycle will help to limit potential issues and risks associated with this project. There will always be risks and challenges associated with creating a physical product when using contract manufacturers.
Potential risks and challenges include quality control issues, unexpected costs, production delays, and shipping delays.
I hope that working with experienced contract manufacturers, such as Seeed Studio, throughout the design and review process will help me to overcome any potential setbacks with this project.
Following a successful Kickstarter, Seeed Studio have undertaken to support Goldilocks Analogue in their Bazaar. This decision is still to be finalised, and is dependent on approval through Seeed Studio's internal business process.
Note that this project development is not for commercial gain. There is no company launching off the back of this project. I am offering the fruits of a private development in the hope that others will find this as useful as I do.
All schematics, board designs, and Bills of Material will be made available, under the Creative Commons, following finalisation of the production run documents.Learn about accountability on Kickstarter
Support this project
- (30 days)