Here are two solid ways to “install Arduino Nano modules” in KiCad (i.e., place a Nano on your schematic/PCB as a module footprint), plus common gotchas.
Option A (recommended): Use KiCad’s built-in Nano footprint (no extra libraries)
KiCad already includes Arduino module footprints in many installs.
1) Add it on the PCB (Footprint Editor / PCB Editor)
- PCB Editor → Place Footprint
- Search keywords like:
- Arduino_Nano
- Module:Arduino_Nano
- Arduino + Nano
- Pick the correct one (common names look like Module:Arduino_Nano or similar).
- Place it on the board.
2) Link it from the schematic (best practice)
- In Schematic Editor, create a symbol for “Arduino Nano” (see Option B if you don’t have one).
- Assign the footprint: Tools → Assign Footprints
- Choose the Nano footprint you found in Module library.
Pros: clean, no external files, works well with KiCad updates.
Note: Sometimes KiCad has the footprint but not a full “Nano symbol” with labeled pins.
Option B: Add a ready-made Arduino Nano library (symbol + footprint)
If you want a nice symbol with labeled pins (D0/D1, A0–A7, VIN, 5V, 3V3, etc.), use a community library and add it to KiCad.
1) Get a library (symbol + footprint)
Common sources:
- KiCad official library (check first)
- GitHub community “Arduino KiCad library” repos
- SnapEDA / UltraLibrarian / SamacSys (often provide KiCad symbols/footprints)
You typically download:
- Symbol: .kicad_sym (KiCad 6/7/8) or legacy .lib/.dcm
- Footprints: .kicad_mod files inside a folder
- Optional: 3D model .step / .wrl
2) Add the symbol library
KiCad:
- Preferences → Manage Symbol Libraries
- Choose Project Specific (recommended) or Global
- Click Add existing library
- Select the .kicad_sym
3) Add the footprint library
- Preferences → Manage Footprint Libraries
- Add existing library
- Select the folder containing the .kicad_mod files (the footprint library folder)
4) Assign the footprint to the symbol
- In schematic: Tools → Assign Footprints
- Pick your Nano footprint
- Update PCB from schematic.
Pros: good pin names + easier wiring.
Cons: library maintenance; sometimes pin numbering mismatches—verify!
Critical checks (to avoid painful mistakes)
1) Choose the right Nano variant (Classic vs Every vs Nano 33)
Pinouts differ a lot.
- Arduino Nano (ATmega328P) = the classic 2×15 header module
- Nano Every / Nano 33 BLE / Nano 33 IoT = different pinout/footprint
Make sure the library matches your exact board.
2) Verify pin numbering vs pin labels
Libraries may label pins “D0” etc., but the pad numbers must match what the symbol expects.
Quick verification:
- Open the footprint → inspect pad numbers
- Open the symbol → inspect pin numbers They must correspond.
3) Check hole diameter & header spacing
Classic Nano uses 2.54 mm pitch, two rows.
- Typical drill for header: 0.9–1.1 mm (depends on your header pins)
- Board spacing between rows must match the Nano module headers.
4) Decide: “Module footprint” vs “just headers”
Many people do two 1×15 female headers on the PCB and plug the Nano in.
This can be better because:
- You can pick exact hole sizes
- You avoid footprint mismatch issues
If you want this approach:
- Place two PinHeader_1x15_P2.54mm footprints
- Set spacing to match Nano row spacing (verify with Nano mechanical drawing / measure your module)
Best practice for production
If you’re making a product, consider using:
- ATmega328P + CH340/FTDI on your own PCB (no module) for cost/space control or
- A Nano footprint but lock down a specific vendor’s mechanical dimensions.

Top comments (0)