I want to mass-produce it

I had an idea of a network appliance, and so I bought a second-hand Arduino with an Ethernet shield, and a couple months later, it works! I am a programmer by trade and even though I am not familiar with such low-level coding and I did not have lots of free time, I was able to pull it through. There is still work to be done, but essentially, it works!

So now I am seriously considering mass-producing and marketing the device. The only things it needs are the Ethernet jack (I programmed for the W5100) and the microcontroller. The ICs themselves are very cheap, but I am wondering how much it costs to have a custom board manufactured. IteadStudio will sell an assembled board (iBoard) for $29, but I was hoping to get something for half that price in volume. I have a bunch of open questions, which it would be great if someone could answer, but if not, I'm just thinking out loud. I need a PCB designed, then I guess I need it validated somehow before placing an order with a contract assembler for volume production. Also, I would need to find an enclosure beforehand so that I know what the dimension of the PCNB needs to be and where to drill the holes. BTW, it would be nice to have a stylish enclosure, but still cheap. Then I need to buy MAC addresses somewhere (one has to pay to reserve them, right?) and program all the boards with the sketch, but also with the individual MAC addresses (how is that done? hope I do not have to hand-edit and upload to each board individually). I need to print some sort of manual and I guess MAC addresses should be noted somewhere there as well. Then I need packaging. The rest is marketing, operations, sales and support, and I do not have three's anything specific to electronics there, but if someone has a story to share, I'd love to hear it! Do I need diagnostics for troubleshooting (e.g. a webserver running on the board or pushing logs to the cloud)? Do I need to offer some kind of firmware upgrades? Please share your knowledge, yuri

To generate MAC addresses you need an OUI or IAB, see http://standards.ieee.org/develop/regauth/oui/ and http://standards.ieee.org/develop/regauth/iab/index.html.

I suggest you design your own PCB using Eagle (or have someone design it for you), have a few prototypes made by Itead or similar, and only when you are happy with them have the design mass produced.

Consider how you will test the boards. Commercial designs often have extra code in them specifically to assist in testing.

You can load the MAC address on to EEPROM during programming. I assume you will use either ICSP or high-voltage programming.

The manual isn’t a good place to record the MAC address. Better to either provide an easy way to retrieve it from the EEPROM in which you store it (for example, if the appliance will be connected to a PC), or print it on a sticker attached to the board.

Too much to answer. Let me just say that what you might do is knock out a pcb layout, and get a few prototype pcbs made. Then, build and test a couple, and make any necessary mods. I know a guy who did it the other way around, and he's now got a box in his closet with 5000 unusable pcbs.

Another approach might be to switch to an embedded ARM processor with ethernet built in. That way, you don't have to go through the process of obtaining a legal block of MAC addresses, but you use the MAC address of the device.

I suggest you start small and scale up gradually. Build one. Build ten, and sell them. Build a hundred. Your early customers will be paying to beta-test your design and manufacturing processes. As the scale of production goes up you will eventually want to avoid or sub-contract labour-intensive activities such as hand-assembling the hardware, manual programming etc, but cross those bridges when you come to them. If you plan to jump straight from one to ten thousand and haven't done it before, your chances of doing everything right first time are pretty small, and the cost of getting something wrong ten thousand times could be crippling if you have only got a handful of actual sales.

@MichaelMeissner

I think ARM would be more expensive and too powerful for what I need, but you got me looking at other solutions and indeed, there are competitively priced micro-controllers with Ethernet included. http://www.futureelectronics.com/en/Technologies/Product.aspx?ProductID=MCF52233CAL60FREESCALE2447712&Language=en-CA

However, I invested enough hours into familiarizing myself with Arduino programming to make it a priority to switch microcontroller architectures.

@dc42 A lot of good info, thanks! What is the advantage of using ICSP or high-voltage programming compared to a bootloader? Is it just for saving memory space? In my understanding, if I have a bootloader, I could even program the board using Ethernet - isn't it a good idea to limit the number of different connectors?

I will heed everyone's advice and start small. I will also think about writing some diagnostic code.

Even if you write a bootloader to allow you to load code over Ethernet, you'll still need to get the bootloader on the chip somehow, and the easiest way to do that is to use ICSP.

Don't forget that any Ethernet-facing device is likely to face attack from hackers and malware, so the code needs to be resilient.

pefferie: @MichaelMeissner

I think ARM would be more expensive and too powerful for what I need, but you got me looking at other solutions and indeed, there are competitively priced micro-controllers with Ethernet included. http://www.futureelectronics.com/en/Technologies/Product.aspx?ProductID=MCF52233CAL60FREESCALE2447712&Language=en-CA

However, I invested enough hours into familiarizing myself with Arduino programming to make it a priority to switch microcontroller architectures.

Unless things have changed radically, Netburner has been doing exactly what you are thinking about using Freescale, http://netburner.com/

