pateman90 Posted November 5, 2010 Share Posted November 5, 2010 hi, I am looking at trying to build a lighting console from scratch. don't know how simple or complex yet but where would I get parts and how do I construct one? probably have: 10 faders with strike buttons cross faders grand master keyboard, mouse and monitor input 2 DMX in and out on/off any help or places to look will help thanks Link to comment Share on other sites More sharing options...
dunk Posted November 5, 2010 Share Posted November 5, 2010 Seriously? Link to comment Share on other sites More sharing options...
overhyped Posted November 6, 2010 Share Posted November 6, 2010 Laptop, commonly available DMX dongles, free software (e.g. freestyler) / something like MagicQ. Add-on screens If you need the space. This is much simpler than true DIY. - With what your specifying (I imagine you want something powerful from your need for 2 DMX in /out), and your desire to go from scratch, you'll be looking at FPGA's and VHDL, Which without them, your idea would become unweildy very quick - unless you go the PICmicro / Atmega route, with some purpose designed display chips... If you actually do do this, please show us (ok, particularly me) how you get on - I'm doing an electronics degree & just love this stuff... Good luck! Link to comment Share on other sites More sharing options...
jaket Posted November 6, 2010 Share Posted November 6, 2010 ...why not start with a DMX to 0-10v converter? Or a testing box ie something that outputs DMX channels 1 - 512 and able to adjust values for rigging for example. In the early 90s a friend of mine designed a desk using passive components, straight twin preset and a bank of playbacks. Cost? about £2000 in components alone nevermind the developement costs, pcbs etcI did take his design and reworked a lot of the passive stuff and reduced the component using PIC micros but still the 2 grand mark. I did build bits of it and even wrote an emulator in C++!!! But instead went and bought a JANDS 48 for £3000. Nowadays this sort of money will buy a pearl, a DMX splitter and a couple of heads and the cabling. With DMX desks costing less than a £100 all seems a bit pointless but I can see the fun in doing it. I have (and there are lots of designs on the interweb) for DMX transmitters, DMX splitters and mergers and DMX to analogue/stepper drivers. Drop me a msg and can zip some the stuff up. Did convert a load of disco type 4 way chasers for DMX dimmer packs (again hardly worth it with DMX dimmers starting at the £60 mark. Good luck Link to comment Share on other sites More sharing options...
paulears Posted November 6, 2010 Share Posted November 6, 2010 This topic may be of some useThis might be useful tooThis one deals with GUI interfacesThis deals with very similar issues To be honest, there were plenty more results from popping building lighting control or similar keywords into the search the blue room box, top right - have a look there and see quite a few topics on this subject. The ones above were recent ones, there are lots of older ones if you have the patience to search a bit - could be useful for your project - although I note the recurring theme seems to be "don't do it, unless you are doing it to learn, rather than use" Link to comment Share on other sites More sharing options...
KevinE Posted November 6, 2010 Share Posted November 6, 2010 This is a puzzling post! Is it for your own use, or are you an electronics design engineer for a company? Do you actually know what's involved in designing a DMX lighting desk? Can you write microcontroller firmware at this level? Do you know intimately what you need it to do? Are you au fait with how lighting controls work, what they do and how they do it? Link to comment Share on other sites More sharing options...
boatman Posted November 6, 2010 Share Posted November 6, 2010 Looking at the OP's profile, I suspect this is a homework project! Link to comment Share on other sites More sharing options...
pateman90 Posted November 6, 2010 Author Share Posted November 6, 2010 I don't have much of a clue... I am doing a lighting design and technology and my lecture said one of his student previously made one so I thought I would try. Link to comment Share on other sites More sharing options...
Jivemaster Posted November 7, 2010 Share Posted November 7, 2010 Analogue boards were easy! Regulated 10v rail and lots of sliders for levels, DMX desks need much more thought and work and can be bought for a lot less that the parts cost. Link to comment Share on other sites More sharing options...
Brian Posted November 7, 2010 Share Posted November 7, 2010 There are three sections to this project... 1) Define exactly what it is you are going to build and how it's going to work. At the moment your spec is a bit vague. 2) Build the hardware. TBH, if this is as a learning exercise, I'd buy an old analogue desk off eBay and use it as the basis for my desk. Cutting slots by hand in Ali sheet for faders is no fun. 3) Software. You're going to need a reasonable level of software writing skills. You've got two basic ways to do what you want. You could host the whole thing on a PC; you can get USB based interface boards which will allow you to read faders and switches. All the processing is done on the PC and DMX comes from a 'dongle'. Or do the whole thing on an embedded MPU. Without knowing what you want to do it's a bit difficult to advise but a basic desk with some 'smarts' can be done in a single chip including basic VGA display. I think you really need to sit down and work out what you want to achieve and what your goals are. Also, what technical skills to you have and what do you want to learn about? Link to comment Share on other sites More sharing options...
paulears Posted November 7, 2010 Share Posted November 7, 2010 You also need to be realistic. Brian hit it straight on the head. Physically making a simple panel is quite a tricky thing to do without it looking simply dreadful. If (unlike me) you are capable of designing the circuit and writing the software, then you have a head start, but would no doubt be on a different course. Pretty well the majority of people are users. Some technical, some not. Very few of us have any need to know any longer how the control interprets our actions, we're just thankful that it does. In the days of analogue, people did build extra control features in. I remember seeing an article in a magazine where a manual control's group faders (which didn't have things like 'bump' or 'flash' buttons then) had been connected to a piano keyboard so the op could flash the groups in time with the music. Really clever then. I knocked one of these up and loved it. Today, we'd do it with some midi programming and for some people, even this is damn hard! If you really want to build a control, then you must remember that it will probably take a very long time, cost a fair bit for components, and still be less useful than getting MagicQ and a £10 dongle! Writing software alone is simply beyond me - so it's something I'd never even think of doing. Buying something on ebay, ripping the panel off and building it into a new box and putting buttons in different places would work, I guess - BUT - what would be the point? Link to comment Share on other sites More sharing options...
Junior8 Posted November 7, 2010 Share Posted November 7, 2010 Just give thanks that really comprehensive controls are available off the shelf for peanuts and spend your time doing some lighting. There is more useful to be learned from two stands and tee bars, eight assorted lanterns, some painted cardboard boxes, off-cuts of gell and a couple of analogue mini-packs than countless hours devoted to home construction of a board. Link to comment Share on other sites More sharing options...
timmeh2 Posted November 7, 2010 Share Posted November 7, 2010 Hi I haven't posted on here in a long time - hello to all. ;) Sounds like an interesting project. I've actually done this, although it was rather simple. I'd forget trying to use PICs and custom controllers unless you fancy getting knee-deep in machine code. You'd also have to use several of them; one to handle input from your control surface, one to handle shift registers, and another (or more) to handle the DMX stream. All of them would have to be connected to a data bus with some RAM and a DMA controller thrown in for good measure. And I've not even started with keyboard and monitor support! A far better idea would be to implement yours on a PC-on-a-card using a fairly decent processor. Something like a mini-ITX mainboard with built in VGA and a dual-core Intel processor can be had for under 70 quid. Install your operating system, such as XP Embedded if you like windows or some lightweight Linux thing and let the OS handle all the really complicated things. Now you're free to use a high-level language (C++ is ideal) which is far easier to debug and program. Its possible to get some off-the-shelf USB-based pots, sliders and switch banks for your control surface. You plug them in, install the drivers which handles all the difficult stuff for you and you can access the position and status of each control with just a single line of code. Whilst it is possible to use USB dongles for output, a far more sophisticated and better method is to use a serial card. DMX is just RS-485, and you can buy a single PCI card which could give you anything from 4 to 8 universes at full speed. Creating a DMX packet is quite easy (even easier than MIDI) and there is a hole host of information and help to be had on the web. The hardware aspect will virtually take care of itself but all the functionality of a lighting desk - patching fixtures, creating, storing and playing cues, and crossfading between them in a timed fashion - is all down to you. What you should try to do is design something that emulates a real lighting desk. See what that desk can do and build your program so it copies the same ideas and functions. How you do it is entirely up to you. If you're new to programming, I'd suggest getting some books and learning how to do it. C++ can be picked up quite easily and is designed for writing stuff like this. Ultimately all DMX controllers just handle a very large amount of small numbers (0-512). Concentrate on learning how to use structs and arrays as they make handling vast amounts of data very easy and will stop you getting muddled. Its also very fast for the CPU to read in and read out of making your program streamlined and efficient. I'm trying hard not to lose you here but this is how I handled a DMX stream. It uses a programming method called framebuffering which is also how everyone else does it (because its far and away the simplest) and also how 3D games and video cards work out what they need to do next. To create an array in C++ capable of storing a single DMX packet the code simply is; int DMXPacket[512]; What you've got is a list of 512 numbers in an array. To access item 0 to use DMXPacket[0], item 1 DMXPacket[1], all the way to 512. Your program will then need to work out what DMX channels are at what value and then you can modify the numbers in the array if you need to. After you've processed it you then send it to another part of your code which handles the transmission through the serial card. DMX tranmission is continuously-refreshed in that you are always sending data even if nothing is changing, so your program will need to do this as well. This is opposite to something like MIDI where you only transmit data if you want to change something. I'll not going get too involved here but inevitably you'll need to be able to handle several of these arrays at once, along with others to store cue information and what is patched (be it simple dimmers or fixtures) on your universe. What I've just described is exactly what modern lighting desks do. Things like the Pearl Expert actually work the way I've described - its a big USB control surface driven by a little PC running some software which handles all of its functions. There's actually no physical connection to the fader you're moving and the dimmer channel going up and down - its all done in software. Hope you have fun, sounds like a real challenge! All the bestTimmeh Link to comment Share on other sites More sharing options...
paulears Posted November 7, 2010 Share Posted November 7, 2010 My real respect to timmeh, this is exactly why many of us give up on this idea. Timmeh's idea of simple isn't to me.Now you're free to use a high-level language (C++ is ideal) which is far easier to debug and programCreating a DMX packet is quite easy (even easier than MIDI) and there is a hole host of information and help to be had on the web.C++ can be picked up quite easily Then it suddenly turned into Klingon I actually understand the structure and most of the terminology timmeh's used, but I have no idea at all how I would go about implementing it in a real world situation. There are a number of really clever people on the BR - and when in mod land they explain how to do a new modification, I have the same problem - I've simply no knowledge remotely useful enough for me to join in. I guess it's just one of the subjects that passed me by. If you know how to put timmeh's 'simple' suggestions to use, building one, as he says is simple. My own view of 'simple' would make the prospect of a successful job, for me, rather slim. I suspect that you can't really simplify this kind of subject to the degree that a beginner understands without destroying the real meaning. I Google'd 'Structs' - a word I'd never heard of, and wiki brought back this as an explanation.A struct in C programming language is a structured (record) type[1] that aggregates a fixed set of labelled objects, possibly of different types, into a single object.This is a good example, because now I have to Google structured record type 1, find out what a labelled object is/does and why it needs to be a single object? No doubt my brain could take this all in, but I cannot find a reason why I'd want to know this. When I have serious need of anything like this, I go to a friend who would be very happy with all this stuff rather than try to understand even beginners level compuspeak. Link to comment Share on other sites More sharing options...
timmeh2 Posted November 7, 2010 Share Posted November 7, 2010 I suspect that you can't really simplify this kind of subject to the degree that a beginner understands without destroying the real meaning. I Google'd 'Structs' - a word I'd never heard of, and wiki brought back this as an explanation.A struct in C programming language is a structured (record) type[1] that aggregates a fixed set of labelled objects, possibly of different types, into a single object.This is a good example, because now I have to Google structured record type 1, find out what a labelled object is/does and why it needs to be a single object? Hi Paul Thanks for your kind post, although thats a hopelessly complicated description of a 'struct' so for the sake of your head I'll put it into english, hopefully it will be a lot easier to understand! A struct is just a bubble that you can put lots of things into to make it easier to keep tabs on your information. Most programming aims to create a computer-based form of a physical object (the technobabble for this is called 'abstraction'). Let's take an easy example, my WH Smith address book. In this address book we have 100 pages. Each page contains name, personal number, email address, and company name. It could be said that the single object is a page, and the labelled objects are the bits of information. We therefore create a struct that contains the information on a page. struct APage{ data name, number, email, companyname;} The parethenesis are C++ notation for start and stop; here we mean "start a bubble" and "finish a bubble". so in our bubble 'APage' we now have the bits of information that we want. One of the powerful things about structs is that you can create a struct of a struct, or in english put little bubbles inside big bubbles. our address book has 100 pages, so let's make one. APage *AddressBook[100]; What this does is make a new big bubble called AddressBook and puts 100 little page bubbles inside it. When we want to access our addressbook in C++ all we have to do is point to it (quite litterally). If I wanted to find out the name of the contact in page 5 all I would have to do is data thename = AdressBook[5]->name; another example, the email address on page 74; data theemail = AdressBook[74]->email; Hopefully that will help a bit! All the bestTimmeh Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.