Frequently Asked Questions

Your Bela queries answered

Welcome to the Frequently Asked Questions page! Please browse the questions and answers below. If your query isn't answered here, please email us.

Bela Mini

Bela

Bela Mini

  • When will Bela Mini be available?

    Bela Mini is available for pre-order now. The design is finished and tested and production is underway. Barring any unforeseen delays, we expect Bela Mini orders to ship in May 2018.

  • What are the dimensions of Bela Mini?

    Bela Mini is approximately 55mm long, 35mm wide and 21mm tall, counting both the Bela Mini cape and the PocketBeagle.

  • What are the differences between Bela and Bela Mini?

    Bela Mini keeps the most popular features of the original Bela in a package one third the size. To achieve the size reduction, Bela Mini keeps the stereo audio output but removes the 8 analog outputs, and Bela Mini does not have the onboard speaker amps (external speakers can still be used if they have their own amps). On the other hand, Bela Mini adds a bi-color indicator LED which is not on the original Bela.

    Both Bela and Bela Mini have a 1GHz Cortex-A8 CPU and 512MB of RAM. The both have stereo audio I/O, 8x 16-bit analog inputs and 16 digital I/Os. They run the same software and support the same programming languages. Bela Mini requires an SD card to boot: it is based on the PocketBeagle which does not have the 4GB of eMMC found on the BeagleBone Black. An SD image for Bela Mini will be available on our release page by shipping time.

  • Will a program written for Bela run on Bela Mini?

    Yes, the two boards are entirely compatible, though you will have to recompile the program when switching board. However, analog outputs are not available on Bela Mini, so if you are using them in your program, those signals will not be present on Bela Mini.

  • Are you still making and supporting the original Bela?

    Absolutely! We just refreshed our Bela stock, and we will continue to sell and support the Bela cape and Bela starter kit for the foreseeable future. You might want the original Bela to use the audio outs, speaker amps or the support for capelets.

  • What does the USB port on the Bela Mini cape do?

    This is a USB host port that you can use to connect USB devices such as MIDI controllers and WiFi dongles. It works the same way as the one on the BeagleBone Black. (Bela Mini is based on the PocketBeagle, which does not have a USB host port onboard, so the Bela Mini cape adds this.)

  • Can I use the Audio Expander or Multiplexer Capelets with Bela Mini?

    Probably not. The capelets are designed to fit the original Bela board and will not attach to the Bela Mini. If you are truly determined, you might be able to use the input portion of the Audio Expander Capelet with Bela Mini if you run wires for all the necessary signals (the output portion will not work as Bela Mini does not have the 8 analog outputs of the original Bela). The Multiplexer Capelet would need additional digital signals that are not currently available on the Bela Mini headers.

  • How do I attach Bela Mini cape to the PocketBeagle?

    If you are buying a Bela Mini starter kit, then it’s already done for you! The starter kit comes pre-soldered and also includes a USB cable and pre-flashed SD card. If you buy a Bela Mini cape and source your own PocketBeagle, you will need to solder them together. You can either solder the Bela Mini cape directly on the PocketBeagle or solder two 18x2 socket headers to the top side of the PocketBeagle and then attach the cape.

    If you plan to add sockets to the PocketBeagle, please note that the location of the holes on the PocketBeagle make it very difficult to fit most standard 18x2 headers around the CPU. For this reason, we recommend soldering the Bela Mini cape directly to the PocketBeagle. The cape will then give you sockets to connect further devices. Please see this post on the PocketBeagle forum for further discussion on attaching socket headers to the PocketBeagle.

  • What is the correct orientation of the Bela Mini cape?

    The Bela Mini cape goes on the top of the PocketBeagle, i.e. on top of the side where the connectors and components are located. As for rotation, the USB connector on the Bela Mini should be above the USB connector on the PocketBeagle, and the Molex-style connectors on the Bela Mini should be above the SD card slot on the PocketBeagle.

  • Bela

  • Is the number of analog inputs (or outputs) extendable?

    You can have more inputs with a lower sampling rate using external multiplexers. We experimented with up to 32 inputs at 5 kHz, but you can probably reach 128 inputs at 1.25kHz without problems. Multiplexing analog output is more complicated as you would probably need a sample-and-hold on each channel, which would be expensive.

  • Can I connect a microphone to the audio input?

    Yes, the audio codec has an on-board audio preamplifiers which can provide up to 59.5dB of gain, adjustable individually for each audio channel. No phantom power is power are provided, but the Bela cape RevB2 onwards makes 2.5V plugin power available on the board to power an electret capsule. The audio codec is a TLV320AIC3104.

  • So you are running Pd and and you claim less than one millisecond latency? How is that possible, given Pd's minimum buffer size is 64 samples?

    For two reasons. First, we are not running the Pd program itself, and second one, we are not using the Linux ALSA drivers. Pd patches are compiled into C code using the Heavy Audio Tools. The C code produced is highly optimised and is automatically wrapped into our C++ API. This bypasses the whole Linux kernel (and ALSA) and allows it to run with buffer sizes as small as 2 audio samples, giving a rountrip latency below 1ms for audio (because the ADC/DAC have some built-in latency) and below 100us for analog (whose converters are faster).

  • Is it the same as an Arduino with an MP3 shield?

    Bela has far more computing capability and speed than an arduino, including the ability to run Linux and do complex DSP calculations in real time.

  • Can you make a VST plugin that talks to Bela?

    You can access Bela through standard ethernet protocols so, for instance, communication using OSC is quite easy.

  • Can the audio hardware be accessed via normal audio drivers or Jack?

    Not at the moment, though this might be possible in future.

  • How does Bela compare to Axoloti?

    Axoloti is a bare-metal microcontroller board with an 168MHz ARM Cortex-M4 microcontroller on it. Bela is a computer with a 1GHz ARM Cortex-A8 CPU which has much more processing power and built-in vector floating point support. Bela runs on Linux and, as such, gets all the extra functionalities that come with it (storage, network, USB, onboard compiling). Bela also takes advantage of a more powerful CPU and the two onboard 200MHz Programmable Realtime Units.

    At the same time, Bela runs ON TOP of Linux (that is: at a higher priority), so that the audio performance are never interrupted by what else is happening on the board: you get the best of Linux without the performance overhead.

    Bela has 16-bit analog inputs and outputs (8 each) sampled at 22.05kHz which can conveniently double up as audio inputs, Axoloti has 15 channels of 12-bit analog inputs sampled at 3kHz, two of those channels can also switch to 12-bit analog outputs. Bela also has two onboard speaker amplifiers. On the other hand, Axoloti has built-in 5-pin MIDI jacks which Bela does not have, though both can use MIDI over USB. Axoloti has its own graphical development environment, which allows you to integrate C++ snippets, whereas for Bela you can either compile Pd patches using the Heavy Audio Tools, run them using libpd or write plain C++ code.

  • How does it compare to the Raspberry Pi 3 with a USB soundcard?

    With a 4-core CPU, the Pi 3 has more raw processing power than the BeagleBone Black, but it still cannot match the low-latency performance of Bela because it is reliant on the standard Linux audio drivers. Latency on the Raspberry Pi depends on the particular USB audio device and the software environment, but latencies of 20ms or higher are common (9ms is the best measurement we have seen under ideal conditions). Compare this to 1ms or less for Bela. Additionally, Bela comes with 16-bit analog I/O and plenty of digital I/Os, all sampled at audio rate, which is not possible on the Pi.

  • Will you offer an enclosure?

    Not at the moment. Bela is meant to be embedded inside your project, so we expect an enclosure will not be needed in most cases. You can go for aftermarket plastic, wood or metal enclosures.

  • What about customs duties?

    Items are shipped from the United Kingdom. Except for shipping, the price is the same anywhere in the world. You are responsible for any taxes or duties upon arrival in your country.

  • Why not use a specialised DSP processor instead of the ARM CPU?

    DSPs are typically designed to do efficient audio computations, not to run multifunction operating systems like Linux. There are plenty of good DSP development boards out there which offer high-performance audio, but they lack the flexibility of Bela, and most of them do not have the same degree of analog and digital I/O either. DSP development boards also tend to be expensive. Finally, the gap between DSPs and general-purpose CPUs has been closing in recent years thanks to features like the NEON vector floating point instruction set on the ARM Cortex-A series.

  • Can I connect Bela to my Arduino?

    Yes, via USB, I2C, UART, or other protocols. But we encourage you to use the analog and digital I/Os built in to the Bela cape!

  • Does Bela play uncompressed audio files from an SD card? Will it support MP3?

    Yes. You can use any library in Linux that supports these. libsoundfile is already bundled with the SD card image.

  • Can it do convolution reverb?

    A few years ago a student in our lab implemented a convolution reverb on a standard, unoptimized Beaglebone Black, with impulse responses as long as 12 seconds. So yes, the processing power is there.

  • What kind of Pd does it use?

    Pd-vanilla patches are compiled using Heavy, a product of Enzien Audio. Please refer to Enzien Audio for Pd and Heavy questions: https://enzienaudio.com/ List of Pd objects: https://enzienaudio.com/docs/pdobjects.html

  • Which Linux distribution are you running?

    We are running a modified Debian distribution with additional drivers and scripts for running the Bela code and IDE.

  • Which voltage levels are supported?

    Audio I/O levels depend on the adjustable settings of the audio codec. You can comfortably plug in a guitar, a dynamic microphone, a piezo pickup, most stuff really, having up to 59.5dB of gain at your disposal. You can refer to the TLV320AIC3104 datasheet for more details.

    Analog ins are in the range 0-4.096V (inputs are 5V tolerant); Analog outs are in the range 0-5V; Digital I/O levels are 0/3.3V. Mind that these are the BeagleBone's AM3358's own digital pins, so make sure you NEVER exceed 3.3V or you will brick your BeagleBone Black.

  • Are there any I2S or SPI buses available on board?

    The cape uses one shared SPI bus for the DC-coupled ADC and DAC and it uses I2S to communicate with the stereo audio codec. The speed of this currently is the main limiting factor of the sampling rate of the analog channels. Although there is one extra SPI peripheral on the AM3358 chip, it uses the same pins as the I2S bus so they cannot be used simultaneously. You can use soft-SPI using the Linux spi_gpio driver, which allows to reach transfer speeds in the hundreds of kHz range.

  • What BBB header pins are used by the Bela cape?

    The Bela cape uses pin 24 on header P8 and pins 10-15-17-18-19-20-21-22-23-24-25-26-28-29-30-31 on header P9. Additionally, 16 of the remaining pins can optionally be used for Digital I/O, as you can see from the Pin Diagram.

  • Can I run [audio program X] on Bela?

    Bela does not use the regular Linux ALSA audio drivers, so your software needs to explicitly support Bela. At the moment our C/C++ API, Pd (through libpd or Heavy) and Supercollider are the only supported way of developing for Bela, though we are actively working on support for other audio programs (to be announced). If you have access to the source code for your audio program, you may be able to edit it to run on Bela. On the other hand, most generic C/C++ libraries are likely to work fine within a Bela program.