<?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>blog.world3.net &#187; microcontrollers</title>
	<atom:link href="http://blog.world3.net/category/microcontrollers/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.world3.net</link>
	<description>たとえ溺れても梦はゆめでしかない</description>
	<lastBuildDate>Thu, 02 Feb 2012 15:23:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Playstation Beatmania controller tested</title>
		<link>http://blog.world3.net/2010/08/playstation-beatmania-controller-tested/</link>
		<comments>http://blog.world3.net/2010/08/playstation-beatmania-controller-tested/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 19:02:18 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[Retro Adapter]]></category>

		<guid isPermaLink="false">http://blog.world3.net/?p=333</guid>
		<description><![CDATA[I got a Beatmania DJ turntable controller for the Playstation and it works perfectly with the Retro Adapter. It&#8217;s actually pretty simple; it emulates a digital pad. When the wheel is turned it just presses the up or down buttons on the d-pad. It doesn&#8217;t even use analogue for speed sensing etc.]]></description>
			<content:encoded><![CDATA[<p>I got a Beatmania DJ turntable controller for the Playstation and it works perfectly with the Retro Adapter. It&#8217;s actually pretty simple; it emulates a digital pad. When the wheel is turned it just presses the up or down buttons on the d-pad. It doesn&#8217;t even use analogue for speed sensing etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2010/08/playstation-beatmania-controller-tested/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The MSF signal is a bit of a mess</title>
		<link>http://blog.world3.net/2010/07/the-msf-signal-is-a-bit-of-a-mess/</link>
		<comments>http://blog.world3.net/2010/07/the-msf-signal-is-a-bit-of-a-mess/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 23:06:26 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[avr]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://blog.world3.net/?p=331</guid>
		<description><![CDATA[I am working on another clock, this time with MSF (Rugby/The time from NPL)  radio time setting. I know, I need to document the last one&#8230; Anyway, I finished the decoder today. The MSF signal is frankly a mess. Things seem to have been added and then removed over the years. There are four different [...]]]></description>
			<content:encoded><![CDATA[<p>I am working on another clock, this time with MSF (Rugby/The time from NPL)  radio time setting. I know, I need to document the last one&#8230; Anyway, I finished the decoder today.</p>
<p>The MSF signal is frankly a mess. Things seem to have been added and then removed over the years. There are four different length pulses and various additions. Compared to the nice clean DCF77 signal it&#8217;s horrible, but unfortunately I can&#8217;t get DCF77 to work reliably here. In fact I bought a DCF77 clock but it has never been able to receive a good enough signal to set itself.</p>
<p>As others have discovered the MSF signal is much cleaner at night, but filtering out the noise during the day isn&#8217;t too hard. I wrote the decoder in assembler and it basically waits for a valid bit and then locks on to that, ignoring everything until 950ms have passed from it&#8217;s start. It also filters out too short and too long pulses and does some debouncing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2010/07/the-msf-signal-is-a-bit-of-a-mess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mouse+Joystick &#8220;computer&#8221; mode for the Retro Adapter</title>
		<link>http://blog.world3.net/2010/06/mousejoystick-computer-mode-for-the-retro-adapter/</link>
		<comments>http://blog.world3.net/2010/06/mousejoystick-computer-mode-for-the-retro-adapter/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 17:18:31 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[electronics]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[Retro Adapter]]></category>

		<guid isPermaLink="false">http://blog.world3.net/?p=314</guid>
		<description><![CDATA[I have just finished updating mouse support on the Retro Adapter so that it now supports a mouse and joystick simultaneously. I am still trying to think of a good name for it but for the moment I am calling it &#8220;Computer Mode&#8221; because it is ideal for emulating machines like the Amiga or Atari [...]]]></description>
			<content:encoded><![CDATA[<p>I have just finished updating mouse support on the Retro Adapter so that it now supports a mouse and joystick simultaneously. I am still trying to think of a good name for it but for the moment I am calling it &#8220;Computer Mode&#8221; because it is ideal for emulating machines like the Amiga or Atari ST which use both a mouse and joystick. No need to unplug or re-configure anything, it just works.</p>
<p>Hopefully the next batch of RAs will arrive soon and I can get on with selling them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2010/06/mousejoystick-computer-mode-for-the-retro-adapter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playstation 2 controller I/O error</title>
		<link>http://blog.world3.net/2010/04/playstation-2-controller-io-error/</link>
		<comments>http://blog.world3.net/2010/04/playstation-2-controller-io-error/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 17:49:12 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://blog.world3.net/?p=274</guid>
		<description><![CDATA[I have been tracking down the last few bug with the Saturn/SNES to Playstation converters. It turns out that some revisions of the PS2 and one PS2 to XBOX 360 converter both have messed up timing. The acknowledge pulses come after the next data byte has started. Official controllers can cope with that, but some [...]]]></description>
			<content:encoded><![CDATA[<p>I have been tracking down the last few bug with the Saturn/SNES to Playstation converters. It turns out that some revisions of the PS2 and one PS2 to XBOX 360 converter both have messed up timing.</p>
<p><img class="aligncenter" title="Protocol Error" src="http://img706.imageshack.us/img706/6185/sonyerror.png" alt="" width="693" height="214" /></p>
<p>The acknowledge pulses come after the next data byte has started. Official controllers can cope with that, but some third party ones don&#8217;t work. I&#8217;m fairly sure it&#8217;s an error as Sony fixed it after a couple of minor revisions. I suppose the probably noticed that some third party controllers didn&#8217;t work on one port of the console.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2010/04/playstation-2-controller-io-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playstation controller protocol quirks</title>
		<link>http://blog.world3.net/2010/02/playstation-controller-protocol-quirks/</link>
		<comments>http://blog.world3.net/2010/02/playstation-controller-protocol-quirks/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 01:29:33 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[avr]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://blog.world3.net/2010/02/playstation-controller-protocol-quirks/</guid>
		<description><![CDATA[Today I discovered why I have been having a few compatibility problems with my Playstation interface code. The PSX uses a SPI bus. The device is supposed to put data on the bus when there is a high to low transition, then read the command on the low to high change. Sure enough the official [...]]]></description>
			<content:encoded><![CDATA[<p>Today I discovered why I have been having a few compatibility problems with my Playstation interface code.</p>
<p>The PSX uses a SPI bus. The device is supposed to put data on the bus when there is a high to low transition, then read the command on the low to high change. Sure enough the official controller sets the data line within 0.3us of the clock transition.</p>
<p>The problem is that some revisions of the PSX hardware don&#8217;t wait for the low to high transition to read the data line. They read at some random point during the clock cycle.</p>
<p>It seems to be some kind of bug because Sony fixed it in later revisions. That is of course assuming that the information on the net about the controller protocol is correct. It may be that the controller is supposed to assert the data line within a few hundred nanoseconds but that seems somewhat unlikely. It would force you to use a hardware SPI bus and thus limit the choice of microcontroller. Maybe Sony don&#8217;t care about the needs of third party developers&#8230;</p>
<p>I saw a PSX dev-kit for sale last year and wish I had it now. Oh well, it&#8217;s sorted now. Make sure the data is there before the transition, just like the PSX does with the command line, and it works.</p>
<p>Anyway,</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2010/02/playstation-controller-protocol-quirks/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Saleae Logic review</title>
		<link>http://blog.world3.net/2009/07/saleae-logic-review/</link>
		<comments>http://blog.world3.net/2009/07/saleae-logic-review/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 22:01:15 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[avr]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://blog.world3.net/?p=157</guid>
		<description><![CDATA[After a lot of consideration, I decided to get a Saleae Logic logic analyser to help debug my AVR code. There are a few reviews already floating around but little detail on people&#8217;s experiences of actually using the thing, so here are mine. The package is quite nice. You get the Logic, which is tiny, [...]]]></description>
			<content:encoded><![CDATA[<p>After a lot of consideration, I decided to get a <a href="http://www.saleae.com/logic/">Saleae Logic logic analyser</a> to help debug my AVR code. There are a few reviews already floating around but little detail on people&#8217;s experiences of actually using the thing, so here are mine.</p>
<p>The package is quite nice. You get the Logic, which is tiny, probes and carry case. The probes are in the forum of a header with 9 wires (8 data + GND, so you have to have a common ground) and individual &#8220;E-Z-Hook&#8221; clips. The wires are very flexible and easy to work with, and the clips are the best I have come across. They have little pincers which fit nicely on to component legs, breadboard, DIP IC pins etc. They even clip on to trimmed component leads which have been soldered to a PCB, such as the underside of pin headers.</p>
<p>The pincers retract into the clip&#8217;s plastic body so they do not short with each other, even on neighbouring pins of a DIP IC. Saleae also sell replacements at reasonable prices, although so far they seem very robust.</p>
<p>The software provided (simply called Logic) is a bit of a mixed bag, but overall not bad. One attractive feature is that it includes decoders for RS232, SPI, I2C and 1 wire protocols at no additional cost. Future updates and new protocols will be free too, and there is an SDK which I have yet to experiment with. You can download the software from the <a href="http://www.saleae.com/downloads/">Saleae web site</a> to try out with some demo data.</p>
<p>Logic is written in .NET so takes about 10 seconds to load on my XP x64 system with 6GB RAM and a 3.1GHz Core 2 Quad CPU. Once it&#8217;s loaded though it is very quick and responsive. Not all companies bother to support XP x64 (Vista x64 is mandatory for all signed Vista drivers), so it&#8217;s nice that Saleae made the effort.</p>
<p><center><img alt="Logic software user interface" src="http://blog.world3.net/images/logic.png" title="Logic software" width="934" height="454" /></center></p>
<p>The Logic interface is non-standard, being skinned. Normally that&#8217;s a Very Bad Thing as it can break all the familiar UI elements, but fortunately the developers have stuck to the standards here. Navigation via the mouse is pretty fast, with the mouse wheel used for zooming and simple dragging used to scroll. Hovering the mouse over the recorded data gives you various bits of useful information, such as width of bit, period, binary decoding and more via configurable options.</p>
<p>On my system I can reliably run the Logic at 24MHz without issue. In fact, there is little reason to go any lower since 24MHz, the maximum, gives the most accurate timings. Using a lower frequency allows for longer sampling periods, although even at 24MHz several seconds of recording are possible. I was able to capture complete hardware detection, handshake and polling cycles of various games consoles without any problems. The software handles massive amounts of data with little effort.</p>
<p>Triggering is configurable for each data line individually, and sampling starts when any line is triggered. The Logic also gives you up to a few ms before the trigger which is handy. Trigger can be set on either a logic 1 or logic 0, but not on transitions (e.g. low to high, high to low) explicitly. In practice since most buses are held in one state until communication is started it&#8217;s not a major issue, and the Logic does not sync it&#8217;s clock to the transition edge anyway.</p>
<p>There are a few things missing that would be helpful, such as being able to compare two data sets side by side. You can take screenshots but it&#8217;s not quite the same. You are also limited to only two markers which you can place anywhere, but more would be helpful. The view parameters are reset every time you take a reading, so you have to re-position the display and zoom every time. Luckily the defaults are not that bad.</p>
<p>Saleae are quite helpful and were happy to receive my comments. A new version of the software is in the works which promises to address these issues.</p>
<p>Overall I am very impressed. At $150 the price is pretty good. There are seemingly higher spec&#8217;ed and cheaper USB logic analysers available from Chinese companies, but when you look closely at them they tend to have either poor software or arbitrary limitations such as the protocols you can decode (with more available at a price). The openness of the Logic via the SDK is quite attractive too.</p>
<p>The usefulness of the device more than justifies the expense if you do much protocol based work. The ability to see exactly what is going on is invaluable, and makes it easy to get all the timing perfect. It&#8217;s also very helpful for debugging, since you can use unused pins on your microcontroller as debug outputs that take only one instruction cycle to access. I have found that some protocols I had working already could be made much more compatible just by checking the timings instead of trying to estimate them based on instruction cycle counts.</p>
<p>I hope Saleae are successful with this project, as they deserve to be.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2009/07/saleae-logic-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retro Adapter V2 PCBs arrived!</title>
		<link>http://blog.world3.net/2009/05/retro-adapter-v2-pcbs-arrived/</link>
		<comments>http://blog.world3.net/2009/05/retro-adapter-v2-pcbs-arrived/#comments</comments>
		<pubDate>Tue, 19 May 2009 19:41:41 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[avr]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://blog.world3.net/?p=128</guid>
		<description><![CDATA[The first batch of PCBs is here, and looking good! Spot the deliberate mistake :) It&#8217;s not a problem though, you can easily read the backwards text.]]></description>
			<content:encoded><![CDATA[<p>The first batch of PCBs is here, and looking good!</p>
<p><a href="http://denki.world3.net/retro_v2/pcb1.jpg"><img src="http://denki.world3.net/retro_v2/pcb1_t.jpg" alt="PCB 1" /></a> <a href="http://denki.world3.net/retro_v2/pcb2.jpg"><img src="http://denki.world3.net/retro_v2/pcb2_t.jpg" alt="PCB 2" /></a></p>
<p>Spot the deliberate mistake :) It&#8217;s not a problem though, you can easily read the backwards text.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2009/05/retro-adapter-v2-pcbs-arrived/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retro Adapter update 11/05/09</title>
		<link>http://blog.world3.net/2009/05/retro-adapter-update-110509/</link>
		<comments>http://blog.world3.net/2009/05/retro-adapter-update-110509/#comments</comments>
		<pubDate>Mon, 11 May 2009 14:39:59 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[avr]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://blog.world3.net/?p=124</guid>
		<description><![CDATA[The circuit board designs for the Retro Adapter have been finished and sent off for manufacturing at Seeed Studio. Hopefully everything will be fine and I can then do a larger production run, and start selling kits and finished units. This is the first PCB I have had professionally made, and the first time I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>The circuit board designs for the Retro Adapter have been finished and sent off for manufacturing at Seeed Studio. Hopefully everything will be fine and I can then do a larger production run, and start selling kits and finished units.</p>
<p>This is the first PCB I have had professionally made, and the first time I&#8217;ve tried to do a kit or sell anything. Fingers crossed all will be well!</p>
<p>As well as PCBs for the main Retro Adapter, I have designs for the individual controller adapters too. These are needed for controllers which do not use a 9-pin female sub-D type connector such as the Famicom/NES/SNES or PC-Engine, and for controllers which require extra circuitry such as PC Gameport joysticks, Atari Paddle controllers and Neo Geo controllers.</p>
<p>I&#8217;m still trying to work out the best way to do some of these adapters. PCBs make construction a lot faster than having to wire the connectors up by hand, but sometimes it&#8217;s unavoidable due to PCB mount connectors not being available (e.g. Sega Saturn / Playstation). Where PCBs are possible the question becomes how big to make them. Smaller PCBs save money on manufacturing but don&#8217;t fit in a case so have to be used &#8220;bare&#8221;, while larger ones cost more to produce but will fit in standard cases like a DB9 shell.</p>
<p>There are other issues still to be resolved. The way I am going to implement multi-taps is going to need some experimentation to find the best solution. At the moment I&#8217;m thinking that the best thing might be to use a dynamic HID config, and when a multi-tap is plugged in have the Retro Adapter disconnect, change the config and re-connect. The implementation of Atari driving controllers is dependent on emulator support and I&#8217;m waiting back to hear from the authors about that. I need to test out bootloaders as well for firmware updates, so I can add more controllers as I acquire them.</p>
<p>Things are moving along well and I&#8217;ve now proven that the modular design can cope with pretty much any controller imaginable. It is also possible to connect DIY controllers using a variety of methods, which could either replace the &#8220;pad hack&#8221; method or complement it by offering dual console/USB support.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2009/05/retro-adapter-update-110509/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retro Adapter V2 update</title>
		<link>http://blog.world3.net/2009/04/retro-adapter-v2-update/</link>
		<comments>http://blog.world3.net/2009/04/retro-adapter-v2-update/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 18:43:26 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[avr]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://blog.world3.net/?p=117</guid>
		<description><![CDATA[This evening the Retro Adapter V2 site will be updated. There are two major changes. I have abandoned the idea of using a DB25 in favour of a DB9, with a DB9-DB9 jumper box being used as the case. I managed to cram everything in to the space, with only one surface mount component (the [...]]]></description>
			<content:encoded><![CDATA[<p>This evening the <a href="http://denki.world3.net">Retro Adapter V2</a> site will be updated.</p>
<p>There are two major changes. I have abandoned the idea of using a DB25 in favour of a DB9, with a DB9-DB9 jumper box being used as the case. I managed to cram everything in to the space, with only one surface mount component (the microcontroller). The µproc has changed to an ATtiny861.</p>
<p>Due to the code being written in C, the code size has increased. I was originally using an ATtiny461 but ran out of code space.</p>
<p>An LED changes colour to show the current mode</p>
<p>I have tested all of the controllers that the original Retro Adapter supports. I have also added support for MegaDrive 6 button pads and Playstation 1/2 controllers in both digital and analogue modes. PSX arcade sticks and dance mats also work. I have some more controllers (PC-Engine, FM Towns, N64, Atari 2600 paddles, Saturn Analogue (NiGHTS) pad) ready to go and am looking for some others (X68000/MSX, Gamecube, Virtual Boy etc). I am particularly interested in getting a Playstation train controller and Saturn arcade/steering wheel controllers. I saw a train controller in Japan, but it was too large to bring back :(</p>
<p>For Dreamcast pads, I&#8217;m sure it&#8217;s possible but I really need a logic analyser to do it. There are also issues with the amount of code space it could take up.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2009/04/retro-adapter-v2-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Electronics projects updated</title>
		<link>http://blog.world3.net/2009/02/electronics-projects-updated/</link>
		<comments>http://blog.world3.net/2009/02/electronics-projects-updated/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 01:02:19 +0000</pubDate>
		<dc:creator>mojo</dc:creator>
				<category><![CDATA[avr]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://blog.world3.net/?p=105</guid>
		<description><![CDATA[I updated denki.world3.net with some corrections and more details on the Retro Adapter V2 and a special Sega Saturn to USB adapter I made. More details on the Retro Adapter V2 to follow. Hopefully when I&#8217;ve finished working on the prototype I will be able to so a small run of kits. From the volume [...]]]></description>
			<content:encoded><![CDATA[<p>I updated <a href="http://denki.world3.net">denki.world3.net</a> with some corrections and more details on the Retro Adapter V2 and a special Sega Saturn to USB adapter I made.</p>
<p>More details on the Retro Adapter V2 to follow. Hopefully when I&#8217;ve finished working on the prototype I will be able to so a small run of kits. From the volume of email I get it seems like there is demand.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.world3.net/2009/02/electronics-projects-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

