PicIo Chip Hobby IO Subsystem

Home & My Bots
Better Mouse TrapJetPuck  Droid AppPicMap  ToolAstroSpotterPicIo Hobby  IOGuitar  Effect/DspRay Tracing
About Mark-Toys
Kool LinksMicroChip Hobby  EngineeringDigiKey

The PicIo Chip IO Subsystem

Over the last few years it has become clear that USB-controlled devices are the best method to control many low-cost electronic devices.  Most all  PCs now come standard with USB ports and the cost of the microcontroller required to use USB on a project has dropped dramatically.

The project being developed can be the developer's main focus while you leave the complex and time consuming tasks required to develop USB communications to the PicIo Chip and its partner DLL.   An example .NET project can be used a s a starting point or example code so a great deal of time is saved in getting a prototype going.  A simple GUI has been developed to play with the PicIO chip that supports simple reading of analog channels and assorted output to the chip.  This will be presented later on this page.

PicIo Chip is my attempt to take all of this complexity and development time out of that formula so that a much larger number of hobby projects and small little devices could be easily developed with as little as possible effort and technical understanding on the part of the end designer.   This allows the 'real' project to get going far quicker and with much less pain.

Besides offering manys lines of digital IO for reading switches or setting hardware, the smallest PicIo chip can read 5  analog lines.    The analog lines are a great way to read a simple knob or even read things like a low-cost temperature sensor.   

Plus with the built in I2C support you have the easy choice of attaching a very large array of components to very easily add digital to analog ability (DACs) as well as digital pots or even more digital IO.  More on the IO and I2C choices later on this page.

Does the
PicIo approach to a project match your needs as a developer?

The idea of the PicIo chip approach is to allow developers of USB-controlled projects  to get started quickly on the end-project without getting discouraged in the details and complexities required in the full 'start from scratch' approach to using USB with Pic microcomputers.
Do not underestimate the task of a ground up approachFor people who are new to making electronic projects or is the time you want to spend developing the project limited then the PicIo approach will lower the hurdles significantly.

See the schematic for a simple base design that you can add to as you develop your project.   You may also view a picture of the prototype circuit  which shows just  how easy and how few parts it takes to get going with a PicIo Chip.

IO Choices To Expand The PicIO chip on it's own

A nice and cheap Temperature sensor that works well with the A/D ports on the PicIo chip is the LM35CZ that comes in a 3-pin package with ground, +5 and the temperature out pin.  Of course even a simple pot between o to 5V is ideal for the analog inputs and simple switches with a tie to +5v using a resistor can be digital inputs.

You may also want to pick up LEDs and resistors from
Radio Shack  or DigiKey as the PicIo chip can drive an LED to ground given a 10k or so resistor is also used to limit the current.

Below are shown some I2C parts but you will find there are many assorted devices for functions such as  digital to analog converters,  variable resistors and many other devices.  There are a few good web pages that have assembled many useful parts that I hope to link to soon as well.   .

Part                       Function                    Package             Adaptor
PCF8574              8 bits of digital IO        0.3"  dip            Not Required
PCF8574A           8 bits of digital IO        0.3"  dip            Not Required
AD5337                Dual 8-bit DAC          8-pin MSOP     33108CA-ND
AD5172BRM10    Dual 10k pot              10-pin MSOP   33010CA-ND
SN75453               Relay or lamp driver    8-pin DIP          Not required
UCN5804              Stepper motor driver

You will find several devices are not available in 0.3" spacing DIP packages. The 8-bit PCF8574 device comes in two part numbers that have different base addresses on I2C in case you need more than 8 of these devices. You can get adapters for surface mount components to use them in through hole boards and breadboards.   DigiKey carries a wide assortment of these called  'Surfboards'.  You need very good soldering equipment and good eyes along with steady hands to solder these little puppies.

Here is a screen shot of the simple PC program I had done to verify the PicIo chip circuit and test out new IO via I2C or other IO.  This was done in VisualC around 2003 so may be dated.  I have seen it run on XP which is a bit dated now but suspect it may be fine still.

Demo GUI For Breadboard Experiments

PicIoControl Demo GUI

Battery Loading Tester Project

There are of course all sorts of things you can do with such a subsystem.   Below I am showing a program that keeps track of 4 batteries that are being discharged so I could monitor battery voltage drop over time.  This is rather odd perhaps to many but my point here is once you get going on this approach you can focus on your goal and not waste a lot of time sorting out the USB and IO and so on that generally make project take a very long time.  This went toghether very quickly due to the io and USB being onhand at step 1.

PicIoBattery Tester

The above battery load tester  was developed from the sample demo GUI for PicIoChips.  This involves knowing how to work with Visual C++ .NET .    What is of note is that  this application uses very little code and hooks up over USB to the PicIo chip using the DLL library to be discussed later in this site's pages.   This project talks to the PicIo subsystem that attaches to a computer via USB.

Free Application And Chip Firmware Package

You can use this starting project as a head start for your own project or just as examples to see how things are done. The .hex file is there to burn your own part and the ReadyToRun directory contains the sample project 'ready to run'.  For XP just plug in the USB and a new HID device will show up in Device Manager if all is well.   I took the Visual Basic project off of this download  because I am not keeping it up to date.   The zip unpacks to 1 directory and the main vcproj  make  is the one to be using with Visual C++ 7.0   ( .NET 2003 ).  As I have time other application code may appear here for Visual Basic.

If you have 'money to burn' you can donate and I can assure you I will use that money   ;-)

This is easiest if you use the  secure Pay-Pal payment and you will select any amount you like.   If you do not have a Pay-Pal account, you can  just select to use a secure credit card donation from the same link shown below.


This free software is offered as-is for personal usage only.  The user of this software assumes all responsibility for the consequences of its usage.  
(I blame society for the need to have the above disclaimer)

Visual Studio C++ 7.0  (.NET) project, ready to go program, and PicIo bits

The PicIo chip bits to burn your own part are the .hex file and the schematic and project build instructions  are also in the zip.   You do not need the  HID driver for XP but may need it for Windows 2000.   The  software is  only tested on  XP.

HID Driver Not Needed For Windows XP

AND do not forget that you can get the (still free)  DbgView message viewer  that PicIoApi.Dll supports from   the most excellent debug site of  www.SysInternals.com