views:

170

answers:

6

I have more than 5 years experience working on embedded programming on several architectures and micro-controllers for different companies, so I feel confident about my skills. All the experience is on a corporate environment where there are a bunch of electrical engineers designing something and I am with them concurrently taking care of the software part. Although I have some electronics background and I understand most of the process of electronic design it still is a big black box for me.

The other day a friend which owns a marketing company ask me If I was able to convert an idea into an embedded product. The product is very simple one, and the electronics should be very easy for an electronic engineer to accomplish, but not for me. I started talking with some electronic engineers friends of mine about the process and they started talking about a lot of issues I didn't have in mind before.

On the other hand I started looking a sites like alibaba.com and I found some products with the similar functionality and the same hardware I will need and they are already designed and tested and of course they are a lot cheaper than If I start a design from scratch. I don't know how to proceed. I have three options:

  • Simply say no to my friend.
  • Start conversations with one of these companies in China to check if they could sell me a development environment for an specific product, develop a custom firmware and then let them take care of everything (Is this even possible?)
  • Hire an electronic engineer that will charge a lot, and the design phase will take months and months.

Are there models for stand-alone embedded programmers to build our own products? Is there such things as best practices for this kind of work? Do we need to always depend on new electrical designs, or we could have something like a menu and make an order somewhere?

I understand this question is no necessarily programming related, but I don't see it fits on the other sites neither.

EDIT : Just to clarify. My question is not about "How could I start an embedded design?". Of course I know about evaluation boards. I am asking if there is a way for an embedded programmer to develop a full product (including electronics) by having references designs that you could buy and if there manufacturing are companies which let modified the functionality of their hardware so you could produce a different product from their hardware.

+3  A: 

For embedded development Product development model comes in the form of eval boards.

The trick lies in selecting the eval board with all the features we are looking for.

The things I would care are

  • Cost of the eval board
  • Availability of supporting tool chains for the eval board
  • Complexity of the schematics

First, you buy the eval board and modify it (simulating some of the components).

Understanding the schematics, especially in digital design may not be difficult for engineers.

And one more thing, if the eval board lacks some component that is already present in the eval board, and when you ask your electronics engineer for an add-on to the current eval board you have selected, it may be easy for them to answer.

BTW, I do not know anything about the China stuff.

Alphaneo
I edit the question to add more details.
Freddy
+2  A: 

Hardware: You might want to start out with hobbyist-grade equipment, which is generally fairly easy to understand and reasonably inexpensive. For a totally random example, look here: http://www.parallax.com.

Many of these kits are designed to be used as analog or digital sensors, or as controllers, so there's a chance you'll find one that suits your needs fairly closely.

References: The same way you'd build a software library, electronics engineers have built "libraries" of basic circuits that perform simple functions and can be combined into larger designs. Search your library or the web for an "electronic circuit reference/archive/cookbook" like this: http://amasci.com/elehob/elehobcr.html to find oodles of circuits that may be helpful for your particular project.

Options: If you don't want to do this yourself, you might offer a small fee to an EE major at a local college (some colleges allow seniors to do a "Special Project" for college credit, in which case it may cost you nothing), or offer a professional a percentage of the profits if your product takes off.

Good luck!

Adam Liss
Nice, you understood the question. I like the idea of 'electronics' libraries. I also like the idea about 'hiring' a student. Let's see if anybody has more information.
Freddy
+1  A: 

I found some products with the similar functionality and the same hardware I will need and they are already designed and tested and of course they are a lot cheaper than If I start a design from scratch. I don't know how to proceed.

Talk to your friend about this. Unless your product has some feature that lifts it above the crowd you can't win.

starblue
Well, the hardware will be the same, but the functionality will be different. I just want to be able to change the functionality (via software), but keep the hardware.
Freddy
A: 

As an embedded developer myself, if I wanted to become self employed, I would start by using as much as possible off-the-shelf components:

  • PC motherboards or small existing devices such as Apple iPhone or Nintendo DS
  • linux or open source RTOS
  • a standard PC with open source SDE such as Eclipse.
mouviciel
And if a customer is interested in a 'custom' small embedded device? What would you do? Custom means something that should have an specific function, but could have common hardware with products already in the market (Eg. LCD Display, buttons, keypad, etc).
Freddy
I would look for off-the-shelf industrial devices that may meet customer needs. I wouldn't go to custom design. But I am a programmer, not an entrepreneur.
mouviciel
A: 

I know various embedded software programmers. Most work on-site at electronics OEMs, usually on an hourly basis. That has the advantage of using their tools and equipment (typically), working with the hardware/FPGA team and not having to bid on (possibly changing) requirements. If your friend's idea has merit she/he should consider hiring/contracting a person such as yourself. If it isn't worth their money, then they probably don't have much hope of making enough money off it.

Brian Carlton
+1  A: 

[Are there] companies which let modified the functionality of their hardware so you could produce a different product from their hardware.

In general, even small hardware modifications are fairly expensive, so most companies will probably be willing to do that only if you agree to buy quantities of hundreds or thousands or pay for the retooling costs.

On the other hand, you never know until you ask. Years ago our tech support received an email from a hobbyist who'd bought one of our (old, used, unsupported) products from a third party and wanted help getting it running again. He became our electronic pen-pal, and we sent him the parts he needed as a gift.

I'd be interested to know more about your project if you don't mind sharing. In any case, consider some form of a non-disclosure agreement before discussing it with anyone who has the ability to build it before you do.

What sort of hardware are you looking to design?

Adam Liss
Well the idea is not to change an existing hardware design. It will be to change the functionality. For example, If I have a hardware with an LCD, 2 buttons and a LED which currently serves as a simple clock, I may want to be able to use a same hardware (including the plastic) to build a simple chronometer timer with the same design. I want to change the functionality via firmware.
Freddy
Sounds like a challenge. :-) If you're lucky there'll be a flash memory chip that you can replace with one you've programmed yourself. But something like a clock may have a single custom chip, called an ASIC, that you'd need to remove and replace with a new "brain."
Adam Liss