PartsBox User's Guide

Introduction

What is PartsBox?

PartsBox is an online tool for managing a collection of electronic components. It keeps track of where components are stored, what the current stock levels are, and which components are used in which projects. It displays component specs, allows for attaching documents (datasheets, 3D CAD models) to parts, and searches the entire database quickly.

PartsBox can also price projects (BOMs) automatically. It handles price breaks, currency conversions, MOQ and order multiples, so that you can instantly see an always up-to-date BOM pricing. In addition to online offers, your local offers from suppliers can be added, with multiple price breaks, in any currency, and with validity periods (expiration dates), minimum ordering quantity (MOQ) and order multiples.

The application is capable of lot control: it is possible to track where specific batches of parts came from and where they were used, providing full two-way tracking.

Design Philosophy

PartsBox was designed to be fast, unobtrusive and easy to use. Searching, checking stock, adding and removing stock, accessing projects — everything happens instantly. And multiple users get instant updates when anything changes.

Unlike many ERP/MRP tools, PartsBox is supposed to be easy to introduce and cause as little friction as possible within a company. It is supposed to be a tool that people like to use, not one they are forced to use.

Concepts

Parts

PartsBox is all about electronic components, so a "part" is a fundamental concept. A part represents an electronic or mechanical component.

There are several types of parts:

  • Linked Parts are for components with manufacturer part numbers. If it has a part number and you can find it on Octopart, choose this option. You will be sharing data for this component with other PartsBox users. You will also instantly get a better description, a datasheet link, a link to the manufacturer's site, part specifications, a thumbnail image, and a link to the Octopart page with current pricing and ordering information. It is still your part: your stock information is local, as are your notes, and other info, you are just making use of additional online information.
  • Local Parts are for everything else: generic and no-name components, PCBs, custom parts, mechanical parts, and anything that does not have an exact part number. Data about local parts is not shared in any way, they exist only within your collection.
  • Meta-parts contain other parts that are interchangeable (part alternates).
  • Sub-assembly parts correspond to projects and are the result of building a project.

Note that for generic and no-name components (e.g. a no-name NE555 in a DIP package) it's usually better to use local parts. There are hundreds of versions of the NE555 and your particular version might be slightly different from someone else's. So use linked parts only for exactly matching components (for example if you have a "NE555PWG4" from Texas Instruments, link it).

Parts are abstract: they describe the component, but until you add actual stock, they don't represent physical things. Even parts without stock are useful — for example, you can add them to projects (BOMs) in order to get pricing for your projects.

Linked parts have two names: the local (internal) name and the official MPN (Manufacturer Part Number). In the free hobbyist plan, the local name must be the same as the MPN. In commercial plans, both names can be used and the local name can be different from the MPN. Local name can be changed by renaming the part.

Meta-parts are used to group together parts that are interchangeable. This is useful for passives, where several part alternates can be added, or for any case where several parts are equivalent and any of them can be chosen, based solely on price and availability. PartsBox will handle meta-parts similarly to normal parts, delaying the choice of actual part to be used. When pricing projects, offers for all member parts will be considered.

Sub-assembly parts represent the results of building your projects. Whenever you build a project, stock gets added to the corresponding sub-assembly part. The part can then be used in other projects, if needed. This provides a way to build complex products that consist of a number of sub-assemblies and parts, each produced or sourced separately.

Apart from standard attributes like a name or manufacturer, parts can also have custom fields/attributes (in plans that support this feature). Like the "Notes" field, these can be used to store any data, but in a more structured manner. Some usage examples include: Distributor, Distributor Part Number, Supplier Part URL, Weight or Container Tare Weight. Custom fields are indexed for searching.

Stock

Once you have created a part, you can add stock. Stock represents actual physical copies of an electronic component which exist somewhere you can reach.

A part can contain stock in multiple locations. This becomes useful once you start buying reels of components: you often want to keep a full reel in one location, and a small amount on cut tape in another location. It is also useful as you are working with contract manufacturers, as you can keep track of stock that is physically located outside of your office.

The separation of parts and stock is intentional. You could think of parts as bags that may contain actual components (stock). Parts with zero stock are useful: you know what you need to order, you can keep track of pending orders, your projects (BOMs) may use parts that you don't physically have, but your manufacturer will.

PartsBox considers stock history as permanent and there are limited ways of editing it. The last entry can always be removed, but older entries can't, and their quantities can't be edited.

Lots

A lot represents a batch of parts. Lots are used to distinguish between parts in stock: without lot control, all stock is considered to be identical.

Lots are created when adding stock (every batch of parts needs to have a lot assigned).

Orders

Orders placed with distributors can be tracked in PartsBox. They are created when adding stock and allow for keeping track of where and when the parts were bought.

Storage Locations

A storage location is a place where components can be stored. It can be a room, a drawer, a shelf, a box, a compartment within a box, or anything else you can think of. How you organize your storage is up to you. Some people throw all their parts into two or three boxes, and some use a more fine-grained approach.

You can name your storage locations anything you like, but there is a suggested naming scheme:

Start with a letter. You could use b for boxes (with compartments), but you might also have shelves (with reels), or cabinets with drawers. A two-digit number follows, that is the number of your box, shelf, cabinet or drawer. Then, if the location has sub-compartments, we use a chess-grid system: a1, a2, b1, b2, and so on, depending on the size of the grid. This results in names like "b01-a4", which means "box 1, row a, column 4", or "s12-l1-r2" which is "shelf 12, level 1, reel 2". Use whatever lets you easily find components.

Sample books with resistors or capacitors can be labeled like boxes, with no sub-compartments, because it's easy to find a particular value within a sample book.

Your storage location names can be changed at any time, but choose them carefully, as once you print your labels/stickers, changing them becomes slightly more difficult.

Companies working with CM/EMS (contract manufacturers) often prefix some of their storage locations with the manufacturer's name, so that they can easily filter locations and see what the CM has in stock right now.

CM/EMS companies, on the other hand, often prefix some storage locations with customer names, to get per-customer storage locations for consigned parts.

Attachments

PartsBox allows attaching arbitrary files to parts. This can be used to keep datasheets, 3D CAD models and other files together with part information.

If you need to store a component-related file, just add it to a part as an attachment. You do not have to worry about naming files, creating directories, and finding the right place on the file server.

Projects

A project corresponds to a BOM (Bill of Materials) and represents a list of parts that go into a particular design or device.

Projects can be used either to build actual devices, or as a concept, drafting or pricing tool when working on new designs.

Builds

A build represents the result of building a project. It normally corresponds to a batch of devices that have been manufactured. PartsBox supports single-stage and multi-stage builds.

Offers

Offers from suppliers/distributors can be attached to parts, to be used when pricing projects that require the part. Offers can have multiple price breaks, as well as validity periods (expiration dates), minimum ordering quantity (MOQ) and order multiples.

Purchase Lists

A purchase list combines parts from one or more projects (BOMs) that you intend to build, with specified build quantities. You create a purchase list by adding projects to a shopping cart. PartsBox then merges the lists of parts from your projects to create a single unified list that can be used for ordering.

Reports

Reports allow you to get overview information about your data.

Like everything else in PartsBox, reports update in real-time. As an example, if you keep a "Low Stock" report open, and somebody else removes stock (which will cause the stock for a particular component to go below a threshold), your report will be instantly updated.

Companies/Organizations

A company/organization allows multiple people to share a single database. Every change is reflected in real-time to everyone who is logged in.

A company always has at least one "admin" user, who can modify the billing information and grant or revoke access to other users. Access can be granted with several levels:

  • Admin: full access, can read/write database data, grant access to other users, change billing information, delete all data, or cancel subscription.
  • Read/Write: can read/write database data, but not manage users, billing information or subscription.
  • Read Only: can only access database data, not modify it.

The number of users that can access a company database depends on the particular plan.

To grant someone access to a company database, that person must first create a PartsBox account.

In addition to the company database, every PartsBox user has a free private database. You can switch between the databases you have access to by using the menu at the top of the app screen (it shows the current database name).

Part Attrition

SMT pick&place machines are not perfect, and during the assembly process some parts will get lost or rejected. Additionally, the mechanical construction of the tape feeders requires a certain length of tape (the "leader") to be present before parts can be picked up automatically. This results in part attrition, also known as part wastage.

PartsBox supports setting attrition parameters on a per-part basis.

Using PartsBox

Adding Storage Locations

To create a new storage location, go into the Storage section in the main menu and click on "Create". There are three ways to create storage locations:

  • Single location: used to create just a single storage location with a specific name.
  • Row: used to create a linear row (array) of storage locations, labeled with numbers or letters (example: "box1, box2, box3, box4, box5").
  • Grid: used to create a grid (two-dimensional array) of storage locations, using letters or numbers for rows and columns (example: "box1-a1, box1-a2, box1-b1, box1-b2").

Adding Parts

In order to add parts to PartsBox, you first create a part, and then add stock to it. Until you add stock, parts don't represent physical things, but can still be useful — for example, you can add them to projects (BOMs) in order to get pricing for your projects.

Creating Parts

Adding a new part is done from the Parts section in the main menu. Use "Create" to go into the create part dialog.

"Part Type" determines what kind of part will get created. Use "Linked part" for components with a unique MPN, and "Local part" for generic components and anything else that you need to keep track of. Use "Meta part" when you need to create a virtual part that represents several part options (part alternates).

Creating Linked Parts

Commercial users can immediately assign a local (internal/company) part number to a linked part.

There are two ways to search for linked parts:

  • Match exact component name (MPN): beginning of the part name has to match (prefix search). E.g. "TPS40210" will match "TPS40210DGQ". This is the preferred way of matching components.
  • Search: this is a fuzzy search, good for things like "adafruit 1063".

After filling out one of the boxes and clicking either "Match" or "Search", results are presented. You should choose the part that matches exactly what you need. Please be careful, as often small variations in naming can mean large differences in actual components. When you select one of the results, its specs are shown, there is also a datasheet link next to every component, if a datasheet is available.

Creating Local Parts

When creating local parts, you only need to provide the part name, everything else is optional.

Some plans allow for uploading datasheets, images, CAD models and other information and attaching it to parts; this is done after the part is created.

Creating Meta Parts

To create a meta part, provide a name and optionally a footprint and a description. The created meta part will be empty: it will not contain any part alternates. These will need to be added using either the "Add part" button on the meta-part info screen, or by selecting several parts in the main parts table and using "Selected | Add to meta-part".

Searching

The search box appears at the top in the Parts sections. It lets you narrow down the list of displayed parts and is an essential tool when working with PartsBox.

Search/filtering boxes also appear in many other places (in almost all tables) and can be used for filtering. These boxes are simpler than the main parts search engine and only provide exact matching.

Parts search has a fuzzy-match engine, which means that even things that don't match exactly will be shown in the results. Exact results will be separated from the rest using background color, so that you can quickly see what matched exactly and what matched only partially.

The following fields are searchable: name, MPN (Manufacturer Part Number, if different), description, footprint, part notes, and all custom fields.

The search box also accepts tags, entered with a # character in front. Tags are matched exactly, and if you enter several tags, a component has to have all of them in order to make it into results.

You can combine tags and search words as needed, to narrow down the list of results.

Selecting and Deselecting Parts

Every part has a checkbox next to its name, allowing it to be selected for certain operations. PartsBox remembers selections, so you can mix selecting and searching freely — select several parts, perform a search, select some more, and your selection will steadily grow.

To select all parts, or deselect everything, use the "Selection" menu and the "Select All" or "Deselect All" menu options.

