Robotips / uConfig

Datasheet pinout extractor from PDF and library Stylizer for Kicad.
GNU General Public License v3.0
516 stars 58 forks source link

Issues with TI UCC27212-Q1 data sheet #11

Closed sjlongland closed 6 years ago

sjlongland commented 6 years ago

Firstly, I'll say this right now, your tool is brilliant!

There are times when you just want a symbol to stick in the schematic and don't want to faff around with the symbol editor… your tool saves a lot of time. Many thanks for sharing it. Even if it gets something a little wrong, the bit of clean-up required is minimal for small parts.

I used it successfully with a couple of datasheets, e.g. the TI INA219 datasheet worked fine, but with the UCC27212-Q1, it missed the LI signal. I was about to raise it in issue #5, but I see you prefer separate issues for different data sheets, so I'll raise it here.

uconfig-ucc27212a-q1

It seems though it did recognise the LI text, it just didn't recognise it as a signal:

ucc27212a-q1-debug

I tried entering it manually into that centre-top table listing, but the moment I clicked on the next field, it rejected what I had entered. Maybe having a small override facility to say "there is a pin X named ABC", or "pin Y doesn't really exist" might be a way around this. I think it's mostly there, just a little edge case. (I'd imagine there's a lot of these, parsing PDFs is no fun.)

I looked for such a feature, but didn't spot it… if needed I can submit a pull request that adds it. (I might do that to tweak some of the text … maybe see if Qt Linguist can be used to make translation easier. But that is a separate issue. :-))

sebcaux commented 6 years ago

Thanks for this very detailed issue, it save me a lot of time. I probably need to add an issue model.

About the mis detected pin, it was a problem of the box alignment test. "TI" label was too short so the tool considered it as a Vertical text, so the alignment was not met. I fixed the condition of small pin test. But this part is curently beeing fully rewritten so I do not spend a lot of time to improve it.

About the pin list editor, I fixed the pin insertion yesterday, so you maybe do not have this commit yet. But it actually does not update the schematic, next commit will fixed it.

If you are intterested to contribute, let me know, I will add some dev documentation.

sjlongland commented 6 years ago

No problems at all, I figured it was easier to be detailed in my bug report than to round-trip back and forth.

I once tried parsing PDFs (a PDF generated by Microsoft Excel) for inventory purposes, and found myself playing jigsaw puzzles with the output of the PDF parser, which was no fun, so I don't envy the job of debugging all this. I expect there'll be a lot of edge cases.

A few of us on hackaday.io tried some datasheets, some it worked perfectly with (e.g. Xilinx Spartan A3) others, not so much (one Atmel ARM part, it managed the smaller footprints but had problems with some larger TQFP/BGA packages), a lot seems to have to do with how the package is drawn. Given the complexity of what's being achieved though, I think this is still a big step forward. Kudos to the team for having a go and managing to pull it off. :-)

Short of shoehorning TensorFlow or similar in there, I think it's just a case of working through the different diagram styles and teaching (through C++ code) how to recognise them.

ghost commented 6 years ago

@sebcaux Hi Sebastien, a dev documentation would be nice as this tool looks amazing. Just sayin'.