As an experiment I have decided to make this project Open Source. What does that mean? I have decided to make available everything so that people can develop and modify the design of the Pencam Controller. This includes the schematics, microcontroller firmware source code and board layout files. Provided you know what all this stuff is you should be able to modify the design for your own purposes. The only restriction is you must contribute any changes, enhancements, bug fixes etc. back to the project. You can even sell the controller if you choose as long as you agree to also make any of your design changes freely available. For instance, I don't sell assembled controllers, If you want to make a batch of them and sell them to your club members, fine. I will still continue to sell kits.
License and Legal Stuff
I don't have any experience writing legalese and disclaimers but I'll give it a shot. I welcome any improvements to this wording if possible. This design is being made available under a fairly typical open source license. You may use and modify this design to your heart's content. Any modifications to this design must be, in turn, made available in it's entirety under these sames conditions. Any use of this code or design to any extent for commercial purposes will render those products fully open as well and must follow these restrictions. This includes but is not limited to hardware designs, software, interface tools and schematics.
This design is being made available with no warantees express or implied. No suitability to any task is promised. Implement and use this design at your own risk.
The board layout files are done using the free software provided by ExpressPCB. Using their software you can place orders for your own circuit boards. You can also modify the layout if you wish. Circuit boards ordered from ExpressPCB are very reasonably priced when ordered in quantity. If you only need small quantities you may order them from me. If you would like to contribute a version of this board layout in a more universal format please contact me.
Firmware Source Code
The source code is in fairly good shape and should compile using MPLAB or GPASM. The code makes extensive use of macros to make the code more readable. I invite you to peruse, study, comment, tweak, modify, experiment etc. I look forward to hearing from you.
The AYUCR Firmware Updater is written in C# and uses the Microsoft .NET Framework 1.1. I chose this for ease of programming. It is actually my first attempt at a C# program so I invite and comments.
This is the source for the Perl bootloader driver. It is a Perl program written and tested on Linux. It uses Device::SerialPort for for serial I/O. If you use Mac OS X the Perl code is probably not a problem but I am not sure if the Device::SerialPort package is available and how/if it works with the necessary USB/Serial cable you would need. There is Win32::SerialPort for ActiveState Perl under windows and the calls are supposed to be similar but I am not sure. What is really needed is for a windows hack to write a windows driver. Any takers?
To use the driver:
upfirm <firmware .hex file>