Scripting footprint script generation

Hello, everybody! I am an aspiring library contributor and actually got my first merge request accepted yesterday (!3224).

I was looking at TI’s DSBGA packages for another part I want to add and realized that they are great target for automatic configuration file creation. Fortunately, TI has a nice list which is super convenient for scripted parsing. Unfortunately, it is not maintained in perfect quality because some entries are just zero and doesn’t mention the exact grid configuration. From here I see two options to get the missing information:

  1. the PDF drawing
  2. the BXL file provided with every package

For option 1 I don’t see many alternatives besides machine learning. From the few PDFs I manually opened there was enough variability to make it not worth to to do it algorithmically. (But if I am not seeing it correctly, please say so). I am not really certain where to start from with the machine learning, so I would appreciate any hints on this.

Option 2 seems a bit more easily scriptable, since everything must be defined in the BXL file. The biggest problem is reading them. Let’s have a look at the very first file which is for BQ25910YFFR in the YFF package. I tried several options, but none of them were successful. This rust library didn’t compile. Translate2geda throws the following error

geda ../BXL2text/BQ25910_YFF_36.bxl 
Using filename: ../BXL2text/BQ25910_YFF_36.bxl
Hmm, that didn't work. Probably a file IO issue:
java.lang.NumberFormatException: For input string: "A1"

Only BXL2text had some success, but the resulting footprint is not 100% perfect. Here is the output in KiCad vs UltraLibrarian Reader

the outline is completely missing and silk & soldier layers are totally messed up. Does anybody have an idea how to best solve the issue?

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.