experience with PIC16(L)F1454

has anyone used this family of microcontrollers? I want to use it for its extremely small size, and its built in usb 2.0 capabilities. After doing some searching online, I have not found and tutorials or guides on how to use it. My guess is its going to be more difficult to use than your typical ATmega.

PIC processors are quite unlike Atmel processors, but have similar capabilities.

To program one, you will need to download the IDE software from Microchip, and buy an appropriate programmer.

Probably worthwhile asking about the Microchip devices in the Microchip forums;


I suspect there will be less free support\help for the Microchip devices than there would be for Arduino\Atmel.

PICs were the first micro-controllers I used and I still use them now. I've not used the particular one you linked to but PICs are highly modular in design, which means once you know your way round one it's easy to work on a different one.

Got to the Microchip website: Microchip

To program the 8 bit PICs you need:

  • MPLABX, which is the IDE and you can download from Microchip.
  • XC8, which is the C (not C++) compiler for all 8 bit PIC micro-controllers.
  • PICkit, I think the current version is PICkit 4, last time I bought one it was PICkit 3 and was about £30 or so.

I don't mind answering PIC questions here as long as the mods don't complain, but this is not a PIC forum.

I think you can use PICkit 4 to program the ATMEL chips, but I have not tried.

I have never used the USB capability so I can't help with that. If I ever do want USB capability I will use Arduino or something Arduino compatible because the libraries make things easy.

The latest programmer/debug interface from Microchip is also the cheapest: SNAP.

Currently on sale until September 30 (about US $16). Claimed to work for just about everything Microchip sells, except does not do high voltage programming.

I have one but have not yet had a good reason to try it out.

If you want USB code that will run out of the box on a limited chip, PIC processors like the 16F1454 are not the way to go. It is really hard to find code libraries, unless you are willing to pay for them.

Look for examples of V-USB on ATtiny chips, like this one.

I have not found and tutorials or guides on how to use it.

You should be able to find lots of tutorials/guides on the 8bit PICs in general.
Prior to Arduino, they were pretty much THE choice for hobbyist microcontrollers.
However, despite marketing literature that says "C Friendly", they're really not, so a lot of the existing tutorials are for the assembly language programming. And the assembly language is not very "pleasant."

Good C compilers for the 8bit PICs tend to be not free for "full" versions, though there are some vendor tricks ("Less to no optimization", "limited code size") that make C somewhat approachable.

Look for examples of V-USB on ATtiny chips,

Please don't look at V-USB. It's a software-only bit-banged implementation of low-speed USB that skirts "conformance" and proving to be incompatible with modern USB computer-side implementations. There are some pretty tiny AVR chips with hardware USB support (like the ATmega16u2 used at the USB/Serial converter on the Uno/etc.) And several (I think) bits of software to go with AVR USB hardware.

Unfortunately, the low-cost USB PIC chips showed up about the same time as the Arduino revolution, and I haven't seen much in the way of hobbyist-level USB code for PIC. There is The USB BitWhacker - it actually uses a USB stack provided by Microchip.

The main hobbyist resource for 8bit PICs has been the PICList mailing list. It's pretty quiet these days, but there are Extensive online searchable archives.

several (I think) bits of software to go with AVR USB hardware.

In other words, if you are a beginner, forget USB.

In other words, if you are a beginner, forget USB.

I agree with that. My most obsessive, long term project is my heating controller, which runs on a 32 bit PIC. When I wanted to add WiFi I didn't even consider how to do it with a PIC I just got an ESP8266 board, programmed with the Arduino IDE and connected to the PIC using serial. If I ever want USB capabilities I will do something similar.