I liked and wanna give a try, but I have this problem when I run it
--- Logging error ---
Traceback (most recent call last):
File "C:\Program Files\KiCad\8.0\bin\Lib\logging\__init__.py", line 1113, in emit
stream.write(msg + self.terminator)
^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
File "C:\Users\jairo\Documents\KiCad\8.0\3rdparty\plugins\vn_onekiwi_track-distance\onekiwi\plugin.py", line 16, in Run
controller = Controller(board)
File "C:\Users\jairo\Documents\KiCad\8.0\3rdparty\plugins\vn_onekiwi_track-distance\onekiwi\controller\controller.py", line 39, in __init__
self.logger.info('init done')
Message: 'init done'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Program Files\KiCad\8.0\bin\Lib\logging\__init__.py", line 1113, in emit
stream.write(msg + self.terminator)
^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
File "C:\Users\jairo\Documents\KiCad\8.0\3rdparty\plugins\vn_onekiwi_track-distance\onekiwi\plugin.py", line 16, in Run
controller = Controller(board)
File "C:\Users\jairo\Documents\KiCad\8.0\3rdparty\plugins\vn_onekiwi_track-distance\onekiwi\controller\controller.py", line 39, in __init__
self.logger.info('init done')
Message: 'init done'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Program Files\KiCad\8.0\bin\Lib\logging\__init__.py", line 1113, in emit
stream.write(msg + self.terminator)
^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
File "C:\Users\jairo\Documents\KiCad\8.0\3rdparty\plugins\vn_onekiwi_track-distance\onekiwi\plugin.py", line 16, in Run
controller = Controller(board)
File "C:\Users\jairo\Documents\KiCad\8.0\3rdparty\plugins\vn_onekiwi_track-distance\onekiwi\controller\controller.py", line 39, in __init__
self.logger.info('init done')
Message: 'init done'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Program Files\KiCad\8.0\bin\Lib\logging\__init__.py", line 1113, in emit
stream.write(msg + self.terminator)
^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
File "C:\Users\jairo\Documents\KiCad\8.0\3rdparty\plugins\vn_onekiwi_track-distance\onekiwi\plugin.py", line 16, in Run
controller = Controller(board)
File "C:\Users\jairo\Documents\KiCad\8.0\3rdparty\plugins\vn_onekiwi_track-distance\onekiwi\controller\controller.py", line 39, in __init__
self.logger.info('init done')
Message: 'init done'
Arguments: ()
01-03 12:33:48 vn_onekiwi_track-distance.onekiwi.controller.controller 39:init done
2025.01.03 12:33:48 - INFO - __init__ - init done
2025.01.03 12:33:48 - INFO - __init__ - init done
2025.01.03 12:33:48 - INFO - __init__ - init done
I need fix something on code?, I need install it by other way that isnāt says on github repo?, I donāt know, if anyone can run it well, please tell me.
You can implement length matching across nets with DRC rules. Whatās your use-case? We can help with writing the rules. (Share a board if you canā¦). Also, let us know which version youāre running - I added some stuff to make this easier in v9, which is currently in pre-release testing.
And I wanna apply length match on data traces . Always that I applied that, have been on diferential pairs, that is automatic by correct naming, but I donāt know how apply it in this cases where tracks doesnāt has determinated pattern on it.
Because, I can do that measuring the length of largest and then with ātune length of a single trackā adjust there introducing that distance to match, but for another larger projects appears to will take too much time
Ah, so having just looked at this, the changes that make this really easy (or indeed possible in the first place) come in v9. Out in the next couple of months!
In looking at the right syntax, Iāve also found some new bugs in it since I implemented that functionality. Iāll get them fixed! But the general idea is that you can:
Put a schematic rule area over all your data lines, with a netclass directive label giving all those nets a common netclass (called something like āDATAā, or whatever)
Sync the schematic with pcbnew.
Define a new Custom Rule in the pcb editor settings, something like:
Use the āTune length of a single trackā tool on each shorter trace
Not quite as simple as the skew version Iād like to get working for v9, but it works well when youāve routed the longest track. The exact same method works in v9, except you donāt need to define the netclass (you can just use it straight from a definition); you can use a rule area on the schematic to assign the netclass to all nets at once; and the rule condition changes to (condition "A.hasNetclass('DATA')").
I`ve developed a little plugin that optimize this approach, even with several netclasses. I posted a thread to share it with the community, and this is the repo on github.