Buy Contact NSDSP Home

Speed Test: NSDSP-3-X, NSDSP-2-X, and Microchip programmers

In August 2025, we have tested programming speed of NSDSP-3-X, NSDSP-2-X, and Microchip programmers - Snap, PICkit Basic®, PICkit 5®, and MPLAB ICD 5®. We have used 51 different PIC devices. The results of the tests show than NSDSP-3-X is 3 times faster than NSDSP-2-X and 4 times faster than Micrichip programmers. You can find the detailed description of the tests below.

Results of the Speed Test

Programmers

The 6 programmers used in the tests were:

  • NSDSP-3-X 306
  • NSDSP-2-X 206
  • Microchip ICD 5 10-10616/02
  • Microchip PICkit 5 10-10410/02
  • Microchip PICkit Basic 10-11332/01
  • Microchip Snap 02-10381-R1

Target Devices

It is impossible to test all the PIC devices. We wanted the set of the PICs under test to be a representative sample. We decided to include the following device families:

  • PIC16F1xxx
  • PIC16F1xxxx
  • PIC18FxxK
  • PIC18FxxQ
  • PIC24FJ
  • dsPIC33EP
  • dsPIC33CH
  • dsPIC33CK
  • dsPIC33AK (including PIC32AK)
  • PIC32MM
  • PIC32MX
  • PIC32MK
  • PIC32MZ

From each family, we have selected devices with approximate flash memory size of 32K, 64K, 128K, 256K, 512K, 1024K, 2048K. We have not included devices with smaller ROM sizes because they're fast to program and exact programming speed is not important. For each device family, we included one device of each memory size. None of the families includes the full range of memory sizes. For example, PIC16F1 family only had devices with 32K ROM size, while the smallest PIC32MZ has 512K of flash.

Using the above criteria, we have selected 51 different PIC devices.

HEX files

We prepared HEX files which would require the programmers to program the entire chip including all memory areas on the chip - program memory, user id memory, configuration, and boot memory.

We did not include data EEPROM in the test for a number of reasons - most PIC devices do not have it, it is very slow to program, and it isn't usually programmed through ICSP.

The contents of the HEX files was purely random except the configuration bits. Each device had its own HEX file, which was built specifically for the device. All programmers used the same HEX file when programming the device.

Hardware and Software

The tests were performed on a single computer:

  • CPU: AMD Ryzen 5 8540U
  • Memory: 16.0 GB
  • OS: Windows 11 Pro
  • USB3 Host Controller

We used command line utilities - nsprog 175 for NSDSP and ipecmd from MPLAB X 6.25 for Microchip programmers. They were the latest versions of the software at the moment of testing.

For nsprog, we used p operation which includes programming and full verification.

For ipecmd, we used -M option which also performs programming and verification, and also -OAS2 option which uses the highest speed for programming.

All tests have been done with target device powered by the board with 3.3 V.

Measurements

Our intention was to measure total time used by the command line utility to program the device. However, we have noticed that Microchip ipecmd software adds substantial overhead, approximately 10 sec, to the programming times. After further investigation, we have discovered that the overhead time depends on the CPU. When we tried programming on slow Intel Celeron N4020 CPU, the overhead time increased to 30 sec.

Microchip provides ipecmdboost utility. When it is used for the first time, it works the same as ipecmd, but it keeps the pre-loaded Microchip software and configuration. Thus, when used for the second time, the overhead is eliminated. We measured both ipecmd and ipecmdboost speeds and report here both.

nsprog doesn't produce any overhead. We report the total time only.

While conducting tests, we tried to create the most favorable conditions for the selected programmers. For example, for PIC24/dsPIC33 families we ran the test twice for each programmer to give them an opportunity to re-use programming executives, and then we only measured the second run.

We made one measurement for every combination of a target device and a programmer.

Raw Results

The results of the measurements are reported below. For Microchip programmers, the first number refers to the time achieved on a second pass of ipecmdboost, while the number in parentheses is the programming time with ipecmd.

Target Device NSDSP-2NSDSP-3 SnapBasic PICkit 5 ICD 5
Devices with approximately 32K flash
PIC16F1518 1.7s 1.0s 2.7s
(12.1s)
Fail 3.8s
(13.4s)
4.1s
(13.5s)
PIC16F17556 1.3s 1.1s 5.5s
(15.1s)
5.4s
(14.9s)
6.3s
(16.0s)
6.5s
(16.0s)
PIC18F25K83 1.0s 0.7s 2.9s
(12.4s)
Fail 4.0s
(13.5s)
4.3s
(13.8s)
PIC18F45Q71 1.9s 1.7s 2.6s
(12.2s)
Fail 3.8s
(13.2s)
4.2s
(13.8s)
PIC24FJ32MC102 1.3s 1.1s 3.0s
(12.4s)
3.0s
(12.5s)
3.9s
(13.4s)
3.9s
(13.4s)
dsPIC33EP32GP502 1.1s 0.6s 3.6s
(13.2s)
3.6s
(13.0s)
4.5s
(14.0s)
4.5s
(14.0s)
dsPIC33CK32MC102 1.0s 0.4s 6.0s
(15.3s)
6.1s
(15.3s)
6.9s
(16.2s)
7.1s
(16.4s)
PIC32AK3208GC41064 1.0s 0.2s 1.5s
(11.3s)
1.4s
(11.2s)
2.3s
(12.0s)
2.3s
(12.0s)
PIC32MM0032GPL028 1.0s 0.3s 1.1s
(10.8s)
1.1s
(10.8s)
2.0s
(11.5s)
2.4s
(12.2s)
PIC32MX120F032D 1.0s 0.4s 1.2s
(10.9s)
1.2s
(10.8s)
2.0s
(11.6s)
2.1s
(11.5s)
Devices with approximately 64K flash
PIC16F19197 1.7s 1.2s 3.2s
(12.7s)
Fail 4.4s
(13.9s)
4.8s
(14.2s)
PIC18F46K22 2.5s 2.0s 2.5s
(12.0s)
Fail 3.5s
(12.9s)
3.7s
(13.0s)
PIC18F16Q41 3.7s 3.3s 4.4s
(13.8s)
Fail 5.5s
(15.0s)
5.9s
(15.5s)
PIC24FJ64GU202 1.7s 1.4s 4.3s
(13.9s)
4.3s
(13.7s)
5.2s
(14.7s)
5.3s
(14.7s)
dsPIC33EP64GS506 1.6s 0.5s 4.8s
(14.0s)
4.7s
(14.0s)
5.6s
(15.1s)
5.6s
(15.0s)
dsPIC33CH64MP505 1.6s 0.7s 5.2s
(14.7s)
5.2s
(14.6s)
6.0s
(15.4s)
6.2s
(15.5s)
dsPIC33CK64MP102 1.7s 0.7s 7.1s
(16.4s)
7.1s
(16.3s)
8.0s
(17.2s)
8.1s
(17.5s)
dsPIC33AK64MC105 1.7s 0.4s 1.8s
(11.3s)
1.7s
(11.3s)
2.8s
(12.2s)
2.7s
(12.3s)
PIC32MM0064GPM064 1.7s 0.5s 1.7s
(11.3s)
1.6s
(11.3s)
2.5s
(12.1s)
2.7s
(12.2s)
PIC32MX320F064H 1.8s 0.7s 1.7s
(11.2s)
1.7s
(11.2s)
2.5s
(12.1s)
2.7s
(12.2s)
Devices with approximately 128K flash
PIC18F47K40 3.3s 2.3s 5.8s
(15.2s)
Fail 7.0s
(16.5s)
7.3s
(16.6s)
PIC18F47Q84 7.1s 6.5s 8.3s
(17.8s)
Fail 9.4s
(19.0s)
9.7s
(19.4s)
PIC24FJ128GL410 3.1s 2.6s 5.6s
(15.0s)
5.6s
(15.1s)
6.4s
(16.0s)
6.5s
(16.6s)
dsPIC33EP128GM304 2.8s 0.8s 7.4s
(17.0s)
7.4s
(17.1s)
8.3s
(17.8s)
8.4s
(17.9s)
dsPIC33CH128MP502 2.9s 1.2s 6.8s
(16.0s)
6.8s
(16.2s)
7.7s
(17.2s)
7.8s
(17.1s)
dsPIC33CK128MP202 3.0s 1.2s 9.3s
(18.7s)
9.3s
(18.8s)
10.2s
(19.6s)
10.3s
(19.8s)
dsPIC33AK128MC106 3.0s 0.7s 2.6s
(12.3s)
2.5s
(12.2s)
3.4s
(13.2s)
3.4s
(13.2s)
PIC32MM0128GPM028 3.0s 0.9s 2.5s
(12.0s)
2.5s
(12.1s)
3.3s
(12.8s)
3.6s
(13.3s)
PIC32MX564F128L 3.3s 1.1s 2.1s
(11.5s)
2.0s
(11.6s)
2.9s
(12.5s)
3.3s
(12.8s)
PIC32MK0128MCA048 3.3s 0.8s 3.1s
(12.7s)
3.1s
(12.8s)
3.9s
(13.7s)
4.3s
(14.0s)
Devices with approximately 256K flash
PIC24FJ256GA702 5.6s 4.7s 6.8s
(16.0s)
6.8s
(16.2s)
7.7s
(17.0s)
7.8s
(17.0s)
dsPIC33EP256MU806 6.0s 1.7s 12.0s
(21.5s)
12.0s
(21.5s)
12.9s
(22.6s)
13.0s
(22.6s)
dsPIC33CH256MP205 5.7s 2.2s 11.5s
(20.8s)
11.5s
(20.9s)
12.4s
(21.7s)
12.5s
(21.9s)
dsPIC33CK256MC506 5.7s 2.2s 13.5s
(23.2s)
13.5s
(23.0s)
14.5s
(23.9s)
14.6s
(24.1s)
dsPIC33AK256MPS212 5.7s 1.4s 4.1s
(14.0s)
4.0s
(13.9s)
4.9s
(14.8s)
5.0s
(14.8s)
PIC32MM0256GPM064 5.7s 1.6s 4.0s
(13.4s)
4.0s
(13.7s)
4.9s
(14.3s)
5.4s
(15.0s)
PIC32MX270F256D 5.8s 2.0s 4.2s
(13.7s)
4.3s
(14.0s)
5.1s
(14.7s)
5.7s
(15.1s)
PIC32MK0256MCJ048 6.0s 1.4s 5.0s
(15.0s)
5.0s
(14.9s)
5.8s
(15.7s)
6.4s
(16.1s)
Devices with approximately 512K flash
PIC24FJ512GL410 11.1s 9.3s 12.4s
(21.9s)
12.5s
(22.0s)
13.3s
(23.0s)
13.5s
(22.9s)
dsPIC33EP512GM710 10.3s 2.6s 21.3s
(30.7s)
21.3s
(30.9s)
22.3s
(31.9s)
22.4s
(31.9s)
dsPIC33CH512MP508 11.1s 4.3s 18.2s
(28.0s)
18.4s
(28.0s)
19.3s
(28.9s)
19.5s
(29.2s)
dsPIC33CK512MP606 11.2s 4.3s 21.9s
(31.8s)
22.1s
(31.8s)
23.0s
(32.8s)
23.1s
(32.8s)
dsPIC33AK512MC205 11.2s 2.7s 6.8s
(17.0s)
6.8s
(16.9s)
7.7s
(17.7s)
7.8s
(17.7s)
PIC32MX570F512L 11.2s 3.9s 7.9s
(17.6s)
7.9s
(17.4s)
8.8s
(18.4s)
9.8s
(19.5s)
PIC32MK0512GPG048 11.3s 2.5s 8.1s
(18.0s)
8.2s
(18.2s)
9.0s
(18.8s)
10.1s
(20.0s)
PIC32MZ0512EFE144 14.2s 3.2s 9.4s
(19.3s)
9.5s
(19.6s)
10.3s
(20.2s)
12.1s
(21.9s)
Devices with approximately 1024K flash
PIC24FJ1024GB610 20.2s 7.2s 20.7s
(30.2s)
20.8s
(30.3s)
21.8s
(31.3s)
21.9s
(31.4s)
dsPIC33CK1024MP708 22.0s 8.7s 38.8s
(48.8s)
38.7s
(48.6s)
40.0s
(49.9s)
40.2s
(49.8s)
PIC32MK1024MCF100 22.3s 5.1s 15.9s
(26.0s)
16.1s
(26.2s)
16.8s
(26.9s)
19.0s
(29.2s)
PIC32MZ1025W104132 22.7s 2.9s 26.1s
(37.0s)
27.2s
(36.9s)
28.1s
(38.0s)
30.3s
(40.2s)
Devices with approximately 2048K flash
PIC32MZ2064DAS169 45.8s 10.0s 24.6s
(34.6s)
24.9s
(35.7s)
25.4s
(35.5s)
31.0s
(41.3s)
Target Device NSDSP-2NSDSP-3 SnapBasic PICkit 5 ICD 5

Failures

PICkit Basic failed to program the majority of PIC16 and PIC18 devices. All attempts to fix this (upgrading to latest PICkit Basic, re-installing MPLAB X, updating firmware, purchasing new PICkit Basic, using a different PC) failed. Therefore, when aggregated data, we have used Snap results for all the PIC devices where PICkit Basic failed. Such substitute should provide good approximation because PICkit Basic and Snap produce very similar results for all other PIC devices.

ICD 5 failed to program PIC32MM0032GPL028 while it had no problems with other PIC32MM chips in a similar setting. We were able to resolve the problem by lowering the programming speed from -OAS2 to -OAS1. We have used the result for PIC32MM0032GPL028 obtained with -OAS1.

Aggregated Results

To compare overall performance, and performance for PIC families, we aggregated the test results by summing up the programming times for every given family. These sums are presented below.

Device FamilyN NSDSP-2NSDSP-3 SnapBasic PICkit 5 ICD 5
All Devices 51 337.7s 120.6s 413.2s
(903.5s)
415.4s
(905.7s)
462.0s
(951.4s)
484.6s
(973.8s)
PIC161xxx 1 1.7s 1.0s 2.7s
(12.1s)
2.7s
(12.1s)
3.8s
(13.4s)
4.1s
(13.5s)
PIC161xxxx 2 3.0s 2.3s 8.7s
(27.7s)
8.7s
(27.5s)
10.7s
(29.9s)
11.2s
(30.2s)
PIC18FxxK 3 6.8s 5.0s 11.2s
(39.6s)
11.2s
(39.6s)
14.5s
(42.8s)
15.3s
(43.5s)
PIC18FxxQ 3 12.7s 11.5s 15.3s
(43.8s)
15.3s
(43.8s)
18.8s
(47.2s)
19.8s
(48.6s)
PIC24FJ 6 43.1s 26.3s 52.7s
(109.4s)
53.0s
(109.9s)
58.3s
(115.3s)
58.9s
(116.0s)
dsPIC33EP 5 21.7s 6.2s 49.1s
(96.5s)
49.0s
(96.6s)
53.5s
(101.4s)
53.9s
(101.3s)
dsPIC33CH 4 21.4s 8.3s 41.6s
(79.5s)
41.9s
(79.8s)
45.5s
(83.2s)
46.0s
(83.8s)
dsPIC33CK 6 44.6s 17.3s 96.7s
(154.1s)
96.8s
(153.9s)
102.5s
(159.6s)
103.4s
(160.3s)
dsPIC33AK 5 22.6s 5.4s 16.8s
(66.0s)
16.5s
(65.5s)
21.0s
(69.8s)
21.2s
(70.1s)
PIC32MM 4 11.4s 3.3s 9.3s
(47.5s)
9.2s
(47.8s)
12.7s
(50.7s)
14.1s
(52.7s)
PIC32MX 5 23.1s 8.2s 17.0s
(64.8s)
17.1s
(65.0s)
21.3s
(69.2s)
23.5s
(71.0s)
PIC32MK 4 42.8s 9.8s 32.2s
(71.7s)
32.5s
(72.1s)
35.6s
(75.1s)
39.9s
(79.3s)
PIC32MZ 3 82.8s 16.2s 60.1s
(90.9s)
61.6s
(92.2s)
63.8s
(93.8s)
73.4s
(103.4s)

