stock control and bom software - Page 1
Forum section: electronics / general

author: trevwhite
author_rank: Frequent Contributor
timestamp: June 28, 2019, 07:47:17 am
content: HiAnyone using some good, clean software that manages stock levels of components,etc and BOM creation. I dont want to pay monthly for a cloud based system. I just want something that I can record all the stock I have and relate that stock to BOMs. This is also good to then use at the design stage when I need a part as I can find what I have on the system that might already be suitable and in stock for prototypes as well as production.This kind of software, I am sure has been out for decades but all the current stuff I find is cloud based and monthly charges.What are people using?Trev

author: SMTech
author_rank: Frequent Contributor
timestamp: June 28, 2019, 08:30:05 am
content: One of the problems you'll find is that even the non-cloudy stuff doesn't want to sell you an outright licence for something they consider business critical. Even when they take an upfront fee they then want an annual maintenance contract and over the years have tightened up their rules so that is not an optional requirement. We run a fairly old copy of Encore from Anagram systems when the terms were slightly ambiguous, to upgrade it to the modern edition they want every upgrade/maintenance fee we haven't paid between then & now which is a quite a chunk of change*, for that reason when it becomes too unwieldy/we can't force it onto new PCs anymore we may well look elsewhere. In the UK there are several similar packages from the bigger IT support companies like this onehttps://www.ogl.co.uk/profitplusbut they all have this issue and/or are shockingly expensive.These packages are often called MES packages and are a mix of CRM & MRP & accounting this means that big open source CRM/MRP packages often have addons that bring these features (e.g adempiere), some of these only add decent BOM management on a, expensive commerical basis tho and they can be very complex to setup.QCadoo is an open soure MES that looks interesting and there are a few others, can be hard to keep up.If you can get over your dislike of cloud (there's plenty to like from a business perspective about a low monthly ongoing fee)www.manuonline.comis cheaper than some and plugs into xero/sage one.I believe a fully Sage solution is £30k+* we stopped paying it because of a consistent problem they just wanted to blame on the fact we weren't running a true windows server for the fileshare. I fixed it with a single command in w2k, and the problem isn't even there when using Samba.

author: techman-001
author_rank: Frequent Contributor
timestamp: June 28, 2019, 09:08:41 am
content: Quote from: trevwhite on June 28, 2019, 07:47:17 amI imagine they would use any accounting package with assembly capabilities.On the Open Source side there are quite a few, personally I have used WebERP for the last five years and before that I used SQL-Ledger. Both use a HTTP front end which can be anywhere and accessed by multiple clients from a browser. They both use Apache, Sql-Ledger also uses Perl and Postgres while Weberp uses PHP and MySql.These are small to large enterprise packages with SQl-Ledger being the simplest and easiest to use.A writer friend used Sql-Ledger to manage her large book collection complete with barcodes, prices, descriptions etc.sql-ledger.orgwww.weberp.org

author: olkipukki
author_rank: Frequent Contributor
timestamp: June 28, 2019, 06:46:14 pm
content: Quote from: trevwhite on June 28, 2019, 07:47:17 amYes, I am, took a lot a time, effort and handwork to have overall minimum basics, but still miles away what I want the software do.Quote from: trevwhite on June 28, 2019, 07:47:17 amOne way or another, you pay either monthly (or, in most cases, annually) or everything upfront with maintanence fees in range 15-35% on top each year. Alternatives, open-source ERP systems or own-made from a scratch.Quote from: trevwhite on June 28, 2019, 07:47:17 amReally - stock & BOM only? Are you hobbyist or trade?If first, Excel/Libra Calc should be enough, otherwise I cannot come up with scenario when you are after above only,except you already have accounting, procurement etc. systems in place and don't want change these.Quote from: trevwhite on June 28, 2019, 07:47:17 amI'm using Odoo (ex OpenERP) community edition with custom-made and enhancement modules, and tried Tryton (OpenERP fork) in parallel.Both implemented in Python and were able easy pick their up.Odoo has a open-source and commercial web-based versions, Tryton - open-source and support a native client; both a wide community support.You can try both systems online or install locally, not so complicated if you are familiar with PostgresSQL and Python installations.Also, Odoo commercial version is available for free if you choose one module, for example, PLM that includes Manufacturing and Inventory.

