I was originally going to open up the shop today, but wanted to write a last post before the grand opening. In my previous post, I talked about the mental side of putting together a one-person manufacturing operation. Actually, I’m going to refer to it as “micro-manufacturing” which is a bit buzzword-y but much easier to type than “one-person manufacturing operation”. Anyways, I think there are quite a few people that are curious about what it takes on the technical side to set up shop as well, so I wanted to talk about my experiences with it to date.
As I talked about before, the mental side was one of the biggest obstacles for me. However the technical side of setting up a micro-manufacturing operation is formidable too. As a designer, I thought that it would be easy to put together a couple of designs and sell them over the internet. It sounds like it’d be pretty standard, but there are many, many skills involved. I was surprised at the amount of things I had to learn.
One of the major epiphanies I had was that there are actually two separate disciplines involved in micro-manufacturing. The first is manufacturing which is already a difficult area for a single person to tackle. The second is building up the shop infrastructure which spans an unbelievable amount of domains. From what I gather, most people already know this, but don’t really fully grasp the difficulty involved in handling both simultaneously.
Many people on this site are designers and/or engineers and have had experience designing circuits or writing software. However I think it’s rare for a single person that is just starting out to have all the skills required to manufacture a product. Manufacturing covers many areas like research and development, hardware design, software design, production, test, quality control, purchasing, and inventory management. In a standard corporation, you’d have one person or a team of people handling each of these areas, which is why people coming off of a job and straight into starting their own operation are going to struggle. Although you don’t need to be an expert in each area, you’ll have to have a working knowledge of each piece and also how everything fits together into a complete manufacturing flow. The learning curve is fairly steep and it takes quite a bit of time and a lot of tweaking to get things right.
On the other side, building up the infrastructure to sell your products over the internet is also extremely challenging. There are a huge amount of things to deal with and if you come from an engineering background like me, then many of them will be very mysterious at first.
One of the first things that I think is essential is a website. This can range from a simple static website to a fully interactive communications platform. I believe that the more bi-directional communication you build into it, the better it will be. The internet is an anonymous platform and with so many dubious things that go on, most people have built up a natural distrust of a lot of the sites and information on it. Before you sell anything, I think its important to earn the trust of the people that visit your site. A lot of that comes from sharing your knowledge, experience, links, work, and also being clear about who you are and what you’re trying to do. Having uncensored bi-directional communications like comments and forums also helps because it shows people that you’re willing to present all sides publicly, even if you’re not shown in a favorable light. In fact, it’s probably more important to show criticism than accolades.
Along with the website, you’ll need a shopping cart platform to display your merchandise and handle orders. From there things get complicated. To sell things over the internet, you’ll first need to decide on a shopping cart platform and set it up. When you do this, you’ll need to deal with shipping tables, shipping costs, couriers, payment handling, photography, photo-editing, writing copy (descriptions), and analytics. You’ll also need to setup your accounting and decide on the legal organization of your business. If you’re separating your personal accounts from business ones, a good idea from an accounting point of view, you’ll need to set up the bank accounts, credit card accounts, and merchant accounts. You’ll also need to decide where you want your shop hosted and how you’ll be handling the IT tasks. The list pretty much goes on.
My point in writing about this isn’t to discourage people from setting up their own operation. My mistake in diving into all of this was not fully understanding everything involved and that I’d be doing two rather large projects at the same time. This is a big reason why I struggled so much and also constantly slipped my schedules. This is also why I tell people that they should take their time in setting up a micro-manufacturing operation and keep a day job as long as possible. You'll never be fully prepared but building up a majority of the necessary skills and gaining a fair amount of proficiency in them takes time.
If I had to do it all over again, I’d start with tackling each project separately. Before starting the manufacturing side of the operation, I would've just set up a webshop and re-sell items that I purchased there. The goal wouldn't be about making money, but rather just selling something. Re-selling an item that you buy from another source is a good idea because the simple act of selling it requires you to go through most of the steps in setting up the webshop. If you can sell a single item, you'll probably be in good shape to sell multiple items. Setting up the shop is a very time consuming task and also requires learning a lot of different skills which is why I think it should be handled separately from manufacturing. Trying to do both at the same time, especially early on in the learning curve, definitely took a toll on me.
After the webshop is going, I would have then attempted the manufacturing side. Rather than trying to develop a complete wireless sensor network development platform, I probably should have started out with something much simpler. There were many steps involved in the manufacturing flow and had I known better, I would've just tried to start out simple and go through the complete process a couple of times to gain some insight on my strengths and weaknesses on the manufacturing side.
I’m hoping to drive home the point that making things and selling it over the internet isn’t as simple as it sounds. It requires a fair amount of forethought and planning, and requires many different skills. It’s definitely not easy, but extremely rewarding in both the new skills you attain and on the confidence it bestows on you. I’d still recommend doing it to anyone that asks me, but I think its important to be aware of everything involved and mentally prepared to tackle a large amount of new area.
As for what I’ve learned in starting up my own operation, it’s tough to mention everything since there are many topics that may seem trivial. However here are some of the things that I think are quite important and some commentary on them:
Research and development
- Explore a lot of new components. I’m lucky enough to be close to Akihabara where I can see and touch components in real life. This is especially important for mechanical components like buttons, switches, connectors, and enclosures. Just like an artist needs to explore different tools, paints, and colors, its important for designers to constantly expose themselves to new components. Surplus electronics stores and electronics swap meets are great for this. Even buying an old device and taking it apart to see how components are used is helpful.
- Expose yourself to ideas outside your traditional domain. Hackerspaces are great for this and if there’s one locally, you should definitely join it. Tokyo Hackerspace is overflowing with interesting ideas and I just struggle to keep up. I often think I need them more than they need me.
- PCB prototyping options. I use a CNC PCB mill but it’s expensive and probably unnecessary for most people. In my case, wireless is very fickle and non-deterministic so a wireless design usually needs more hardware re-spins than a normal design. If in the US, try BareBonesPCB as a low-cost prototyping method. Very fast and cheap, due to no solder mask. If time isn’t an issue, GoldPhoenix is also good, and BatchPCB for one-offs.
- Definitely, definitely, definitely make sure you have good soldering skills. Not just soldering, but de-soldering as well. A good soldering iron with adjustable temp and interchangeable tips is a must. A hot air reflow machine is also a basic necessity since you’ll probably need to remove SMDs at some point. Also its good to know know how to solder fine pitch SMD parts like QFPs, QFNs, etc.
- Kester 2331-ZX is your friend. Many people that ask me to teach them how to solder actually just need to know the right type of flux to use. Kester 2331-ZX water soluble flux will make you solder SMDs like a pro and that stuff is like gold to me.
- Low cost hardware design tools are now available. Eagle is the best choice because it is cheap or free. There are also many tutorials for it as well as open source part libraries that will save you tons of time.
- Free software design tools kick ass. For software, GNU tools are free and will give you greatest range of microcontrollers. Once you’re familiar with the toolchain, you'll be able to go from AVRs to MSP430s to ARM microcontrollers with minimal pain. Much better than switching toolchain vendors for every microcontroller you want to support, plus its free, open source, and the developer community kicks total ass.
- Don’t be cheap on the debugging. Many good JTAG emulators now exist at low cost. printf debugging was fine when emulators cost thousands of dollars, but nowadays, a couple hours of your time will easily pay for a $200 debugger.
- Cheap oscilloscope and expensive meter. For hardware, an oscilloscope and multimeter are essential. I use my meter more than my scope and in most cases, a 20 MHz scope is fine for most of my development. A cheap meter on the other hand is a total pain in the ass and if it doesn't have something as basic as auto-off, then you'll be buying new batteries for it all the time. Save yourself the headache and get a Fluke. You'll only need to buy it once.
- Learn how to assemble using solder paste. Its much faster than soldering components by hand. Cheap laser cut stencils are available through Pololu. From there, you’ll just need solder paste, squeegee, and a hot plate. Work with leaded solder paste initially because its easier. Its also the most likely candidate to reflow successfully on a cheap $30 hot plate. You can graduate to lead free once you have the technique down.
- Mounting parts is a pain in the ass, but don't buy a pick and place unless you're sure you need it. Mounting parts is the biggest headache for hardware manufacturing because its so time consuming and exhausting. Don’t dive into a pick and place machine though. You can still do decent volumes by hand and it will give you time to see if there’s enough demand for your design to support needing a pick and place.
- For through hole headers, use a spare blank PCB for a template. Mounting mechanical parts like through hole headers is a pain in the ass. Alignment is the biggest problem. You can make a template by using an identical bare PCB and mounting opposite gender headers on the flip side. For example, if you have through hole male headers on the top side of your board, then take a spare blank PCB, mount female headers on the bottom side, and then insert the male headers into the female ones. Then just fit the legs of the male connectors through the footprint on your target board and solder. Alignment problem fixed.
- Whatever you test for, you’ll eventually find a flaw. This is the basic rule of testing. Test whatever you can. I try and test all of the I/O on my boards individually, as well as doing functional tests of each board. On my wireless boards, I’m testing each board’s parameters as well to make sure they’re optimized and consistent. It’s easy to get one prototype board working but to get a batch working and behave consistently is challenging, especially in wireless.
- Automate your testing. I spent quite a bit of time designing test fixtures and writing test code for each board. There's an up-front investment in time, but it makes testing go by so much easier. Also, I've found quite the array of bugs and defects through my test fixtures. With all of that, I’m sure there are still some boards that might get through with flaws so I suspect that I’ll need to keep on tweaking my test methods to improve the quality of my boards.
- Digikey and Mouser are your friend. Shipping costs are your enemy. Your real BOM cost is the cost of all your parts plus shipping. Shipping costs are probably one of the most painful things to deal with because they’re essentially a tax. Dealing with this requires planning out your purchasing so you can distribute the shipping costs over a greater number of components.
- Share components between boards. I also try and share as many components as possible between boards to keep my parts variation down. That way, I can buy in larger quantities to keep the prices down. Having fewer parts to track also makes inventory management much easier.
- Parts organization. You’ll eventually have a mess of parts so figure out how you want to organize them. It’s a pain in the ass but essential. I spent a lot of money on steel racks, shelving, parts cabinets, and individual parts containers just so I can find a part when I need it. Saves a lot of time and I also won’t re-order a part that I already have. Don't laugh. I've done it a couple of times.
- Think as little as possible and save your brain cells for the important tasks of designing and debugging. I have checklists for many things. The most important checklist is the one I use before I send out a board to the PCB fab. There are just so many design rules and things to check that its exhausting. Using the checklist allows me to just be a zombie and go through each item.
- Efficiency is king if you're a lone manufacturer. I also use documentation templates that I've created for datasheets, and separate my schematics into separate pages with different functional circuit blocks for quick reuse. I’m naturally disorganized, but if you’re starting up a manufacturing op on your own, you need to be as efficient as possible.
- Use a CMS and template if you want to save time. I’d recommend a content management system like Joomla or Drupal if possible since you can add extensions for functionality. Buy a template rather than design it yourself unless you’re skilled at graphics. For FreakLabs, I use Joomla and the Hivemind template from RocketTheme. You'll probably need to make minor mods to the template so you'll need a working knowledge of HTML and CSS.
- Bad choices made in the beginning will haunt you as your content grows. Regarding the CMS, only add the extensions that are absolutely essential. Having too many will make upgrades more difficult. I now regret adding too many extensions to my initial Joomla version and using the default Joomla Forum. I wish I had chosen a forum like phpBB or SMF. Having too many extensions make upgrading difficult, especially since it might mess up my URLs which will kill any search engine recognition I may now have.For FreakLabs, I have to think long and hard before I make any major changes to the website. This is mostly because there's quite a bit of content at stake now.
- Choose your shopping cart carefully. The choice of shopping cart will depend on payment and shipping options, and what you sell. I use Zencart and basically like it. Its also used by Adafruit and Sparkfun (osCommerce) and since they're also doing hardware shops, I'm pretty confident it will do most of what I need it to do. Its not perfect though. Its ugly out of the box and has trouble handling multi-part packages (ie: kits). You need to have a separate inventory item for a multi-part kit rather than being able to combine the parts from items in your shop. This influences how you stock kits since you need to pre-allocate parts for the kits.
- Shopping cart template saves time. Again, I'd recommend to buy a template unless you’re good at web and graphics design. I got my Zencart template from template monster . The code is horrendous, but works. It’s a big timesaver too.
- Make sure your cart supports the shipping options you want. USPS, UPS, and FedEx have good web APIs and mature carts usually have plugins for them. Plugin availability is probably one of the best reasons not to use the latest and greatest shopping carts. As for the shipping options on my store, I had to manually edit the shipping tables and costs for Japan and it was a huge pain in the ass.
- Don't forget the boxes and packaging. Make sure you account for the additional weight of the box and packaging materials. This adds around 50-100 grams for small boxes which could add a couple of dollars to shipping. You'll have to estimate the weights because most shopping carts use the weights and the shipping tables to calculate the shipping cost.
- Its important! Your product is virtual and photographs are the only way people can get a sense of what you’re selling other than text. Pictures are worth a thousand words so its best to have a couple thousand words for each product. You don’t need to be a pro photographer but some basics are necessary like lighting and macro shooting. A photo editing program is also important for cropping, adjusting color levels, and trimming background images.
- You'll need to learn it. Although you’ll probably end up hiring an accountant later on, chances are you might initially be doing the accounting yourself with a part-time accountant to check over your books. In either case, you’ll be needing to learn basic accounting and choosing an accounting program. I’m using Quickbooks because there is a good community around that program and lots of books on how to use it. There is also a good selection of part-time accountants familiar with Quickbooks to help with checking things over. Accounting does take time, and you'll need to keep accurate books to calculate your taxes at the end of the year. It's also useful to keep track of how your sales are progressing and which products are moving.
- Save yourself some headache and look for payment options that are pre-integrated into your cart. If you want to accept credit cards, you’ll need to get a merchant account and payment gateway. Authorize.net is a very popular payment gateway and merchant accounts are offered by every major bank. You should make sure that the gateway you choose is supported by the shopping cart. I’m using Paypal Website Payments Pro which is basically Paypal’s version of a merchant account. It comes pre-integrated into Zencart which is one of the reasons I chose it. So far, it seems to work okay and the prices are competitive with other merchant accounts/gateways. By the way, Authorize.net is also integrated into Zencart. It was just easier for me to set up the Paypal Payment system.
Search Engine Optimization
- Stay consistent. I studied SEO a bit back when I started up the website but I found that if your site has a theme or focus and you stay consistent with it, then you’ll eventually get recognized by the search engines. Consistency and longevity is probably better than any SEO tricks.
- Choose a host that supports the platforms you want to use. When you choose a host, you’ll need to do things like set up email addresses, register domains, set up websites, create databases, etc. There are a lot of tools that ISPs support now that simplifies a lot of this. My Zencart installation was a single pushbutton install via my ISP. You’ll still need a basic knowledge of IT issues though so you can do things like set up your own email accounts, create databases (for tools not supported by your ISP), generate backups, etc.
- Shared versus dedicated servers. Shared servers are the cheapest way to get hosting. I'm currently using Bluehost which offers hosted accounts for about $10/month. However all accounts are on shared servers which means that if you're unlucky enough to be on a server thats also hosting a popular website, your page load times are going to suck. It might be okay when you start out and aren't getting a lot of traffic but later on, a slow site will drive people away. I'm currently wrestling with this issue now and am planning to move to a scalable host like ServInt once I get the shop going and get some extra income. Its more expensive, but not having to worry about traffic spikes is one less thing I need to stress about.
I think that's pretty much all I have to say for now. It's probably less than half of what I've learned over these past nine months but going into every painful detail would make for an overly verbose post. Hopefully this is enough to get curious people started. As for me, it's time to prep the shop for the grand opening :)