10 Recommended Manufacturing Procedure

Manufacturing of your design must include at least the following steps.

10.1 PCB Assembly and Inspection

How you manufacture your product is up to you.

: The components recommended in this document are readily available and suitable for hand soldering. If you need to optimize for space constraints, consider selecting smaller equivalent components where possible.

10.2 First-Time Power-Up Tests

A newly assembled PCBA should be considered potentially faulty until it has been thoroughly tested, and this also applies to a Nano Debugger implementation. Soldering issues on the PCBA can easily result in a short circuit on the USB subsystem of a connected computer. Therefore, it is recommended to isolate newly manufactured hardware from the computer during initial testing.

Microchip utilizes custom hardware that routes USB data lines directly from the computer to the downstream port, while providing VBUS from an alternative power source. This setup allows for measurement of the current drawn by the device under test (DUT) and can report failures to the operator. If similar hardware is not available, it is recommended to use at least an externally powered, robust USB hub that can be easily restarted or replaced as needed.

The procedure followed by Microchip when manufacturing Curiosity Nano kits (devices under test, or DUTs) using the Nano Debugger is as follows:

  1. Check that the VBUS input (lab supply) is in the range of 4.8 V to 5.2 V.
  2. Enable automatic power trip on short circuit (custom hardware).
  3. Power on the DUT.
  4. Wait 500 ms for the power to stabilize.
  5. Check that the current consumption of the DUT is in the range of 5 mA to 50 mA. This range is approximate and intended to catch critical soldering issues.
  6. Proceed to the programming stage once all votlage and current measurements are approved.
:

The current consumption of a factory-fresh, erased SAMD21 will differ from that of a device programmed with the Nano Debugger firmware. This distinction is important to consider when re-testing a board that has already been programmed.

10.3 Programming the Nano Debugger

The Nano Debugger is based on a SAMD21 microcontroller. When shipped from Microchip, the SAMD21 is in an erased state. Any compatible programming tool can be used to load the provided hex file onto the SAMD21.

:

This procedure is also detailed in the readme.md file included in the nedbg-composite image archive.

Microchip utilizes the Atmel-ICE programmer along with the Pythonutility pymcuprog to program the Nano Debugger during the manufacturing process of Curiosity Nano boards.

The process followed is as follows:
  1. Connect to the Atmel-ICE with an ATSAMD21E18A target device, using the SWD interface clocked at 1 MHz.
  2. Read the target voltage using the Atmel-ICE and check that it is in the range of 3.3 V ±10%.
  3. Erase the User Row section.
  4. Erase the Flash content using a Chip Erase command.
  5. Program the complete composite hex file into the device and verify it by readback. This will also program the fuses located in the User Row.
  6. Toggle power to the SAMD21.

10.4 Optional: Debugger Configuration

The default images include configuration settings designed to support common use cases and facilitate a quick start. To better tailor your hardware to your specific requirements—whether for personal or professional use—it is recommended to take advantage of the customization options available in the Nano Debugger. This customization can be performed using the pydebuggerconfig package.

For more information on how the configuration system works, see Board Configuration Details

Getting Started With pydebuggerconfig

A working installation of Python is required to use the pydebuggerconfig package.

It is recommended to use a virtual environment utility, such as uv, to isolate the requirements of pydebuggerconfig from other Python packages you may be using.

Install pydebuggerconfig from pypi.org using pip:

pip install pydebuggerconfig

You can find help for using pydebuggerconfig here: pypi.org/project/pydebuggerconfig/

Alternatively, use the CLI:
pydebuggerconfig --help

There are two main usage models for customising your Nano Debugger:

Usage Model - Modify Individual Fields

If only minor adjustments to the default configuration are needed, the replace function offers a simple solution. For example, to update the kit name:

pydebuggerconfig replace -r KITNAME="My super cool Nano kit"

Usage Model - Writing a Full Config

It is often preferable to create a complete new configuration from an XML file, which can be archived for future reference. The pydebuggerconfig package includes a set of board and device configuration files as examples. To write a new configuration, use the write function:

pydebuggerconfig write -b board-configs/MySuperCoolNanoKit.xml

A device configuration file is a binary object (BLOB) and can only be written using this method.

pydebuggerconfig write -d device-configs/no-msc-programming-device-blob.xml
:

The new configuration fields will only take effect after the Nano Debugger is reset.

10.5 Self-test Using the Nano Debugger

Self-test is initially performed on the Nano Debugger itself and, in the case of a kit, also on the target device.