<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>theqtisch's tinkerizations</title>
	<atom:link href="http://theqtisch.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://theqtisch.com</link>
	<description>electricity, music, soldering iron and keyboard</description>
	<lastBuildDate>Sun, 08 Feb 2009 20:49:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>half/seq restart</title>
		<link>http://theqtisch.com/2009/02/08/halfseq-restart/</link>
		<comments>http://theqtisch.com/2009/02/08/halfseq-restart/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 20:49:24 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Midisequencer]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://theqtisch.com/?p=49</guid>
		<description><![CDATA[As I was playing with PureData, I had to think back to my hardware controller/midi sequencer project. It is/was on hold, as other projects seemed to be more important. Also, I was kinda running into a wall trying to implement the readout of the rotary encoders. Probably it&#8217;s their quality, probably I&#8217;m simply too dumb [...]]]></description>
			<content:encoded><![CDATA[<p>As I was playing with PureData, I had to think back to my hardware controller/midi sequencer project. It is/was on hold, as other projects seemed to be more important. Also, I was kinda running into a wall trying to implement the readout of the rotary encoders. Probably it&#8217;s their quality, probably I&#8217;m simply too dumb to implement it properly.</p>
<p><a href="http://www.flickr.com/photos/jankrutisch/3264473576/" title="half/seq led debugging by jan_krutisch, on Flickr"><img src="http://farm1.static.flickr.com/247/3264473576_40f69a810e.jpg" width="500" height="333" alt="half/seq led debugging" /></a></p>
<p>Nevertheless, today I dived back into the game. Another thing that bugged me was the LED output. I want a 8&#215;8 matrix in tri-color mode (using dual LEDs) and my first idea was to use two synced MAX matrix drivers. Unfortunately, it&#8217;s not possible to really sync them, and so the whole thing flickered like hell. Now I&#8217;ll go for the traditional route and implement the display using three 595 shift registers. My Arduino based prototype already works quite well, although I am well aware that this will be another challenge when running inside the half/seq code because the refresh routine must be extremely fast. I really need to dig into AVR assembler now.</p>
<p>Well, here&#8217;s the code, anyway:</p>
<p><script src="http://gist.github.com/60503.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://theqtisch.com/2009/02/08/halfseq-restart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pure (Data) Bliss</title>
		<link>http://theqtisch.com/2009/02/08/pure-data-bliss/</link>
		<comments>http://theqtisch.com/2009/02/08/pure-data-bliss/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 00:01:16 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[MIDI]]></category>
		<category><![CDATA[PureData]]></category>

		<guid isPermaLink="false">http://theqtisch.com/?p=33</guid>
		<description><![CDATA[So there&#8217;s a rather unusual speaking engagement coming up for me. Together with my colleague wowo101, I&#8217;ll be speaking at a small music congress in hamburg on the subject of digital media in the context of music (obviously). To spice up the talk, we&#8217;ll be mixing in some form of electronic music performance &#8211; Which [...]]]></description>
			<content:encoded><![CDATA[<p>So there&#8217;s a rather unusual speaking engagement coming up for me. Together with my colleague wowo101, I&#8217;ll be speaking at a small music congress in hamburg on the subject of digital media in the context of music (obviously). To spice up the talk, we&#8217;ll be mixing in some form of electronic music performance &#8211; Which brought me back to a long neglected friend of mine, PureData. I spent the last few days trying to really get the hang of it, and so far, the results have been rather good, albeit a bit basic. Tonight, I played a bit with the synchronization with a standard midi/audio sequencer and the result is this:</p>
<p><a href="http://theqtisch.com/wp-content/uploads/2009/02/i-left-my-cefi-at-home.mp3">Download audio file (i-left-my-cefi-at-home.mp3)</a><br /></p>
<p>Here&#8217;s what you&#8217;re hearing: The drums and the base are coming from soft synths out of the sequencer, the arpeggio-chiptune-style sawtooth magick is done by a rather simple PureData patch I built to test both arpeggiation and polyphonic instruments. The Patch will be on <a title="github.com/halfbyte" href="http://github.com/halfbyte/dddd-puredata-patches/tree/master">Github</a> shortly. I controlled PureData over the Midi Loopback device (IAC on OS X) and routed the sound back into the sequencer using Jack. I then first recorded the controller changes (Using my dear old friend mr. ozone) into the sequencer and then recorded the PureData output in an audio track. After some subtle adjustments, I bounced the whole thing to disk and used iTunes to adjust the id3 tags.</p>
]]></content:encoded>
			<wfw:commentRss>http://theqtisch.com/2009/02/08/pure-data-bliss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://theqtisch.com/wp-content/uploads/2009/02/i-left-my-cefi-at-home.mp3" length="5810962" type="audio/mpeg" />
		</item>
		<item>
		<title>evolutionary steps</title>
		<link>http://theqtisch.com/2008/09/13/evolutionary-steps/</link>
		<comments>http://theqtisch.com/2008/09/13/evolutionary-steps/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 23:57:40 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[Midisequencer]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://theqtisch.com/?p=27</guid>
		<description><![CDATA[Tonight I reached another milestone on my way to world domination, in that I managed to 1) Assemble the USBasp AVR programmer I ordered and 2) build up a very simple setup for the ATMega644 (which is a possible target system for my hardware sequencer project) and 3) program the ATMega644 with avrdude via the [...]]]></description>
			<content:encoded><![CDATA[<p>Tonight I reached another milestone on my way to world domination, in that I managed to 1) Assemble the USBasp AVR programmer I ordered and 2) build up a very simple setup for the ATMega644 (which is a possible target system for my hardware sequencer project) and 3) program the ATMega644 with avrdude via the USBasp programmer.</p>
<p>The experience was okayish with some more nightmare-style elements. The bad thing about doing all this stuff without proper measurement equipment (like a scope) is that you can only hope that nothing goes wrong. So you doublecheck every soldered connection and still, in the end, you miss that one connection that f**ks up the whole setup. What&#8217;s worse, you are always living in fear that you totally destroyed one vital component. When I started up avrdude for the first time, nothing happened. When I had successfully flashed the 644 for the first time, I went through quite a few &#8220;oh-no&#8221; moments:</p>
<ul>
<li>When I tried to figure out what was wrong, I somehow created a short circuit which forces the Mac hardware to temporarily disable the USB port. Luckily. no hardware was harmed so far.</li>
<li>When I thought I had everything fixed, my Mac didn&#8217;t recognize the USBasp hardware anymore. Later I found out that the AVR of the USBasp was not sitting tightly enough in the socket.</li>
<li>When I thought I had everything fixed, the Target (the 644) was responding with Device ID 0&#215;0000 all the time (which is checked by avrdude and makes it bork). After some more or less random diagnosis shots, I found a loose connection on an adapter board I soldered earlier to connect the ISP header on the breadboard. And I thought I had them all checked (both optically and electronically) twice.</li>
<li>When I thought I had everything fixed, I once more went through the &#8220;IC not sitting correctly in the socket&#8221; cycle.</li>
<li>When I thought I had everything fixed, I learned that it&#8217;s a good idea to set the &#8220;Slow CLK&#8221; jumper on the USBasp, because the device runs on it&#8217;s own, slower oscillator as long as you don&#8217;t set the right fuses, even if the oscillator is connected. I thought that the internal oscillator should be fast enough to keep up with the USBasp, but no cigar.</li>
<li>And suddenly, everything was working.</li>
</ul>
<p>So, what&#8217;s next? Building a standard 5V power regulation circuit, building a permanent setup for the 644 with headers for ISP and UART (in the hope that the cable I got on ebay will arrive not before long), and then building Midibox DIN clones with the 74HC165 I have lying around and the Resistor networks I got today, so that I can read out some more rotary encoders.</p>
<p>And now I&#8217;ll get myself another shot of cranberry fusion. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://theqtisch.com/2008/09/13/evolutionary-steps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This weird brain of mine&#8230;</title>
		<link>http://theqtisch.com/2008/09/03/this-weird-brain-of-mine/</link>
		<comments>http://theqtisch.com/2008/09/03/this-weird-brain-of-mine/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 07:56:28 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[AVR]]></category>

		<guid isPermaLink="false">http://theqtisch.com/?p=25</guid>
		<description><![CDATA[So, I am currently researching ways of establishing a workflow for developing my hardware sequencer firmware. As someone who largely did web programming in rails during the last few years, I try to follow a few best practices, such as test-first, using automated tests and so on. Turns out that this is not too usual [...]]]></description>
			<content:encoded><![CDATA[<p>So, I am currently researching ways of establishing a workflow for developing my hardware sequencer firmware. As someone who largely did web programming in rails during the last few years, I try to follow a few best practices, such as test-first, using automated tests and so on. Turns out that this is not too usual in the embedded world. Writing unit tests for largely procedural code is not really easy and using ASM for performance reasons doesn&#8217;t improve the situation. The situation usually is this: Your code for the Microprocessor is largely untested, simply because there are no clear, good interfaces to test against. There might be exceptions (such as general purpose conversion procedures) but most of the code blocks will involve some form of hardware trickery that cannot be tested in isolation. Ergo: Finding ways to Unit-Test my firmware code will be hard to impossible in most cases.</p>
<p>There&#8217;s this one, very well defined interface, though, that just comes naturally with a microprocessor: The actual output pins. Now, having to create a hardware test harness for this kind of testing would involve a lot of additional hardware tweaking, building a test system, most certainly involving another microprocessor, instantly creating a very beautiful hen and egg problem.</p>
<p>So that&#8217;s why people write simulators. The only problem I see so far: Maybe I&#8217;m not looking hard enough but I can&#8217;t find a good way to connect to a tool like simulavr and doing the kind of tests I have in mind. It is more thought of as a way to debug your software using gdb or Insight and less of a way to actually to testing in an automated way (But I&#8217;ll have to double check on that: Documentation on simulavr is not exactly spectacular&#8230;)</p>
<p>So yesterday night I had a very crazy idea: Why not trying to implement the AVR instruction core in ruby. This doesn&#8217;t need to run in real-realtime: It only needs to be cycle-precise in a sense that I could say things like &#8220;pull pin 5 low, wait 5 cycles, see if the button input did have any effect&#8221;. I could imagine doing very low level, almost Unit-Test like things like doing assertions on looking up values in memory, but also very high level things like writing a simple emulation of an LCD display and beeing able to bind that simulation to a few pins and then checking the output result.</p>
<p>I mean, how hard can this be? The instruction set is <a href="http://en.wikipedia.org/wiki/AVR_instruction_set">not that complicated</a> (it is RISC after all), the timing is simple and complex interfaces like i2c, SPI, UARTS, PWM-Outputs etc. could probably be faked away to reduce the complexity of the emulator.</p>
]]></content:encoded>
			<wfw:commentRss>http://theqtisch.com/2008/09/03/this-weird-brain-of-mine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Something to beat&#8230;</title>
		<link>http://theqtisch.com/2008/08/26/something-to-beat/</link>
		<comments>http://theqtisch.com/2008/08/26/something-to-beat/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 20:22:46 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Assembler]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[MIDI]]></category>

		<guid isPermaLink="false">http://theqtisch.com/?p=22</guid>
		<description><![CDATA[From the MIDIBOX description of the MIOS core:
The SRIO handler requires just only 75 uS to fetch the data from 128 digital input pins and to write out data to 128 digital output pins.
What this means is that he&#8217;s reading 128bits (from 16 74HC165 shift registers, all connected serially, IIRC) AND writing 128 Bits (into [...]]]></description>
			<content:encoded><![CDATA[<p>From the MIDIBOX description of the MIOS core:</p>
<blockquote><p>The SRIO handler requires just only 75 uS to fetch the data from 128 digital input pins and to write out data to 128 digital output pins.</p></blockquote>
<p>What this means is that he&#8217;s reading 128bits (from 16 74HC165 shift registers, all connected serially, IIRC) AND writing 128 Bits (into 16 74HC595 shift registers, all connected serially) all in these 75 Âµs.Â  That&#8217;s a little less than 300 ns per bit. If I read the 165&#8217;s datasheet correctly, to safely read a bit out of it, you&#8217;ll need about 30 ns. What comes on top is data processing like reading the register, shifting the bits into place, and stuff like that. Plus some setup time after (or before) pulling the latches. This still sounds rather simple but I&#8217;d bet it is one heck of a heavily optimized piece of PIC assembler.</p>
<p>Plus it&#8217;s a nice little benchmark for my own plans: For reading rotary encoders without using an external interrupt, you&#8217;d have to make sure that you read often, and read fast, to be able to do it in an interrupt service routine. That is not an as easy task as I thought: My simple arduino sketch with an ISR written in simple C didn&#8217;t quite cut the butter, as it totally jammed the controller. as in &#8220;Wait, there&#8217;s an interr&#8211;Wait, there&#8217;s an interr&#8211;Wait, there&#8217;s an interr&#8211;&#8221;.</p>
<p>Which brings me to the next problem: I guess I need a real AVR programmer now, so that I can start some non-Arduino stuff. Boy, I am hardcore :)</p>
]]></content:encoded>
			<wfw:commentRss>http://theqtisch.com/2008/08/26/something-to-beat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Who let the DOG-M out?</title>
		<link>http://theqtisch.com/2008/08/24/who-let-the-dog-m-out/</link>
		<comments>http://theqtisch.com/2008/08/24/who-let-the-dog-m-out/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 20:47:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[lcd]]></category>

		<guid isPermaLink="false">http://theqtisch.com/?p=15</guid>
		<description><![CDATA[In my diploma thesis in 2002 I had to program a firmware for, let&#8217;s say a prepaid solar charger (sounds strange, but that was the idea). It was based on an MSP430 by TI, which is a very cool, ultra low power microcontroller. The problem was, that we had so many things to do with [...]]]></description>
			<content:encoded><![CDATA[<p>In my diploma thesis in 2002 I had to program a firmware for, let&#8217;s say a prepaid solar charger (sounds strange, but that was the idea). It was based on an MSP430 by TI, which is a very cool, ultra low power microcontroller. The problem was, that we had so many things to do with the MCU that free pins were almost not available. This lead to all kinds of workarounds, one of them beeing us using shift registers whereever possible. One of those cases was the LCD display. A standard 8 bit data bus, 16&#215;2 chars display.Programming this one via shift registers was not exactly fun.</p>
<p>6 years forward, there&#8217;s a few new kids on the block. One of them is the pretty cool DOG-M series by Electronic Assembly, which is not quite cheap, very easy to integrate (because it almost looks like a Glass version of a large IC, so, it has pins), but also has a very cool extra: It has an SPI mode where you only need 4 pins (6 if you count GND and Vcc). When I found those suckers in the catalogue of my favorite electronics supplier, I could not resist and ordered one.</p>
<p>Well, the first display lasted about 2 days. When I tried to remove it from my breadboard, I learned the hard way that the glass housing has it&#8217;s drawbacks.</p>
<p><a title="EA DOG-M displays are rather fragile by jan_krutisch, on Flickr" href="http://www.flickr.com/photos/jankrutisch/2794036122/"><img src="http://farm4.static.flickr.com/3264/2794036122_cf3d91dcbf_m.jpg" alt="EA DOG-M displays are rather fragile" width="240" height="180" /></a></p>
<p>The second display got it&#8217;s own small PCB to live on, and is now added to my projects as I see fit.</p>
<p><a title="EA DOG-M via SPI display library by jan_krutisch, on Flickr" href="http://www.flickr.com/photos/jankrutisch/2793185345/"><img src="http://farm4.static.flickr.com/3044/2793185345_20a4ab5757_m.jpg" alt="EA DOG-M via SPI display library" width="240" height="180" /></a></p>
<p>The next problem (after solving the hardware, uhm, problems) was the software. Interfacing the display was relatively easy. I wrote some utility functions and it was pretty usable. But on second thought, beeing able to use it in the same, easy way as with the arduino LCDLibrary would be much better.</p>
<div>So today I hacked together the first version of the LCDdogmSPI library. It works with all three types of EA DOG-M character displays, at least in theory (I only have a 163 type one here, so everything else is a guess).</div>
<div><a href="http://github.com/halfbyte/lcddogmspi/tree/master">Git it here</a> &#8211; I&#8217;ll do a proper release sometimes next week, I guess.</div>
<div>It probabably makes wrong assumptions on how you want your Display to be initialized, but that should be easy to change. Just remember to kill the .o file in the library folder when you changed the .cpp file.</div>
<div>(Oh and YES I know (now&#8230;) that someone else started a DOGM library already. But it is not using SPI, so at least my stuff is not totally useless. Plus I learned how to write an Arduino library.)</div>
<p><a title="theqtisch.com plug by jan_krutisch, on Flickr" href="http://www.flickr.com/photos/jankrutisch/2793184773/"><img src="http://farm4.static.flickr.com/3230/2793184773_37acbcbe41_m.jpg" alt="theqtisch.com plug" width="240" height="180" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://theqtisch.com/2008/08/24/who-let-the-dog-m-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sequential circuits</title>
		<link>http://theqtisch.com/2008/08/18/sequential-circuits/</link>
		<comments>http://theqtisch.com/2008/08/18/sequential-circuits/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 07:58:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[MIDI]]></category>
		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://theqtisch.com/?p=7</guid>
		<description><![CDATA[Hm, quite a cool idea: start all blog posts with a name of a former music-hardware-vendor :)
Anyway, while waiting for the LCD display which finally arrived on sunday (well, it arrived on saturday, but we didn&#8217;t pick up the notice that it&#8217;s been delivered to our neighbour, so I only fetched it on sunday, but [...]]]></description>
			<content:encoded><![CDATA[<p>Hm, quite a cool idea: start all blog posts with a name of a former music-hardware-vendor :)</p>
<p>Anyway, while waiting for the LCD display which finally arrived on sunday (well, it arrived on saturday, but we didn&#8217;t pick up the notice that it&#8217;s been delivered to our neighbour, so I only fetched it on sunday, but I regress&#8230;), I implemented my first very crude version of a standalone drum sequencer. (Standalone in the sense that it has it&#8217;s own MIDI-output). It has 8 steps and 6 tracks plus Accent (ONLY 8 because I only had about 15 Buttons in Stock, plus it becomes increasingly hard to wire that stuff on a breadboard&#8230;so I&#8217;ll have to think about making that stuff semi-permanent on a prototyping board).</p>
<p>It works extremely well and although my timing code is super sloppy and unprecise, as it currently uses millis(), it is a quite good glimpse of the things to come. Sketch will be up on github soon.</p>
<p>Lessons learned:</p>
<ul>
<li>Reading the 74HC165 Shift register is pretty easy and super fast (I used inline asm to do a few nop&#8217;s instead of delay()) and there doesn&#8217;t seem to be any bouncing at all, which just might be the buttons I used.</li>
<li>My first MIDI output code had some problems with the communication suddenly borking and things going haywire (Synth hangin&#8217; up and stuff), this problem didn&#8217;t reoccur with the sequencer code</li>
<li>I&#8217;ll have to look up the correct wiring of a MIDI-Out port since the arduino tutorial describes the wiring as &#8220;not according to specs&#8221;. IIRC, there should be an Optocoupler involved somewhere&#8230;</li>
<li>I have still no good idea on how to implement MIDI-Clock in in the sequencer code. This will have to wait. I also don&#8217;t have an exact idea on how to implement exact BPM timing on a cool ppq level.</li>
<li>I really have to write down all the cool ideas I have for the User Interface and the final sequencer features.</li>
<li>I guess I will have to use a bigger ATMega later on, ideally one with two UARTS. I don&#8217;t really feel like implementing a soft UART.</li>
<li>SD cards for saving would be super cool. The MIDIBox hacks using an EEPROM feel like a huge anachronism. Plus, saving on an SD card would make for easier debugging AND backup. (I shiver at implementing complex SysEx mechanisms for data transfer&#8230;blergh)</li>
<li>I want to have one of <a title="lcd-module.de" href="http://www.lcd-module.de/deu/touch/touch.htm">these beasts</a>. touch input would be cool, plus this looks like a simple way of implementing a graphics display with a small processor without using up too much memory and cpu power. Reichelt sells them for about 150 EUR&#8230;</li>
</ul>
<p>I&#8217;ll try to spit out images, wiring diagram and arduino code for the drum seq, as it is kind of my really usable piece of hardware.</p>
]]></content:encoded>
			<wfw:commentRss>http://theqtisch.com/2008/08/18/sequential-circuits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCpad &#8211; First usable incarnation</title>
		<link>http://theqtisch.com/2008/08/13/oscpad-first-usable-incarnation/</link>
		<comments>http://theqtisch.com/2008/08/13/oscpad-first-usable-incarnation/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 12:36:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[NDS]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[osc]]></category>

		<guid isPermaLink="false">http://theqtisch.com/?p=5</guid>
		<description><![CDATA[Yes yes. As announced on gbadev, OSCpad just became at least partly usable. It has no means of configuring a target address which means that you&#8217;ll have to edit the source code to configure it, but I&#8217;m working on that :)
Git it here or go to the OSCpad page for more information.
]]></description>
			<content:encoded><![CDATA[<p>Yes yes. <a title="forum.gbadev.org" href="http://forum.gbadev.org/viewtopic.php?t=15932">As announced on gbadev</a>, OSCpad just became at least partly usable. It has no means of configuring a target address which means that you&#8217;ll have to edit the source code to configure it, but I&#8217;m working on that :)</p>
<p><a title="github.com" href="http://github.com/halfbyte/nds-oscpad/tree/master">Git it here</a> or go to the <a href="/nds-oscpad">OSCpad page</a> for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://theqtisch.com/2008/08/13/oscpad-first-usable-incarnation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