author: mrpackethead
author_rank: Super Contributor
timestamp: June 29, 2019, 01:54:40 am
content: I wrote my own. A major pita.

author: D3f1ant
author_rank: Frequent Contributor
timestamp: July 02, 2019, 05:46:58 am
content: I wrote my own too, heaps of fun. I did it in Access because i needed it to work within Altium Designer and cross reference with my library database. It keeps getting better as I add features over the years.

author: voltsandjolts
author_rank: Unknown
timestamp: July 02, 2019, 07:39:05 am
content: I've usedhttps://editor.datatables.net/to make a stock & bom database, using these (percentage of total effort by language):mysql 5%php 15%html 10%javascript 70%Since the server side requires msyql/php it runs on my synology NAS which is great for RAID, easy backup and small team sharing via the web interface (just a browser on the client side).Every part number has a link to a NAS drive directory where the document (if any) related to that PN is stored (manufacturing dwg or datasheet etc).BOMs are held in a mysql link table (i.e. one-to-many relationship).It's fairly simple but thats a bonus - easy to mould into what you need, if you know a little javascript.It requires JQuery Datatables Editor (about GBP100) but it saves so much effort, really easy tables backed by SQL DB.PM me if its of any interest.

author: Ribster
author_rank: Frequent Contributor
timestamp: July 03, 2019, 06:00:27 am
content: I am currently am rolling my own also. It's just straight up MySQL and a Laravel front end.It's a PHP framework. I've made a small simple interface in altium flask before for my altium database, but i want to do stock management.All depends on what you want to do. But the combination of MySQL + Flask will get you a long way if you need something quick and dirty.

author: mrpackethead
author_rank: Super Contributor
timestamp: July 03, 2019, 06:40:54 am
content: Quote from: D3f1ant on July 02, 2019, 05:46:58 amThis is where mine started as well. Now the database is mysql running in Amazon. The front end is all HTML, it has been running using python flask for a Web interface but i'm looking at migrating to using AWS lambdas and Angular.js.

author: Bassman59
author_rank: Super Contributor
timestamp: July 03, 2019, 07:31:58 pm
content: Quote from: trevwhite on June 28, 2019, 07:47:17 amI rolled my own. The "database" is a spreadsheet and it gets exported to CSV. A Python script takes a BOM exported from Kicad, matches it with the parts list CSV and outputs something I can use to place orders.The database has a tally of parts on hand. My eventual goal is to have a kitting feature which "pulls" from "stock" the correct amount of parts for kitting to make sure the parts-on-hand count remains correct.I liked the idea of partsbox.io but the one feature it doesn't have in its free version is house part numbers, and the monthly cost for the lowest tier is above what I want to pay.

author: dcbrown73
author_rank: Regular Contributor
timestamp: July 03, 2019, 07:43:45 pm
content: A buddy of mine uses one that is no longer supported and only runs on Windows XP. He upgraded all of his PCs with the exception of that machine to Windows 10 and then network file-sharing security fun ensued.We had a Windows hacking party just to get it functioning again! The fix isn't something I would ever want to deal with because it's just going to come right back and at some point. Virtualization is the only XP option he will have.As for rolling my own. I would go with a NoSQL db storing JSON (part ID as the key) and then use a templating engine for displaying / entry form. You could easily add a tool for BOM ordering.

author: Gribo
author_rank: Frequent Contributor
timestamp: July 03, 2019, 10:26:08 pm
content: I am in the process of building my own. I am using SQL Express, and C# for the front end.Schematic libraries contain only symbols and the database takes care of linking symbol, footprint and the part number's parameters.I have split the tables to various component types to allow easier parametric searches (resistors, diodes etc).Stock is kept in a simple table which contains internal pn, mfg pn, supplier pn, price, amount on hand and lead time.

author: mrpackethead
author_rank: Super Contributor
timestamp: July 04, 2019, 06:36:51 am
content: wondering if you can connect a no-sql database to altium.

author: Smokey
author_rank: Super Contributor
timestamp: July 04, 2019, 07:13:33 am
content: Quote from: mrpackethead on July 04, 2019, 06:36:51 amYou can connect anything to anything with enough interface layer hacks :-)

author: trevwhite
author_rank: Frequent Contributor
timestamp: July 06, 2019, 10:09:15 am
content: It seems people have done a lot of work. Be nice to create an open source effort from all this. Maybe a core instruction and basic framework using a database. It sounds like as long as the database structure was defined loads of modules in whatever language people prefer could be used and it would be so flexible.Backups would be easy.Is this of any interest?Trev

author: mrpackethead
author_rank: Super Contributor
timestamp: July 06, 2019, 11:41:54 pm
content: Woudl be really nice. but the real issue is that everyones setup and requirements are a littel bit differerent.I'm thinking of a re-write of mine, using DynamoDB, AWS HTTP Gateway with Python Lambdas, S3 serving static content using Angular.AM yet to find a low cost ODBC interface to Dynamo though.

author: IanS
author_rank: Newbie
timestamp: July 08, 2019, 12:15:16 pm
content: MiniMRPhttp://www.minimrp.comis not cloud based. Also not a monthly payment or any other regular payment. $190USD for the standard version - buy once use forever.Uses it's own local built-in database but can be migrated up to MS SQL Server or even MySQL Server.But if you really do want the data in the cloud you could use your own MySQL server on your own website or sign up with Microsoft Azure or AWS.Also, that MySQL capability means you can also use the MySQL or MariaDB server that's built in to many NAS drives nowadays.

author: IanS
author_rank: Newbie
timestamp: July 08, 2019, 01:24:29 pm
content: Quote from: SMTech on June 28, 2019, 08:30:05 amWe've been developing and selling MiniMRP for over 20 years. In that time we've NEVER need to bill anyone for monthly or annual maintenance. Our software really is a once only payment - buy once use forever. We have enough new users coming on board that we've never needed to 'screw' our existing user base for more money.We still have users using their original version that they purchase 10 or more years ago and it still works fine in Windows 10.Having said that we do, very rarely (maybe every 5 years or so) release a whole new version with more features and if somebody wanted to switch to that version they'd need to pay (usually around $50) but nobody is forced to upgrade and, as I said, older versions still work just fine with latest versions of Windows.Oh! I'd also like to add that MiniMRP version 5 was recently updated to work with WINE under MacOSX and Linux. So, run the Windows version of MiniMRP in Linux without a VM. This WINE update is quite new so it would be great if any Mac or Linux users would test that and give us some feedbackhttp://www.minimrp.com

author: olkipukki
author_rank: Frequent Contributor
timestamp: July 09, 2019, 11:54:30 am
content: Quote from: mrpackethead on July 06, 2019, 11:41:54 pmWhat for?If just expose data to Altium, you can use DynamoDB Streams + Lambdas triggers and sync changes to "classic" DB on the side.

author: mrpackethead
author_rank: Super Contributor
timestamp: July 10, 2019, 01:07:05 am
content: Quote from: olkipukki on July 09, 2019, 11:54:30 amYes, its just to expose the data to altium, but not i'm not sure that i'm very keen on having a whole set of local databases that are somehow synced. Sounds like a disaster in the making.

author: 1276-2449-1-ND
author_rank: Regular Contributor
timestamp: July 13, 2019, 07:01:18 pm
content: I also wrote my own after not being able to find anything suitable.I used LibreOffice Base (using MySQL) and it took an afternoon plus a bit of tweaking every now and then.

author: ar__systems
author_rank: Frequent Contributor
timestamp: July 14, 2019, 01:06:08 pm
content: Wow so many people work on the same it is crazy! Incidentally I have my own in the works too.I always hated the process of created BOM, since inevitably things get changed and the board goes out of sync with the BOM. So mine reads native Eagle files, CSV file (for other peoples BOMs). The goal is at least for ordering to never create an actual BOM file. Clearly, when I have to do that when I transfer the data to customer, but until then all data remains in board file.The second major goal of the app focus was preparation of the BOM quotes. I got to the stage of automatically pulling data from digikey.And third axis was preparation of data for SMT machine. It assigns angles, heights, and nozzles. By reading BRD file I have access to component orientation in the library. I can fix offsets if the part is not centered in the library, and rotation angles are always correct.

author: IanJ
author_rank: Unknown
timestamp: July 14, 2019, 03:54:07 pm
content: Ahhh, my pet hate of electronics design......the BOM!I design test instruments and Pcb's to sell, I always end up using Excel mostly because I can:- BOM the pcb, with costs arising from both purchasing as single items and multiples from suppliers.- Cross reference against what parts I already have in stock.- Use it to forecast profit per item if I sell at various marked up prices.Also, because I have gone so far down this route I don't really use Circuitstudio's BOM......so it's usually way out of date in terms of part attributes and metadata.I guess I am stuck with Excel but I'd love to entertain something new as it's hard to see how my business would scale up using this method!......looks like I need to read this thread through thoroughly.Ian.

author: mrpackethead
author_rank: Super Contributor
timestamp: July 15, 2019, 05:15:50 am
content: Quote from: ar__systems on July 14, 2019, 01:06:08 pmOne of the dramas is that everyone wants to do something just a little different! I'd like to migrate my database from MySQL to dynamoDB ( no sql ) theres a lot of good reasons for doign that.I dont' know how to connect that effectively with altium. There was a suggestion above using streams,Quote

author: trevwhite
author_rank: Frequent Contributor
timestamp: July 15, 2019, 04:48:26 pm
content: Well my thought was that based on the wisdom of all that have already done this, a structure for a mysql database/schema could be created along with a script to create the database. Once that is in place things start to get pretty flexible with everyone able to work with languages of their choice and present data from apps, web, c# app, whatever they want.All those apps could be available and with modern development it seems realistic to have a python app running on a PC interacting with a mysql server, whilst then having a web based, server side php system running as well doing a different job but with all the data in sync. I saw some php code using a bar code scanner for example. That could be used as a special dedicated app to load stock into the system. Print the barcode, stick it on the reel for example and then scan it into the system. Use the same system to log stock out. Scan barcode, enter stock used, etc....It also gives a nice project for personal development of web applications. I have been wanting to get into nodejs for a while and web stuff. This would actually be a very useful project with a real world end use case. It can run on a rpi, cloud server, local computer or NAS on the network.Just thoughts...

author: voltsandjolts
author_rank: Unknown
timestamp: July 15, 2019, 06:54:27 pm
content: Quote from: trevwhite on July 15, 2019, 04:48:26 pmIf you want to dive into sql here is an example script that creates a (small) new database with a few tables. It's just a headstart to show you the syntax (although I am no expert myself). Run it, for example, in phpMyAdmin.

author: mrpackethead
author_rank: Super Contributor
timestamp: July 15, 2019, 09:18:41 pm
content: Here is an example of a record in my "library", which is a nosql dynamodb.{"part_name": "RES_10K_0603","part_uid": "76ed17de2df8","part_class": "Resistor","library": {"schematic":"path/rcl.schlib","pcb":"path/rcl.pcblib"},"instance": [{"manufacturer":"ACME_RESISTOR","man_sku": "12345ABCDE","datasheet": "acme.com/resistor.pdf","vendors": [{"vendor_name":"resistorsRus","vendor_sku": "Rus12345ABCDE",},{"vendor_name":"Ohms4u","vendor_sku": "Ohms12345ABCDE",},],},{"manufacturer":"BOOM_RESISTOR","man_sku": "XYZ10K","datasheet": "boom.com/resistor.pdf","vendors": [{"vendor_name":"resistorsRus","vendor_sku": "Boom2130",},{"vendor_name":"DavesShop","vendor_sku": "10000",},],},],"fabrication": {"default_placement_type":"machine","packaging":"8inchreel","pnp":{"rotate_offset":90,"feeder_size": "8mm"}}

author: mrpackethead
author_rank: Super Contributor
timestamp: July 16, 2019, 02:36:33 am
content: NoSQL databases are a bit different, but hopefully, you can see what is going on.The records Sort key will be part_name. THis needs to be unique. IThe partition key is something that will get added to each record automatically.. Once your database starts growing this provides a way for the database to be partitioned easily.. (https://aws.amazon.com/blogs/database/choosing-the-right-dynamodb-partition-key/)If you think this looks like JSON, then you are absolutely correct. That is how the record is stored in dynamo.Each part will be given a class, so you have a way to group various things.. ( resistors, caps, widgets, nuts, power_regs, FETS etc )THe library feild, contains another object. which contains infomation about what library the part belongs in.. In my case, all resistors are in a library called 'rcl'. If theres additional attributes about the library you want to add, you simple, can add more values. Records dont' have to have every possible feild.Instances of that part, are so that you can accomodate multiple variants of that part from multiple manufacturers, and inside of those variants you can keep track of which vendors sell it. It might be good to have a link to the part on a vendors web siteI want to keep track of information i'll use for fabrication. with that part. Can you work out why what i've designed in here, might be problematic? ( I've provided a better solution in the text file )

author: olkipukki
author_rank: Frequent Contributor
timestamp: July 16, 2019, 09:36:51 am
content: Quote from: mrpackethead on July 15, 2019, 05:15:50 amWondering why you would like to do this?You can dump your json data to json data field (hope that MySQL has similar to Postgresql) and index some key fields such as mnf_no, part_no etc. into the separate dedicated columns, no?

author: olkipukki
author_rank: Frequent Contributor
timestamp: July 16, 2019, 09:41:07 am
content: Quote from: mrpackethead on July 15, 2019, 09:18:41 pmAre you using 1% resistors only? Lucky you!I always find a bit tricky how to store, process and allocate a generic passive such as capacitors, resistors...

author: olkipukki
author_rank: Frequent Contributor
timestamp: July 16, 2019, 09:44:57 am
content: Quote from: mrpackethead on July 15, 2019, 09:18:41 pmOnly one footprint per part, nothing like for high-density boards or 'wider-and-bigger' for easy manual adjustments? Lucky you again!

author: mrpackethead
author_rank: Super Contributor
timestamp: July 16, 2019, 10:52:43 am
content: Quote from: olkipukki on July 16, 2019, 09:36:51 amIf you are using modern agile methodologies, a relational database will slow you down. A NoSQL database doesn’t require the level of preparation typically needed for relational databases.All that being said, there are times that a relational database is a better choice, if you need ACID compliancy, then a relational database is the way to go.Indicators for projects where SQL is ideal:(1) Its very easy to store large volumes of data without structure.(2) a nosql database is very easy to scale compared to a relational database, which makes it more suitable for cloud, deployments. ( its considerably cheaper ).(3) using modLogic-related discrete data requirements which can be identified up frontData integrity is essentialStandards-based proven technology with good developer experience and support.Indicators for projects where NoSQL is ideal:Unrelated, indeterminate, or evolving data requirementsSimpler or looser project objectives, able to start coding immediatelySpeed and scalability is imperativeIt is, however, obvious that this is no longer an issue of SQL vs. NoSQL. Instead, it’s SQL and NoSQL, with both having their own clear places, and increasingly being integrated into each other. Microsoft, Oracle, and Teradata, for example, are now all selling some form of Hadoop integration to connect SQL-based analysis to the world of unstructured big data.

author: mrpackethead
author_rank: Super Contributor
timestamp: July 16, 2019, 11:00:43 am
content: Quote from: olkipukki on July 16, 2019, 09:41:07 amIn my current parts_library, resistors are assumed to be 1%, unless you state it otherwise. Bit of history there, and not ideal.Probably need to add a 'description' object to the document.. ( a document is vaugely equivalent to a row in a sql database ). Oh, very easy in the non structured world of no sql databases.{"part_name": "RES_10K_0603","part_desc": "10K 1% .1W 0603 Thick Film""part_uid": "76ed17de2df8"}{"part_name": "RES_1K_1206_5%","part_desc": "1K 5% .5W 1206 Thick Film""part_uid": "76ed37fe2df8"}

author: mrpackethead
author_rank: Super Contributor
timestamp: July 16, 2019, 11:23:15 am
content: Quote from: olkipukki on July 16, 2019, 09:44:57 amGood, point and an annoying issue that i have with my current library, but one that can be easily fixed.{"library": {"schematic":"path/rcl.schlib","pcb":"path/rcl.pcblib"},}This was simplistic, in that you'd look for the partname in your library files. I dont' even do that now, and have a feild for sch and footprint names. so we can fix this by adding a couple of objects to the document.{"library": {"schematic":"path/rcl.schlib", // which file contains the schematics"pcb":"path/rcl.pcblib", // which file contains the footprints"sch_name": "RES", // lets assume we only have one schematic shape to represent it."footprints": [ "0603_S", "0603_M", "0603_L"] // a list of footprints that could be options.}

author: ar__systems
author_rank: Frequent Contributor
timestamp: July 16, 2019, 11:42:01 am
content: Quote from: mrpackethead on July 15, 2019, 05:15:50 amWhat you are doing is actually very similar to my flow. I have similar way of mapping concrete resistors to my generic part numbers (RES-49.9-0603-v1). V1 and V2,3 etc encapsulates all different versions of this generic part, be it different MFG PN, tolerance etc.I would not want to do things slightly different if I had a s/w doing it pretty close to what I want.For example, I don't want any cloud based stuff, even though I do use one at the moment. Cloud solution inevitably requires exporting BOM from CAD, and that bring along all the problems I already mentioned.

author: ar__systems
author_rank: Frequent Contributor
timestamp: July 16, 2019, 11:54:47 am
content: I did not get to Database stage yet, and frankly was not looking at anything other than MySQL, the only thing that I knowDynamo seems quite affordable.

author: trevwhite
author_rank: Frequent Contributor
timestamp: July 16, 2019, 12:45:02 pm
content: I thinkhttps://www.mongodb.com/might be a free document based database.This could be an alternative that enables local or remote storage of a database depending on the specific user requirements.

author: mrpackethead
author_rank: Super Contributor
timestamp: July 16, 2019, 09:56:40 pm
content: Quote from: ar__systems on July 16, 2019, 11:42:01 am'if it was pretty close'. That is the real problem isn't it. They never are 'pretty close' :-)[quote[For example, I don't want any cloud based stuff, even though I do use one at the moment. Cloud solution inevitably requires exporting BOM from CAD, and that bring along all the problems I already mentioned.Cloud is critical for me. I dont' work at a fixed location, I have several people working using the same data from different places. You cant' have multiple copies of the database locally and expect it to keep it in sync. Its enough of a nightmare right now, keeping the .sch and pcb files synced.. ( i use git ).I export my BOM, and PNP files from altium right now, and those are inputs for my manufacturing process. Its all done with local python right now, but my intention is to go one step further and make that cloud based.

author: mrpackethead
author_rank: Super Contributor
timestamp: July 16, 2019, 09:58:18 pm
content: Quote from: trevwhite on July 16, 2019, 12:45:02 pmTHeres a few. mongo probably the most well know.https://www.infoworld.com/article/3260184/how-to-choose-the-right-nosql-database.html

author: mrpackethead
author_rank: Super Contributor
timestamp: July 16, 2019, 10:18:29 pm
content: Is anyone here a javascript/angular wiz?I can quickly wizz up some HTTP API's to interface to a database, so we can have a play. My JS/Angular skills are rated at 0.1/10 and i dont' have enough hours in the day to make it work.

author: IanJ
author_rank: Unknown
timestamp: July 19, 2019, 06:18:49 pm
content: Quote from: IanS on July 08, 2019, 01:24:29 pmI thought I'd try MiniMRP but got confused out of the box........appreciate some help with terminology.So I have a product that I already have an excel spreadsheet for the Pcb BOM and the other parts associated with assembling the product (enclosure, DC charge cable, CE stickers etc)........so where do I start?I don't have a master inventory for all my parts on the shelves......I more or less wing it but tell you the truth I wouldn't mind have a database for this (except most SMD resistors, jelly bean parts etc).What is an ASSEMBLYWhat is a SUB-ASSEMBLYWhat is a CLOSED SUB-ASSEMBLYWhat is a MISC ITEMI can export one of my Pcb BOMs to a CSV, headings and example line as follows:Code:PART VALUE PACKAGE DESCRIPTION SUPPLIER PART_NUMBER COST_1off COST@break CURRENT_STOCKC11 10uF 50v Ceramic C1206 Samsung CL31A106MBHNNNE Digikey 1276-6736-1-ND 0.240 0.065 Not knownAppreciate if you could reply in terms of Pcb's, products that may consist of Pcb's c/w enclosures etc etc....PS. I like the GUI.Ian.

author: ar__systems
author_rank: Frequent Contributor
timestamp: July 21, 2019, 05:14:17 pm
content: Quote from: mrpackethead on July 16, 2019, 09:56:40 pmNot exactly what I meant. I mean there a several online BOMs. All of them use some kind of table input. And THAT is what I don't want to have, because it becomes a sync problem. What I want to have is that my .brd file is synced to version control, and purchasing people could open the BRD file in the BOM application (online or offline), and send purchase order to Digikey or whatever directly.So I'm not exactly against online apps, I just don't want ones that create a separate document (BOM) not synced to the board.Clearly, that is not much of an issue for finished boards, but I'm more concerned with boards in active development, where I might go through several revisions, and if each one creates a new BOM document, it just multiplies the potential for errors.

author: Ribster
author_rank: Frequent Contributor
timestamp: July 26, 2019, 01:08:46 am
content: But don't you freeze the BOM version once you release it ?While you are working on the version, there is no release. Once you deem it okay for a trial run you generate a version of the BOM.In essence the released BOM is always synced with the board, since you generate it from there...

author: ar__systems
author_rank: Frequent Contributor
timestamp: July 26, 2019, 06:32:37 pm
content: Yes of course, when the board reaches maturity the BOM is fixed. But then again, I don't work on that board anymore. Historically I know that I had tons of problems with errors in BOMs, and I can't really describe all of them. Sometimes an incorrect package of transistor is specified, sometimes some resistors are changed at the last moment and the change is not reflected in the board file. The problem is that some of these changes happen over a period of time. It can be a few month between the customer takes prototype boards from me, test them, find an issue that requires component change. At that moment I need to update the BRD file and BOM file. If I'm not careful, I might end up updating only one of them. Few more month down the road they go into production and request a final BOM. At which point I have no way of verifying if the BOM matches the BRD file. It has happened in the past that I would send previously generated BOM forgetting about later changes.It sounds a bit stupid as I explain it, and surely some of this can and should be avoided with more disciplined approach. But that is the reality and so I'm moving towards the process where I give customer ONLY board file, and let them generate BOM from it.

author: ddavidebor
author_rank: Super Contributor
timestamp: August 19, 2019, 12:06:39 am
content: Quote from: trevwhite on June 28, 2019, 07:47:17 amHello,I have been having issues of this sort since forever. Still not solved!I manufacture some equipment that has expensive components (super low noise low current low everything instrumentation amplifier) for example and need to manage this sort of stocks.For the complete products, I am using ERPNEXT, which is quite incredible. I also know ofhttps://partkeepr.org/that has been abandoned but just a year ago or so and is quite good.I have rolled my own solution for Altium as well, made from a database and an interface. I am also planning to sell it BTW.Based on my experience working for a company with horrible bom management, the trick to have perfect bom is NEVER touch any component inside the design, but instead follow a workflow like the following:1. choose your components carefully. You don't need 12 different opamps in 20 products.2. create a fully documented component in the library included symbol, footprint, 3d model, datasheet, description, simulation models if needed3. never use a component outside that library4. repeat5. profit!I have also imported some standard components in advance, such as Yageo commercial SMD chip resistors, that are manually integrated with alternatives as needed.BOM should be exported automatically from your ECAD and never touched after that. a Strong workflow is the only way to not make mistakes.