Jump to content

upgrading architecture from 2xcore8 to core32


protofuse

Recommended Posts

projects are never finished!

my protodeck works fine, hardware part & soft part (with Max for Live) work fine

I'd like to know what I must change in order to upgrade it to core32.

especially the hardware part.

my 2 cores architecture is this one:

softInterface.png

I guess I could use *only one core32 (with core8, I could have do that too, but...)

Link to comment
Share on other sites

The reason why you took two cores was, that only 64 multiplexed AIN inputs are supported by MIOS8.

This limitation doesn't exist for MIOS32 anymore. Three AIN modules can be connected to J5A/B/C, and the three AIN multiplexer select lines have to be mapped to free IO pins (e.g. J19)

Best Regards, Thorsten.

Link to comment
Share on other sites

The reason why you took two cores was, that only 64 multiplexed AIN inputs are supported by MIOS8.

This limitation doesn't exist for MIOS32 anymore. Three AIN modules can be connected to J5A/B/C, and the three AIN multiplexer select lines have to be mapped to free IO pins (e.g. J19)

Best Regards, Thorsten.

hi thorsten,

I guess I would work on the code portability, but my code is very basic, so it may not be hard.

the thing that makes me happy : usb, only one core, and I guess a lot of other thing I don't even know :)

Link to comment
Share on other sites

  • 2 months later...

about DIN, can I cascade 3 DINx4 on the core32 ?

I easily found the info for AIN (and Thorsten wrote it in this thread) but for DIN..

I guess the features of the protodeck wouldn't be a problem to replace the 2 core8 by only 1 core32:

THE PROTODECK controller features:

- 87 potentiometers

- 90 buttons

- 81 rgb leds

- 2 PIC 18F4620 (20MHz RISC processors)

- fully custom rgb led drivers

- fully custom firmware

- 2 MIDI IN/OUT interface

- included PSU in the box

am I right?

would I have to make A LOT of change in the code?

(codes are there: http://www.julienbay...odeck/#firmware but soon in the repositories here! )

I could use midi over usb (not OSC for the moment) ..?!

Edited by protofuse
Link to comment
Share on other sites

There are no conflicts at the hardware side, and not that many adaptions have to be done at the software side.

The code will look better after the migration, e.g. instead of


// send mapped midi-note with 127 or 0 velocity
MIOS_MIDI_BeginStream(); // midilink encapsulation header
MIOS_MIDI_TxBufferPut((unsigned char) button_event_map[pin][0]); // first byte from table = CHANNEL
MIOS_MIDI_TxBufferPut((unsigned char) button_event_map[pin][1]); // second byte from table = NOTE
MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f);
MIOS_MIDI_EndStream(); // midilink encapsulation tail
[/code] you can now write:
[code]
MIOS32_MIDI_SendEvent(DEFAULT, button_event_map[pin][0], button_event_map[pin][1], pin_value ? 0x00 : 0x7f);

where DEFAULT is a MIDI port (usually assigned to USB0)

can I cascade 3 DINx4 on the core32 ?

of course...

Some tutorials can be found here: http://www.ucapps.de/mios32_c.html

Recommented reads:

#001: Forwarding MIDI Events

#002: Parsing MIDI Events

#003: Debug Message

#004: Sending MIDI

#009: Controlling up to 128 LEDs with DOUTX4 Modules

#010: Scanning up to 128 buttons connected to DINX4 Modules

#012: Scanning up to 64 analog pots (or even more)

Best Regards, Thorsten.

Link to comment
Share on other sites

There are no conflicts at the hardware side, and not that many adaptions have to be done at the software side.

The code will look better after the migration, e.g. instead of


	// send mapped midi-note with 127 or 0 velocity

	MIOS_MIDI_BeginStream(); // midilink encapsulation header

	MIOS_MIDI_TxBufferPut((unsigned char) button_event_map[pin][0]); // first byte from table = CHANNEL

	MIOS_MIDI_TxBufferPut((unsigned char) button_event_map[pin][1]); // second byte from table = NOTE

	MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f);

	MIOS_MIDI_EndStream();	// midilink encapsulation tail

you can now write:

 MIOS32_MIDI_SendEvent(DEFAULT, button_event_map[pin][0], button_event_map[pin][1], pin_value ? 0x00 : 0x7f);

where DEFAULT is a MIDI port (usually assigned to USB0)

of course...

Some tutorials can be found here: http://www.ucapps.de/mios32_c.html

Recommented reads:

#001: Forwarding MIDI Events

#002: Parsing MIDI Events

#003: Debug Message

#004: Sending MIDI

#009: Controlling up to 128 LEDs with DOUTX4 Modules

#010: Scanning up to 128 buttons connected to DINX4 Modules

#012: Scanning up to 64 analog pots (or even more)

Best Regards, Thorsten.

ok Thorsten, thanks a lot for your anwser.

I'd really like to upgrade in a few months.

About LCD, I'll check further but I understood we can use 2LCD with this core... wow!

all the best,

Link to comment
Share on other sites

  • 4 weeks later...

First of all I strongly recommend you to work through the tutorial lessons under http://www.ucapps.de/mios32_c.html

Step by step you will get some very useful hints about the mechanisms provided by MIOS32 and FreeRTOS

Once you reached tutorial #12 you should get a clear explanation how to scan multiplexed pots. Yes, you could use this code as a template.

But you shouldn't start reading there - just start at #01 to understand the basics.

Best Regards, Thorsten.

Link to comment
Share on other sites

First of all I strongly recommend you to work through the tutorial lessons under http://www.ucapps.de/mios32_c.html

Step by step you will get some very useful hints about the mechanisms provided by MIOS32 and FreeRTOS

Once you reached tutorial #12 you should get a clear explanation how to scan multiplexed pots. Yes, you could use this code as a template.

But you shouldn't start reading there - just start at #01 to understand the basics.

Best Regards, Thorsten.

sorry Thorsten... I have to RTFM.

I'll do right now, I repost after if problem remains.

thanks for your time and support and all :)

Link to comment
Share on other sites

  • 2 weeks later...

about midi port and USB port.

If I want to use USB port only for midi IN & OUT, I guess I have to forward things like that in every user functions that received & send midi bytes, right ? :

// forward USB0->UART0 and UART0->USB0

switch( port ) {

case USB0: MIOS32_MIDI_SendPackage(UART0, midi_package); break;

case UART0: MIOS32_MIDI_SendPackage(USB0, midi_package); break;

}

am I right?

Edited by protofuse
Link to comment
Share on other sites

hello thorsten, no issue yet.

I'm only working on the code part and I didn't test it.

I wanted to know if I could use USB port to make midi communications instead of the midi ports.

I guess yes.

If I can, I wanted to know if I had to make a special thing in the app code.

Link to comment
Share on other sites

No, just send to the DEFAULT port, which is assigned to USB0 by default.

If you want to send to a MIDI port, just use MIDI0 instead of DEFAULT (or USB0)

There is nothing special that you need to add to your code to make this working.

It seems that you still haven't worked through the tutorials ;)

Best Regards, Thorsten.

Link to comment
Share on other sites

No, just send to the DEFAULT port, which is assigned to USB0 by default.

If you want to send to a MIDI port, just use MIDI0 instead of DEFAULT (or USB0)

There is nothing special that you need to add to your code to make this working.

It seems that you still haven't worked through the tutorials ;)

Best Regards, Thorsten.

ok!

understood.

Thorsten, I read them, but was confused.

(sincerely)

thanks a lot :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   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.

Loading...
×
×
  • Create New...