Goldilocks Analogue
Classic Arduino compatible with quality analogue I/O
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.
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.
To make all of this analogue power easy to use, the Goldilocks Analogue is fully supported by the Visuino IDE for drag and drop patch-panel signal programming. 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.
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 Arduino 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.
Technical Background
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.
- Overclocked 24.576Mhz - 53% faster than Arduino Uno or Mega
- 16kByte RAM - 8x Arduino Uno R3 & 2x Arduino Mega
- 4x Flash Memory & 2x EEPROM of the Arduino Uno
- 2x Programmable Serial Ports
- Independent Analogue ADC Platform
- Extra 16bit timer - Timer 3
- JTAG Interface
- Real Time Clock support, equipped with 32.768kHz 20ppm 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 (within 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.
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 TPA6132A2Headphone 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 5V 3A, 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 100mA inverting charge pump regulator and it is filtered by a 1st order LC network.
The Goldilocks Analogue is 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.
Software & Documentation
The Goldilocks Analogue User Manual is available, and the Production Testing Document has reached Version 2 following inclusion of Windows 10 test procedures.
Revised Arduino IDE Variant files for Goldilocks Analogue using the Arduino core are available on Github/
Also additional optional libraries to provide support for each of the advanced features of the Goldilocks Analogue are available in the Arduino IDE Library Manager.
- DAC Library (including IIR Filtering), using Timer 3.
- SPI SRAM and SPI EEPROM Library (including Ring Buffer solution).
- C90 Real Time Clock Library, using Timer 2.
- Arduino FreeRTOS Library, using the Watchdog Timer.
The Goldilocks Analogue appears in the following collections: