So, about 6 months ago I bought a PickIt 2 and a few PIC18f2550’s because I saw they have hardware usb, and are in a dip package, which gives it a leg up compared to my usual chipset, the Atmel AVR line. I put together a basic board, similar to a basic Arduino just to test out basic functionality and see how the usb stack would work. Let me tell you, that was the easiest part. Microchips lack of a good, up to date C compiler and toolset makes the whole software process incredibly difficult. I started going the route of mplabx with XC8, which turned out to be a dead end, because it suffers the age old software problem of being to new for the associated third party libraries and tools, and not fully supporting the 18f2550 correctly. So I had to move to c18, and then SDCC. All of these where either incredibly hard to set up correctly, or had horrible libraries for basic things like delays. Occasionally (about once a month) I will go back to this board and try over again, but It never works. Mind you, this is all before I even get to the point of even thinking about usb functionality. All in all, I’m not too impressed. Maybe one day I will finally get it and have less complaints, but until then I will just stick to AVRs and ARMs .