-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added symbol for Nano RP2040 Connect. #95
base: v5.0.0
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi djpearman, thank you for submitting this.
I've had a look at the changes and I have some thoughts; some are things that do need to be fixed (but not difficult to do so), others are not necesarily problems but I just raise them to clarify with you what the intent is. I will number my thoughts to make it easier for you to respond to them.
- Pin 27, VUSB, should be set to Unconnected, as on these modules the VUSB/5V pin is in fact disconnected by default.
- Pin 3, ~RESET, should be Open Collector. Admittedly the RESET pins on Arduinos are a bit weird and Open Collector isn't a perfect analog, but its better than Input which will get shirty if you leave the pin unconnected.
- A6 and A7 should be inputs only.
- Why is the REC pin named ~QSPI_CS?
- REF, pin 18, should be called AREF and, if it is to be hidden, should have its connection point on the edge of symbol per KLC S4.6.2. However, I would also argue this pin should not be hidden.
- Is A0, Pin 19, also in fact a DAC input? I don't recall reading that, but I may well have missed it...
- I can see you've set the symbol's datasheet to the ABX00053 pdf. Whilst I agree this is technically more correct, I prefer to point to the relevant page on the docs.arduino.cc website (which has a link to the datasheet PDF at the bottom), as I find the datasheets, in general, are extremely variable in their quality whereas the docs pages are pretty good and - if the user wants the PDF, can get it from the link at the bottom. For consistency with the rest of the library its probably best to stick to the Docs pages, unless there is a specific reason you made this change?
- Is there a particular reason you have preferred to use the Kicad default footprint - and created a new SMD footprint based on it - over the ones in this library? I don't wish to rely on anything in the Kicad default library, as that's just a recipe for disaster if they subsequently change or remove something underneath me. I also cannot vouch for the quality of their footprints. However, if there is a particular reason or use-case whereby the Kicad footprints have proven better/more useful to you, I would like to cater to that use-case in my library too.
- No worries about the versioning issue. I intend that v5 of this library will drop support for Kicad 6, so this is as good an opportunity as any to upgrade the format.
- I would seem that your intent here was to create a single symbol (Arduino_Nano_RP2040_Connect) that works with both the Socket and Tile footprint types, whereas in the library at the moment I have created seperate symbols for each footprint type. I understand your approach is more correct from the KLC's point of view, however I do not believe my method is forbidden and I have previously considered it more friendly to newbies in that they don't need to remember to select a correct footprint at a seperate stage of the process. However, I have toyed with switching to your approach for v5, and I would appreciate your thoughts on the matter. This is particularly relevant as this decision will determine what the new symbol will ultimately be named.
Kind Regards,
Alarm-Siren.
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, |
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 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. |
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