Finding an enclosure is in many ways the hardest part of a project, I've spent days trying to find the right one. You can start with these places

http://www.rose-bopla.com/index.htm http://www.hammondmfg.com/index.htm http://www.newageenclosures.com/ http://www.polycase.com/ http://www.china-mould.com/enindex.asp http://www.serpac.com/default.aspx

I really try to use an enclosure where the manufacturer supplies 3D models as this help enormously with getting the PCB and component placement right, especially with odd-shaped boxes. Of the above I think Polycase, Hammond and Bopla do that.

China Mould (aka San He) have an amazing range many of which you may recognise from existing products and they will send samples if you have a courier account, but their site is crap and no 3D models.

Polycase and Bopla will machine and screen print the cases for you if you need special holes, logos etc, the others may as well but I've not asked.

May the force be with you, you'll need it :)

Do I need to offer some kind of firmware upgrades?

Probably, depending on the nature of the device. Try to make that a painless job for the user or you will get a lot of grief I suspect.


Rob

for mac address;-

sonnyyu: To follow 100% industry convention u might use Atmel MAC address prefix to generate MAC address.

http://www.miniwebtool.com/mac-address-generator/

  1. Atmel Prefix:000425
  2. Atmel Prefix:FCC23D

The site has incomplete MAC address prefix database by only has 000425.

http://www.miniwebtool.com/mac-address-lookup/?s=atmel

Now u do network administrator a big favor, he know Arduino is online now!

for case, parts, physical build. It can be done in days if not hours;-

sonnyyu:

pito: Show us the schematics..

Nature path. I chatted with one of my friend at Shenzhen this weekend and show the image of this motor driver.

Here is what he told me;-

The driver is overly popular in industry lately, there are a little of hundreds if not thousands manufacture to produce it. among them, there are a lot of two persons operation; - one for sales, one for design clone and QA. It is much like Apple Computer in 1976. "The original Apple Computer, also known retroactively as the Apple I, or Apple-1, is a personal computer released by the Apple Computer Company (now Apple Inc.) in 1976. They were designed and hand-built by Steve Wozniak. Wozniak's friend Steve Jobs is only salesman during that time." and all the part for build will be easily to obtain in days if not hours at local. The physical build is take place here;-

He told me the schematics is not available to his company even they are using a lot of them. if you look it carefully IC name is erased by sandblasting or sand paper. He indicated all three power mosfet name name is erased as well. of course if I need schematics he could get it for me, but I told him no, not until I start same manufacture business.

Here is perfect example of four know;-

"Know-how" (practical knowledge), "know-what" (facts), "know-why" (science), or "know-who" (communication).

Know-how: manufacture confidentially held. know-why: what pito asked, and not available. know-what: use the driver. before I forget he told me driver could works either directly feed 5 V PWM 13~15Khz or DC 0~5V. know-who: is most important, once u know who, u could forget about all previous three.

The driver could works either directly feed 5 V PWM 13~15Khz or DC 0~5V. is unconfirmed and untested method, YMMV

It is church time (know-who time), everyone have nice weekend!

for anti-reverse engineering, We could do much better than erased label by sandblasting or sand paper. I could offer some type of help advice, since my previous life has some thing to do with ic bonding/package/labeling ( I know-who ).

for design and tech support you are already at best place (forum).

pefferie: Do I need diagnostics for troubleshooting (e.g. a webserver running on the board or pushing logs to the cloud)? Do I need to offer some kind of firmware upgrades?

for firmware upgrades;-

sonnyyu:

I was wondering if it'd be possible to adjust a sketch via the webserver page. So if a temp probe dies (the one wire has a unique code for each temp probe), a new one can be hooked up, and somebody can remotely alter parts of the sketch via the webpage. (or change certain parts of the sketch, so a box somebody can type in, and it'll change preset parts of the sketch).

I don't know there are any way allow modify sketch during run time, however there is some type workaround.

Plan A.

TFTP Bootloader, With this and an Ethernet shield, it’s easy to upload code to any Internet-connected Arduino, whether it’s on your desk or halfway across the world. webserver create correct file and save it at TFTP server.

TFTP Bootloader

Plan B. Java applet at web page. It called online Arduino IDE. Java applet upload the file.

Plan C. ActiveX at at web page, if u are in Microsoft/IE house.

PeterH: I suggest you start small and scale up gradually. Build one. Build ten, and sell them. Build a hundred.

agree 100%, We must learn to walk before we can run.

find best thread to help, I would use the keyword "PCB" or "Eagle" at search box right hand top corner, and read through to find out expert. To get help I have good personal experience with dc42 (Dave). He is very knowledgeable about design. I am registered February 08, 2013 at this forum. need more time to learn. I did find a lot of more, but my poor English skill...

Thank you all for the advice, this all makes a lot of sense. I will make sure to start small, maybe even buy a few arduino clones in the beginning to get some more real-life testing/usability feedback.