The "Selection" menu can be used for a number of operations:

  • "Add to project…" — use this to add parts to a Project (BOM).
  • "Add/remove tags…" — use this to edit tags on selected parts.
  • "Add to meta-part…" — use it to add part alternates to a meta-part.
  • "Set low-stock levels…" — allows you to set the low-stock level for all selected parts.
  • "Set part attrition…" — use to set part attrition parameters.
  • "Download as CSV" — allows you to download the list of selected parts as a table in CSV format for importing into a spreadsheet.
  • "Delete…" — deletes the selected parts.
  • "Deselect all" — clears the current selection without performing any operations on the selected parts.

Using a Barcode Scanner

If you have a barcode scanner, you can use it to quickly process incoming shipments, adding stock, removing stock, and creating parts if necessary.

To use a scanner, use the "Scan" menu button. PartsBox will then wait for input from the scanner. After receiving a code, it will be decoded and one of the following will happen:

  • if you already have the part in your database, you will be able to either add stock or remove stock for the part,
  • if the part doesn't exist, you will be asked to choose it from matching online parts. Once it gets created, you will be presented with the "Add Stock" dialog.

PartsBox supports the following barcodes:

  • 1D barcodes from Digi-Key, Mouser, Farnell, RS Components, and most others that encode the MPN (Manufacturer Part Number) in the barcode,
  • 2D barcodes: DataMatrix and PDF417 containing ANSI MH10.8.2 data encoded using ISO/IEC 15434:2006 (Digi-Key, Wuerth).

If quantity is encoded in the bar code, it will be prefilled in the "Add Stock" dialog.

See the "Barcode Scanners" section in this manual for more details on supported scanners and required setup.

Adding Parts to a Project

There are multiple ways to add parts to a project:

  • By selecting a number of parts in the parts table and choosing "Add to project…" from the "Selection" menu. This can be used to add either a single part or multiple parts.
  • By clicking the "Add to project" button from the "Part Info" screen. This can be used to add that one part.
  • By using the "Add part" button in the project BOM section.

Using Tags

Tags are a powerful mechanism that allows you to quickly find a subset of your parts.

When searching, if you enter a tag in the search box, the search will be limited to parts having that tag. Tags are matched exactly, and if you enter several tags, a component has to have all of them in order to make it into results.

