We just finished our first prototype of the uDMX – it seems to work…!
This is a preliminary version of the documentation – work in progress..
See the uDMX Homepage for updates
Version History
Current version is 0.9.1 beta | 2006-02-16 | first release
update: I managed to cram it all into a XLR DMX plug! I’ll post the documentation of the new version as soon as possible…
Features
- fits in your pocket
- bus powered – no need for a wall-wart
- can send DMX packets of arbitrary size from 1 to 512 channels. Only got 12 dimmers ? Don’t waste time sending 500 additional zeros 200 times a second…
- command line tool for Mac/Linux
- external for Max/MSP (Macintosh only)
Warning
This is an early prototype. It draws all its power from the host computer’s USB bus and, as of now, the DMX and USB lines aren’t galvanically isolated, nor is there any sort of over-voltage or over-current protection. It may destroy your computer. Use at your own risk or don’t use it at all! (or wait for an updated version) …
You have been warned.
License
uDMX is © 2006 [ a n y m a ] – Max & Michael Egger
AVR-USB – firmware-Only USB driver is © Objective Development
Schematics and software are licensed under GNU GPL 2.0; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. uDMX is released in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this document; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. http://www.gnu.org
Hardware
uDMX is built around a ATMEL ATMega8 microcontroller, very few external parts are used, thanks to Objective Developments firmware only usb driver.
We went for the surface mounted version to keep it as small as possible. It’s a bit a pain to solder by hand, but feasible with lots of patience and not too many drinks the night before. With a bit more advanced design, one could maybe achieve to fit it inside a 5pin XLR connector… we might try that sometime in the future.
Very few pins are needed, but unfortunately smaller AVRs don’t have enough SRAM (we need 512 bytes already to buffer the DMX channels) so we have to use at least a Mega8…
The Mega8 is overclocked at 12Mhz, as needed by the usb driver. We power the RS485 transciever directly from the usb bus – it might be a better idea to put in a dc/dc converter and there should be some overvoltage protection.
Ben Suffolk shows how it could be done with his bus powered USB-DMX Interface
The PCB is one sided, with two airwires. There is a 5pin XLR connector for the DMX and the cable of a dead mouse wired directly to the board for USB. D+ is connected to both external Interrupts, INT0 is used by the usb-driver, on INT1 we wanted to check regularly if the usb bus is still alive, put the processor into powersave mode when its not, and wake it up again on any bus activity. We couldn’t get it to work yet, so if you leave your uDMX connected it will slowly empty your sleeping laptops battery… A next version of the firmware should enable power save mode, any help is appreciated…
Note that we use a non standard layout for the ISP header, together with an adaptor cable – as it’s a lot easier to route and to save some space:
A 12 pin DIL socket cut in half, with ( GND | MOSI | MISO | SCK | VTG | RESET )
Schematic:
Board:
(the downloadable archive contains a .pdf version of both, as well as the original Eagle-Light files)
Software
There are three pieces of software:
- the uDMX firmware – running on the ATMega8
- a simple command line utility to set dimmer levels
- an external object for MAX/MSP that communicates directly with the uDMX interface
See the downloadable archive for the commented source code and binaries (command line and Max/MSP binaries are MacOS X only)
To compile the firmware you’ll need avr-libc (see here how to do this on a macintosh)
To compile the Max external you’ll need the MAX/MSP Software Development Kit
and both the Max external and the commandline tool depend on libusb – open source usb library.
uDMX comes with a handy external object for Max/MSP to control dimmers or other DMX equipment directly from Max/MSP:
Download
Download uDMX_2006_02_18 (.zip archive) including source code, binaries and schematics.
Please read the Readme.txt and License.txt files for more information
Leave a Reply