Jump to content

Rics' 4Decks

  • entries
  • comments
  • views

Step 1 - Define the project




As said in the previous post, this midibox project will be designed to control NI Traktor software.

Inspired by a commercial product i've estimated the number of components:

50 Pots

9 Encoder

150 Leds

160 Push buttons

5 Faders

USB interface

The pots, encoders, leds and buttons numbers are an estimate, remains that their number can change while the project goes ahead.

So, now that we know an estimate of how many components we need, we can start to looking at the ucapps.de modules.

The Core

I've said that we need an usb interface.

For this task we can use the good old PIC Based Core with MIOS8 adding an USB module like the USB GM5 Module, but this means that we have to buy a PIC Based Core plus buy a dedicated board for USB. Then connect them.

Why don't use an integrated solution "Core&USB"?

Luckily since some time we have a new core module, the STM32 Based Core which have integrated usb (2in and 2out), more Flash and Ram space for custom applications, and last, but no less important, we don't need to know "assembler" coding.

"C language" coding knowledge is the only thing required to build custom applications, thanks also to the code examples that we have on the documentation.

Then a lot of other useful STM32 Based Core features can be found on his dedicated page.

Analog Inputs

Around 50 Potentiometers and 5 Faders.

Yes, all these, like in a classic dj mixer with effects.

To send the analog signals from the Pots to the STM32 Core module we need 2 AIN (Analog INput) modules.

Each module have, in his board, 4 multiplexer units, each one with 8 inputs. So, 4 multiplexers with 8 inputs each one means that with 1 AIN module we can have 32 pots connected to the STM32 Core module.

But we need more than 32 input: from the AIN documentation we know that we can chain more AIN modules, so adding another AIN module can fit our needs.

2 chained AIN modules equals to 64 Analog inputs, we need around 55 inputs, so the mission is accomplished!

Digital Inputs and Digital Outputs

In the past, connecting Led's and Buttons (discrete on off values, 0V or +5V) required the use of more DIN (Digital INputs) and DOUT (Digital OUTputs) modules for about 64 leds and 64 buttons (a classic Midibox64).

This time we need about 150 Digital outputs for leds and 160 Digital inputs for buttons.

If we think about DIN and DOUT modules we know that each module, via 4 multiplexers with 8 in/out each one, can handle 32 digital inputs (DIN Module) for buttons and 32 digital outputs (DOUT Module) for leds.

With a simple math we know that to fit 150 leds and 160 buttons we need about 5 DIN Modules and 5 DOUT Modules.

This high amount of modules means also an high amount of power absorption, so the core module can't be only powered via an USB connection, but surely the system will require an external PSU to supply the necessary amount of current.

How to switch off this problem?

Using the BLM system (Button Led Matrix).

This is a new system used to connect digital inputs and outputs, each BLM module can handle 64 buttons and 64 Leds. Calling our friendly math we can consider that for 150 leds and 160 Buttons we can stay very large using 3 BLM modules!

Then this system reduces dramatically the power absorption so also the USB powered mission is accomplished!

Hey! But i've forgot the Encoders!

Encoders can be considered like 2 buttons, one to go up with the values, and one to go down. So we have to considerate, for 9 encoders, 18 digital inputs to the Core.

Unluckily the BLM module can't handle encoders, we have to use a dedicated DIN Module for these encoders. But luckily, this time, the BLM modules have a DIN chain, so after the last BLM module we can append a DIN module for our encoders. Problem Solved!


After all this clear/unclear (absolutely revisionable) project explanation, here's the list of modules required:

1 STMCore32 module

2 AIN Modules (chained)

3 BLM Modules + 1 DIN Module (all 4 chained)

Seems an effortless task considering that almost all the PCBs, except the BLM module that will require a custom design, are premade by dedicated PCB producers.

During the development of the project nothing can exclude that i'll do a custom single PCB board for the system. We will see this later.

Next post will be about the tools setup, needed to compile uploadable .hex files to the core module (Both PIC and STM32), on osx system.



Recommended Comments

There are no comments to display.

Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...