Open djpearman opened 1 year ago
Hi Alarm-Siren,
Thanks for your feedback! Here my thoughts and responses:
An additional more detailed observation:
I look forward to hearing your thoughts!
Best regards, djpearman
I think for consistency it should definitely be Unconnected
. I did a comprehensive review of power pins and what they should be set to back in #65 and I'm keeping to the methodology I employed there. Basically, every pin should be setup in the symbol as it is 'out of the box' for the module. Advanced users who want to modify their module to enable additional functionality, will also be sufficiently advanced to modify the symbol or footprint if need be. In any case, setting a pin to Unconnected
doesn't actually stop you from connecting a net to it, it just means the DRC will moan, which I would argue is exactly the behaviour we want here. By default, it will moan at you for doing something you probably didn't mean to do - but if you really know what you're doing and have connected the VUSB bridge pads you can safely ignore the DRC warning.
You're quite right. On some of the other Nano modules A6 and A7 really are input only, I guess I just assumed it would be on this one too since it follows the same footprint layout. I've raised a seperate issue #96 so that it doesn't get forgotten. I should probably review all the Nanos in case I've made the same mistake on others.
10a. Yes, I do see your logic on being able to support a greater variety of footprints per symbol. And adding footprints that lack the mounting holes would be a nice addition.
10b. Basically I used the "pin numbers" that Arduino themselves use; especially as for some of the footprints it isn't particularly obvious how they should be numbered if one were to use only numbers. On the Nano footprints, you can take the D0/D1 corner as 'pin 1' and number around as if it were a DIP chip, but for, say, the Arduino Uno or Mega? How on earth do you number those in a consistent manner? Any assignment of numbers would be completely arbitrary... so why not give the pins the names Arduino themselves use? I also found that it made it easier when cross-checking between footprints and symbols to make sure I've linked the right Symbol pins to the right Footprint pins. I'm open to the idea of using pin numbers, instead of pin names as now, I'm just not convinced that the change would add anything (except the ability to use the built-in footprints if desired, but as there's only three of them and I provide a complete set anyway, that doesn't seem like a huge advantage). On the issue of footprints being too specific, I always recycle footprints whenever possible, however the difference is usually not the pinouts but some other aspect. For example, the difference between the M0 Pro
footprint and the Leonardo
footprint is that the latter includes a courtyard area for the 2nd USB connector that isn't present on the Leonardo. The two footprints are otherwise identical, including pinouts. Similarly, I'm well aware that both KLC and IPC say that pin 1
should be the only square pad, and pin 1
should be marked in silkscreen, however because it wouldn't always be obvious what should be pin 1
, I instead made an Executive Decision to set all GND
pins to be square and mark Pin D0
in silkscreen as I feel they're both more universal reference points for orientation of these modules than whatever I might arbitrarily decide is pin 1
.
10c. Indeed, but as previously mentioned, if one is going to make big changes v5 is the time to do them. Major version change and all that.
10b. Yes, I wholeheartedly agree that deciding on a numbering scheme for pins is not a straightforward task, especially with footprints that have no clear pin ordering in their footprints. At the end of the day, any choice is going to be somewhat arbitrary (and the Arduino Nano datasheets are unfortunately a case in point in terms of inconsistencies that may arise...). The approach of setting pin numbers to their assigned names may require less effort initially, but foregoing the benefits, where possible, of reusing identical footprints that assigning separate numbers and names to individual pins provides is likely to cause problems in future. While defining pin numbers may be a PITA for the likes of Uno or Mega boards, the comparative simplicity of MKR and Nano board makes it a lot easier and once a definition has been made, the addition of further boards using the same footprints becomes a matter of creating a symbol with appropriate footprint filters. Likewise, the addition of compatible footprints, e.g. without mounting holes, merely requires appropriate naming to become usable for all relevant modules. Of course, the outline differences you mention would have to be taken into consideration. Perhaps it would be acceptable to switch only boards with simple footprints and outlines and leave the other as they are. Admittedly, that basically limits it to the Nano boards and creates an inconsistency within the library, which isn't all that desirable.
Ultimately, you are library owner and it is up to you to make the decisions. I am merely wishing to share some of the experience I have gained in designing electronics and hope to learn through having my thoughts scrutinzed.
I am merely wishing to share some of the experience I have gained in designing electronics and hope to learn through having my thoughts scrutinzed.
And your thoughts and inputs are most welcome! In all the years I have maintained this library, I've never had anyone engage with me on this level, so it is valuable to me to have insight into how it can be improved by actual users.
Just wondering if there is any further input required from my end on this PR after your approval? I am not able to merge since I don't have write access.
No nothing needed from you, sorry I've just been busy. Its slightly complicated because I want to put out 4.2.1 first (to fix the #96 bug), update the library to the latest kicad version, then merge this into that to create the 5.0.0 baseline that I will then work on finishing #91 within. I just haven't had the time to do all that yet, especially as the release process for a kicad package is.... non-trivial.
Hi,
I added a symbol for the Arduino Nano RP2040 Connect based on the Arduino_Nano_v2.x of the official Kicad MCU_module library. So it uses pin numbers and is compatible with the Arduino_Nano footprint of the Kicad library.
It passes the check of the check_symbol of the Kicad library utils.
Perhaps this is one small step towards #91 .
I use Kicad 7.0.7, which seems to have modified several properties of the other symbols in the library, hence why the commit is kinda large. The added content starts at line 6828.
Feedback welcome!
Best regards, djpearman