Find all your DIY electronics in the MakerShed. 3D Printing, Kits, Arduino, Raspberry Pi, Books & more!

purple_pcbs2_6002
If you’re a maker ready to scale up to commercial production, soon you’ll be asking questions about how to manage the process of sourcing parts, ordering raw materials, describing the fabrication process, and scheduling access to equipment.

Software tools that help you plan and operate your manufacturing business are often called “enterprise resource planning” systems, or ERP for short. ERP systems generally include tools for managing inventory, scheduling materials and resources for production, ordering new materials when needed, and accounting systems to keep track of your expenses and revenues.

ERP systems help you understand your material costs, compute what your inventory is worth, tally the actual costs of making your products, and ultimately help you plan your investment and production decisions so your business can thrive.

ERP systems have been around for several decades, but for much of that time they have been shockingly expensive, often in the millions of dollars. Luckily, the open source community has come forward with a number of options that are hacker friendly and scaled for small and medium size businesses. If there was ever a time for automation in a new start up hardware business, this is it.

I’m a consultant for one of these open source offerings: OpenERP. I think it fits well with the “maker” personality. It’s easy to tinker with, it can be configured quickly, and it has commercial support to back it up. There are over 2,700 modules users have have built to extend it, and it offers sales/CRM and E-commerce integration, project management tools, fleet management, and a plethora of other options.

I have been working on an Ardiuno project to keep track of our pet door. It’s a simple “electric eye” that uses a photo transistor and an IR LED to keep track of when the door opens. I’ll use it as a basis to demonstrate how a maker might use OpenERP.

As with any project, we need to stop for a moment and think about what resources we’ll need:

  • 8 parts: An Arduino, a case, a resistor, a display, an IR LED, a phototransistor, and a regular transistor, and some wires.
  • A location for assembly.
  • A few minutes to put it together.
  • A test location.
  • A few minutes to test and adjust the sensors.

These factors seem a bit like a recipe. In manufacturing, this list of materials and how they are assembled are referred to as a “bill of materials,” or BOM.

Defining a Product

The pet door sensor will cost approximately $60 to make, and if you are going into business, you will want to sell it for a price that covers your costs and makes a profit. You may need to order the parts and want to know how long it will take for new components to show up at your door. You will also want to keep track of how many parts you ordered, where you store the parts, and how many you have on hand. You also may want to reorder parts when your inventory gets below a certain level so you can always keep up with demand.

These factors translate to:

  • Cost price and sales price.
  • Suppliers and lead times.
  • Inventory and locations.
  • Stockage rules.

We will use all of these factors to define a product. The final road map of the product looks like this:

erp1

Here, you can see the components that go into making the pet door sensor:

erp2

For each product, the definition includes the name of the product, whether it’s produced or purchased, the cost and sale price, the parts that make it up (bill of material, again), how many in inventory, when to reorder it, and the accounting information for purchasing or selling it.

erp3

To define the bill of material, we will describe the components used to make it.

erp4

The labor or machine stations where your product is assembled are known as “work centers.” In this case, we have defined two different work centers. At the first, you are putting together your sensor and at the second location installing and testing it.

erp5

Now, we can add time to assemble the sensor at these stations and define the order in which to do the work. In the “routing” of your work, you are defining the location, time or machine effort, and the order of assembly. Here, we have defined a “cycle” of work as 30 minutes.

erp6

What we have done is to build a complete model of the assembly system. This model will monitor your assembly processes and keep track of your progress, assembly time and costs, and raw materials.

If you want to experiement with other assembly approaches, (perhaps faster machinery, pieces coming to you preassembled, or more staff), you can make a copy of this model, change the relevant factors, and use this copy as a simulation. By changing one thing at a time, you can run multiple scenarios, and see how a new tool might save time or a new procedure saves money in the assembly.

Tracking the Build

Now let’s make the Arduino pet door sensor!

First, we go to “manufacturing>manufacturing orders” and we can “create” a new manufacturing order (MO for short).

erp7

We have to enter the product (“pet door sensor”) and the system will assign the pieces and processes needed to create the sensor. You can see that it has picked the eight components based on the bill of materials we set up.

To see how long we have calculated to do the work, we can click over to the third tab (labeled “work orders”) and see the time scheduled for construction. Remember, we are assuming that each work “cycle” is 30 minutes, so 1 cycle in this example equals 30 minutes.

erp8

Everything looks good, so let’s click on the button marked “produce” to kick off the work. If you were standing in your assembly station, this is the button you would click when you started the assembly of the sensor. After you finish, you will want to let the system know that are done.  Click on the “confirm” button in this pop up window.

erp9

When you click confirm, you are telling the system the work is done, that you used the reserved materials, and that you produced one new sensor.

Now, when you look at this manufacturing order, you will see a few things have changed.

erp10

The raw materials have been “consumed” to make a new product. If we click over to “finished products,” we will see we now have a “produced product.”

erp11

If you have machine tools that can communicate their status ( G-code or otherwise), these processes can be automated. The machines could communicate product counts, inventory on board the “pick and place” machine, error conditions, or other important information. OpenERP has an open API for these sorts of integrations.

We are done!  We have not just built the Arduino sensor, but accounted for the changes in inventory, tracked  assembly time, and labor or machine costs, and made life in a start up a little bit easier.

To get more information about OpenERP please go here. If you’d like to give the software a spin please click here.


Related

Comments

  1. Adam Raugh says:

    Very interesting, might be a good next step. Thanks for posting this!

  2. J Schmidt says:

    Good time to point out PostBooks from xTuple ERP, another open source ERP which does all of the above listed features and more.

  3. David says:

    My wife and i set up OpenERP for her dad’s machine shop a few years ago it was a pretty easy setup and was one of the steps that led my wife into a Oracle BA role at the company she was working for.

  4. Erland Lewin says:

    Interesting topic! I wish the screen dumps had been easier to read, and some background on OpenERP (is it hosted or installed etc) would have been nice.

    1. Greg Mader says:

      HI Erland,

      Good point on the screenshot resolution. I will adjust this for any follow up work, and see if we can improve this. As to your question about more background, check out our blog http://www.ursainfosystems.com/blog.html or http://www.openerp.com for a lot of background. There is a large,thriving community to work with. To your specific question about local or hosted for the article, I used OpenERP V7 on a locally installed system. But, I can take the same database, and upload it to our hosted system. For the most part, with OpenERP, hosted vs. local doesn’t matter too much.

      Thanks for reading!

      Greg

  5. Adam Raugh says:

    I would like to take this opportunity to say I’ve been working with Greg at Ursa for a few days now about potentially moving forward with an openERP integration for my business and he has been a real pleasure to work with. Intelligent, friendly, he seems to be a real believer in what he does and he places a high priority on helping you get started so you can work with the framework yourself. I highly recommend working with him if you’re looking at an ERP solution. He knows the maker community well and is an asset to it.

  6. Rajive c N says:

    Hi Greg,
    Thank you for your post, Please let me know how you have been able to get the cost of manufactured product and posting of the same in Financial accounting ?
    Rgds
    Rajive

    1. Greg Mader says:

      Hi Rajive,

      Yes. If the system is set up correctly, this will work.

      We just did a webinar on Manufacturing accounting. Please see this link– We will be adding content to it over the next several days.

      http://www.ursainfosystems.com/webinar.html

      Thanks

      Greg

      1. Rajive C N says:

        Thank you very much for the power point presentation which gives an elaborate description on configuring Manufacturing cost
        Everything works fine except the Finished product value which shows Zero in the journal Entry.
        Any Comments on how to rectify it ?
        Regards,
        Rajive

      2. Rajive c N says:

        Dear Mr. Greg;
        Do OpenERP-7, Update the manufacturing cost of each product as per BOM to the finished goods inventory (location / Warehouse) as well as the relevant finished goods Account in Financials?
        What I have observed is even though the Cost of each component mentioned in the BOM for manufacturing an item is moved by journal entry in accounts, it never consider the total actual cost of such components to the Finished goods costing. Instead it takes the Cost Price as per procurement Tab in Product Master of Finished Goods.
        This will result in a mismatch of values and resultant accumulation of figures in Financial Accounts.
        Is this Correct? Or is there any way to capture the real / Actual cost of manufacture as per BOM in the Financials as well as Warehouse inventory value?
        Regards,
        Rajive

        1. Hugh Turner says:

          Dear Rajive,

          You may have already had an answer as this post was a while ago, but I found it because I was looking for an answer to the same question. The answer that our “Support” (sic) company was that there is no module for this in OpenERP V7.

          I could not believe this when I heard. They call it a manufacturing system, but fail to provide one of the key components.

          We’re getting a module written. However, had we known we would never have even considered OpenERP. If this is still an issue for you please get in touch and we may be able to get you the module.

          1. Naran says:

            Hi Hugh,

            I was looking for similar solution to reflect the actual manufacturing cost in the financial inventory, were you be able to develop module for this..?

            Thanks,
            Naran

        2. Naran says:

          Hi Rajive,

          I am exactly looking for the same to reflect the actual manufacturing cost reflected in accounting inventory, instead of taking the cost price defined for the finished product, were you be able to accomplish this..?

          Thanks,
          naran

  7. Hi Greg,
    Great post!

    Thank you!

In the Maker Shed