ben-arduino-usb

Changeset

36:e82d6c9bf856
2013-03-24 Paul Boddie raw files shortlog changelog graph Added documentation, copyright and licensing information.
README.txt (file) docs/COPYING.txt (file) docs/LICENCE.txt (file) test.c (file)
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/README.txt	Sun Mar 24 01:01:32 2013 +0000
     1.3 @@ -0,0 +1,131 @@
     1.4 +Introduction
     1.5 +------------
     1.6 +
     1.7 +The ben-arduino-usb distribution provides a test program that runs on the Ben
     1.8 +NanoNote and controls USB Host shields designed for the Arduino that employ
     1.9 +the MAX3421E USB Peripheral/Host Controller. To connect a suitable Arduino
    1.10 +shield to the Ben, the 8:10 port which is typically employed to access microSD
    1.11 +cards is instead used to hold a suitable breakout board that exposes the 8:10
    1.12 +port's connectors to other circuits. These connectors are in turn connected to
    1.13 +specific connectors on the Arduino USB Host shield as follows:
    1.14 +
    1.15 +                                                          Sniffer  UBB   Shield
    1.16 +                                                          -------  ----  ------
    1.17 +                     |----------------------------------- DAT2     DAT2       9 (INT)
    1.18 +                     |    |------------------------------ CD       DAT3      10 (SS)
    1.19 +       |-------------+----+------------------------------ CMD      CMD        7 (RESET)
    1.20 +       |             |    |                               VCC      VDD      VIN
    1.21 +       |             |    |               |-------------- CLK      CLK       13 (SCLK)
    1.22 +       |             |    |               |               GND      GND      GND
    1.23 +       |             |    |     |---------+-------------- DAT0     DAT0      11 (MOSI)
    1.24 +       |             |    |     |    |----+-------------- DAT1     DAT1      12 (MISO)
    1.25 +       |             |    |     |    |    |
    1.26 +
    1.27 +RX ... 7        8    9    10    11   12   13   GND  AREF  (shield labelling)
    1.28 +       RESET    GPX  INT  SS    MOSI MISO SCLK            (shield connections)
    1.29 +
    1.30 +Unlike Arduino-based usage of the shield, the GPX pin is not used purely
    1.31 +because the 8:10 port does not expose enough connections.
    1.32 +
    1.33 +To power the shield, a 5V supply needs to be supplied to the shield's VIN
    1.34 +connector and when used in conjunction with an Arduino Duemilanove or other
    1.35 +5V-capable Arduino, the Vin connector in the POWER block of pins will provide
    1.36 +this power. The GND connector on the shield can be connected to the Gnd
    1.37 +connector next to the Vin connector on the Arduino board.
    1.38 +
    1.39 +If an Arduino is to be used to provide power, it is important that it receive
    1.40 +power from a sufficient power source itself. It is not sufficient for the
    1.41 +Arduino to rely on USB bus power from a host computer in order to pass it on
    1.42 +to the shield, especially where a Sparkfun shield is concerned. However, a
    1.43 +suitable power source can be plugged into the "power jack" on the Arduino
    1.44 +board instead of using USB bus power, and the hardware specifications for the
    1.45 +specific shield in question should be consulted so that the correct voltage is
    1.46 +chosen.
    1.47 +
    1.48 +For an Arduino Duemilanove, a power supply of 7V-12V is apparently acceptable
    1.49 +for input into the "power jack", and this solution has been tested with a
    1.50 +power adaptor supplying 9V, with the tip of the adapter's "male" connector
    1.51 +being the positive terminal.
    1.52 +
    1.53 +Warning!
    1.54 +--------
    1.55 +
    1.56 +Do not supply 5V power to any of the connectors used by the Ben. Check that
    1.57 +the shield you are using employs 3.3V power in the controller-related
    1.58 +functions of the board. Connecting the Ben to a peripheral is done at your own
    1.59 +risk.
    1.60 +
    1.61 +Hardware: USB Host Shield
    1.62 +-------------------------
    1.63 +
    1.64 +This software has been developed using the Sparkfun USB Host shield which is
    1.65 +available as product DEV-09947 from various retailers and from Sparkfun:
    1.66 +
    1.67 +https://www.sparkfun.com/products/9947
    1.68 +
    1.69 +Various revisions of this board have been made, but only those labelled with
    1.70 +"5-28-10" on the rear of the board can be assumed to function with the
    1.71 +configuration described above.
    1.72 +
    1.73 +Although the Sparkfun board functions in the above configuration, it may not
    1.74 +be reliable in use with a power supply based on USB bus power coming through
    1.75 +an Arduino board. In addition to this apparent defect, in order for the
    1.76 +Sparkfun board to be usable in Arduino-based solutions (where the software
    1.77 +runs on the Arduino, not the Ben), Sparkfun have relied upon software provided
    1.78 +by Oleg Mazurov who has designed his own USB Host shield based on the
    1.79 +MAX3421E.
    1.80 +
    1.81 +Although Oleg's shield and Sparkfun's shield may be distinct designs, Sparkfun
    1.82 +clearly benefit substantially from Oleg's work and yet compete with him
    1.83 +directly in sales of hardware. Thus, for apparently better reliability under
    1.84 +certain usage conditions and to support Oleg's work, I suggest purchasing a
    1.85 +USB Host Shield product from Circuits At Home:
    1.86 +
    1.87 +http://www.circuitsathome.com/arduino_usb_host_shield_projects
    1.88 +
    1.89 +Hardware: 8:10 Port Breakout Board
    1.90 +----------------------------------
    1.91 +
    1.92 +To connect the Ben NanoNote to the USB Host shield, a suitable breakout board
    1.93 +is required to expose the connections inside the 8:10 slot. To achieve this,
    1.94 +the Sparkfun microSD Sniffer has been used:
    1.95 +
    1.96 +https://www.sparkfun.com/products/9419
    1.97 +
    1.98 +This board is apparently intended for eavesdropping on communications between
    1.99 +a "host" device with a microSD slot and a microSD-based device that can be
   1.100 +inserted into a slot mounted on the board (instead of being inserted directly
   1.101 +into the host device). However, the board-mounted slot can be ignored and the
   1.102 +exposed connections routed to the USB Host shield instead.
   1.103 +
   1.104 +Another board that achieves the same purpose is the Universal Breakout Board
   1.105 +(UBB):
   1.106 +
   1.107 +http://en.qi-hardware.com/wiki/UBB
   1.108 +
   1.109 +The UBB is somewhat more difficult to work with as its connectors are very
   1.110 +small and, compared to the microSD Sniffer, awkward to attach things to. The
   1.111 +microSD Sniffer employs connectors situated around holes with 0.1 inch
   1.112 +spacing, meaning that commonly available connection headers can be soldered
   1.113 +onto the board.
   1.114 +
   1.115 +Although the labelling of the connections is different between the microSD
   1.116 +Sniffer and UBB (see above), the layout appears to be identical.
   1.117 +
   1.118 +Contact, Copyright and Licence Information
   1.119 +------------------------------------------
   1.120 +
   1.121 +The author can be contacted at the following e-mail address:
   1.122 +
   1.123 +paul@boddie.org.uk
   1.124 +
   1.125 +Copyright and licence information can be found in the docs directory - see
   1.126 +docs/COPYING.txt and docs/LICENCE.txt for more information.
   1.127 +
   1.128 +The software being distributed has been developed using the MAX3421E
   1.129 +documentation. Although the author has occasionally consulted Oleg Mazurov's
   1.130 +Arduino libraries for clarification when unexpected behaviour has occurred
   1.131 +when testing this software, this software does not use any code from those
   1.132 +libraries. Nevertheless, the author would like to give credit to Oleg for
   1.133 +demonstrating the feasibility of the MAX3421E solution and thus providing the
   1.134 +motivation to get the hardware working with the Ben NanoNote.
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/docs/COPYING.txt	Sun Mar 24 01:01:32 2013 +0000
     2.3 @@ -0,0 +1,23 @@
     2.4 +Licence Agreement for ben-arduino-usb
     2.5 +-------------------------------------
     2.6 +
     2.7 +Copyright (C) 2013 Paul Boddie
     2.8 +
     2.9 +SPI functions derived from those in lib/atben.c by Werner Almesberger:
    2.10 +
    2.11 +Copyright (C) 2010-2011 Werner Almesberger
    2.12 +
    2.13 +This software is free software; you can redistribute it and/or
    2.14 +modify it under the terms of the GNU General Public License as
    2.15 +published by the Free Software Foundation; either version 2 of
    2.16 +the License, or (at your option) any later version.
    2.17 +
    2.18 +This software is distributed in the hope that it will be useful,
    2.19 +but WITHOUT ANY WARRANTY; without even the implied warranty of
    2.20 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    2.21 +GNU General Public License for more details.
    2.22 +
    2.23 +You should have received a copy of the GNU General Public
    2.24 +License along with this library; see the file LICENCE.txt
    2.25 +If not, write to the Free Software Foundation, Inc.,
    2.26 +51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/docs/LICENCE.txt	Sun Mar 24 01:01:32 2013 +0000
     3.3 @@ -0,0 +1,339 @@
     3.4 +		    GNU GENERAL PUBLIC LICENSE
     3.5 +		       Version 2, June 1991
     3.6 +
     3.7 + Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
     3.8 + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     3.9 + Everyone is permitted to copy and distribute verbatim copies
    3.10 + of this license document, but changing it is not allowed.
    3.11 +
    3.12 +			    Preamble
    3.13 +
    3.14 +  The licenses for most software are designed to take away your
    3.15 +freedom to share and change it.  By contrast, the GNU General Public
    3.16 +License is intended to guarantee your freedom to share and change free
    3.17 +software--to make sure the software is free for all its users.  This
    3.18 +General Public License applies to most of the Free Software
    3.19 +Foundation's software and to any other program whose authors commit to
    3.20 +using it.  (Some other Free Software Foundation software is covered by
    3.21 +the GNU Lesser General Public License instead.)  You can apply it to
    3.22 +your programs, too.
    3.23 +
    3.24 +  When we speak of free software, we are referring to freedom, not
    3.25 +price.  Our General Public Licenses are designed to make sure that you
    3.26 +have the freedom to distribute copies of free software (and charge for
    3.27 +this service if you wish), that you receive source code or can get it
    3.28 +if you want it, that you can change the software or use pieces of it
    3.29 +in new free programs; and that you know you can do these things.
    3.30 +
    3.31 +  To protect your rights, we need to make restrictions that forbid
    3.32 +anyone to deny you these rights or to ask you to surrender the rights.
    3.33 +These restrictions translate to certain responsibilities for you if you
    3.34 +distribute copies of the software, or if you modify it.
    3.35 +
    3.36 +  For example, if you distribute copies of such a program, whether
    3.37 +gratis or for a fee, you must give the recipients all the rights that
    3.38 +you have.  You must make sure that they, too, receive or can get the
    3.39 +source code.  And you must show them these terms so they know their
    3.40 +rights.
    3.41 +
    3.42 +  We protect your rights with two steps: (1) copyright the software, and
    3.43 +(2) offer you this license which gives you legal permission to copy,
    3.44 +distribute and/or modify the software.
    3.45 +
    3.46 +  Also, for each author's protection and ours, we want to make certain
    3.47 +that everyone understands that there is no warranty for this free
    3.48 +software.  If the software is modified by someone else and passed on, we
    3.49 +want its recipients to know that what they have is not the original, so
    3.50 +that any problems introduced by others will not reflect on the original
    3.51 +authors' reputations.
    3.52 +
    3.53 +  Finally, any free program is threatened constantly by software
    3.54 +patents.  We wish to avoid the danger that redistributors of a free
    3.55 +program will individually obtain patent licenses, in effect making the
    3.56 +program proprietary.  To prevent this, we have made it clear that any
    3.57 +patent must be licensed for everyone's free use or not licensed at all.
    3.58 +
    3.59 +  The precise terms and conditions for copying, distribution and
    3.60 +modification follow.
    3.61 +
    3.62 +		    GNU GENERAL PUBLIC LICENSE
    3.63 +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    3.64 +
    3.65 +  0. This License applies to any program or other work which contains
    3.66 +a notice placed by the copyright holder saying it may be distributed
    3.67 +under the terms of this General Public License.  The "Program", below,
    3.68 +refers to any such program or work, and a "work based on the Program"
    3.69 +means either the Program or any derivative work under copyright law:
    3.70 +that is to say, a work containing the Program or a portion of it,
    3.71 +either verbatim or with modifications and/or translated into another
    3.72 +language.  (Hereinafter, translation is included without limitation in
    3.73 +the term "modification".)  Each licensee is addressed as "you".
    3.74 +
    3.75 +Activities other than copying, distribution and modification are not
    3.76 +covered by this License; they are outside its scope.  The act of
    3.77 +running the Program is not restricted, and the output from the Program
    3.78 +is covered only if its contents constitute a work based on the
    3.79 +Program (independent of having been made by running the Program).
    3.80 +Whether that is true depends on what the Program does.
    3.81 +
    3.82 +  1. You may copy and distribute verbatim copies of the Program's
    3.83 +source code as you receive it, in any medium, provided that you
    3.84 +conspicuously and appropriately publish on each copy an appropriate
    3.85 +copyright notice and disclaimer of warranty; keep intact all the
    3.86 +notices that refer to this License and to the absence of any warranty;
    3.87 +and give any other recipients of the Program a copy of this License
    3.88 +along with the Program.
    3.89 +
    3.90 +You may charge a fee for the physical act of transferring a copy, and
    3.91 +you may at your option offer warranty protection in exchange for a fee.
    3.92 +
    3.93 +  2. You may modify your copy or copies of the Program or any portion
    3.94 +of it, thus forming a work based on the Program, and copy and
    3.95 +distribute such modifications or work under the terms of Section 1
    3.96 +above, provided that you also meet all of these conditions:
    3.97 +
    3.98 +    a) You must cause the modified files to carry prominent notices
    3.99 +    stating that you changed the files and the date of any change.
   3.100 +
   3.101 +    b) You must cause any work that you distribute or publish, that in
   3.102 +    whole or in part contains or is derived from the Program or any
   3.103 +    part thereof, to be licensed as a whole at no charge to all third
   3.104 +    parties under the terms of this License.
   3.105 +
   3.106 +    c) If the modified program normally reads commands interactively
   3.107 +    when run, you must cause it, when started running for such
   3.108 +    interactive use in the most ordinary way, to print or display an
   3.109 +    announcement including an appropriate copyright notice and a
   3.110 +    notice that there is no warranty (or else, saying that you provide
   3.111 +    a warranty) and that users may redistribute the program under
   3.112 +    these conditions, and telling the user how to view a copy of this
   3.113 +    License.  (Exception: if the Program itself is interactive but
   3.114 +    does not normally print such an announcement, your work based on
   3.115 +    the Program is not required to print an announcement.)
   3.116 +
   3.117 +These requirements apply to the modified work as a whole.  If
   3.118 +identifiable sections of that work are not derived from the Program,
   3.119 +and can be reasonably considered independent and separate works in
   3.120 +themselves, then this License, and its terms, do not apply to those
   3.121 +sections when you distribute them as separate works.  But when you
   3.122 +distribute the same sections as part of a whole which is a work based
   3.123 +on the Program, the distribution of the whole must be on the terms of
   3.124 +this License, whose permissions for other licensees extend to the
   3.125 +entire whole, and thus to each and every part regardless of who wrote it.
   3.126 +
   3.127 +Thus, it is not the intent of this section to claim rights or contest
   3.128 +your rights to work written entirely by you; rather, the intent is to
   3.129 +exercise the right to control the distribution of derivative or
   3.130 +collective works based on the Program.
   3.131 +
   3.132 +In addition, mere aggregation of another work not based on the Program
   3.133 +with the Program (or with a work based on the Program) on a volume of
   3.134 +a storage or distribution medium does not bring the other work under
   3.135 +the scope of this License.
   3.136 +
   3.137 +  3. You may copy and distribute the Program (or a work based on it,
   3.138 +under Section 2) in object code or executable form under the terms of
   3.139 +Sections 1 and 2 above provided that you also do one of the following:
   3.140 +
   3.141 +    a) Accompany it with the complete corresponding machine-readable
   3.142 +    source code, which must be distributed under the terms of Sections
   3.143 +    1 and 2 above on a medium customarily used for software interchange; or,
   3.144 +
   3.145 +    b) Accompany it with a written offer, valid for at least three
   3.146 +    years, to give any third party, for a charge no more than your
   3.147 +    cost of physically performing source distribution, a complete
   3.148 +    machine-readable copy of the corresponding source code, to be
   3.149 +    distributed under the terms of Sections 1 and 2 above on a medium
   3.150 +    customarily used for software interchange; or,
   3.151 +
   3.152 +    c) Accompany it with the information you received as to the offer
   3.153 +    to distribute corresponding source code.  (This alternative is
   3.154 +    allowed only for noncommercial distribution and only if you
   3.155 +    received the program in object code or executable form with such
   3.156 +    an offer, in accord with Subsection b above.)
   3.157 +
   3.158 +The source code for a work means the preferred form of the work for
   3.159 +making modifications to it.  For an executable work, complete source
   3.160 +code means all the source code for all modules it contains, plus any
   3.161 +associated interface definition files, plus the scripts used to
   3.162 +control compilation and installation of the executable.  However, as a
   3.163 +special exception, the source code distributed need not include
   3.164 +anything that is normally distributed (in either source or binary
   3.165 +form) with the major components (compiler, kernel, and so on) of the
   3.166 +operating system on which the executable runs, unless that component
   3.167 +itself accompanies the executable.
   3.168 +
   3.169 +If distribution of executable or object code is made by offering
   3.170 +access to copy from a designated place, then offering equivalent
   3.171 +access to copy the source code from the same place counts as
   3.172 +distribution of the source code, even though third parties are not
   3.173 +compelled to copy the source along with the object code.
   3.174 +
   3.175 +  4. You may not copy, modify, sublicense, or distribute the Program
   3.176 +except as expressly provided under this License.  Any attempt
   3.177 +otherwise to copy, modify, sublicense or distribute the Program is
   3.178 +void, and will automatically terminate your rights under this License.
   3.179 +However, parties who have received copies, or rights, from you under
   3.180 +this License will not have their licenses terminated so long as such
   3.181 +parties remain in full compliance.
   3.182 +
   3.183 +  5. You are not required to accept this License, since you have not
   3.184 +signed it.  However, nothing else grants you permission to modify or
   3.185 +distribute the Program or its derivative works.  These actions are
   3.186 +prohibited by law if you do not accept this License.  Therefore, by
   3.187 +modifying or distributing the Program (or any work based on the
   3.188 +Program), you indicate your acceptance of this License to do so, and
   3.189 +all its terms and conditions for copying, distributing or modifying
   3.190 +the Program or works based on it.
   3.191 +
   3.192 +  6. Each time you redistribute the Program (or any work based on the
   3.193 +Program), the recipient automatically receives a license from the
   3.194 +original licensor to copy, distribute or modify the Program subject to
   3.195 +these terms and conditions.  You may not impose any further
   3.196 +restrictions on the recipients' exercise of the rights granted herein.
   3.197 +You are not responsible for enforcing compliance by third parties to
   3.198 +this License.
   3.199 +
   3.200 +  7. If, as a consequence of a court judgment or allegation of patent
   3.201 +infringement or for any other reason (not limited to patent issues),
   3.202 +conditions are imposed on you (whether by court order, agreement or
   3.203 +otherwise) that contradict the conditions of this License, they do not
   3.204 +excuse you from the conditions of this License.  If you cannot
   3.205 +distribute so as to satisfy simultaneously your obligations under this
   3.206 +License and any other pertinent obligations, then as a consequence you
   3.207 +may not distribute the Program at all.  For example, if a patent
   3.208 +license would not permit royalty-free redistribution of the Program by
   3.209 +all those who receive copies directly or indirectly through you, then
   3.210 +the only way you could satisfy both it and this License would be to
   3.211 +refrain entirely from distribution of the Program.
   3.212 +
   3.213 +If any portion of this section is held invalid or unenforceable under
   3.214 +any particular circumstance, the balance of the section is intended to
   3.215 +apply and the section as a whole is intended to apply in other
   3.216 +circumstances.
   3.217 +
   3.218 +It is not the purpose of this section to induce you to infringe any
   3.219 +patents or other property right claims or to contest validity of any
   3.220 +such claims; this section has the sole purpose of protecting the
   3.221 +integrity of the free software distribution system, which is
   3.222 +implemented by public license practices.  Many people have made
   3.223 +generous contributions to the wide range of software distributed
   3.224 +through that system in reliance on consistent application of that
   3.225 +system; it is up to the author/donor to decide if he or she is willing
   3.226 +to distribute software through any other system and a licensee cannot
   3.227 +impose that choice.
   3.228 +
   3.229 +This section is intended to make thoroughly clear what is believed to
   3.230 +be a consequence of the rest of this License.
   3.231 +
   3.232 +  8. If the distribution and/or use of the Program is restricted in
   3.233 +certain countries either by patents or by copyrighted interfaces, the
   3.234 +original copyright holder who places the Program under this License
   3.235 +may add an explicit geographical distribution limitation excluding
   3.236 +those countries, so that distribution is permitted only in or among
   3.237 +countries not thus excluded.  In such case, this License incorporates
   3.238 +the limitation as if written in the body of this License.
   3.239 +
   3.240 +  9. The Free Software Foundation may publish revised and/or new versions
   3.241 +of the General Public License from time to time.  Such new versions will
   3.242 +be similar in spirit to the present version, but may differ in detail to
   3.243 +address new problems or concerns.
   3.244 +
   3.245 +Each version is given a distinguishing version number.  If the Program
   3.246 +specifies a version number of this License which applies to it and "any
   3.247 +later version", you have the option of following the terms and conditions
   3.248 +either of that version or of any later version published by the Free
   3.249 +Software Foundation.  If the Program does not specify a version number of
   3.250 +this License, you may choose any version ever published by the Free Software
   3.251 +Foundation.
   3.252 +
   3.253 +  10. If you wish to incorporate parts of the Program into other free
   3.254 +programs whose distribution conditions are different, write to the author
   3.255 +to ask for permission.  For software which is copyrighted by the Free
   3.256 +Software Foundation, write to the Free Software Foundation; we sometimes
   3.257 +make exceptions for this.  Our decision will be guided by the two goals
   3.258 +of preserving the free status of all derivatives of our free software and
   3.259 +of promoting the sharing and reuse of software generally.
   3.260 +
   3.261 +			    NO WARRANTY
   3.262 +
   3.263 +  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
   3.264 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
   3.265 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
   3.266 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
   3.267 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   3.268 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
   3.269 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
   3.270 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
   3.271 +REPAIR OR CORRECTION.
   3.272 +
   3.273 +  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
   3.274 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
   3.275 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
   3.276 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
   3.277 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
   3.278 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
   3.279 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
   3.280 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
   3.281 +POSSIBILITY OF SUCH DAMAGES.
   3.282 +
   3.283 +		     END OF TERMS AND CONDITIONS
   3.284 +
   3.285 +	    How to Apply These Terms to Your New Programs
   3.286 +
   3.287 +  If you develop a new program, and you want it to be of the greatest
   3.288 +possible use to the public, the best way to achieve this is to make it
   3.289 +free software which everyone can redistribute and change under these terms.
   3.290 +
   3.291 +  To do so, attach the following notices to the program.  It is safest
   3.292 +to attach them to the start of each source file to most effectively
   3.293 +convey the exclusion of warranty; and each file should have at least
   3.294 +the "copyright" line and a pointer to where the full notice is found.
   3.295 +
   3.296 +    <one line to give the program's name and a brief idea of what it does.>
   3.297 +    Copyright (C) <year>  <name of author>
   3.298 +
   3.299 +    This program is free software; you can redistribute it and/or modify
   3.300 +    it under the terms of the GNU General Public License as published by
   3.301 +    the Free Software Foundation; either version 2 of the License, or
   3.302 +    (at your option) any later version.
   3.303 +
   3.304 +    This program is distributed in the hope that it will be useful,
   3.305 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   3.306 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   3.307 +    GNU General Public License for more details.
   3.308 +
   3.309 +    You should have received a copy of the GNU General Public License along
   3.310 +    with this program; if not, write to the Free Software Foundation, Inc.,
   3.311 +    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
   3.312 +
   3.313 +Also add information on how to contact you by electronic and paper mail.
   3.314 +
   3.315 +If the program is interactive, make it output a short notice like this
   3.316 +when it starts in an interactive mode:
   3.317 +
   3.318 +    Gnomovision version 69, Copyright (C) year name of author
   3.319 +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
   3.320 +    This is free software, and you are welcome to redistribute it
   3.321 +    under certain conditions; type `show c' for details.
   3.322 +
   3.323 +The hypothetical commands `show w' and `show c' should show the appropriate
   3.324 +parts of the General Public License.  Of course, the commands you use may
   3.325 +be called something other than `show w' and `show c'; they could even be
   3.326 +mouse-clicks or menu items--whatever suits your program.
   3.327 +
   3.328 +You should also get your employer (if you work as a programmer) or your
   3.329 +school, if any, to sign a "copyright disclaimer" for the program, if
   3.330 +necessary.  Here is a sample; alter the names:
   3.331 +
   3.332 +  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
   3.333 +  `Gnomovision' (which makes passes at compilers) written by James Hacker.
   3.334 +
   3.335 +  <signature of Ty Coon>, 1 April 1989
   3.336 +  Ty Coon, President of Vice
   3.337 +
   3.338 +This General Public License does not permit incorporating your program into
   3.339 +proprietary programs.  If your program is a subroutine library, you may
   3.340 +consider it more useful to permit linking proprietary applications with the
   3.341 +library.  If this is what you want to do, use the GNU Lesser General
   3.342 +Public License instead of this License.
     4.1 --- a/test.c	Sat Mar 23 22:13:00 2013 +0000
     4.2 +++ b/test.c	Sun Mar 24 01:01:32 2013 +0000
     4.3 @@ -1,11 +1,11 @@
     4.4  /*
     4.5   * Ben NanoNote and Arduino USB Host shield communication.
     4.6   *
     4.7 - * Copyright 2013 Paul Boddie
     4.8 + * Copyright (C) 2013 Paul Boddie
     4.9   *
    4.10   * SPI functions derived from those in lib/atben.c by Werner Almesberger:
    4.11   *
    4.12 - * Copyright 2010-2011 Werner Almesberger
    4.13 + * Copyright (C) 2010-2011 Werner Almesberger
    4.14   *
    4.15   * This program is free software; you can redistribute it and/or modify
    4.16   * it under the terms of the GNU General Public License as published by