Here are the design files for the NSDSP Programmer I mentioned in another post.
I have included the schematics as a .pdf file, and the Gerber files as a .zip.
The PCB size is such that JLCPCB will be able to make ten of the boards for $2, plus shipping. I think I paid about $10 for ten boards including (the slowest!) shipping to the UK. JLCPCB sometimes offer free shipping to new customers so it is possible that you might get the boards for just $2. Other PCB fabrication companies are available, I'm not endorsing JLCPCB in any particular way other than I use them a lot for both work and home.
The board has a micro USB socket on it. This can (optionally) provide power to the target device (at 5V). The micro USB socket is an SMD type that I ordered from Farnell (stock code 2470822). I did order some similar devices from AliExpress for another design that were of the same mounting type if the Farnell ones are too expensive. There are two program port SIL sockets positioned below a 40way ZIF socket, these are intended to connect with jumper wires to two rows of SIL sockets either side of the ZIF socket to allow the unit to program a variety of different PIC devices. There are 4 CR2032 battery holders which provide either 9V or 12V as the high voltage programming supply, if you only intend to use devices that require a 9V HVP the top battery holder could be omitted. The mounting holes for the CR2032 holders should allow either SMD holders or through hole type holders to be fitted . The SMD type I fitted came from Rapid Electronics (stock code 18-3642). Jumpers select the HVP programming voltage (9V or 12V), whether the target device is powered by the USB socket and whether HVP is to be used or not. A header is made available that brings out the serial port connections (and the PGM pin) of the NSDSP chip, again if not using this, it could be ommitted. The optocoupler shows the type as being a KingBright KB814, I only used this as we use them by the hundred at work and I had them to hand, the type isn't critical so long as it is a four pin, low current LED input, transistor output type I see no reason why it shouldn't work. The fact that the KB814 is bi-directional is irrelevant, the bi-directionality is not used. The optional operations are made using a combination of pin headers and jumpers. The HVP jumper should remain in one position or the other, programming could fail if the jumper is not in position when using LVP, and will fail if not in position when using HVP. Likewise the jumper for 9V or 12V HVP operation. The ZIF socket is one of the wide 'slot' types that will accept the narrow and wider DIP packages. If you only tend to program 20 pin devices for example, a smaller ZIF socket could be installed.
When HVP is selected, the NSDSP Programmer must be set to HVP mode. During programming, the MCLR output of the NSDSP chip goes low, the optocoupler LED is activated and D1 is reverse biased, the transistor within the optocoupler is turned on and either 9V or 12V from the lithium coin cells is supplied to the MCLR/HVP pin of the target PIC. When not programming, the MCLR pin of the NSDSP chip goes high, cutting off the LED in the optocoupler, the transistor within the optocoupler is turned off and D1 is forward biased, supplying around 4.5V to the MCLR/HVP pin of the target PIC.
When HVP is de-selected, during programming, the MCLR output of the NSDSP chip goes low and D1 is reverse biased, R9 (and to a lesser extent R6) pull the MCLR/HVP pin of the target PIC low. When not programming, the MCLR pin of the NSDSP chip goes high, D1 is forward biased, supplying around 4.5V to the MCLR/HVP pin of the target PIC. As the collector of the optocoupler transistor is disconnected, it has no effect on the operation.
The image of the PCB in the .pdf file is only shown in black to give greater definition for the text on the PCB. If ordering from JLCPCB, selecting any other colour than green for the solder resist will increase the cost of the PCB.
I did consider having two boards, similar to the PicKit I use, with a separate board with the ZIF socket for programming on it, but I find it a little unwieldy to use like that so decided to make a single PCB. Feel free to alter the design and put it on your own PCB if you so desire. I probably could have fitted some LEDs to show that the USB was active, and the HVP was on but I wanted to reduce the drain on the lithium cells to a minimum to extend the battery life and thought that adding another resistor and LED on it's own for the USB power would detract from the symmetry of the layout!
If you wish to use this as an in circuit programmer, simply bring the connections to a set of adjacent pins and then clamp your ICSP cable pins into the ZIF.
Edit: OOPS! Sorry, I obviously wasn't paying attention that there was more than one page, so ignore my request please!
Hi Mkstevo,
The circuit diagram attached above appears to be the LV version, not the HV version, there's no opto, etc. in that diagram. Any chance of getting the circuit for the HV version?
Thanks.
BTW, I notice that Northern Software have recently released the NSDSP-2-X programmer which is ready built in a plastic case and looks to be a nice unit (though I'd much rather a slide switch than stuffing about with jumpers). At $80 US + $20 post though, some people will prefer to use the chip instead.
Last edit: Sleepwalker3 2021-07-31
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Glad you found the correct designs. The HVP version can be set to HVP or LVP with a jumper and the HVP voltage can be selected to be 9V or 12V (nominally) with a jumper.
Out of interest, I fitted my two PCBs with four lithium coin cells (CR2032) back in 2018 and they are still working now, thousands of programming cycles later. Clearly the drain on the batteries is very low.
Rarely, when programming certain devices they refuse to program or programming fails. This mainly seems to affect the 8 pin 12F1840 or the 12F675 devices. If this happens I've found that by holding the MCLR pin (the HVP input) to the high voltage level before, during and for a short while after programming corrects this. While holding this pin high the attempt at programming "fails" as the NSDSP can not reset or read the device after programming. Returning the MCLR pin to it's correct connection after doing this and attempting a re-program usually works normally. The device in question will then work as normal for programming/re-programming. I'm not sure if this is down to some timing issues with the design in how the HVP is raised by the opto or simply that I have all the programming speed options set to the fastest possible. It may happen on one specific device, in a run of a hundred but once I managed to un-brick those devices that failed I've done it a few times and I've yet to have any that fail totally.
The 12F1840, 16F1825 and 16F1829 that I use for most of my designs have proven very robust. Stick 'em in back to front, short the outputs out, give them 12V instead of 5V and they have so far survived almost anything. Not that I recommend trying any of that though.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have edited out the company logo, so if you spot some 'glitches' it will be that! The files above should have the company logo removed for the sake of my continued employment...
I have been testing the board today and so far it has survived all I've thrown at it. The fact that I can simply plug it in and it work is such a wonderful thing to behold. My PicKit2 (admittedly a Chinese clone) often would need unplugging and plugging in again before it would be recognised, the supply voltage was very annoying in that it only worked corectly when set to a specific 4.55V and it would often fail to recognise the device plugged in, needing a shutdown of MPLabIPE before I could use it again. So far the NSDSP chip has been rock solid, and blindingly fast too.
I have a program that occupies 98.7% of the 16F1829 memory. The new build of GCB that @Trev has compiled as a 64bit binary, in conjunction with the NSDSP programmer, compiles, builds and flashes this file in an average time of 2.5 seconds. Only 0.788 seconds of that is for programming. Astounding.
[I actually had to trim my program above to get it to compile with the new release of GCB. With the old release it fitted in the program space, but failed to compile with the latest release with a 'Program too large" error. I reduced some of the table sizes slightly until it fitted.]
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I bought a northern programmer chip a few years ago when they were mentioned on gcb forum as the dogs dongles but built the circuit board for it but never got it to work.
Posted it to Anobium but got no reply.
Glad I don't use pics much but when I do pickit clones work ok.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The Northern Programmer was used. It enabled the integration of the Northern Programmer into the Great Cow BASIC IDE. So, a great inclusion to the IDE.
I do use on every release to make sure the Northern Programmer still works with the IDE.
Thanks go to Stan.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I didn't want to detract from mkstevo's post as it nice people share their work.
Glad he got more joy than me but I was thrifty and just bought the chip. Mistake.
It would have been nice to know the device was working and it not working for me was my problem that probably could have been sorted.
Anyway I see no reason to buy another northern programmer in any form as gcb has worked without it ok and all the work gone into pickit+.
I have seen some pics with extra features that I don't know if supported in gcb.. like built in op amp.
For the stuff I like doing arduino is convenient and the logic green 328 support has been very interesting being it's supposed to be twice as fast... and there's always when we need asap. Is there a pic that is supported that will do the same program same speed?
Surprised other 328p users haven't commented about lg328.
I love arduino boards.. so easy to use, well, with gcb seems easy.
Take care.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Only had a little confusion (self inflicted) when I realised it was LVP only, and I use HVP exclusively. I soon had a quick 'n' dirty HVP lash up which proved it worked then designed a PCB to go with it.
It's been slow at work today for programming. I've only programmed one chip today - using the NSDSP programmer of course. Still I've just had fifty PCBs for a design delivered and that circuit needs three PICs each board.
Love the NSDSP programmer. Really do...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I bought the np chip cos it had a long list of chips and the vibe at the time on the forum.
Is the np supported chips same as gcb's ?
Don't care now as avr mainly used but cool designs. I only make one offs on strip boards.
Making pcbs and ferric chloride was not fun and drilling the holes.. l8r!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It is so cheap to order top quality PCBs from China, I didn't want to use ferric chloride at home and I can draw a PCB with holes and slots in the correct position and have the PCB house manufacture a complete housing made from PCBs with all the artwork on it far easier than I can file out square cut-outs for displays and so forth.
My clock in the shape of the Eiffel Tower cost about £30 for five sets of two PCBs, one shaped like the Eiffel Tower, and almost as tall. Well, 50cm or so at least.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is from rpi 400, testing, is twister os any good.
mkstevo, I've some youtube guys stuff sponsored by get cheap pcb co in china and cool prices. just send your gerber files or whatever.... so many file endings nowadays, to an site and a few quid and get a board back.
Great if you want more than trying a new device supported in gcb and just want one to try it out.
It's difficult to find anything to build as it's been done lots of times on ebay/amazon/wish.
I think messing with ebikes could be an earner. It's not obd like cars just serial.
I got an ebike but it's a conversion. Ebikes sell to people with too much money and seek anything that'll change the way the bike works. There's already an established market.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Here are the design files for the NSDSP Programmer I mentioned in another post.
I have included the schematics as a .pdf file, and the Gerber files as a .zip.
The PCB size is such that JLCPCB will be able to make ten of the boards for $2, plus shipping. I think I paid about $10 for ten boards including (the slowest!) shipping to the UK. JLCPCB sometimes offer free shipping to new customers so it is possible that you might get the boards for just $2. Other PCB fabrication companies are available, I'm not endorsing JLCPCB in any particular way other than I use them a lot for both work and home.
The board has a micro USB socket on it. This can (optionally) provide power to the target device (at 5V). The micro USB socket is an SMD type that I ordered from Farnell (stock code 2470822). I did order some similar devices from AliExpress for another design that were of the same mounting type if the Farnell ones are too expensive. There are two program port SIL sockets positioned below a 40way ZIF socket, these are intended to connect with jumper wires to two rows of SIL sockets either side of the ZIF socket to allow the unit to program a variety of different PIC devices. There are 4 CR2032 battery holders which provide either 9V or 12V as the high voltage programming supply, if you only intend to use devices that require a 9V HVP the top battery holder could be omitted. The mounting holes for the CR2032 holders should allow either SMD holders or through hole type holders to be fitted . The SMD type I fitted came from Rapid Electronics (stock code 18-3642). Jumpers select the HVP programming voltage (9V or 12V), whether the target device is powered by the USB socket and whether HVP is to be used or not. A header is made available that brings out the serial port connections (and the PGM pin) of the NSDSP chip, again if not using this, it could be ommitted. The optocoupler shows the type as being a KingBright KB814, I only used this as we use them by the hundred at work and I had them to hand, the type isn't critical so long as it is a four pin, low current LED input, transistor output type I see no reason why it shouldn't work. The fact that the KB814 is bi-directional is irrelevant, the bi-directionality is not used. The optional operations are made using a combination of pin headers and jumpers. The HVP jumper should remain in one position or the other, programming could fail if the jumper is not in position when using LVP, and will fail if not in position when using HVP. Likewise the jumper for 9V or 12V HVP operation. The ZIF socket is one of the wide 'slot' types that will accept the narrow and wider DIP packages. If you only tend to program 20 pin devices for example, a smaller ZIF socket could be installed.
When HVP is selected, the NSDSP Programmer must be set to HVP mode. During programming, the MCLR output of the NSDSP chip goes low, the optocoupler LED is activated and D1 is reverse biased, the transistor within the optocoupler is turned on and either 9V or 12V from the lithium coin cells is supplied to the MCLR/HVP pin of the target PIC. When not programming, the MCLR pin of the NSDSP chip goes high, cutting off the LED in the optocoupler, the transistor within the optocoupler is turned off and D1 is forward biased, supplying around 4.5V to the MCLR/HVP pin of the target PIC.
When HVP is de-selected, during programming, the MCLR output of the NSDSP chip goes low and D1 is reverse biased, R9 (and to a lesser extent R6) pull the MCLR/HVP pin of the target PIC low. When not programming, the MCLR pin of the NSDSP chip goes high, D1 is forward biased, supplying around 4.5V to the MCLR/HVP pin of the target PIC. As the collector of the optocoupler transistor is disconnected, it has no effect on the operation.
The image of the PCB in the .pdf file is only shown in black to give greater definition for the text on the PCB. If ordering from JLCPCB, selecting any other colour than green for the solder resist will increase the cost of the PCB.
I did consider having two boards, similar to the PicKit I use, with a separate board with the ZIF socket for programming on it, but I find it a little unwieldy to use like that so decided to make a single PCB. Feel free to alter the design and put it on your own PCB if you so desire. I probably could have fitted some LEDs to show that the USB was active, and the HVP was on but I wanted to reduce the drain on the lithium cells to a minimum to extend the battery life and thought that adding another resistor and LED on it's own for the USB power would detract from the symmetry of the layout!
If you wish to use this as an in circuit programmer, simply bring the connections to a set of adjacent pins and then clamp your ICSP cable pins into the ZIF.
Last edit: mkstevo 2018-11-21
Edit: OOPS! Sorry, I obviously wasn't paying attention that there was more than one page, so ignore my request please!
Hi Mkstevo,
The circuit diagram attached above appears to be the LV version, not the HV version, there's no opto, etc. in that diagram. Any chance of getting the circuit for the HV version?
Thanks.
BTW, I notice that Northern Software have recently released the NSDSP-2-X programmer which is ready built in a plastic case and looks to be a nice unit (though I'd much rather a slide switch than stuffing about with jumpers). At $80 US + $20 post though, some people will prefer to use the chip instead.
Last edit: Sleepwalker3 2021-07-31
Glad you found the correct designs. The HVP version can be set to HVP or LVP with a jumper and the HVP voltage can be selected to be 9V or 12V (nominally) with a jumper.
Out of interest, I fitted my two PCBs with four lithium coin cells (CR2032) back in 2018 and they are still working now, thousands of programming cycles later. Clearly the drain on the batteries is very low.
Rarely, when programming certain devices they refuse to program or programming fails. This mainly seems to affect the 8 pin 12F1840 or the 12F675 devices. If this happens I've found that by holding the MCLR pin (the HVP input) to the high voltage level before, during and for a short while after programming corrects this. While holding this pin high the attempt at programming "fails" as the NSDSP can not reset or read the device after programming. Returning the MCLR pin to it's correct connection after doing this and attempting a re-program usually works normally. The device in question will then work as normal for programming/re-programming. I'm not sure if this is down to some timing issues with the design in how the HVP is raised by the opto or simply that I have all the programming speed options set to the fastest possible. It may happen on one specific device, in a run of a hundred but once I managed to un-brick those devices that failed I've done it a few times and I've yet to have any that fail totally.
The 12F1840, 16F1825 and 16F1829 that I use for most of my designs have proven very robust. Stick 'em in back to front, short the outputs out, give them 12V instead of 5V and they have so far survived almost anything. Not that I recommend trying any of that though.
A picture of the finished article.
I have edited out the company logo, so if you spot some 'glitches' it will be that! The files above should have the company logo removed for the sake of my continued employment...
I have been testing the board today and so far it has survived all I've thrown at it. The fact that I can simply plug it in and it work is such a wonderful thing to behold. My PicKit2 (admittedly a Chinese clone) often would need unplugging and plugging in again before it would be recognised, the supply voltage was very annoying in that it only worked corectly when set to a specific 4.55V and it would often fail to recognise the device plugged in, needing a shutdown of MPLabIPE before I could use it again. So far the NSDSP chip has been rock solid, and blindingly fast too.
Happy days!
Man! Thats nice work there!!! Good Job. Now with the speed increase in GCB and this, you should be banging out those chips like crazy!
I have a program that occupies 98.7% of the 16F1829 memory. The new build of GCB that @Trev has compiled as a 64bit binary, in conjunction with the NSDSP programmer, compiles, builds and flashes this file in an average time of 2.5 seconds. Only 0.788 seconds of that is for programming. Astounding.
[I actually had to trim my program above to get it to compile with the new release of GCB. With the old release it fitted in the program space, but failed to compile with the latest release with a 'Program too large" error. I reduced some of the table sizes slightly until it fitted.]
I bought a northern programmer chip a few years ago when they were mentioned on gcb forum as the dogs dongles but built the circuit board for it but never got it to work.
Posted it to Anobium but got no reply.
Glad I don't use pics much but when I do pickit clones work ok.
The Northern Programmer was used. It enabled the integration of the Northern Programmer into the Great Cow BASIC IDE. So, a great inclusion to the IDE.
I do use on every release to make sure the Northern Programmer still works with the IDE.
Thanks go to Stan.
I didn't want to detract from mkstevo's post as it nice people share their work.
Glad he got more joy than me but I was thrifty and just bought the chip. Mistake.
It would have been nice to know the device was working and it not working for me was my problem that probably could have been sorted.
Anyway I see no reason to buy another northern programmer in any form as gcb has worked without it ok and all the work gone into pickit+.
I have seen some pics with extra features that I don't know if supported in gcb.. like built in op amp.
For the stuff I like doing arduino is convenient and the logic green 328 support has been very interesting being it's supposed to be twice as fast... and there's always when we need asap. Is there a pic that is supported that will do the same program same speed?
Surprised other 328p users haven't commented about lg328.
I love arduino boards.. so easy to use, well, with gcb seems easy.
Take care.
I bought the 'bare' chip too. Five in fact.
Only had a little confusion (self inflicted) when I realised it was LVP only, and I use HVP exclusively. I soon had a quick 'n' dirty HVP lash up which proved it worked then designed a PCB to go with it.
It's been slow at work today for programming. I've only programmed one chip today - using the NSDSP programmer of course. Still I've just had fifty PCBs for a design delivered and that circuit needs three PICs each board.
Love the NSDSP programmer. Really do...
I bought the np chip cos it had a long list of chips and the vibe at the time on the forum.
Is the np supported chips same as gcb's ?
Don't care now as avr mainly used but cool designs. I only make one offs on strip boards.
Making pcbs and ferric chloride was not fun and drilling the holes.. l8r!
It is so cheap to order top quality PCBs from China, I didn't want to use ferric chloride at home and I can draw a PCB with holes and slots in the correct position and have the PCB house manufacture a complete housing made from PCBs with all the artwork on it far easier than I can file out square cut-outs for displays and so forth.
My clock in the shape of the Eiffel Tower cost about £30 for five sets of two PCBs, one shaped like the Eiffel Tower, and almost as tall. Well, 50cm or so at least.
This is from rpi 400, testing, is twister os any good.
mkstevo, I've some youtube guys stuff sponsored by get cheap pcb co in china and cool prices. just send your gerber files or whatever.... so many file endings nowadays, to an site and a few quid and get a board back.
Great if you want more than trying a new device supported in gcb and just want one to try it out.
It's difficult to find anything to build as it's been done lots of times on ebay/amazon/wish.
I think messing with ebikes could be an earner. It's not obd like cars just serial.
I got an ebike but it's a conversion. Ebikes sell to people with too much money and seek anything that'll change the way the bike works. There's already an established market.