Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to start on USB with PIC

Not open for further replies.


Member level 2
Jun 17, 2010
Reaction score
Trophy points
Activity points
I have been given the task to learn USB communication between PIC and PC. I have studied a little bit of PIC microcontroller using PICBASIC but I am new to handle PIC using C language. Therefore I need you guys to help me out that how should I start??


Just to describe my experience.
1) For begining i bought a PICDEM FS USB based on PIC18F4550. (you can buy other demo boards)
it handles only device USB at full speed
2) i installed the firmware and the PC demos and i have played with it.
3) I built my own specific board
4) i did my PC interface using C# express 2010

Actually I don't know even the basics of USB. So I can not understand how to start, where to study about the firmware etc. Any link or book that may help me to learn the firmware easily from the basics.... Reply soon....

Last edited:


Find yourself a copy of Jan Axelson's excellent book, USB Complete. This should be a good place to start,
and as a bonus, it covers both C and PicBasic Pro.

**broken link removed**

If money is more plentiful than time, then conside HIDmaker FS. This suite will write the code for you,
both on the PC side AND the PIC side. It will also output PBP code. The only downside is the cost - $600USD.

**broken link removed**
Hi Annna,

The foremost book on the subject is still Jan Axelson's book:

USB Complete: The Developer's Guide (Complete Guides series)

There are other published texts on the subject, however the list is unfortunately very short and Jan's book stands far above the other few.

Developing a USB device can be extremely difficult to rather painless depending the protocol model being implemented.

As JoseMiguel recommended, the best approach maybe to purchase a development board which is well documented and supported.

I have at least one of each of the following:

**broken link removed**

**broken link removed**

**broken link removed**

**broken link removed**

**broken link removed**

The first three choices are the least expensive $40-$60 USD and most likely the best choices for the novice. The second and third items are PIMs which you can plug into an PIC18 Explorer board in the future.

Also be sure and download/read the user manuals, guides and other docs pertaining to USB on the product pages above, they contain a wealth of information concerning USB development.

I also have the:

**broken link removed**

It's an inexpensive kit, however to debug an app requires purchasing additional accessories. I believe one of the two PIMs I list above to be a better choice.

I prefer Microchip's Dev Boards for the development of commercial applications, they are extremely well documented, supported and large user base.

However if you desire a board for educational purposes only, you might take a look at MikroE's

EasyPIC6 Development System

This latest dev board has a Microchip ICD port making it compatible with MPLAB and supported compilers, earlier versions require the use of MikroE's compilers and IDE, unless you want to do some fancy footwork. Personally, I find their boards way too cluttered to do commercial development, but they do offer a lot of bang for the buck for students.

Checkout the following for more info on the USB Protocol:

Embedded USB - a brief tutorial

USB interface tutorial covering basic fundamentals

Hope the info helps in your endeavors.
Okay here I am again.......... I am now able to do simple USB communication....... And now I want to make an interface between two mass storage devices so that I can transfer data from one device to another without using a PC..... I want to make it a simple one, that it transfers data of only one format....... I know it's not simple or easy, but I really need help...... Can anyone explain to me the procedure how to do this????

And now I want to make an interface between two mass storage devices so that I can transfer data from one device to another without using a PC.
You'll need a host interface USB processor, e.g. a PIC24. Or more exactly two host interfaces or an additional USB hub. You can e.g. refer to some PIC reference projects that access an USB memory stick. You should also consider, that the throughput provided by full speed USB isn't particularly mind blowing. Depending on your application, it may be meaningful to revert to a high speed USB controller.
I know it's not simple or easy.
That's for sure.

I suggest you to watch

Fundamentals Course from Silicon Laboratories
Fundamentals of USB

**broken link removed** Fundamentals of USB ... Silicon Laboratories : Fundamentals Course July 2011

Last edited by a moderator:

Im new in interfacing usb using pic18f4550, I manage to make the circuit describe in the tutorial found here: **broken link removed**
but my problem was my pc does not detect my device everytime I connect it. yet the led in my device just light on. I need to make my device communicate with my pc. please help...

Not open for further replies.

Part and Inventory Search

Welcome to