New product proposal: Arduino constant current DMX driver

I have a product that I developed for commercial purposes in Shenzhen, China.
The company that gave me the project refused to pay me my compensation despite I successfully built prototypes and they have tested them.
Since I do not have a company I am wondering if I can give this product for free here. I have everything necessary to go on production: firmware file, PCB files with Gerbers, BOM and source code. All the job has been made by me.

The product is a selectable constant current 3 channel DMX Driver with the possibility to work as a stand-alone unit (playing color scenes) and slave unit (accepting and repeating an external PWM signals).

Would the community be interested in this project? If yes tell me where to post/send the files. I can also sent pictures of the prototypes and offer support since I am the developer of the whole system.
Sincerely,

Pickwick

The company that gave me the project refused to pay me my compensation...

I have had that happen a few times. It is certainly painful. You have my sympathy.

Pickwick:
Would the community be interested in this project?

Very likely yes.

If yes tell me where to post/send the files.

When you reply, click Additional Options to attach files to your post.

Thank you very much for your empathy.

The board uses an Atmel AT90PWM316 MCU because of extended operative temperature range, 10 bit PWM signal resolution and presence of the DAC to change current value using dip_switches or jumper. I would like to know, what is the community going to do with my project? Will you produce and make it available for other developers? I do not want to make any money out of this, I just want to prove that the project is working 100% correct.
Specifications of this DMX Driver are:

  • Input voltage: 5 to 65V.
  • 3 Channel selectable current 350mA, 500mA and 700mA, buck regulation. Current tolerance on channel is 3%.
  • Common anode driving allowing driving 3 LED strings using only 4 wires (the anodes are joined together), although the connectors have 6 output poles for standard R+,R- G+,G- and B+,B- wires. In the PCB R+, G+ and B+ are connected by copper.
  • DMX receiver mode. Can be upgraded to sender working on the source code.
  • PWM repeater mode: it accept an external PWM open drain signal and it replicates the same on the output.
  • Automatic color scenes mode: it can work as a stand alone unit choosing 7 possible RGB color scenes with 16 different speeds.
  • ISP connector to reprogram the board.
  • 10 pin though hole connector to add another peripheral (for example an LCD screen or seven segment display) for other applications.
  • 10 pin dip_Switch (overlaps the 10 pin through hole connector) to select DMX address or color scene and speed or PWM slave mode (latest 9 bits being DMX512). The Most significant bit specifies if the device is operating in DMX mode or in stand alone mode.
  • 1 red LED blinking when operating in color scene mode or DMX mode without DMX signal.
  • Components total price in China is around 12 USD.

Thank you for your help. Next post it will come all the PCB and source code files after that my questions have been answered.
Best regards,

Pickwick

Very nice project, but is it Arduino friendly ?

mcnobby:
Very nice project, but is it Arduino friendly ?

The project has been developed using free software only (except Microsoft Windows 7): the PCB has been developed using Kicad (free and open source), the firmware using AVRStudio from Atmel (free but not open source).

The DMX code comes from a public library:

// Copyright (c) 2011 by Matthias Hertel, http://www.mathertel.de
// This work is licensed under a BSD style license. See Software License Agreement (BSD License)

All the rest of the job comes from me.

If you tell me more precisely how to check if the project is Arduino friendly I will do it. For now I enclose here the source code. I believe it is readable enough as it is, but it could be changed and/or commented if necessary. It is written almost completely in C language so it is portable, the only problem is that I did not make a hardware abstraction layer file but it is together with the main file. The only exception is the routine to change the clock prescaler at the beginning (written in assembler) but still portable among ATMEL MCUs.

If you tell me the other criteria I shall stick on in order to make the project "Arduino friendly" I will give it a look.

DMX_Driver.rar (73.1 KB)

thanks for all the info :slight_smile: - I have used that DMX library many times, did you have to adapt it for your chip ?

I actually meant can the software be used within the Arduino IDE ? I dont recognise the Atmel chip as one that is used or is configured in the IDE, but I might be wrong. As soon as I read you are using the AVRstudio to compile/program the chip it made me wonder. Thanks

mcnobby:
thanks for all the info :slight_smile: - I have used that DMX library many times, did you have to adapt it for your chip ?

Yes, the library was written in C++ language that I "downgraded" to C. Furthermore I changed the names of the registers in order to make them match with the Atmel headers files definitions (for example from the original UCSRnA to UCSRA).

mcnobby:
I actually meant can the software be used within the Arduino IDE ? I dont recognise the Atmel chip as one that is used or is configured in the IDE, but I might be wrong. As soon as I read you are using the AVRstudio to compile/program the chip it made me wonder. Thanks

Actually I see many Arduino boards use Atmel ATMega MCUs. The MCU AT90PWM316 also belongs to the Atmel ATMega family so I do not see any reason why it shall not compile. I do not know if in the Arduino IDE is already include the header file with the registers definitions but the fact it is written mostly in C shall assure the portability among different developing platforms.

Anyway tomorrow I will try to get started with the Arduino IDE and see if I am able to port the project in this developing environment.
Stay tuned,

Pickwick

Hello folks,

I gave a look to the arduino IDE and the process of porting from AVRStudio to Arduino IDE sounds more complicated than it appeared at the beginning.
I have to confess that I did not have a lot of time recently.

Anyway has anyone already done a similar job? If yes can you tell me which sources I shall look at? Shall I make a new post for this issue?

Thank you.
Regards

I'll suggest post your code and hardare files along with other files on the GITHUB rather than at this place because it can be easily lost.

Hi Nishant,

thanks for the tip. Actually now I have an ever more ambitious plan: I want to learn the Bluetooth LE and the Arduino IDE.
The learning curve is much bigger than I ever thought before.
Since I have one SPI gate to spare I want to add the RFduino and add Bluetooth support, so we can translate from DMX to Bluetooth.

I think it could make the product even more interesting.
Stay tuned.
Regards,

Gianluca

HI Gianluca,

Well its an ambitious plan and a good one but you may want to revaluate your plan to know that whether you definitely need BLE rather than the conventional Bluetooth which is the 2.1+EDR, 3.0 etc!
ONly if you think your gadget is going to be battery powered then you should think about BLE else! not much use.

Hi There, just to add a little into this, we have been looking at wireless DMX...

http://forum.arduino.cc/index.php?topic=208648.0