<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://www.robmeerman.co.uk/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://www.robmeerman.co.uk/feed.php">
        <title>RobMeerman.co.uk project:usb:code</title>
        <description></description>
        <link>http://www.robmeerman.co.uk/</link>
        <image rdf:resource="http://www.robmeerman.co.uk/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-29T07:20:56+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://www.robmeerman.co.uk/project/usb/code/enumerated?rev=1177633300&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.robmeerman.co.uk/project/usb/code/enumerated2?rev=1177633301&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.robmeerman.co.uk/project/usb/code/goodlink?rev=1177633301&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.robmeerman.co.uk/project/usb/code/hello_world?rev=1177633301&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.robmeerman.co.uk/project/usb/code/hid-mouse?rev=1177633303&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.robmeerman.co.uk/project/usb/code/joystick?rev=1177633304&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://www.robmeerman.co.uk/lib/tpl/dokuwiki/images/favicon.ico">
        <title>RobMeerman.co.uk</title>
        <link>http://www.robmeerman.co.uk/</link>
        <url>http://www.robmeerman.co.uk/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="http://www.robmeerman.co.uk/project/usb/code/enumerated?rev=1177633300&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-27T00:21:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Enumerated</title>
        <link>http://www.robmeerman.co.uk/project/usb/code/enumerated?rev=1177633300&amp;do=diff</link>
        <description>Enumerated

Here is the code as it stood when I first got the firmware to enumerate as an HID Device on Windows XP Pro SP2 without errors. Note that this code only seems to work at debugging level 5, or when debugging is disabled (via commenting #define __DEBUGGING_ENABLED</description>
    </item>
    <item rdf:about="http://www.robmeerman.co.uk/project/usb/code/enumerated2?rev=1177633301&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-27T00:21:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Enumerated2</title>
        <link>http://www.robmeerman.co.uk/project/usb/code/enumerated2?rev=1177633301&amp;do=diff</link>
        <description>Enumerated2

Like Enumerated, except that this uses ROM to keep the descriptors --- which does unfortunately mean repeating blocks of code, as pointers cannot be used to access the ROM.

[Download compiled HEX firmware]


#include &lt;16f877.h&gt;

//--------------------------------------------------------
// Setup PIC and CCS compiler
#fuses XT, PUT, NOWDT, NOPROTECT
#use delay(clock = 4000000)

#use rs232(baud = 19200, xmit = PIN_C6, rcv = PIN_C7, disable_ints)
// By using C6 and C7, we will make us…</description>
    </item>
    <item rdf:about="http://www.robmeerman.co.uk/project/usb/code/goodlink?rev=1177633301&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-27T00:21:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>GoodLink(TM) code</title>
        <link>http://www.robmeerman.co.uk/project/usb/code/goodlink?rev=1177633301&amp;do=diff</link>
        <description>GoodLink(TM) code

Below is the code I needed to get the PDIUSBD12's GoodLink(TM) indicator to come on. Naturally this code runs on the PIC16F877 of my project, which is wired up as described on in the #defines as well as the USB page.

Below is a screenshot of HyperTerminal interacting with the system running this code. For more information on the PIC</description>
    </item>
    <item rdf:about="http://www.robmeerman.co.uk/project/usb/code/hello_world?rev=1177633301&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-27T00:21:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Hello World!</title>
        <link>http://www.robmeerman.co.uk/project/usb/code/hello_world?rev=1177633301&amp;do=diff</link>
        <description>Hello World!

For those having trouble getting started on their projects, here is a copy of a “Hello World!” program to test your RS232 serial link is working reliably. Then run, your PIC16F877 will blink an LED and print “Hello World!” once a second forever.</description>
    </item>
    <item rdf:about="http://www.robmeerman.co.uk/project/usb/code/hid-mouse?rev=1177633303&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-27T00:21:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>HID-Mouse</title>
        <link>http://www.robmeerman.co.uk/project/usb/code/hid-mouse?rev=1177633303&amp;do=diff</link>
        <description>HID-Mouse

This firmware enumerates the device as an HID-complient device, and then further 'enumerates' as a HID-Mouse (called “MeerMouse” ;-)).

It doesn't appear to work on all machines though, as best I can tell it doesn't work on systems that do not have enhanced device drivers for the hubs loaded. It works fine on my laptop and my housemates machine, just doesn't like my dekstop as best I can tell. Ahh well.</description>
    </item>
    <item rdf:about="http://www.robmeerman.co.uk/project/usb/code/joystick?rev=1177633304&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2007-04-27T00:21:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Joystick</title>
        <link>http://www.robmeerman.co.uk/project/usb/code/joystick?rev=1177633304&amp;do=diff</link>
        <description>Joystick

This is my near-complete code, I don't think I'll have any time to actually “finish” it, so I'll outline it's shortcomings here:

	*  A HID-Class Get_Report request has never sent non-zero data in my experiments, but this may be because Get_Report and Set_Report were being issued at the same time</description>
    </item>
</rdf:RDF>