NSDSP-3

According to the test results, NSDSP-3-X is the fastest programmer for every device tested, as well as for any group of devices. On average, it is nearly 3 times faster than NSDSP-2, and about 4 times faster than Microchip programmers. It is likely the fastest PIC programmer in the world.

NSDSP-2

On average NSDSP-2 (and NSDSP-1 as well, since both have the same speeds) is still faster than Microchip programmers. The performance depends on the chip. For 32-bit PIC devices, NSDSP-2 is slightly slower than ICD 5, but for other device groups it may be 2-3 times faster.

Microchip programmers

ICD 5 is still slower than NSDSP-2 by approximately the same factor as ICD 3 was in 2016. However, PICkit 5 has improved dramatically compared to its ancestor PICkit 3. In 2016 tests PICkit 3 was much slower than ICD 3. Now the situation is reversed - PICkit 5 is even slightly faster than ICD 5.

Newer Microchip programmers - Snap and PICkit Basic are somewhat faster than ICD 5 and PICkit 5, and approach NSDSP-2 performance. On average, Snap is only 22% slower than NSDSP-2. However, even the fastest Microchip programmer - Snap - is 3.4 times slower than NSDSP-3.

Use of ipecmd, as compared to ipecmdboost, with Microchip programmers more than doubles programming times, making Microchip programmers much slower than NSDSP-2, and 7 to 8 times slower than NSDSP-3.

Northern Software Home NSDSP Contact Us Purchase/View Cart

© 2007-2026 Northern Software Inc. All Rights Reserved.