Where to Hire Programmer....

Discussion in 'Embedded Systems and Microcontrollers' started by ericthehalfbee, Jan 27, 2010.

  1. ericthehalfbee

    Thread Starter New Member

    Jan 27, 2010
    3
    0
    Not sure if this is the right forum or not, but I would like suggestions as to where I could find a programmer to develop software to run on a microcontroller for a specific type of servo application.

    I'm very familiar with programming, but haven't worked with microcontrollers before. I do have a very detailed specification of what I want to do, and I figure it would be easier to have someone familiar with micros to write the software for me, instead of me taking the time to learn a new platform.
     
  2. Papabravo

    Expert

    Feb 24, 2006
    10,144
    1,790
    It is quite probable that you could find several forum members who could do the the job. In my experience all of the offers of this type have foundered on the rocks of disappointment as there seems to be a wide variety of opinion as to what such work is worth. Most professionals want to be fairly compensated, while most people with "needs" want to do things on the cheap. A meeting of the minds appears to be comparatively rare.

    I myself have responded to over a dozen solicitations on this and other forums. In addition there have been no reports on this board of successful associations. So although I could do the job, as I suspect many others could as well, It seems doubtful that you will be able to conclude a satisfactory arrangement.
     
    Last edited: Jan 27, 2010
  3. maxpower097

    Well-Known Member

    Feb 20, 2009
    795
    388
    I've been in this situation before. We had a really hard time finding someone. In the end we just did it ourselves. This forum is a good start, but I suggest you name a price for the project on a tech jobs forum and wait for responses. Trying to outright hire someone usually doens't work because their is just so much to know, even with a laundry list of education someone can get out of their league rapidly. Its hard but the biggest problem we had was screening people. We had all these guys come in that had Masters degrees, and years of exerience that basically knew about as much as we did. As Papa said if you do get someone that knows their stuff its gonna cost yah.
     
  4. Markd77

    Senior Member

    Sep 7, 2009
    2,803
    594
    Must dig that CD out and give it another listen. Can I suggest posting the specification - if of course it isn't some kind of trade secret.
     
  5. Papabravo

    Expert

    Feb 24, 2006
    10,144
    1,790
    With a look at the specification I could at least formulate a fixed bid price for the deliverables.
     
  6. ericthehalfbee

    Thread Starter New Member

    Jan 27, 2010
    3
    0
    Thanks for the replies. I'll post up the specs.

    This is a basic servo application. The input is a mechanical lever attached to a pair of potentiometers that produce a voltage output in the range of 0-5V. The output is a geared DC brushed motor that moves an arm through a range of about 90 degrees (very much like an RC servo). This arm is also attached to a pair of potentiometers, again with an output in the 0-5V range.

    The reason for 2 pots is redundancy and safety. The input devices are off-the-shelf and come in a wide variety of designs. The same holds true for my output "servos". The only thing they share in common is they all have a pair of pots and the limits for the voltage range is 0-5V. However, in order to allow for redundancy and cross checking of the outputs, the voltage curves are different. For example, output A might be 0-5V for 0-100% travel and output B might be 5-0V for the same range. Other devices might use 1-4V for output A and 0.5-4.5V for output B. Point being, by having two different voltage ranges it's possible to compare them to see if a sensor (pot) has failed.

    So this would require that the software be able to run a calibration procedure for any new input device or servo output that may be used. My idea on this is to have the software generate a "table" of values for each of the 2 voltage inputs during a calibration procedure that would later be used to "compare" input values and generate a fail-safe condition if they deviate from the stored calibration values.

    Calibrating the input device would be simple as you could physically move the linkage through its full range of motion a few times while the software records the voltages and creates a table.


    Sorry, have to run to work - I'll add the rest later today...
     
  7. Papabravo

    Expert

    Feb 24, 2006
    10,144
    1,790
    So far it sounds like straightforward A/D conversion and data reduction. No bid deal. How is the drive for the burshed DC gearmotor configured?
     
  8. ericthehalfbee

    Thread Starter New Member

    Jan 27, 2010
    3
    0
    Some more info...

    Calibrating the DC motors/servos would be a little different. The devices have 3 mechanical limits - at 0%, 100% and around 10-20% (depending on manufacturer). They are spring loaded, and when no power is applied to the motor, they will return to the 10-20% position. Forward drive to the motor increases to 100% while reverse drive will go to 0%.

    Calibrating these would require drive to the motors to move them throughout the full range until they hit the limits at 0% & 100% (slow drive as as to avoid damage). Then power would be removed to determine the resting position.

    Once the limits are defined, calibration should also continue to see how fast the servo moves based on PWM duty cycle and also how fast the servo returns to rest position via the spring return mechanisms.

    This is important as we want the servos to be able to rapidly move to a position as dictated by the requested input. The greater the difference between the actual position and the requested position should result in increased motor drive current to bring the servo to requested position as quickly as possible.

    There is a final input, a single 0-5V voltage source. This is used to fine-tune control the rest position of the servo, which typically would reside between 2-4% of the travel (0-5V would equate to 2-4%). This only occurs when the main input is at 0% (or the operator has let go of the input device). The servos need to be held to the requested position to a very fine degree which will require very small changes in the PWM duty cycle in order to maintain the position. The potentiometers used on the servos are very high quality units (I don't know the terminology, but I know that they are capable of providing a change in resistance to even the smallest change in movement, and this is repeatable and consistent).

    Because of this, I don't think 10bit A/D is going to be good enough for the servos (although it's good enough for the input). I figure 12bits will be required for the 4 pots on the 2 servos.


    As to your question about the drive, I'm going to use a full bridge. I'm looking at several IC's that are designed just for this purpose and haven't decided on a specific one yet. The motors themselves will draw no more than about 6-8A peak, and typically only draw 2-3A operating, much less when holding position.


    The big question I have is how difficult is this to develop and are their suitable microcontollers that can do this? What I'm really tryin to decice is should I hire someone to do this, or invest the money in a development system and try to learn a microcontroller myself. As I mentioned, I am a programmer, just not familiar with embedded system and microcontrollers.
     
  9. Papabravo

    Expert

    Feb 24, 2006
    10,144
    1,790
    Unless I am missing something this does not seem like an overly challenging project. The specifications are straightforward and I have a reasonably clear idea of how I would approach the problem.

    Most microcontrollers with onboard A/D converters are 10 bit jobs. If you really need 12 bits then off board parts with an SPI interface would be my recommendation.

    Development systems for most popular lines of microcontrollers are nearly free as are the development tools. I would estimate that with a working hardware prototype no more than three calender months. Would you want to have the source code included so you could maintain the firmware once it is written, or would you prefer to have programmed parts you could plop on a board?

    One other thing. If the A/D converters are working on 0-5V from the pots, then each bit will amount to 1.22 millivolts. This will be burried by the noise floor on most boards with digital electronics especially with long cables from the board to the pots.
     
    Last edited: Jan 30, 2010
Loading...