This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
midiboxdmx [2008/12/08 08:43] philetaylor |
midiboxdmx [2013/09/25 12:29] (current) smashtv forum link updated |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== MidiboxDMX ====== | + | ====== Intro ====== |
+ | Midibox DMX is a DMX512 compliant controller for Midibox created by Phil Taylor - phil@taylor.org.uk | ||
- | A DMX512 compliant controller for Midibox created by Phil Taylor - phil@taylor.org.uk | + | Originally Discussed [[http://midibox.org/forums/topic/11597-dmx512-controller/|here]] |
- | Originally Discussed [[http://www.midibox.org/forum/index.php?topic=12433.0|here]] | + | Here is a picture of my test system, It is enclosed in an old Strand Tempus 2-12 case (I bought 4 very cheap!). |
- | Here is a picture of my test system, I will box this once I decide on an enclosure. I have also included a closeup of the only bit of extra hardware (other than MBHP modules) that is required! | + | {{:midiboxdmx:mbdmx-boxed.jpg|}} |
- | + | ||
- | {{http://www.lansystems.co.uk/images/dmx/midibox-dmx1.jpg}}{{http://www.lansystems.co.uk/images/dmx/dmx-if.jpg}} | + | |
===== Concept ===== | ===== Concept ===== | ||
Line 48: | Line 47: | ||
I have decided that after struggling with the limited memory of the PIC16F88, 352 DMX channels was just too ambitious. I have now reduced it to 256 channels. One of the main reasons for this decision is that I was missing too much IIC data and causing too many retries. I have now made the IIC handing interrupt based and buffered which seems to make it much more stable (I will be posting this update once I have tested it thoroughly.) | I have decided that after struggling with the limited memory of the PIC16F88, 352 DMX channels was just too ambitious. I have now reduced it to 256 channels. One of the main reasons for this decision is that I was missing too much IIC data and causing too many retries. I have now made the IIC handing interrupt based and buffered which seems to make it much more stable (I will be posting this update once I have tested it thoroughly.) | ||
+ | |||
+ | |||
+ | ===== ANSI E1.20-2006 RDM Support ===== | ||
+ | |||
+ | I have done some of the groundwork to providing RDM support, I have a copy of the ANSI E1.20-2006 standards document and the example C source from Wybron which give full details for creating an RDM responder. | ||
+ | |||
+ | I have also been assigned a Manufacturer ID from ESTA. The reason that manufacturer ID's are important is that much like Ethernet, every RDM device must have a UID which is unique. The manufacturer ID that I have been assigned is 4D42h As it needs a 'company' name, it is assigned to my company (LAN Systems) as follows: "LAN Systems -- midibox project". Before anybody asks, this DOES NOT imply any commercial or other relationship between LAN Systems and the midibox project (there is none), they simply needed a company name to register it to. | ||
+ | |||
+ | ESTA were concerned about controlling the allocation of UID's and I have committed to creating a website where people can request allocations, I will create this soon but as RDM support is quite a long way away I don't thinkt there is much of a rush! | ||
+ | |||
===== Hardware ===== | ===== Hardware ===== | ||
- | Pretty much all of the hardware is based around standard MBHP modules, the only addition is my simple TTL Serial <-> RS485 interface the schematic of which is below. I made it on a 6x6 piece of strip (vero) board (I didn't bother with header connectors): | + | Pretty much all of the hardware is based around standard MBHP modules, the only addition is my simple TTL Serial <-> RS485 interface the schematic of which is below. I made it on a 6x6 piece of strip (vero) board (I didn't bother with header connectors) |
- | {{http://www.lansystems.co.uk/images/dmx/IIC-DMX_IF.png}} | + | After reading the RDM spec, I realise that a simple BIAS circuit will also be required, this is only 2 extra resistors (+ 120ohm terminator) so I will post a modified circuit soon. |
+ | |||
+ | {{:midiboxdmx:iic-dmx_if.png|}} | ||
+ | |||
+ | {{:midiboxdmx:dmx-if.jpg|}} | ||
Line 80: | Line 93: | ||
I am also working on a method of streaming a whole bank which will be something like <COMMAND><START CHAN><END CHAN><TERMINATOR><VALUES * (END-START)><TERMINATOR> . In addition to this I will have a reverse stream which asks the IIC_DMX to return what it thinks the values should be. | I am also working on a method of streaming a whole bank which will be something like <COMMAND><START CHAN><END CHAN><TERMINATOR><VALUES * (END-START)><TERMINATOR> . In addition to this I will have a reverse stream which asks the IIC_DMX to return what it thinks the values should be. | ||
- | The package for IIC_DMX is available here: [[http://www.lansystems.co.uk/images/dmx/iic_dmx.zip|IIC_DMX Package]] Currently Version 0.003b updated 08th December 2008 | + | The package for IIC_DMX is available here: [[http://www.lansystems.co.uk/images/dmx/iic_dmx.zip|IIC_DMX Package]] Currently Version 0.003b updated 08th December 2008. This now seems pretty stable. It uses a 16 byte ring buffer for received IIC data and a CRC8 byte as a data terminator. |
Line 88: | Line 101: | ||
It currently accepts MIDI CC commands and converts the value to 8 bit and sends them to the IIC_DMX. Any packets received over the IIC bus are forwarded directly back over MIDI. I have also included basic support for faders via an AIN module, currently only 8 are used but more will be added when I get round to it and these just change the first 8 DMX channels. Eventually I will build a DIN module and the faders will be able to operate on different 'banks'. | It currently accepts MIDI CC commands and converts the value to 8 bit and sends them to the IIC_DMX. Any packets received over the IIC bus are forwarded directly back over MIDI. I have also included basic support for faders via an AIN module, currently only 8 are used but more will be added when I get round to it and these just change the first 8 DMX channels. Eventually I will build a DIN module and the faders will be able to operate on different 'banks'. | ||
- | The package for DMX_Controller is available here: [[http://www.lansystems.co.uk/images/dmx/dmx_controller.zip|DMX_Controller Package]] Currently Version 0.003b updated 08th December 2008. This now seems pretty stable. It uses a 16 byte ring buffer for received IIC data and a CRC8 byte as a data terminator. | + | The package for DMX_Controller is available here: [[http://www.lansystems.co.uk/images/dmx/dmx_controller.zip|DMX_Controller Package]] Currently Version 0.003b updated 08th December 2008. |
**Please note** | **Please note** | ||
Neither of these firmwares are any where near complete and may not work AT ALL. They are only really useful to somebody with a reasonable knowledge of C and/or Assembler and obviously I offer no warranty so if you blow-up your CORE/IIC_MIDI or both don't blame me! | Neither of these firmwares are any where near complete and may not work AT ALL. They are only really useful to somebody with a reasonable knowledge of C and/or Assembler and obviously I offer no warranty so if you blow-up your CORE/IIC_MIDI or both don't blame me! | ||
Line 96: | Line 108: | ||
Pretty much everything at the moment, | Pretty much everything at the moment, | ||
- | |||
- | |||