<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Tim Hentenaar's Blog - Linux</title>
    <link>http://xodian.net/serendipity/</link>
    <description></description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.2 - http://www.s9y.org/</generator>
    <pubDate>Tue, 15 Dec 2009 03:24:16 GMT</pubDate>

    <image>
        <url>http://xodian.net/serendipity/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Tim Hentenaar's Blog - Linux - </title>
        <link>http://xodian.net/serendipity/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Control Software for the Inland USB LED Badge</title>
    <link>http://xodian.net/serendipity/index.php?/archives/41-Control-Software-for-the-Inland-USB-LED-Badge.html</link>
            <category>Linux</category>
            <category>Programming</category>
    
    <comments>http://xodian.net/serendipity/index.php?/archives/41-Control-Software-for-the-Inland-USB-LED-Badge.html#comments</comments>
    <wfw:comment>http://xodian.net/serendipity/wfwcomment.php?cid=41</wfw:comment>

    <slash:comments>11</slash:comments>
    <wfw:commentRss>http://xodian.net/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=41</wfw:commentRss>
    

    <author>nospam@example.com (Tim Hentenaar)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_image&quot;&gt;&lt;!-- s9ymdb:49 --&gt;&lt;img width=&quot;390&quot; height=&quot;321&quot; border=&quot;0&quot; src=&quot;http://xodian.net/serendipity/uploads/badge_pic.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update 12/14/09:&lt;/strong&gt; I&#039;ve moved the code for this program to &lt;a href=&quot;http://github.com/thentenaar&quot;&gt;GitHub&lt;/a&gt; and now provide binary packages. See the &lt;a href=&quot;http://github.com/thentenaar/usb-badge/blob/master/README&quot;&gt;README&lt;/a&gt; for details.&lt;br /&gt;
