Setting up a PIC environment (but which one? how?)

After discussing with David Rowe, I set forth to design an open, low-cost USB FXS board. After David’s advice, I also found that a PIC microprocessor would be the best choice for this, both because PICs are very versatile devices with built-in USB functionality and because they are cheap enough.

Before going on, I must confess that I am not  an electronics professional. My field is totally different (I am a PhD-level computer and network engineer) and my only experience with electronics is this of an experienced enthusiast. Never before had I undertaken a task so difficult as this. However, I had confidence in my ability to understand and combine bits and pieces from other people’s designs and I found the idea interesting enough. So I said, what the heck, maybe I can do it after all.

That having been said, my first task was to decide the right PIC to use. Parameters: it must have USB functionality and it must be cheap. However, I needed to have a development environment to, ahem, develop (read: spend hours and hours of debugging) the required firmware for the PIC, right? How would I do this?

I started from the ATMega project that I had looked into before proposing it to David. I had proposed it because I thought it would be best to be able to use the USB as a bootloader. So I googled a while, and came up with this design by nuxie1 (BTW, the winner of a recent hackaday design challenge competition).

Nuxie1’s board was easy, I could produce it myself and I could learn a little PIC internals before going into my own design. And this board is based on a PIC2450/2550, which has USB! And, most important of all, Nuxie1 supplied a modified boot loader based on Microchip’s own boot loader for their development board, so I could well use the USB connection to upload and endless series of (my) firmware versions onto the PIC! Thanks Nuxie1, this is exactly what I was looking for!

Nuxie1’s PIC board, assembled

After etching the PCB and soldering everything as required, I needed to somehow get the bootloader loaded into the PIC. Even the programmer for that had to be open, so I used a design named  FD-ART2003 (again googled) by foxdelta, a PIC programmer that uses the parallel port of the PC to power the PIC, plus a little program called Winpic800v3.59. I would use these to program my board’s PIC with the initial USB boot loader firmware provided by nuxie1.

Foxdelta’s ART2003 PIC programmer board, assembled

When programming the PIC, I ignored an unimportant little error message generated by the Winpic program (a little something about the LVP configuration setting). As it turned out, I had better not overlook this message — but this is covered in my next post!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: