EEVblog Electronics Community Forum

Electronics => PCB/EDA/CAD => KiCad => Topic started by: qu1ck on July 25, 2018, 12:07:19 pm

Title: Interactive Html Bom Plugin
Post by: qu1ck on July 25, 2018, 12:07:19 pm
Hi all,

I just released first beta for my plugin. I find it super handy for building prototypes.

Instead of describing what it does and how is it different from all the other BOM plugins I better show a nice demo (https://openscopeproject.org/InteractiveHtmlBomDemo/OSPx201/ibom.html).

And here is the github repo (https://github.com/openscopeproject/InteractiveHtmlBom).

More demos, download link, install and usage instructions are on github.

Try it out and let me know if you find it useful. If you find bugs please report them, if you would like to see some features discuss below.

Thanks!
Title: Re: Interactive Html Bom Plugin
Post by: firewalker on July 25, 2018, 02:46:27 pm
Nice!
Title: Re: Interactive Html Bom Plugin
Post by: rachaelp on July 25, 2018, 02:48:44 pm
I'm not a KiCAD user but if I was I would 100% want to use this plugin. Nice job  :-+

Best Regards,

Rachael
Title: Re: Interactive Html Bom Plugin
Post by: Bassman59 on July 25, 2018, 09:28:15 pm
Hi all,

I just released first beta for my plugin. I find it super handy for building prototypes.

Instead of describing what it does and how is it different from all the other BOM plugins I better show a nice demo (https://openscopeproject.org/InteractiveHtmlBomDemo/OSPx201/ibom.html).

And here is the github repo (https://github.com/openscopeproject/InteractiveHtmlBom).

More demos, download link, install and usage instructions are on github.

Try it out and let me know if you find it useful. If you find bugs please report them, if you would like to see some features discuss below.

Thanks!

VERY cool. I'll try it tonight.
Title: Re: Interactive Html Bom Plugin
Post by: bson on July 27, 2018, 04:42:32 am
Nice.  I wrote a custom BOM generator that groups components by their designator, value, top/bot, and footprint so I get separate sections for R 0402, R 0603, C 1206, C 0402, etc sorted by value.  Separate sheets for the two sides.  This is how I store my components, so lets me place parts one case at a time and reflow one side, then place the other and reflow that by simply going down the sheet.  The code is super ghetto so I'm not going to post it, but it's a useful feature. :)

Oh, and I output csv and import that to a google sheet on gdrive in case I want to make additional rearrangements or remove parts I'm not populating.
Title: Re: Interactive Html Bom Plugin
Post by: Warhawk on August 05, 2018, 03:50:15 pm
I like it a lot. Please consider paypal "buy me a beer" donation. I would be in.
Title: Re: Interactive Html Bom Plugin
Post by: qu1ck on August 05, 2018, 09:49:42 pm
I appreciate the thought but I don't drink beer and also do well for myself :)
You can donate that amount to your local charity in my name, if you wish.
Title: Re: Interactive Html Bom Plugin
Post by: Warhawk on August 06, 2018, 01:09:45 pm
I hope you stay motivated :-+. I've just given dionation to KiCad developers. 8)
Thank you one more time for the excellent plugin.
Title: Re: Interactive Html Bom Plugin
Post by: Kibi on August 12, 2018, 07:26:02 pm
This is very nice. Please keep up the good work!  :)
Title: Re: Interactive Html Bom Plugin
Post by: ehughes on August 24, 2018, 02:09:36 pm
I have been wanting something like this in Altium.    Great Job
Title: Re: Interactive Html Bom Plugin
Post by: mdszy on August 24, 2018, 02:22:02 pm
Wow, this is really well made! Great work!
Title: Re: Interactive Html Bom Plugin
Post by: janoc on August 24, 2018, 02:39:08 pm
Jeeze, I have been looking for something like that for a long time!

Well done!  :-+
Title: Re: Interactive Html Bom Plugin
Post by: LapTop006 on September 11, 2018, 01:38:46 pm
Finally gave it a try tonight, awesome.
Title: Re: Interactive Html Bom Plugin
Post by: lutkeveld on September 25, 2018, 10:06:35 am
Has anyone had any success installing this amazing plugin on Windows? Can not get it to work on Kicad 5.
Title: Re: Interactive Html Bom Plugin
Post by: qu1ck on September 25, 2018, 10:14:04 am
I develop and use it on Windows.
Describe in more detail how exactly it doesn't work and I may be able to help. Does the button appear? Does tools->external plugins entry appear? Does it run but not produce anything? Did you try running it from scripting console as described in instructions on github?
Title: Re: Interactive Html Bom Plugin
Post by: lutkeveld on September 26, 2018, 09:55:47 am
The button does not appear, just like tools->external plugins.
After some googling this seems to be caused by "KICAD_SCRIPTING_ACTION_MENU" being disabled, but I can not find how to enable it.

I entered this command
C:\Program Files\KiCad\bin\python.exe C:\InteractiveHtmlBom-master\InteractiveHtmlBom\generate_interactive_bom.py C:\Users\pathtokicadpcbfile

Please mind that I have no experience whatsoever with Python, so I could easily be doing something wrong in the python shell (scripting console).
I just enter this command and hit enter, but I get a syntax error.

Title: Re: Interactive Html Bom Plugin
Post by: qu1ck on September 26, 2018, 05:49:55 pm
And the error is... ?

KICAD_SCRIPTING_ACTION_MENU option is a compile time flag, if you don't know how to compile KiCad from sources you won't be able to change it.
To check if you have it on or off you can go to Help->About kicad->Show version info
Actually just paste the output of that window here.

Also where exactly did you put the plugin folder? If you have KiCad installed in program files I recommend putting plugins in %APPDATA% folder (see instructions on github) because program files are not writeable by default.
Copy paste this in address bar of explorer
%APPDATA%/kicad/scripting/plugins
after pressing enter you will be in right folder, copy plugin directory there. If you have latest version of plugin you can copy the whole repository folder, otherwise copy just InteractiveHtmlBom subdirectory.
Title: Re: Interactive Html Bom Plugin
Post by: kerrsmith on September 26, 2018, 06:11:44 pm
Just a second thing to check - have you made sure you are using the InteractiveHtmlBom directory found in the zip file when placing it in the required location. If you just use the complete directory of the zip file the button will not appear.

You need to extract the zip file and then open the directory InteractiveHtmlBom-master and use the InteractiveHtmlBom folder found inside, this is what needs to be placed in the Kicad folder (C:\Users\USERNAME\AppData\Roaming\kicad\scripting\plugins for example).
Title: Re: Interactive Html Bom Plugin
Post by: qu1ck on September 26, 2018, 06:29:07 pm
kerrsmith
In latest versions you can copy the whole repository too. I addressed that in my comment.
Title: Re: Interactive Html Bom Plugin
Post by: kerrsmith on September 26, 2018, 09:56:41 pm
kerrsmith
In latest versions you can copy the whole repository too. I addressed that in my comment.

That's good to know - the version I originally got was from a couple of weeks ago and I had the issue of the missing button as I had linked directly to the main folder, once I changed it to go to the sub folder it worked perfectly.

I now have it set up in a folder in my home directory so I can run git updates on it easily from a script that also checks a few other git projects - I then use a link from the KiCad directory as suggested in the documentation.

I also have to say that this is an amazing plugin that is incredibly useful. Usually I print out the PCB footprints layout and bill of materials and then work from them but this plugin makes it so much easier - just hover and everything is highlighted.

I think it would be great if it came as standard with Kicad as it is so helpful.
Title: Re: Interactive Html Bom Plugin
Post by: qu1ck on September 26, 2018, 10:10:53 pm
I think it would be great if it came as standard with Kicad as it is so helpful.

I'm glad you like it.
Unfortunately I don't think getting this plugin packaged with standard distribution of KiCad is going to happen any time soon. Core devs put the whole responsibility of maintaining plugins on plugin authors. Even current python interface is provided "as is, may or may not work at any given time". They accept patches if something breaks but generally don't test it.

Maybe when a proper API is designed and implemented, one which they will support, they would integrate some useful plugins as well.
Title: Re: Interactive Html Bom Plugin
Post by: kerrsmith on September 27, 2018, 10:58:59 am
I have just had a quick look on their website and they have an 'External Tools' section under the top 'Discover' drop down menu. I think this would be a great place for your plugin to go.

I am not sure about how you go about getting it added but if you need people to contact KiCad via their website to offer suggestions I would be happy to do this - assuming you want to try and get it featured on their site of course.
Title: Re: Interactive Html Bom Plugin
Post by: hermit on September 27, 2018, 04:12:04 pm
You seem to have gotten a shout out and I thought I'd post it here in case you didn't see it. ;)

https://www.eevblog.com/forum/oshw/open-source-oscilloscope-can-it-be-done/msg1851776/#msg1851776 (https://www.eevblog.com/forum/oshw/open-source-oscilloscope-can-it-be-done/msg1851776/#msg1851776)

Open Source Hardware / Re: Open Source Oscilloscope, can it be done?
« on: Yesterday at 12:17:42 pm »
Someone out there does seem to be working on an open source scope.

The (wonderful) Interactive HTML BOM Kicad plug-in https://github.com/openscopeproject/InteractiveHtmlBom (https://github.com/openscopeproject/InteractiveHtmlBom) has a couple of interactive demos "of (soon to be published) in house designs" one of which OSPx201 which looks like a pretty-far-along oscilloscope.

https://openscopeproject.org/InteractiveHtmlBomDemo/OSPx201/ibom.html (https://openscopeproject.org/InteractiveHtmlBomDemo/OSPx201/ibom.html)

A two-sided <10x10cm open source oscilloscope (cheaply fabbed) with a ~$100 BOM capable of 10Mhz or so would be revolutionary.
Title: Re: Interactive Html Bom Plugin
Post by: desertgreg on October 10, 2018, 04:26:48 pm
This looks absolutely awesome.   :-+ :-+
Title: Re: Interactive Html Bom Plugin
Post by: Warhawk on November 21, 2018, 01:08:26 pm
qu1ck: I am just wondering if there is a chance to have something similar, which would highlight complete tracks based on nets, or at least highlights a pad associated with the net.

I would love to help and contribute but this is beyond my programming skills.

Additionally, I would like to also have an option for selecting a different layer for part outlines. For example, I don't use the solder mask layer but F.Fab and B.Fab.
Title: Re: Interactive Html Bom Plugin
Post by: Bassman59 on November 21, 2018, 06:01:30 pm
qu1ck: I am just wondering if there is a chance to have something similar, which would highlight complete tracks based on nets, or at least highlights a pad associated with the net.

Certainly in Kicad 5.0.0, that feature already exists. From the main menu choose Inspect then List Nets. Select a net and it is highlighted in the layout.

Quote
Additionally, I would like to also have an option for selecting a different layer for part outlines. For example, I don't use the solder mask layer but F.Fab and B.Fab.

Those layers are built into the footprints. I think that the most-up-to-date standard Kicad libraries actually do what you want -- the outlines (or at least part body) are on a fab layer. Look at them to see if they are what you want. Otherwise, you can modify the footprints as you like and save them to your own libraries.
Title: Re: Interactive Html Bom Plugin
Post by: qu1ck on November 21, 2018, 07:56:28 pm
qu1ck: I am just wondering if there is a chance to have something similar, which would highlight complete tracks based on nets, or at least highlights a pad associated with the net.
As noted in a reply above, Kicad can already do that, no plugin needed.

Additionally, I would like to also have an option for selecting a different layer for part outlines. For example, I don't use the solder mask layer but F.Fab and B.Fab.
This plugin aims to assist with manual population of the board. That is you have a board in one hand and bunch of components you need to place in a pile. On the pcb render only things that you can actually see on the board are drawn: silkscreen and pads (solder mask layer is ignored). That helps you visually identify places where each component goes.

I personally don't see how adding fab layer helps with that but maybe I'm missing some use case. Still, more than one person asked for that so I plan to add that option.
If you explain how you envision using fab layer I would prioritize that feature higher.

Btw plugin was recently updated to v2, grab the latest from github.
Title: Re: Interactive Html Bom Plugin
Post by: doobedoobedo on November 22, 2018, 12:23:28 am
Loving this. :-+

Thanks for sharing and the effort you put into it.
Title: Re: Interactive Html Bom Plugin
Post by: malagas_on_fire on November 22, 2018, 12:39:45 am
Very nice html plugin. the "copy bom table " function works to text editor as well spreadsheets.

Reset zoom on right click :P

Thanks for sharing you're work.
Title: Re: Interactive Html Bom Plugin
Post by: bson on February 03, 2019, 04:23:07 pm
This is absolutely awesome.  :clap: The only improvement I would suggest is to use the PCB "rev" data if non-blank for the name.  I've been renaming ibom.html to e.g. RevA.html.  Like, take the rev string and remove blanks, or turn blanks into _.  (So, "1.0" could be normalized to ibom_rev_1_0.html, but the exact scheme isn't important as long as they can coexist without risking clobbering one another.)  It also gives a nice way to quickly pull up different revs side by side without having to git checkout tags in different folders, which is rather tedious.

I upload the html file to google drive and access it from my 12" Samsung Android tablet on my bench (which I normally use to access datasheets), works fantastically!  I love that it can show me the parts and pick a board side.  The tablet standing vertically has a MUCH smaller footprint on my bench than a printed page or laptop!

Actually one additional feature would be the ability to mark individual components as having been placed... not sure how that would be done in the UI (like maybe change color on click/tap), but I find if I have say 35x 100Ω resistors it's easy to lose track of which one I'm at.  Or I counted 35 before, and now I have one left over... did I miss one or count 36?  If so which one is missing?  When using paper I'd cross each one out as it's populated.  (Or every few.)  Edit: HTML strikeout!
Title: Re: Interactive Html Bom Plugin
Post by: 2N3055 on February 03, 2019, 04:46:07 pm
Great work!!
Title: Re: Interactive Html Bom Plugin
Post by: qu1ck on February 04, 2019, 02:28:06 am
This is absolutely awesome.  :clap: The only improvement I would suggest is to use the PCB "rev" data if non-blank for the name.  I've been renaming ibom.html to e.g. RevA.html.  Like, take the rev string and remove blanks, or turn blanks into _.  (So, "1.0" could be normalized to ibom_rev_1_0.html, but the exact scheme isn't important as long as they can coexist without risking clobbering one another.)  It also gives a nice way to quickly pull up different revs side by side without having to git checkout tags in different folders, which is rather tedious.

This functionality was already added. You can download latest from github or wait for v2.1 release.

Actually one additional feature would be the ability to mark individual components as having been placed... not sure how that would be done in the UI (like maybe change color on click/tap), but I find if I have say 35x 100Ω resistors it's easy to lose track of which one I'm at.  Or I counted 35 before, and now I have one left over... did I miss one or count 36?  If so which one is missing?  When using paper I'd cross each one out as it's populated.  (Or every few.)  Edit: HTML strikeout!

Also, in the works for v2.1 (not implemented yet).
Title: Re: Interactive Html Bom Plugin
Post by: bson on March 11, 2019, 01:05:02 am
Looks great!

One thing I haven't figured out is the dialog has an Extra Fields tab, but I can't find a way to add any extra fields?  It doesn't appear to discover them automatically if present, either.
Title: Re: Interactive Html Bom Plugin
Post by: qu1ck on March 11, 2019, 01:13:12 am
bson
You need to generate either xml or netlist file from eeschema. Plugin does not read .sch files directly, it needs that intermediary format to get extra field info.