MPLAB Snap $15 programmer/debugger - Page 1
Forum section: electronics / general

author: macboy
author_rank: Super Contributor
timestamp: September 17, 2018, 03:39:25 pm
content: I haven't seen this mentioned here yet, I just noticed this new programmer/debugger from Microchip, the "MPLAB Snap". It appears to be a cost- and feature-reduced version of the PICkit 4, built around the same 300MHz SAME70 MCU. Supports PIC, dsPIC, and AVR, but fewer devices currently than the PICkit 4 supports. At less than $15, it is definitely the cheapest programmer I've ever seen from Microchip.Product page:http://www.microchip.com/Developmenttools/ProductDetails/PG164100Comparision to PICkit 4:http://microchipdeveloper.com/snap:versus-pk4Any first hand experience?

author: tsman
author_rank: Frequent Contributor
timestamp: September 17, 2018, 06:01:24 pm
content: Not worth it IMO considering the PICkit 4 has much better support for devices and it isn't that expensive. The supported device list is far smaller and mostly consists of a limited number of PIC devices with a handful of AVR parts. Popular chips like the ATmega328* aren't supported.If budget is a problem and you're only using PIC then buy a clone PICkit 3 for the same price as the MPLAB Snap and has most of what PICkit 4 can do and a few extras. Most people seem to prefer the PICkit 3 anyway.

author: JPortici
author_rank: Super Contributor
timestamp: September 17, 2018, 06:04:50 pm
content: not yet, but i'll be looking fo an excuse to buy one..altough, with the PK4 being cheap-ish i don't think i'll bother.This should be compared against st-link / popolu avr programmer / onboard debuggers on devboards and the likes, everything it lacks is not present on those debuggers eitherpart support is of course reduced BECAUSE IT LACKS HIGH VOLTAGE PROGRAMMING! only LVP or simillar modes supported and this excludes ancient partspart support is of course reduced because it's come out a month ago or so. And it's still a struggle with the ICD4/PK4 because they fundamentally changed how the programmer worksciting from the microchip forumQuote from:https://www.microchip.com/forums/FindPost/1066198on the product page there should be an email address to request specific part support.when the PK4 first came out, i noticed it lacked support for ALL codeguard-enabled dsPICs, i sent an email from my provate gmail account asking for a specific dsPIC i use a lot, i was answered the same day and on the following release support for only that part of the family was added.This means that since they are way behind schedule with the part support, each user asking for a specific device tells them which they need to focus to. Just complaining there is no part support won't benefit anyone

author: cv007
author_rank: Frequent Contributor
timestamp: September 18, 2018, 04:35:04 am
content: It does show they know they had a gap to fill and are trying to fill it (although a long time coming).I think I posted at one time they should be handing out programmers like candy-QuoteI guess we are closer,.

author: VEGETA
author_rank: Super Contributor
timestamp: September 18, 2018, 05:29:12 am
content: I have PICKit3 and I don't use it anymore due to using Arduinos. So, I will not buy one unless it has a nice enclosure and supports AVR chips. haaa!

author: JPortici
author_rank: Super Contributor
timestamp: September 18, 2018, 05:39:54 am
content: well they ARE working on a replacement for the PKOB, probably based on this..

author: cv007
author_rank: Frequent Contributor
timestamp: September 18, 2018, 01:23:38 pm
content: Quotebut in my mind would be a waste of time to keep redesigning the same thing over and over again (layout at least). They now have a cheap programmer/debugger they can hang on any future board- over, under, vertical, horizontal, whatever. One programmer board, one design, one entry to find in mplabx, one vid/pid, one schematic, one set of problems to deal with, one fixed set of parts, one set of documents, and on and on. The only requirement for a curiosity board would be the simple 8 pin header which I imagine would make cranking them out as simple as could be. The $30 curiosity boards could now be $15, and you could buy the $15 SNAP as needed- or maybe not at all if you have a pickit3/4.But...since they don't want to let you use the usb power(for my use, I will probably take some wire, jump from 5v0 / 3v3 to the unused pins 7/8 so I can power from usb)

author: JPortici
author_rank: Super Contributor
timestamp: September 18, 2018, 01:39:39 pm
content: Quote from: cv007 on September 18, 2018, 01:23:38 pmyeah, i suggested they update the board with at least a jumper or a solder jumper for the (already on board) 3v3 or the (already on board) 5V/VBUSHope they listen, because IMHO the most people going for cheap tools don't care for different voltages (see arduino crowd, but not only)

author: NorthGuy
author_rank: Super Contributor
timestamp: September 18, 2018, 01:46:07 pm
content: Quote from: JPortici on September 18, 2018, 01:39:39 pmThey have a big chip and USB current is limited.

author: JPortici
author_rank: Super Contributor
timestamp: September 18, 2018, 01:49:48 pm
content: most of my boards require less than 30 mA

author: AloyseTech
author_rank: Regular Contributor
timestamp: September 18, 2018, 09:08:35 pm
content: Maybe this is off topic, but could it be used as a SAME70 devboard?

author: malagas_on_fire
author_rank: Frequent Contributor
timestamp: September 18, 2018, 09:29:06 pm
content: Still prefer also the pickit 4, but using pickit 3 and 2 . I'm not on a rush for a new programmer, but for newer to microchip maybe from a startpoint can be more affordable, e.g. schools .

author: ataradov
author_rank: Super Contributor
timestamp: September 18, 2018, 09:29:56 pm
content: Quote from: AloyseTech on September 18, 2018, 09:08:35 pmThere is no way to permanently lock the SAM E70, so you can erase and reprogram the device. But what are you going to do with a board that has 10 I/Os? SAM E70 is cheap and making a breakout board is easy enough. Why bother?If you are interested, I have an Eagle project for a simple SAM E70 breakout board that brings out all pins.

author: AloyseTech
author_rank: Regular Contributor
timestamp: September 20, 2018, 09:26:53 am
content: This would be a candidate for the cheap ARM development board list here :https://www.eevblog.com/forum/microcontrollers/list-of-cheap-arm-development-boards/10 i/o is sufficient for some (relatively) high speed data acquisition project I have. The high speed USB together with the 300MHz core allow data processing and streaming without going the FPGA way. I agree that this is some rare use case. It is more of a curiosity than an actual useful idea...

author: cv007
author_rank: Frequent Contributor
timestamp: September 28, 2018, 05:59:02 am
content: I ordered/received 2 of these snappers.Need MPLABX 5.05, so headed over to mchp for the download- and discovered the webmasters must have been running out of things to do- they now have an ipod 1.0 interfaceinitial report-this thing is a lot faster than pk3/pkob (and it should be- usb hs vs usb fs)on a pic32mm (only thing I tested so far), debugging is actually now usable where before I would say its doable but not very pleasantclick debug- about 3 seconds later (32k code) I'm compiled, programmed and stopped at main (pkob, same project 17 seconds to get to same point)you can step over functions, view registers/vars, and do things in a responsive way that before would cause you to wonder if anything was going on after a button was pressedI would say its $15 well spent.

author: JPortici
author_rank: Super Contributor
timestamp: September 28, 2018, 09:52:19 am
content: ^ question: can you add/remove breakpoints without having to pause/resume execution like you can do in the ICD?

author: cv007
author_rank: Frequent Contributor
timestamp: September 28, 2018, 12:26:58 pm
content: Yes.

author: JPortici
author_rank: Super Contributor
timestamp: September 28, 2018, 12:36:59 pm
content: Awesome.

author: cv007
author_rank: Frequent Contributor
timestamp: September 29, 2018, 02:06:17 pm
content: QuoteNow that I have it, a better idea (it seems to me) is just to jumper 5v0/3v3 to a 3pin header (outside ends), center pin to pin 2 of icsp connector (Vdd), then use a 2pin jumper/shunt to select 5v or 3.3.v (or no jumper for no power).The enclosure I happened to have (Hammond 1551LTBU, $2.23ea) fits perfectly for width, is a little longer than needed but then I have room for a little perfboard for my little mod. The little rubber/silicone feet on the snap board and the case bottom pc board mounts (2) combine to keep the snap board in place (snap rests on pc board mounts, 1 pad keeps from moving as it is right up against mount).I had to make due with what I had, so I cut a perfboard to fit the unused space, added a 8pin m-m header (bent to make right angle) so the board can be detached, added a 5pin keyed icsp connector as I will only need the 5pins and wanted a keyed connector as that makes more sense. For the 5v0 and 3v3 source points, I just put in a single pin header for each (bent at right angle) and made a couple wires with the female header connector and soldered them to the add-on board. The add-on board can be easily disconnected if I want to something different or go back to original.I still need to make a 5pin-5pin jumper (keyed to non-keyed), and cut some openings in the case.It does work, so will now be able to use usb power. The high side power chip they have seems to have been set to about a ~800-1000ma current limit, and I think the 3v3 regulator can handle at least that much. I don't know what the sam and the rest of the circuit consumes, but I would guess a few hundred ma for my own use should be no problem provided the usb port is willing.One thing I have noticed- the snap likes to disconnect/reconnect from usb when power is applied to Vdd (icsp pin2), so I'm not sure what is going on. The only thing the Vdd pin does on the snap (as far as I can tell), is simply detect the Vdd voltage of the target device to adjust the other pin levels. The same thing happens to my modded snap- with nothing connected I can connect usb, then I place a jumper on my mod to get power and it will disconnect/reconnect from usb. I guess there is either something going on the Vdd detection- either causing some kind of power problem or maybe the sam is simply doing disconnect/reconnect when Vdd is detected.edit- I'm going to also try to make a serial-telnet adapter with an esp32-wroom-32d I have so I can eliminate the usb serial-ttl I always have hooked up for high level debug/info. I ordered the wroom not realizing what I was (not) getting so have to create my own 'dev board' (from remains of my power mod board). Good thing only 6 pins needed.I'm not sure what the best option is now for esp32, but I downloaded arduino and the arduino core for esp32 and have 'hello world' spitting out the uart.

author: cv007
author_rank: Frequent Contributor
timestamp: October 03, 2018, 07:06:43 pm
content: I now have a serial to telnet adapter using a esp32-wroom-32d. My 'dev board' hack doesn't look very nice but it works (I bought the wroom without enough thought, although it turned out ok). I used arduino to program the esp32. The arduino esp32 core seems to have enough examples, so with about 150 lines of code I have 2 telnet servers- one port for transfers between the esp32 serial port 2 and the telnet port, and the other which will be used for any command/info (change baud rate, etc.). So far has been running ok, but will see how reliable it is over time.I also have an Onion Omega2 ($10) that I could use which may possibly be a better idea. I have one that I simply use for mp3 streaming and it runs good- never a problem for over a year and I use it all the time. I think all I would need to get serial-telnet going on it would be a simple socat command (socat is not installed, but I'm sure openwrt has it available).If this all works out ok, I will probably try to design a board where I can 'snap' a SNAP onto it and fit it in an off-the-shelf case (Hammond 1551L or 1551K if a little more room needed).<commentary>my pet peeve about all the various bare boards manufacturers put out- can't anyone just go browse mouser/digikey and find a box to use, then design the board to fit it, and if a user wants to protect it from getting shorted out or having it short out all the other stuff on their bench they can buy a readily available inexpensive box to mount it in. It would at least be better than picking dimensions from thin air as they appear to do now.</commentary>

author: oPossum
author_rank: Super Contributor
timestamp: October 25, 2018, 01:51:17 pm
content: Arrow now has these in stock. $14.16 + free next day shipping10% off code THANKYOU2018 expires 2018.11.09https://www.arrow.com/en/products/pg164100/microchip-technology3D printed case files by Digi-Key:https://www.thingiverse.com/thing:3074301

author: oPossum
author_rank: Super Contributor
timestamp: October 25, 2018, 01:56:59 pm
content: 25% off at Microchip Direct - Use Coupon Code : TP1927 expires 2018.10.31$14.95 (before 25% off) + shippinghttps://www.microchip.com/Developmenttools/ProductDetails/PG164100

author: cv007
author_rank: Frequent Contributor
timestamp: November 30, 2018, 10:29:47 pm
content: I have been running the SNAP programmer for a while now and it works pretty good. Programming speeds are fast and debugging runs fast. I have not had any fail to connects or any other type of errors so far. I'm also putting a relatively large load on the 3v3 rail.Now the question(s)-Using a 3 pin header and a jumper to select 3v3/5v was my original idea for output power selection to power the target if wanted, or a small slide switch could also be used. But since we are in the microcntroller forum I am considering using a small pic to do the selection via mosfets.The attached picture is my current idea. I have a hard time simulating accurately as mosfet selection is slim so just have to work around it. The following mosfets are just something I somehow ended up selecting as potential mosfets-FDN340P- P-CH MosfetSSOT-3 (SOT-23)2A Id continuousRdson ~100mohmFDN327N - N-CH MosfetSSOT-3 (SOT-23)2A Id continuousRdson ~100mohmThe pic will select the output by pulling a gate low. I'm not sure if the N-Ch side can get away without the P-Ch to drive the N-Ch gate, as ~1.4v may not be enough for the N-CH gate if driven by the pic (if I power the pic with 5v).Is there something I'm obviously missing, or does this look like it will work ok? Or is there a better idea?edit- there is a problem. I somehow thought I was escaping the body diodes, but I just re-arranged the problem. I need the 5v/3v3 mosfet outputs tied together, but need to avoid both the 5v feeding back to the 3v and the load using 5v/3v when both are off. My circuit violated the former.edit- added new circuit (diodes added to visualize mosfet body diodes), not sure if good. I'm going to have to find better simulation software where I can enter part parameters. Maybe I need to learn how to use ltspice.

author: cdev
author_rank: Super Contributor
timestamp: December 01, 2018, 02:59:48 pm
content: Please forgive me if this is a really stupid question.I would like to learn PIC - hopefully to play with time-and frequency stuff on the HW platform.Not knowing in advance if its going to be something I can learn, I really don't want to invest a lot of money in vendor-specific hardware. $60-90 was way too much.This new board, well, $15 is too much, but I will pay it, if it means I can access some support resources a bit betterand if it supports the older HW fairly well.I actually have some specific tasks I want to accomplish.I would especially like to be able to extract the firmware from existing PIC devices to look at it and hopefully modify it.(I am thinking about my PIC frequency counter which I would like to add a feature - basically a simple gated zero-crossing counter function, to.)It does have a six pin in-circuit programming header.Where does one go to start out on PIC, besides the microchip site?Also, does their development IDE software (MPLAB) run under Wine on Linux? Or are there viable alternatives to it?Because its so useful for timing, I think PIC would be fun learning.

author: cv007
author_rank: Frequent Contributor
timestamp: December 01, 2018, 11:20:19 pm
content: QuoteYou can access any support resources available without paying a dime for anything, and buying hardware doesn't change that. The SNAP will not support older parts that need high voltage programming. MPLABX runs on linux, windows, osx.QuoteThat's quite a leap from not knowing anything to being able to read a pic, disassemble the instructions, figure out the asm code without any help (like labels, functions names, var names, etc.), then adding your own special functions. Without the source code, its a waste of time and it wouldn't take you long to realize that. I say that only to possibly adjust your expectations and alter your purchasing decisions based on the probability you do not need to have something that supports older pic parts. For any new projects, there is no reason to use an old part as newer parts are cheaper and much better in many ways.

author: cdev
author_rank: Super Contributor
timestamp: December 02, 2018, 01:03:33 am
content: I actually do have the source code to most of the devices that I would like to burn. But you're right, I would be unlikely to succeed and get the full benefit of learning without more contextual knowledge.Actually, you just told me what I wanted to know, that I can run the development tools on Linux natively. So, $15 isnt such a large risk, so I think I will do it. Even though there is also a possibility that some of the hardware I have now might be able to act as a PIC programmer.Do you know if a WinChipHead CH341A could? It can output 3.3 or 5 volts, I dont think it could or should go higher (without help at least) Probably not worth the trouble."An expert is a person who has made all the mistakes that can be made in a very narrow field" - Niels Bohr

author: cv007
author_rank: Frequent Contributor
timestamp: December 02, 2018, 03:38:17 am
content: Pretty much anything that can wiggle some pins can be made into a programmer. The problem is its not worth the effort anymore. With a low cost supported programmer, you can press a button in mplax which compiles the code and downloads it into the target. You also get the ability to use the debugger. You then get to put your effort into writing programs and reading datasheets instead of fighting with your programming tools.

author: jaromir
author_rank: Unknown
timestamp: December 02, 2018, 10:02:51 pm
content: Quote from: cdev on December 02, 2018, 01:03:33 amI made programmer for most of modern PIC 8-bitters from arduino - seehttps://github.com/jaromir-sukuba/a-p-progThat is probably as cheap as you can get (2USD). Together with SDCC and GPUTILS you have nice opensource combo to build PIC projects under Linux or whatever is your choice. I used this combo on a few projects, with no major issues. I used this to build and upload code from RaspberryPi.That being said, for years I use MPLABX+XC8+ICD3(PicKit4) on my Linux machines for most of the time, just because it's more convenient.

author: cdev
author_rank: Super Contributor
timestamp: December 02, 2018, 10:55:00 pm
content: *Thank you!*I am definitely going to try your program out (if I can figure out how to!)Now I just need to get some 8 bit PICchips!I am sure I am going to have some questions in a bit for you.Are there any other IDEs that work with PIC?(Answered in your post already!)Just as a platform to get my feet wet?Also are there any PIC simulators or emulator software I can fool around with while I am waiting for the chips to get here?

author: jaromir
author_rank: Unknown
timestamp: December 02, 2018, 11:32:35 pm
content: For 8-bitters, I'm not sure. All the time I use simulators, I use the ones in MPLABX.On the other hand, AFIAK SDCC uses gpsim for regression tests - seehttp://gpsim.sourceforge.net/Oh, and once upon a time, there was onen-source IDE called PikLab - seehttp://piklab.sourceforge.net/It seems to be long dead, but perhaps you can use it as organ donor.If you feel adventurous, you may also take a look at my reverse engineering of PIC18 debug modulehttp://jaromir.xf.cz/hdeb/bdm/bdm.htmlI'd say modern ones are not that much different, giving you option to build your own debugger.

author: cdev
author_rank: Super Contributor
timestamp: December 02, 2018, 11:40:14 pm
content: Man there sure are a lot of PIC devices, why so many different parts, certainly wouldn't it be cheaper for them to make less parts and offer best in class functionality for less through more volume?Looking at your programmer, if I want to dedicate one of my cheap Arduino boards to it and give some of the many old DIP sockets I have a useful purpose in life, why not? I can "Be a big spender" LOL.Cool. I think there is at least a 50/50 chance I can figure this out.Thank you for all the links! It turns out that I already had almost all of this software installed on my PC. So now I can check out the PIC software that I have downloaded without the actual PICs.

author: macboy
author_rank: Super Contributor
timestamp: December 05, 2018, 04:03:40 pm
content: For any given "family" of devices, you have multiple similar, nearly identical parts. You will usually see a few options for pin count, and for each of those, there will be a few options for memory size (FLASH and RAM). For each of those, there will be multiple package options (DIP, SOIC, QFP, etc., etc.). So yes, you might have dozens of part numbers for essentially the "same" device. All of those will share basically the same set of peripherals, timers, and other capabilities, differing only in aforementioned memory, pin count, and package.For the hobbyist, you can ignore the lower memory options. The lower memory parts are for mass production when the features and code are final and you want to pick the cheapest part that fits. Depending on how you like to prototype, pick your favorite package, maybe DIP or SOIC, and ignore the rest. You can probably play around and prototype with the largest pin count, then maybe choose a smaller pin count when you spin a PCB for it.So really, it mostly boils down to what peripherals do you need? Then think about speed, memory size, data size (8/16/32 bit native). I find the list narrows down quite quickly.

author: NorthGuy
author_rank: Super Contributor
timestamp: December 05, 2018, 05:09:56 pm
content: Quote from: cdev on December 02, 2018, 11:40:14 pmPICs have long history. There were lots of bad ideas, improvements etc. But they still keep making the old ones since people still use them, which is a good practice. If you concentrate on newer parts, there will be not that many of them, they will be cheaper than the older ones and generally better.

author: perieanuo
author_rank: Frequent Contributor
timestamp: December 05, 2018, 05:36:06 pm
content: Just buy mikroe stuff, solid as rock, knows all hw.I repaired more times original Microchip programmers in a electronic research company, I used for years professional and chinese programers, aside microchip I never repaired another programmer.That's all folksRegards,pierreEnvoyé de mon iPad en utilisant Tapatalk

author: cdev
author_rank: Super Contributor
timestamp: December 09, 2018, 05:45:48 pm
content: I've noticed many people are now selling the older Pickit3 USB programmer for around $15.Which is the best choice-that or the SNAP for both programming in a dip socket and ICSP?Also, where do you buy your PIC chips?Let me be more specific. Is buying PICF675 chips maybe 10-20 on ebay asking for trouble?(Not a super lot, and the application likely isn't that critical but I would hate to get fakes.)

author: NorthGuy
author_rank: Super Contributor
timestamp: December 09, 2018, 06:13:07 pm
content: Quote from: cdev on December 09, 2018, 05:45:48 pmI prefer buying athttps://www.microchipdirect.combut they're sold everywhere - DigiKey, Mouser etc.Instead of PIC12F675, you can buy something newer such as PIC16F15313, which is cheaper and better.

author: cdev
author_rank: Super Contributor
timestamp: December 09, 2018, 06:27:28 pm
content: Thank you!Quote from: NorthGuy on December 09, 2018, 06:13:07 pm

author: oPossum
author_rank: Super Contributor
timestamp: December 10, 2018, 06:05:53 am
content: Quote from: cdev on December 09, 2018, 05:45:48 pmThe Snap can not do chips that require high voltage (~12V) programming. The 12F675 is one of the older chips that does, so the Snap would not work.For the newer PIC and AVR the Snap would be the one to get. The current device support list is attached.I have been buying from Arrow lately because they currently have free shipping. I usually buy from Mouser or Digikey.

author: oPossum
author_rank: Super Contributor
timestamp: December 10, 2018, 06:12:14 am
content: Search eBay for "pickit adapter" if you want a ready made ZIF programming socket board.I use the j1sys products.https://www.ebay.com/itm/231507323729

author: cv007
author_rank: Frequent Contributor
timestamp: February 01, 2019, 07:41:25 am
content: SN@Pmate is becoming reality (for me anyway).I had previously shown a few pictures of my idea to make a SNAP adapter so we can get 3.3v/5v from the SNAP. I also added an Esp32 as a telnet-serial adapter so any serial output from the target can simply go back to the sn@pmate and not need another serial-usb adapter. It worked ok, but MCHP will eventually get their features rolling on the snap where there can be a channel back to the pc via the snap (at least I get that impression from reading the help, but may be wishful thinking).So I decided to simplify, and stick to the main idea. An adapter board that fits in a standard case so we (I) can get the 5/3.3v for the target power. I cannot figure out what that 3.3v regulator is on the snap board (mainly its current capacity), so just decided to do my own 3.3v from the usb 5v with the advantage I can probably get a little extra current by using a buck converter with better efficiency. The 5v is limited by the snap (via a current limit ic) to about 1 amp, so the limitation is probably going to be that or whatever the usb port is willing to deliver. Should be plenty in any case.I also decided to make available all 8 pins even though I currently only need the 5. I really don't like any connectors, so decided to go with one I dislike the least- a 10pin idc shrouded/keyed header. One row matches with the 5pin pic scheme, so can use any 5pin connector currently used with a pic (although male/female is reversed, but no matter because it is always wrong anyway). There are 2 pins for power- 3.3v/5v which is always available (the snap power pin does what it originally designed for- detect target voltage only, so can still use external power if wanted). The remaining 3 pins are for whatever MCHP wants to do with them in the future (or maybe are already used, I don't know).I designed and sent away for the pcb's, 3 from oshpark, and 10 from jlpcb (I wanted white, and wanted to check these doods out). The jlpcb boards to about 8 days, the oshpark boards took about 3 days longer.I'm still not done, but close (need to cut case for connector cutouts). I'm kind of making it up as I go. I didn't know what I was going to use for contacts between the boards so just made a contact board to attach to the snap, and some holes in my snap board to make some kind of contact connection. There is only 2mm space between boards, and by the time you add a contact pcb in there, there is only 0.4-1mm space. I'm sure there is something available, but could not find anything that would work with that small gap. Anyway, an rg58 center conductor became my 'spring' contacts. Everything fits snugly in the box, so am not too worried about maintaining contact.Some photos of progress -https://photos.app.goo.gl/HA7EgmibKAuhWsRN7(the hammer was used to drive a tight-fitting wire through the snap and the contact board- then snipped both sides and used a punch to 'rivet' the boards together- was just trying to come up with a non-solder way to get those boards connected)By the way, I have been using the snap on a pic32mm, and it works quite well. I think it may even be faster than the speed of light. There have been a few times I wold have to unplug/plug when mplabx could not find it, but it was usually when doing usb stuff (incorrectly) on the pic32mm. Unless they decide to somehow screw up the firmware in the future this is a nice little programmer/debugger. Just needs a case and some power output.

author: Ian.M
author_rank: Super Contributor
timestamp: February 01, 2019, 08:29:06 am
content: As mentioned a lot earlier in the topic, if you need old device support and full current device support for PICs (but not ancient PIC16C... and PIC18C... devices), a PICkit 3 clone is your best low cost option. Get the PIC you want to work with in a DIP package (up to 40 pins) and stick it in a solderless breadboard with Dupont pinned jumpers to the PICkit 3.Extracting firmware from PICs in commercial devices is extremely difficult as PCs have protection bits that can be cleared to prevent reading of the program memory by an external programmer. A few of the earliest flash PICs had flawed protection and there were exploits to recover the memory contents, but you can assume that any PIC from this millennium cant be cracked non-non-invasively if the device manufacturer set up the protection correctly. However various specialist reverse engineering companies operating in countries with lax copyright law enforcement claim to be able to recover the firmware of any PIC by decapping and microprobing given three identical sample devices. Prices are typically in the three or four figure USD range, so don't count on a PIC to keep your company's software 'secret sauce' secure against well-funded competitors.Once you have a firmware image, disassembling it is fairly easy (but tedious), and it is possible to get the disassembly to the point that you have a source file that will build an identical firmware image. However there wont be any meaningful variable or subroutine or label names, so the result will be of little use if you want to develop it further. If the original firmware is the product of a high level language compiler, the difficulty of reconstructing an equivalent source file in that language increases exponentially, even if you know the exact compiler version used. If not, well, its the software equivalent of turning a cooked beefburger back into a cloned cow!