8 Port MIDI Router

I was hoping to get a “that will work” from the people in the know.

I have read the MIDI Router pages from TK and want to know if the following setup would work.

-The Core32 module with 8 I/O modules (IIC MIDI)

-On/off switches to isolate specific devices that require Omni for communication.

-I plan to use a LCD during testing, but the final unit will use LEDs for status notifications

From what I have read theoretically 127 of the IIC devices can be used, but it requires a firmware change. If I am planning to use 8 of these, I guess that I would change something in the firmware of the IIC? Or am I misunderstanding and the change is required in the core? Any thoughts on how to implement the switches?

I think that I am comfortable enough to build the parts and pieces, but I want to make sure that I can run 8 devices through the router. I currently have 5 things to connect and there is a possibility of more in future (true for everyone, I am sure).

Thank you all!

I was looking at the firmware code for the IIC modules and hope that I found the information about the IIC address.

Code snippets are from the file iic.asm

Original for the first four modules:

;; FUNCTION: IIC_Init_GetAddress

;; DESCRIPTION: initialises the IIC address only - can be called from the

;; mainloop to allow the change on-the-fly without device reset

;; IN: -

;; OUT: -

;; USES: -

;; --------------------------------------------------------------------------

IIC_Init_GetAddress

movlw IIC_DEVICE_ADDRESS

btfsc ID0_PORT, ID0_PIN

iorlw 0x02

btfsc ID1_PORT, ID1_PIN

iorlw 0x04

SWITCHBANK_0_1

movwf SSPADD

SWITCHBANK_1_0

return

Modified for additional 4 modules:

;; FUNCTION: IIC_Init_GetAddress

;; DESCRIPTION: initialises the IIC address only - can be called from the

;; mainloop to allow the change on-the-fly without device reset

;; IN: -

;; OUT: -

;; USES: -

;; --------------------------------------------------------------------------

IIC_Init_GetAddress

movlw IIC_DEVICE_ADDRESS

btfsc ID0_PORT, ID0_PIN

iorlw 1x02 ;Changed 0 to 1

btfsc ID1_PORT, ID1_PIN

iorlw 1x04 ;Changed 0 to 1

SWITCHBANK_0_1

movwf SSPADD

SWITCHBANK_1_0

return

Would I be able to update the firmware on the modules without having to flash the PIC?

You only need to change the base address in iic.asm header.

With

IIC_DEVICE_ADDRESS EQU 0x18

the new device addresses will be 0x18, 0x1a, 0x1c, 0x1e

No, it isn’t possible to update the firmware via MIDI or IIC

Best Regards, Thorsten.