Tags can be added to parts either from the part info screen (by clicking on the "Add Tags" button, or by selecting many parts and using the "Add/Remove Tags…" menu item from the "Selection" menu.

Tags begin with a # character, but you do not have to enter it when adding tags. A part can have any number of tags attached to it.

To make things easier and automate tags creation, PartsBox creates auto-tags for you. These are based on part specifications and are created automatically, so that you do not have to add them. They are independent from your tags: you can assign a tag with the same name again.

Setting Part Attrition Parameters

PartsBox allows for defining attrition/wastage on a per-part basis. There are two parameters:

  • Percentage-based: this number represents the percentage of components that are expected to be lost/wasted. Rates usually vary between 0.1% and 3% for production runs.
  • Quantity-based: the minimum number of extra components that always needs to be reserved, even if percentage-based calculation would indicate otherwise. This is usually related to the length of leader required to feed a reel into a machine.

These parameters can be set either individually, or for many parts at once. To set parameters for a number of parts, select them in the parts table (or use "Selection | Select all parts"), and then use "Set part attrition…" from the "Selection" menu.

When building or pricing Projects/BOMs, PartsBox will take part attrition into account, so that the number of components actually taken from stock or ordered will be higher than what is strictly required.

Attrition cannot be set directly for meta-parts. When pricing projects with meta-parts, maximum attrition from all parts that belong to a meta-part will be used. When building projects, attrition will be calculated after the actual source of the parts is selected, e.g. when PartsBox knows the exact part that will be used.

Importing a BOM

PartsBox can import a BOM (Bill of Materials) from a number of CAD/eCAD packages, in CSV or TSV format.

To create a new project by importing an existing BOM, use the "Import" button in the "Projects" section. This will prompt for the file to be uploaded. Upload a CSV/TSV file exported from your CAD package.

PartsBox will try to parse your BOM, but most of the time you will need to select an import preset first. Presets are currently defined for:

There is also a "Custom" setting which allows for manual mapping of CSV columns to PartsBox fields, as well as for setting the field separator.

Importing from KiCad is free for everyone, while all the other presets are available in commercial plans only.

Select the preset corresponding to your CAD package, or use the "Custom" setting to manually map columns.

After importing a BOM into PartsBox, each line has to be matched to a specific part. If the BOM part name is the same as a PartsBox part name, this will be done automatically. However, if a part with the same name can't be found, you will need to do the matching yourself. You can either select an existing PartsBox part, or create a new one and match it to the BOM entry.

In PartsBox, BOM entries are not limited to parts. You can add services or labor, like PCB assembly, testing, or packaging. These can have offers attached just like parts, which allows for pricing of the entire production, not just the parts. Offers for service/labor BOM entries are similar to part offers: they also support multiple price breaks, MOQs, can have expiration dates, and can be in any supported currency.

Altium Designer CSV Problems

Altium Designer does not properly escape double quotes (") in generated CSV files. This means that if one of your fields contains a double-quote character (as in for example 0.156"), the generated CSV will be invalid and unreadable.

The workaround in that case is to manually edit the CSV file generated by Altium and either remove the double quotes inside fields, or prefix them with an additional double quote character.

Pricing Projects

To estimate the BOM price for a project, go to the "Price it" tab in the project menu. This opens the main pricing table, as well as filtering and pricing options.

Pricing Options

Build/batch size is the number of units that you want to estimate pricing for. Several common quantites are provided for quick access, but any quantity can be entered in the input box.

Total per-unit price and total price are displayed in large type on the right side. The unroll button next to them allows for quickly comparing pricing for the whole range of common build quantities, without entering them manually.

If there is a red exclamation mark warning sign next to per-unit and total price, it means that PartsBox was unable to calculate the pricing, because some information was missing. The problematic parts are highlighted in red in the pricing table below.

Part sourcing options allow for choosing where the parts come from. "Only local stock" will only consider the parts you already have, using their average purchase price for BOM pricing. "Only buy" will ignore local stock and only use online prices and stock information. "Use local stock, then buy" will first use up all local stock, and then if it isn't enough, consider online offers.

Note that if your stock history does not contain prices, you will not get correct pricing information if you try to use local stock in Project/BOM pricing. You can always go back and edit the stock history in order to add prices.

Offer filtering options allow narrowing down the list of offers:

  • "Preferred distributors only" checkbox will exclude offers from distributors that are not on your preferred list (one rarely buys from distributors on the other side of the globe). You can modify the list of preferred distributors in Settings.
  • "Authorized distributors only" will only consider offers from distributors who are authorized by the manufacturer to resell a part.
  • "In-stock only" will only consider offers where the distributor said the part is in stock.
  • "Check stock levels" goes a level deeper, and actually checks the number of parts that the distributor has in stock. Some distributors do not provide exact in-stock information, so checking this will exclude their offers.

Pricing Table

The main pricing table lists all the parts from a project along with their pricing information. Columns of note:

  • Batch Qty: the number of parts needed to build a given quantity of a Project/BOM. This takes part attrition parameters into account, so the number could be higher than the number of units you're building, depending on attrition settings for this particular part.
  • Qty Bought: the quantity that actually needs to be purchased, given the sourcing options above. As an example, if 100 parts are needed, but you have 25 available locally and you chose "Use local stock, then buy if needed", then Qty Bought will be 75.
  • Best Offer: the best offer that PartsBox selected for you.

It is possible to "lock" a particular offer by using the padlock icon. This locks the offer selection for this project entry, and that particular offer will be used to calculate BOM price.

Every row in the pricing table has an "exclude" checkbox, which allows for quickly excluding that item from pricing, and a padlock icon, which locks the currently selected best offer in place.

Every row in the table can be unrolled using the chevron icon on the left side. This lists all the offers for a given part.

Offer Selection

For every BOM entry that is linked to an online identity (Manufacturer Part Number), PartsBox gathers online offers, and selects the best (least expensive) one. There are often as many as 20-40 offers for any given part. In the main BOM pricing table, only the best offer is displayed.

The selection process is quite involved, as it has to handle:

  • price breaks, which can be different for every offer,
  • availability and stock information,
  • Minimum Order Quantities (MOQs),
  • order multiples,
  • multiple currencies.

PartsBox normally selects the best offer based on "Price Discarding Excess". That is the price paid for parts, assuming that any excess inventory that has been purchased will be thrown away. Why not just use the price from price breaks? Well, in case of restrictions such as MOQ or order-multiple, we do not want to discard offers just because the quantity we need is too small. It is sometimes better to buy more, because of price breaks: the price might be competitive even assuming we will discard anything we don't need. This is why quantities are rounded to order multiple, and if the quantity is below MOQ, PartsBox will round it up to MOQ, just to see how the offer ranks.

The ranking of offers changes based on your build quantity, and so does the best offer. One can often discover new, unexpected sources of parts that become attractive at certain quantities.

Every offer can be unrolled to show details like packaging, quantity on order, on order estimated time of arrival (ETA), factory lead time and factory order multiple.

If your project contains meta-parts, offers will be gathered for all parts that are grouped in the meta-part. As these parts are considered equivalent to one another, all the offers will be mixed together and the best one selected.

Local offers

While some components are bought from major distributors, one often deals with other suppliers, or gets custom offers for specific quantities, with discounts. This is why PartsBox allows for entering your own offers, which are then considered and ranked together with online offers.

A local offer can be added either from within the project pricing table, or directly to a part from the part info screen. Like every offer, it can have multiple price breaks at any quantities, as well as a minimum quantity (MOQ) and order multiple. These parameters will be used by the pricing algorithm.

Apart from additional info fields like order reference/number, date or comments, an expiration date can also be entered. An offer will not be considered if it has expired.

Any supported currency can be used in an offer. PartsBox will take care of converting it to your display currency everywhere using up-to-date conversion rates, while keeping the original prices and currency intact.

Currency Handling

PartsBox takes care of multiple currencies for you. Just select your preferred currency in the settings, and it will be used to display every price. You can change the currency at any time.

European Central Bank (ECB) rates are used for currency conversion. The rates are updated regularly.

For offers which you entered yourself, you can pick any supported currency, and it will be handled correctly.

Building Projects

The "Build it" tab in the project menu lets you plan production and automatically remove stock for all parts used in a Project/BOM.

The build table lists all project parts. The "Source" column shows the storage location that parts will be taken from. For parts stored in multiple storage locations, parts with lot control and for meta-parts this column contains a selector used to choose the specific source for the build.

In plans that support part attrition calculations, the necessary quantity will include the attrition overhead, calculated separately for each part based on part attrition settings.

You can set the planned quantity by either entering the number or using the +/- buttons. As you adjust the quantity, you will notice that everything is instantly updated. If there is not enough stock of a component, that part will be listed in red with a warning sign.

Each row also contains two checkboxes:

  • Ignore? — this checkbox appears if there isn't enough stock for a part and lets you simply ignore the problem. When building, PartsBox will still remove the maximum available quantity from your stock (thus setting it to 0), but will not do anything about the missing stock. This is sometimes useful if you know you have additional stock on hand that has not been entered into PartsBox, or if you want to produce some boards that are not fully populated.
  • Exclude? — checking this box will exclude the part from the build. This is essentially equivalent to a DNP (Do Not Populate). No stock will be removed for parts marked as Excluded.

For the "Build it!" button to become enabled, you have to resolve all warnings, either by ignoring them or by excluding the missing parts from the build.

Single-stage builds

In single-stage builds, once you press the "Build it!" button (and confirm), stock will be removed for all parts that belong to this project (that have not been excluded from the build). For parts where quantity needed exceeds available stock and the problem has been marked to be Ignored, maximum available quantity will be removed from stock (thus setting the available stock in that storage location to 0).

Multi-stage builds

If you select the "multi-stage build" checkbox, PartsBox will show selection checkboxes next to each part in the build. You can use the individual boxes, select and deselect all parts, as well as use the search/filtering interface to mark parts that are to be built/placed in this stage. The filtering interface supports tags, so entering "#smd" is a quick way to select all SMD elements, which are usually placed first.

Once you press the "Build it" button, only the selected entries will be processed (in the same way as in single-stage builds).

A multi-stage build that has not been completed will show up in the "In-progress" tab of the Builds interface. If you select it, you will be able to build the next stage, or finish the build, marking it as complete.

There can be any number of stages in a build. A build can also be marked as finished even if not all parts have been placed. In that case, unused entries will be marked as excluded in this build.

A multi-stage build is represented by the same ID Anything™ code, regardless the stage it is in (build progress), so that ID Anything™ labels can be attached even to incomplete devices. This allows for quick identification and access to information about builds that are in progress.

Build Configuration History

When you manage production, you typically want to keep track of build history. This normally includes information about how many units of a project/BOM were built, the build date/time, and possibly some comments. While this is enough for simple production, it doesn't cover the needs of more complex builds.

In practical scenarios, each build has its configuration. This includes additional information such as:

  • which components were excluded ("do not populate") from the build
  • the chosen source storage location for parts stored in multiple locations
  • when using lot tracking, which exact lot (with serial number) was used for this production run

All of this information is now stored alongside the build history, so that you can go back anytime and check how a particular build was configured.

Build configuration history is available in the "Builds" tab in the Projects section. It is divided into two tabs, one for completed builds and one for multi-stage builds that are still in progress.

Each build has an ID Anything™ code which can be printed on a label and attached to physical devices. This code allows quick access to build information any time in the future.

Using Sub-assembly Parts

Sub-assembly parts represent the results of building your projects. Whenever you build a project, stock gets added to the corresponding sub-assembly part. The part can then be used in other projects, if needed. This provides a way to build complex products that consist of a number of sub-assemblies and parts, each produced or sourced separately.

To create a sub-assembly part for a given project, go to the project info screen and click the "Create Sub-assembly Part" button. This only needs to be done once. Once the part gets created, it will be visible in your parts list and you can manage it just like any other part, with the exception of renaming: a sub-assembly part always has the same name as the project that it corresponds to.

When building a project, your build confirmation screen will ask you whether to add stock to the associated sub-assembly part. If you enable this option, you will be able to choose which storage location will be used for the build, enter pricing for the produced sub-assembly (automated pricing will be coming in the future), and add comments.

Stock will then be added to the sub-assembly part for this project. Since the sub-assembly part is just like any other part, you can use it in other projects/builds, set low-stock warnings, attrition parameters, etc.

When using lot control, every build of a projects results in a distinct lot of a sub-assembly part with its own ID Anything™ code. If you attach ID Anything™ labels to manufactured devices, this lets you quickly scan the code on any mobile device and access corresponding build information.

Purchasing

Orders

When adding stock for parts, it is possible to connect the added stock to an existing order, or create a new order on the fly. PartsBox will then maintain information about where the parts were acquired from. In plans with lot control, that information will be connected to a specific lot, and in all other plans it will apply to the part.

Purchase Lists

When buying parts, it is frequently necessary to plan for production of several devices. Since their BOMs often share parts, it isn't always easy to determine what actually needs to be purchased, especially given that you might already have some of the parts in your local stock.

Meta-parts (part alternates) make this even more complicated: until the moment of ordering you want to be flexible as to the choice of a specific MPN (Manufacturer Part Number).

To begin purchasing, go to your "Projects" section and start adding projects/BOMs to your project shopping cart by using the "Add to Cart" buttons at the bottom of every project card. When adding, you will be able to specify the quantities that you intend to build.

After you've added projects to the cart, give a descriptive name to your list and click "Create Purchase List". You will be taken to the "Purchasing" section and shown all your purchase lists.

Clicking on a purchase list brings up the familiar pricing interface: the same as for Project/BOM pricing. Use it to select offers, add your own offers, choose specific part alternates (for meta-parts), or limit selection to your preferred distributors.

After you are satisfied with the list, use the "Group by Distributor" view to see your parts split into orders for each distributor. This view lets you perform the same operations as the "All Parts" view, so you can still change your offer choices. Additionally, you can export each table as a CSV or PDF file, to facilitate placing an order with a distributor.

Automatic ordering support with selected distributors is planned in future versions of PartsBox.

Other Equipment and Software

Barcode Scanners

Barcode scanners that generate keystrokes are supported (that includes most, if not all, USB scanners). The Zebra LS2208 is an example of a 1D scanner that is inexpensive, reliable, and works well. However, recently many component distributors began introducing 2D barcodes. In the future, it is likely that most barcodes will be 2D, because of their superiority. 2D barcodes allow for storing significantly more data in a small area.

For scanning 2D barcodes, in addition to having a 2D scanner, you also have to configure it to replace special non-printable characters with ASCII sequences, so that it can work through a browser app. In particular, ASCII codes RS, GS and EOT need to be replaced with strings "{RS}", "{GS}" and "{EOT}", respectively. Fortunately, there is an easy way: if you have a Zebra DS2208 scanner, just scan the provided barcode and the scanner will be configured properly for PartsBox. The barcode can be downloaded as a small PNG, large PNG or a PDF page.

Supported Scanners

Any 1D scanner should work fine with PartsBox, if it supports the USB HID interface (e.g. it acts as a keyboard). If you can see the output from the scanner in a text editor, it should work fine.

2D scanners known to work:

2D scanners known NOT to work:

  • Zebra/Symbol DS6608 (discontinued in 2007)

It is not possible to use a 2D scanner unless it can perform string replacements in scanned codes (Zebra/Symbol calls it "ADF" for "Advanced Data Formatting" functionality). This is a limitation of web browsers, not of PartsBox.

The best option for scanning barcodes is a dedicated hardware barcode scanner. PartsBox recommends a 2D scanner, in particular the Zebra DS2208. More and more distributors will be migrating to 2D barcodes, which can store significantly more information. A 2D scanner can also decode 1D barcodes.

A less expensive scanning option is the Barcode to PC app. This solution consists of two parts: software that needs to be installed on your PC, and a mobile application that does the actual scanning. This solution does not yet work correctly with DataMatrix codes, but this is likely to change in the future.

Known problems and limitations

  • If you use a keyboard layout that is different from United States, the scanner will need to be set up for it. After scanning the setup barcode above, scan the regional code for your layout that is provided in your scanner manual.
  • Scanning does not work reliably in Firefox under Windows. Using a different browser (Chrome or Edge) is strongly suggested.

Troubleshooting

Unfortunately, barcode scanning cannot be made to work 100% reliably, due to many factors outside of PartsBox's control.

If a 2D scanner does not work with PartsBox, the first step is to check its output in a text editor, such as Notepad. Scan a 2D barcode into Notepad and see if the result contains the "{RS}", "{GS}" and "{EOT}" sequences. If it doesn't, make sure the scanner was set up for these special code replacements, and if you use an international keyboard layout different from US, scan the regional setup code provided in your scanner manual.

Please also read the "Known problems and limitations" section above, to see if your problem is listed there.

If the output in Notepad looks correct, but PartsBox can't recognize the barcode, please use the feedback form and tell us.

Take control of your parts inventory and BOM pricing today:

Try the demo

Or see plans & pricing