Stories
Slash Boxes
Comments

SoylentNews is people

Journal by cafebabe

(This is the 18th of many promised articles which explain an idea in isolation. It is hoped that ideas may be adapted, linked together and implemented.)

I'm hoping to create a system which can drive up to 32 speakers for US$300 and I'm enthused that competitors are charging obscene prices for similar equipment. For example:-

I've made significant advance when comparing micro-controller architectures. AVR has a distinct advantage for low-level operations given that it has 32×8 bit registers which can be paired into 16 bit registers. ARM has a distinct advantage for DSP functionality and deliberately aims to provide a single-cycle multiply (or multiply-accumulate). However, ARM provides 13 general-purpose registers and, in Thumb mode (16 bit instructions), this is restricted to 8×32 bit registers.

To implement a chunky-to-planar bit matrix transpose, the latter has a small advantage. Likewise, at any given speed, one-cycle multiply out-performs two-cycle multiply. So, ARM is the target architecture. XMos would be a great architecture but it is too niche for me.

By chance, I found that an Arduino Due meets or greatly exceeds specification in all categories with the exception that there is 96KB RAM. This is exactly the size required for triple-buffering of 4 channel, 32 bit PCM audio at 48kHz when transferred in 2048 sample blocks. It is possible to transfer audio in smaller chunks but this may incur (additional) scope for audio glitches when decoding video with a frame rate below 30Hz.

An Arduino Due has hardware SPI but it would be unable to handle 25Mb/s reliably. Or, more accurately, a suitable sub-multiple of 84MHz. So, the chunky-to-planar bit matrix transpose remains useful. However, with 54 GPIO, it may be possible to bit-bang 32 or more SPI DACs directly. One option to reduce cabling is to have four or more satellite DACs with four or more channels per satellite DAC.

Any use of Arduino incurs linking to code under multiple open source licences. This includes GPL2 and Creative Commons libraries and an LGPL boot-loader. At the very least, use of an Arduino boot-loader requires compiled code to be distributed. This applies even if a cloned Arduino uses an Arduino boot-loader. If you don't like these terms then seek alternatives.

Anyhow, hardware requirements can be arranged around a US$37.40 board if implementation is open and buffer size is amended.

 

Post Comment

Edit Comment You are not logged in. You can log in now using the convenient form below, or Create an Account, or post as Anonymous Coward.

Public Terminal

Anonymous Coward [ Create an Account ]

Use the Preview Button! Check those URLs!


Logged-in users aren't forced to preview their comments. Create an Account!

Allowed HTML
<b|i|p|br|a|ol|ul|li|dl|dt|dd|em|strong|tt|blockquote|div|ecode|quote|sup|sub|abbr|sarc|sarcasm|user|spoiler|del>

URLs
<URL:http://example.com/> will auto-link a URL

Important Stuff

  • Please try to keep posts on topic.
  • Try to reply to other people's comments instead of starting new threads.
  • Read other people's messages before posting your own to avoid simply duplicating what has already been said.
  • Use a clear subject that describes what your message is about.
  • Offtopic, Inflammatory, Inappropriate, Illegal, or Offensive comments might be moderated. (You can read everything, even moderated posts, by adjusting your threshold on the User Preferences Page)
  • If you want replies to your comments sent to you, consider logging in or creating an account.

If you are having a problem with accounts or comment posting, please yell for help.