&lt;br /&gt;
I bought one of these at Micro Center a couple of weeks ago (I just now got around to posting the code -- I&#039;ve been busy with a few other things) because I wanted to flex my reverse engineering muscles, and work with &lt;a href=&quot;http://libhid.alioth.debian.org/&quot;&gt;libhid.&lt;/a&gt; I knew there was no way in hell it would come with control software for Linux, and at $14.99 it was quite affordable.&lt;br /&gt;
&lt;br /&gt;
0x04d9:0xe002&lt;br /&gt;
USB Vendor  ID: 0x04d9 Holtek Semiconductor, Inc.&lt;br /&gt;
USB Product ID: 0xe002 FURI KEYSHINE USB LED Badge&lt;br /&gt;
&lt;br /&gt;
You can download the source &lt;a href=&quot;http://github.com/thentenaar/usb-badge&quot;&gt;here.&lt;/a&gt; The program is written in C, and licensed under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-3.0.txt&quot;&gt;GNU GPLv3&lt;/a&gt;. Instructions for how to compile the program are included in the &lt;em&gt;README&lt;/em&gt;. You&#039;ll find the original documentation (converted to PDF) in the &lt;em&gt;doc&lt;/em&gt; directory. Please make sure the badge is connected before running the program.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Requirements&lt;/strong&gt;:&lt;br /&gt;
    - GTK+ &gt;= 2.14&lt;br /&gt;
    - libusb &gt;= 0.1 (Legacy version - libusb 1.x has a much different API)&lt;br /&gt;
    - libhid  &gt;= 0.2.16&lt;br /&gt;
    - pkg-config, GLib/GDK/GTK+ headers, libusb headers, libhid headers, etc.&lt;br /&gt;
&lt;br /&gt;
Upon starting the program, you&#039;ll see the following window:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 423px; border: 0px;&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:51 --&gt;&lt;img width=&quot;423&quot; height=&quot;301&quot;  src=&quot;http://xodian.net/serendipity/uploads/Screenshot-USBLEDBadge.png&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve used the manufacturer-supplied Delphi progam, then this should seem fairly familiar. If not, it should be fairly obvious what each field is for. The first four fields are text input fields corresponding to the first four messages that can be stored on the device. You simply enter the text you want, choose a speed (the higher the number, the faster the action happens), and an action (e.g. &quot;Move.&quot;)&lt;br /&gt;
&lt;br /&gt;
The final two fields are for the two bitmap messages available on the device. If you click on the image, a bitmap editor dialog will appear:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 605px; border: 0px;&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:50 --&gt;&lt;img width=&quot;605&quot; height=&quot;206&quot;  src=&quot;http://xodian.net/serendipity/uploads/Screenshot-BitmapEditor.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
By clicking in the grid, you can set or unset the pixels that comprise the image displayed. If you right click on the grid, you&#039;ll get an option to clear the bitmap. When you&#039;re done with a bitmap, close the dialog.&lt;br /&gt;
&lt;br /&gt;
The last input item is the &quot;Luminance&quot; spin button. This will set the luminance (intensity) for the LEDs. The default is usually sufficient.&lt;br /&gt;
&lt;br /&gt;
When you click &quot;Send,&quot; the data will be sent to the device, and you&#039;ll be ready to disconnect the device and use it.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 24 Mar 2009 02:33:36 -0400</pubDate>
    <guid isPermaLink="false">http://xodian.net/serendipity/index.php?/archives/41-guid.html</guid>
    
</item>
<item>
    <title>PSX-GS 1.0 Released</title>
    <link>http://xodian.net/serendipity/index.php?/archives/19-PSX-GS-1.0-Released.html</link>
            <category>Linux</category>
            <category>Programming</category>
    
    <comments>http://xodian.net/serendipity/index.php?/archives/19-PSX-GS-1.0-Released.html#comments</comments>
    <wfw:comment>http://xodian.net/serendipity/wfwcomment.php?cid=19</wfw:comment>

    <slash:comments>36</slash:comments>
    <wfw:commentRss>http://xodian.net/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=19</wfw:commentRss>
    

    <author>nospam@example.com (Tim Hentenaar)</author>
    <content:encoded>
    Today, I&#039;m releasing PSX-GS -- a plugin for epsxe and other PSEmu-compatible emulators on Linux to allow the use of Game Shark / Pro Action Replay codes. Winblows users have had this functionality long enough! &lt;br /&gt;
&lt;br /&gt;
PSX-GS is licensed under the &lt;a href=&quot;http://www.gnu.org/licenses/old-licenses/gpl-2.0.html&quot;&gt;GNU General Public License (version 2)&lt;/a&gt; (or later), and has been tested with epsxe 1.6.0. You&#039;ll need a fairly recent GTK 2 build in order for the UI portion to work properly. Note that codes with correct formatting and improper addresses may crash the emulator. &lt;strong&gt;Be sure&lt;/strong&gt; to read the &lt;em&gt;README&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
You can download it here: &lt;a href=&quot;http://github.com/thentenaar/psx-gs&quot; title=&quot;Source Code&quot;&gt;Source Code&lt;/a&gt;, &lt;a href=&quot;http://github.com/downloads/thentenaar/psx-gs/psx-gs-1.0b1.tar.bz2&quot; title=&quot;Binary&quot;&gt;32-bit x86 Binary&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Here&#039;s a brief walk-through of how to use it. You can watch the YouTube video I made about this plugin &lt;a href=&quot;http://www.youtube.com/watch?v=BHlany3gLCc&quot; title=&quot;Video&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://xodian.net/serendipity/index.php?/archives/19-PSX-GS-1.0-Released.html#extended&quot;&gt;Continue reading &quot;PSX-GS 1.0 Released&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 29 Jan 2008 03:11:54 -0500</pubDate>
    <guid isPermaLink="false">http://xodian.net/serendipity/index.php?/archives/19-guid.html</guid>
    
</item>
<item>
    <title>New Dinovo patch for Bluez-Utils</title>
    <link>http://xodian.net/serendipity/index.php?/archives/9-New-Dinovo-patch-for-Bluez-Utils.html</link>
            <category>Linux</category>
            <category>Programming</category>
    
    <comments>http://xodian.net/serendipity/index.php?/archives/9-New-Dinovo-patch-for-Bluez-Utils.html#comments</comments>
    <wfw:comment>http://xodian.net/serendipity/wfwcomment.php?cid=9</wfw:comment>

    <slash:comments>26</slash:comments>
    <wfw:commentRss>http://xodian.net/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=9</wfw:commentRss>
    

    <author>nospam@example.com (Tim Hentenaar)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 110px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://xodian.net/serendipity/uploads/dinovo-key-settings.png&#039; target=&quot;_blank&quot;&gt;&lt;!-- s9ymdb:4 --&gt;&lt;img width=&quot;110&quot; height=&quot;110&quot;  src=&quot;http://xodian.net/serendipity/uploads/dinovo-key-settings.serendipityThumb.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Dinovo Key Settings (Gnome)&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Tonight, I completed testing of my latest patch for Dinovo support in &lt;a href=&quot;http://www.bluez.org&quot; title=&quot;BlueZ Homepage&quot;&gt;bluez-utils&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
For: &lt;br /&gt;
&lt;a href=&quot;http://hentenaar.com/security/bluez-utils-3.18-dinovo.patch&quot;&gt;3.18&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://hentenaar.com/security/bluez-utils-3.19-dinovo.patch&quot;&gt;3.19&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Changes&lt;/b&gt;:&lt;br /&gt;
	1. Moved the dinovo_mediapad() call to make connecting the media pad essentially hassle-free.&lt;br /&gt;
	2. Added an implicit --search to hidd&#039;s --server handling. &lt;br /&gt;
	3. The patch no-longer necessitates calling automake after patching (however it is good practice.)&lt;br /&gt;
	&lt;br /&gt;
&lt;b&gt;Notes&lt;/b&gt;:&lt;br /&gt;
	1. Be sure to configure with --enable-hidd!&lt;br /&gt;
	2. Be sure to restart dbus after installing.&lt;br /&gt;
	3. Be sure to either compile in uinput support within the kernel, or &#039;modprobe uinput&#039; before using.&lt;br /&gt;
	4. You may need to tune your system&#039;s init scripts to call hidd. I noticed that the gentoo init scripts do not call or reference hidd at all.&lt;br /&gt;
	5. I added an implicit --search when the --server switch to hidd is specified. Note that there is a search timeout - so unless the mediapad is connected before the timeout you&#039;ll have to manually run either hidd --search, or hidd --connect.&lt;br /&gt;
        6. Make sure you have your Keyboard Shortcuts setup as in the screenshot!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Edit 9/26&lt;/b&gt;: &lt;a href=&quot;http://hentenaar.com/security/bluez-utils-3.19-dinovo-input.patch&quot;&gt;Updated patch for 3.19&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
This new patch moves the mediapad code from the old hidd to the bluetooth-input-service daemon. 
    </content:encoded>

    <pubDate>Fri, 21 Sep 2007 22:29:07 -0400</pubDate>
    <guid isPermaLink="false">http://xodian.net/serendipity/index.php?/archives/9-guid.html</guid>
    
</item>
<item>
    <title>Video Implemented in Second Life for Linux</title>
    <link>http://xodian.net/serendipity/index.php?/archives/2-Video-Implemented-in-Second-Life-for-Linux.html</link>
            <category>Linux</category>
            <category>Programming</category>
    
    <comments>http://xodian.net/serendipity/index.php?/archives/2-Video-Implemented-in-Second-Life-for-Linux.html#comments</comments>
    <wfw:comment>http://xodian.net/serendipity/wfwcomment.php?cid=2</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://xodian.net/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=2</wfw:commentRss>
    

    <author>nospam@example.com (Tim Hentenaar)</author>
    <content:encoded>
    &lt;!-- s9ymdb:2 --&gt;&lt;img width=&quot;110&quot; height=&quot;85&quot; style=&quot;float: right; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://hentenaar.com/code/Snapshot_010.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;!-- s9ymdb:1 --&gt;&lt;img width=&quot;110&quot; height=&quot;86&quot; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://hentenaar.com/code/Snapshot_003.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
I was recently involved (and disinvolved) with the online community of &lt;a href=&quot;http://secondlife.com&quot;&gt;Second Life&lt;/a&gt;. As I started pouring over the code, I became disenchanted with the idea of Winblows and Mac users being the only ones who could watch in-game videos. So I dusted off my bottle of ass-whoop, and went to work at the code. The result can be seen in the two screenshots above. 		&lt;br /&gt;
&lt;br /&gt;
See the code section for a source code patch against 1.14.0.0 / 1.14.0.1 (should also work with the latest versions - just need to be careful with modifying the SConstruct file. The only drawback is that it&#039;s not as fast as one would like. This can be worked around. FFMPEG is also under constant development, so with these promising results, it&#039;s only a matter of time, right? If I don&#039;t ever finish this, hopefully 	someone else will pick up the torch. Remember, It&#039;s up to you now, to ensure that we Linux users aren&#039;t simply ignored! As always, the download is in the &lt;a href=&quot;/code.php&quot; target=&quot;_blank&quot;&gt;Code&lt;/a&gt; section.&lt;br /&gt;
				 
    </content:encoded>

    <pubDate>Sun, 06 May 2007 15:30:00 -0400</pubDate>
    <guid isPermaLink="false">http://xodian.net/serendipity/index.php?/archives/2-guid.html</guid>
    
</item>
<item>
    <title>New Keyboard Set</title>
    <link>http://xodian.net/serendipity/index.php?/archives/3-New-Keyboard-Set.html</link>
            <category>Linux</category>
            <category>Programming</category>
    
    <comments>http://xodian.net/serendipity/index.php?/archives/3-New-Keyboard-Set.html#comments</comments>
    <wfw:comment>http://xodian.net/serendipity/wfwcomment.php?cid=3</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://xodian.net/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=3</wfw:commentRss>
    

    <author>nospam@example.com (Tim Hentenaar)</author>
    <content:encoded>
    &lt;!-- s9ymdb:3 --&gt;&lt;img width=&quot;320&quot; height=&quot;240&quot; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://hentenaar.com/Logitech_LCD1.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
				&lt;br /&gt;
     For christmas, I got a Logitech DiNovo Media Desktop Keyboard/Mouse/MediaPad set (~$200 USD) and promptly installed the &lt;a href=&quot;http://bluez.org&quot;&gt;Bluez&lt;/a&gt; tools and updated kernel drivers. The keyboard, mouse, and media pad, all work fine as standard HID devices (in USB mode), with the exception of the mediapad&#039;s LCD.&lt;br /&gt;
&lt;br /&gt;
     Whilst googling around, I came across &lt;a href=&quot;http://linux.yes.nu/diNovo/&quot;&gt;Patrick&#039;s&lt;/a&gt; diNovo Media Desktop page. He&#039;s got a ton of useful info about the key mappings, and various configuration details that make things much more livable. I nearly tore my hair out with the initial setup and the transition into bluetooth mode. I wish I&#039;d found his page right off.&lt;br /&gt;
&lt;br /&gt;
     One thing to note, is that he was told by Logitech:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
	I understand from your email that you want to know the specifications for managing the LCD display on the Medipad.&lt;br /&gt;
	Unfortunately, the information you are requesting is proprietary in nature and therefore not publicly available. &lt;br /&gt;
	I am sorry for the inconvenience caused...&lt;br /&gt;
&lt;br /&gt;
	Unfortunately, Logitech does have any plans on developing a closed-source library for Mediapad LCD/Bluetooth/Logitech &lt;br /&gt;
	diNovo Desktop. I am sorry for the inconvenience caused.&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
     So enraged was I, to see that they hadn&#039;t even the notion of Linux support, that I went into my dark chambers, and began to figure out what was really going on. After a few hours of clean-room reversing, I wrote a few test programs, and hacked away at the HID daemon in Bluez. Following the lead of the bluez developers, I implemented a driver for the mediapad in &quot;fakehid&quot; mode. &lt;br /&gt;
&lt;br /&gt;
     After all, someone had to Git-R-Done! &lt;img src=&quot;http://xodian.net/serendipity/templates/default/img/emoticons/tongue.png&quot; alt=&quot;:-P&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
     I invite anyone who may benefit from it to download my &lt;a href=&quot;/security/bluez-dinovo.tar.bz2&quot;&gt;patch&lt;/a&gt; for bluez-utils 3.8 to implement the driver. One interesting thing about my implementation, is that the driver uses &lt;a href=&quot;http://dbus.freedesktop.org&quot;&gt;DBUS&lt;/a&gt; so that other programs can interact with the mediapad as well. There&#039;s also a small python script included with the patch that shows how to use it via DBUS. &lt;br /&gt;
&lt;br /&gt;
     &lt;b&gt;Update:&lt;/b&gt; 2007-01-08 23:39:15 EST: Glen Rolle sent me some suggestions which I have implemented in this &lt;a href=&quot;/security/bluez-dinovo-update.tar.bz2&quot;&gt;update&lt;/a&gt;. Thanks Glen! Note: This patch must be applied after the previous patch has been applied.&lt;br /&gt;
				&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 28 Dec 2006 18:58:00 -0500</pubDate>
    <guid isPermaLink="false">http://xodian.net/serendipity/index.php?/archives/3-guid.html</guid>
    
</item>

</channel>
</rss>