element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum My first electronics project, and it's a BIG one
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 23 replies
  • Answers 13 answers
  • Subscribers 393 subscribers
  • Views 2990 views
  • Users 0 members are here
  • diy
  • midi
Related

My first electronics project, and it's a BIG one

cdog580
cdog580 over 7 years ago

hello everyone this is my first post and i am very new at electronics. i am a lighting designer that designs and programs lights for concerts and other events. my preferred console that i use is a grand MA2 software and i have a on pc command wing. I have always found electronics fascinating and now that i have the following issue i have decided now is a perfect time to start! here is the project:

 

i am attempting to make a replica of this fader wing extension which retail cost over $3,500 easy. for my project i need to meet the following:

 

15 x 60mm linear slide potentiometers

60 x cherry MX white switches

USB type B connection to control the hardware via midi control.

 

the things i would like to do are this:

1) prototype and ensure that the entire system is working

2) program a stand alone pcb mounted microcontroller to control the hardware and software interactions preferably without using a arduino or similar thought this may be selfish?

3) have a proper PCB and Metal housing cut so that i am able to use it on actual jobs.

my big question is this:

what do you all recommend for me as a starting point. i can do the research on the potentiometers and the buttons thought those seem easy enough. have the microcontroller listening for the voltage of the potentiometers and for the buttons to send it 5 volts but i know there is no microcontroller that will have the whole 75 inputs i will need. do i use multiple microcontrollers? how do i hook them together? is there something i am missing in this project? thank you all for any input!

 

***********************

*       UPDATE        *

***********************

 

so i have discovered that there is a arduino Mega which has 50 odd connections not the full 75 i need but if there's a way to link the two and then have one USB out to the computer this may solve my issue of lack of i/o ports and dramatically reduce the complexity of this project.

  • Sign in to reply
  • Cancel

