New - ATmega1284p Arduino R3 with integrated DAC, headphone & op amp output, and Microphone amp input.

Go To Last Post
7 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The Goldilocks Analogue project was launched yesterday on Kickstarter.

There are some clear pictures, but I'm afraid you'll need to go to Kickstarter, or my latest testing blog to see them.

 

This is a private project (not a for profit company), but Seeed Studio have agreed to put it into their catalogue, should the Kickstarter campaign be successful.

This will ensure that there is an ongoing commercial source for these ATmega1284p Arduino R3 standard boards.

 

The 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 probably won't 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.

Last Edited: Wed. Oct 21, 2015 - 10:53 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Your giant animated GIF is neat, but some members here are still on dialup (not everyone live where DSL is an option).  At 10 MB, it will take at least 30 minutes to load this thread.

 

Please reconsider including such an enormous inline image.

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"Read a lot.  Write a lot."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

4 days into the Kickstarter campaign, the Goldilocks Analogue has hit 50% funded.

That's great news.

 

There are still some early bird packages remaining, from USD43 per board, to get an ATmega1284p platform with 256kByte SRAM and 256k EEPROM, not withstanding the full DAC and audio I/O amplifier section.

 

Thanks again.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I don't understand the point of this device.  Stereo CD quality output with a microphone input running on an 8-bit microcontroller? The AVR is too underpowered for a valid speech-to-text or speech-to-translated text device.  Speech-to-SD-card recorders are, what, $20? (Fully designed, built, debugged, and shipped).  Again the CPU is too underpowered to use the device as a live performing band's mixing board, and it only has one (possibly stereo) input. 

  It doesn't play MP3 files.  MP3 players are about $15 now, anyway again that's for a fully designed, built, debugged, and shipped unit.  It's not a sampler. You can't record a series of notes from an instrument and use a piano keyboard to play multi-note samples. It doesn't play MIDI files. Maybe time-shifting for a radio?

The BBC is on NPR (USA national radio network for upper-middle class interests) from 11pm to 5am when all the BBC fans are sleeping.  You could develop an application to record several hours in the night and play it back the next day.  Tivo for radio. 

 

Does anyone have any idea what this device could be used for? 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Simonetta,

 

let me check the Forum... yes its AVRFreaks.

So I assume your question is a "Dorothy Dixer", and there's no need to respond rhetorically to; Why choose an under powered AVR MCU?  wink

 

Let me describe a couple of example applications that I've found particularly useful, building off each of the hardware features.

 

Power supplies

GSM and other radio modules typically require large current flows during transmission. I've had a lot of trouble with some GSM modules requiring up to 1A of 3.3V power, and therefore failing (resetting) during transmit on normal Arduino boards. Similarly, I've had issues with a RFID project, where the scanner would reset on the Arduino platform because it consumed too much 3.3V current.

 

Internal RAM

Implementing software IPv6 requires large RAM buffers if complete packets are to be assembled before transmission. Handling received packets in a separate buffer adds to the issue.

I've been able to implement uIP on the 1284p, only because of its large internal RAM.

Long delay buffers for audio require large buffers. With a synthesiser application, for example, being able to cache 12,000 A-Law compressed samples means 3/4 of a second of delay can be provided.

  • RAM ATmega1284p 16kByte vs. 8kByte in Arduino Mega.

 

Large External SRAM & EEPROM

Capturing a large sample of data and caching it in either volatile or non-volatile storage for later transmission over a radio or wired interface. Aggregating samples (audio or otherwise) means that a radio interface can more efficiently transmit the information. I intend to build environmental monitoring stations that can capture actual audio samples, and provide more than just "noise level" resolution to the IoT service.

  • 256kByte SPI SRAM
  • 256kByste SPI EEPROM

 

Effective analogue output, capable of dual channel 48k samples per second.

There are several higher quality DAC solutions around in the format of Shields for Arduino. These devices are either quite expensive, or incompatible with Uno R3, or simply can't stream audio because of contention on the SPI bus. Having a DAC solution NOT using the standard SPI bus allows streaming of WAV samples from a LUT, from external memory, or from the SD Card, at full 48k sample per second rates.

Replicating existing cheap and much higher quality Korg synthesisers might seem like a foolhardy application, but it certainly provided many opportunities to learn about Direct Digital Synthesis, Biquad Filtering, and signal convolution.

 

Microphone amplifier, and Line-In inputs.

Being able to plug in a smartphone headset and then build; a walkie-talkie solution using readily available radio systems; or a voice activated thought recorder; a delay loop dog pranker; a voice changer; etc. External microphone amplifier solutions exist (from USD7.95), and these work great. But they typically don't allow separate electret microphones to be used, like can be found on a smartphone headset.

The ADC inputs on the AVR are DC, so having a simple level shifter to allow an AC Line-In saves thinking this problem through every time that an AC signal needs to be sampled, such as building a Radio TiVo as you've pointed out.

 

Analogue DC capable output.

Ok. I'll bite. Sure the AVR is quite limited and is a low power, 8-bit antiquity, but it is certainly sufficient to deal with a multitude of analogue outputs. Not all analogue is audio. Having a buffered DC capable dual analogue output on an AVR platform means that it is possible to simply experiment with producing specific DC Voltages, and then sample these Voltages to build a PID feedback solution, for example. Using the general purpose DAC specified in the Goldilocks Analogue means that the analogue output doesn't need to be clocked at any specific rate. It is not like an audio DAC, that relies on a sample train at a specific rate to produce output.

 

I hope that any of these applications are of interest.

Please, support the Kickstarter campaign if you can.

 

Regards, Phillip

Last Edited: Sat. Oct 24, 2015 - 03:01 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Update on this project.

 

The Kickstarter campaign is at 80% funded now with 10 days left to run.

 

I've added a number of Tech Updates on how this system works, the indicative analogue performance, and additional functionality (beside the obvious analogue and audio features),
that make the board useful as an advanced AVR platform in Arduino R3 format.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Was the price that much of an issue to go for a 16 bit dac instead of the 12? As far as i know there are no 12bit variables to save space, your still using up 2bytes of data right?   

~GuitarDude