Top Replies

  • jw0752
    jw0752 over 7 years ago +5 suggested
    Hi Chris, This is a quite ambitious project especially if you are going to try to design it yourself. The people who can design sophisticated systems usually go to school for it for years and spend most…
  • genebren
    genebren over 7 years ago +3 suggested
    Hi Chris, This is where you might use a multiplexer A multiplexer is switch that can set to select one of it's inputs and connect it to it's output The output of the multiplexer would attach to one of…
  • cdog580
    cdog580 over 7 years ago in reply to jw0752 +2
    yea i figured it was going to be a big project. making one row of them is easy enough but to make 15 sets of 5 different parts is definitely going to be a task! maybe making these into modules of 5 faders…
  • jw0752
    0 jw0752 over 7 years ago

    Hi Chris,

    This is a quite ambitious project especially if you are going to try to design it yourself. The people who can design sophisticated systems usually go to school for it for years and spend most of their lives practicing and developing their skills. Though I have been active in electronics for over 50 years I would not attempt a design from scratch like this. On the other hand there is no rule that says you have to design it from scratch. Look and see if you can find an existing design that is open source and then try to build to those design specifications. As far as the inputs there are techniques that allow a microcontroller to expand its inputs but it is not as simple as it sounds. If I were going to attempt a project like this I would start with an existing design and then I would break it into parts that i could build and test independent of one another. Next I would hook the parts together into larger assemblies and test again. One factor that will help is that there is apt to be quite a bit of redundancy so that once you understand how to build one channel you will be able to replicate the other ones. If you do try to build this I hope you share your journey with us on the element 14 forum.

    John

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • genebren
    0 genebren over 7 years ago

    Hi Chris,

     

    This is where you might use a multiplexer A multiplexer is switch that can set to select one of it's inputs and connect it to it's output The output of the multiplexer would attach to one of the ADC inputs of the microprocessor(most likely also using a multiplexer to route one of the inputs to an ADC The select lines for the multiplexers(yes you might need a couple of mux's will be driven from the microprocessor to make the necessary selections A suitable part might be an  74HC4051D74HC4051D which is an 8 to 1 multiplexer

     

    This is a pretty straight forward approach for reading several inputs with a single microprocessor.  I have used this on several projects.  The microprocessor could use a timer interrupt to manage all of the sampling of your controls (switches and pots).  The logic could be something like this:

    • 1st interrupt - drive all mux's to input 1, set ADC to first Mux.
    • 2nd interrupt - start ADC
    • 3rd interrupt - read ADC, set ADC to next Mux.
    • repeat steps 2 and 3 until all of the external Mux input 1have been read.
    • advance external mux's to imput 2, set ADC to first Mux.
    • repeat until all inputs have been sampled.

    This process would run continuously sampling all of the pots and switches in the background.  Once all of the data is collected and saved in RAM, the timer routine would set a flag the would indicate to the maim program that the data is ready to be processed.

     

    I hope this helps!

    Gene

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • cdog580
    0 cdog580 over 7 years ago in reply to jw0752

    yea i figured it was going to be a big project. making one row of them is easy enough but to make 15 sets of 5 different parts is definitely going to be a task! maybe making these into modules of 5 faders? that would only have 25 connections though again this is still a lot for a micro controller. seems like research, time, patience, and willingness to ask and learn are going to be a large part of this project. would this maybe be simplified by using something like a arduino?

     

    thanks for your help!

     

    -chris

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • cdog580
    0 cdog580 over 7 years ago in reply to genebren

    time to start researching those haha i knew this was going to be a challenge but it seemed like it was just scaling a small project. might have miss-judged that a little haha. if you have any input on the reply i wrote to john i would be very appreciative of any input. thank you again for your reply!

     

    -chris

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jw0752
    0 jw0752 over 7 years ago in reply to cdog580

    The advantage of an arduino is that it will come with a self contained power support system, communication (programming) link, and it will have programming resources that are open source. Since I do not understand your application I can not speak to whether it will have the needed computational power and sped or not but probably. The Arduino Mega has a lot more inputs than the standard boards and may get you closer to your needs.

     

    https://store.arduino.cc/usa/arduino-mega-2560-rev3

     

    John

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • cdog580
    0 cdog580 over 7 years ago in reply to jw0752

    basically all i am making is a rather large midi controller that send data to a computer via usb. i can map the signal that is being sent to the computer to any button on the software that i would like. i don't know if that helps. also i have found the arduino mega which has 50 something I/O s. this will let me reach the 75 i need IF they are able to be connected together so i can send all the button info through 1 usb to the computer. i am also assuming i will need a power supply of some sort inside the casing to provide power to everything including the LEDs for the buttons. so actually in theory i am going to need even more outputs because when you store data to a button it becomes brighter so i could link all leds per row in a parallel circuit but i would need outputs for them. meaning i would have to use two megas to get what i need. sorry this is me both asking a question and thinking out loud.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • jw0752
    0 jw0752 over 7 years ago in reply to cdog580

    HI Chris,

     

    Some times the Arduinos can drive small loads like an LED directly but the best procedures are to have the Arduino drive an output stage with a transistor that in turn powers the LED or other device. You will have to determine the voltages and power requirements that are needed and then have a power source that is up to the task. The Arduino itself will run on 9 volts which it regulates down to 5 volts or 3.3 volts for actual processor and board operations. It looks like each output can source 20 mA. If all outputs were doing this you would need a supply that could deliver about 2 to 3 amps to be on the safe side. Be sure to check the detail specs on the Arduino as sometimes they will limit the number of outputs that can be sourcing simultaneously because of the danger of overheating the chip. By using external output stages the amount of current needed by the processor can be lowered and over heating is no longer a concern. If your output is just a digital one and not driving LEDs or other devices this would not be a concern.

     

     

    John

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • beacon_dave
    0 beacon_dave over 7 years ago

    You may find this book by Mike Cook of interest as it covers I/O and MIDI with the Arduino platform.

    https://www.apress.com/us/book/9781484217207

     

    As for large numbers of inputs, don't forget that the Atmel ATmega devices as used in the Arduino support the I2C 'two wire' interface and you can get AtoD IC's that can give you the additional expansion you need.

    ADS7828 12-Bit, 8-Channel SAR ADC with Internal Reference and I2C Interface | TI.com  

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • genebren
    0 genebren over 7 years ago in reply to cdog580

    Chris,

     

    Building your project as a series of smaller boards may also help.  By having something like 5 boards of 3 pot and 12 switches or 3 boards 5 pots and 20 switches might make the project more manageable.  These boards could be designed such that the pots and switches could mount directly to the boards (much less wiring).  The boards could either have their own microprocessors or each be controlled by an Arduino.  With a multiple board approach you would need to have a way to communicate between the boards (serial, I2C, etc) and one of the boards would have to host the USB to the PC (master, with the other boards being slaves).

     

    A couple of things to keep in mind:

    • Only the the pot inputs need to be read by the ADC.
    • The switches can be configured such that they can be read by a standard I/O pin (digital).

     

    Anything is possible, just break things down into simple steps.  Start by using breadboards, an do simple things like reading a pot, or a switch.  Only once you understand how to do each fundamental step should you begin to start laying out the bigger design.

     

    Best of luck, and enjoy the journey!

    Gene

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • cdog580
    0 cdog580 over 7 years ago in reply to genebren

    Thank you gene for your input! Am I correct in thinking that I can use the arduino to program the microprocessor and then just remove it and mount it to the pcb? Then use ribbon cable or something to connect each pcb together. I would assume that for the main processor and the USB I could use a regular arduino for my main input.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube