<?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>XTCPinball</title>
	<atom:link href="http://xtcpinball.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://xtcpinball.com</link>
	<description>a pinball blog</description>
	<lastBuildDate>Sat, 30 Jan 2010 06:25:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>New year New host server</title>
		<link>http://xtcpinball.com/?p=193</link>
		<comments>http://xtcpinball.com/?p=193#comments</comments>
		<pubDate>Sat, 30 Jan 2010 06:25:48 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=193</guid>
		<description><![CDATA[Hi folks.
XTCPinball.com had to move on to a new hosting server.
Many many thanks to the old host for giving the bits a place to live for so long.
Now that I&#8217;ve got things up and running in the new digs, there should be some new posts on the way.
There may be a little kicking of the [...]]]></description>
			<content:encoded><![CDATA[<p>Hi folks.</p>
<p>XTCPinball.com had to move on to a new hosting server.</p>
<p>Many many thanks to the old host for giving the bits a place to live for so long.</p>
<p>Now that I&#8217;ve got things up and running in the new digs, there should be some new posts on the way.</p>
<p>There may be a little kicking of the tires for awhile and I have to check on the images and links.</p>
<p>None the less, this exceeding slow paced project is still going.  Perhaps I should get those DSL Turtles to be a sponsor.</p>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=193</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reading Switches</title>
		<link>http://xtcpinball.com/?p=188</link>
		<comments>http://xtcpinball.com/?p=188#comments</comments>
		<pubDate>Sun, 13 Dec 2009 18:14:09 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=188</guid>
		<description><![CDATA[Once again I find myself up against the switch matrix.  It seems that getting input from the pinball machine is going to be my biggest challenge from a hardware interface perspective once again.  It took a bit of reading and a lot of digging around in code, but I have finally coded up a working [...]]]></description>
			<content:encoded><![CDATA[<p>Once again I find myself up against the switch matrix.  It seems that getting input from the pinball machine is going to be my biggest challenge from a hardware interface perspective once again.  It took a bit of reading and a lot of digging around in code, but I have finally coded up a working system that appears to be driving the switch matrix properly.  Not well.  But functional.</p>
<p>This is pretty exciting for me.  If you recall, when I was trying to get this working with the propeller chip it pretty much defeated me.  I had too many variables in the equation.  For those keeping score at home, it is really difficult to solve a problem when there are too many variables involved.  I was up against: new hardware platform, new programming language, the unknown of trying to use the existing pinball CPU board &#8220;as-is&#8221;, an ill-conceived attempt to use the same 8 pins on the chip for both input and output, an attempt to build and test the entire matrix in-toto (ie, drive columns read switches).</p>
<p>Lets just say that the approach used previously was, euphemism needed, lets see&#8230;ah yes, overly optimistic.</p>
<p>The new approach has been much more successful.  First off, I have eliminated two big issues: I&#8217;m using C on an arm9 chip.  Two things I am very familiar with.  This alone has saved a lot of headache.  It is no fun to try to debug something on hardware and using a programming language that you are just learning.  Unless your goal is to learn that hardware and language, you are pretty much wasting time.</p>
<p>Second, I have a nice functioning simulation environment.  This is a huge win.  Being able to cross compile for either the simulator or the board has save a lot of grief.  Yes I know that I have to validate the simulator and there may be bugs there, but at least I am able to rough out structure and code flow.  With the propeller this was a lot harder.</p>
<p>Third and most important I am taking a baby-steps approach.  I&#8217;m not sure what foolish notion caused me to think I could fully code the switch matrix driver and expect it to work, particularly in light of the fact that i really didn&#8217;t understand the hardware.  This time around I have been coding up small tests, checking in simulator and on hardware, then incorporating the working code into the game system or kernel drivers as appropriate.  Funny thing is, I know better.  At least now I&#8217;m acting like it.</p>
<p>This all brings me to where I am currently.  I have code that can select a switch row.  I decided to use a shift register (74HC595) to expand the IO so that 3 pins can select one of 8 columns.  This is working very well and has the added benefit of being code I will reuse when driving the remaining components (solenoids, flash lamps and lamp matrix).   Just last night I finished coding and testing reading of switch inputs on a dedicated set of 8 pins.  This is working (not as well as I&#8217;d like, but it is working).  The input was slightly more difficult due to a key misunderstand about setting up the GPIO pins on the s3c2410 board.  But now it works and the knowlege is mine.</p>
<p>The next step should prove interesting.  I have isolated and soldered a connector cable in to the Data East CPU board switch column and row hardware.  All I need to do (in theory) is hook the cable from the protoboard to the CPU board and see what happens.  If all goes well I expect to be able to read switches from the machine itself.    Once that is working I can start addressing all of the other fun problems that come with reading hardware switches (missing switch closures and de-bouncing being the two biggies).</p>
<p>Not quite the speed at which I&#8217;d like to be progressing, but progress none the less.</p>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=188</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retro Pinball LLC</title>
		<link>http://xtcpinball.com/?p=182</link>
		<comments>http://xtcpinball.com/?p=182#comments</comments>
		<pubDate>Fri, 11 Dec 2009 18:51:12 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=182</guid>
		<description><![CDATA[I&#8217;ll have an update on my project later this weekend, but I thought I&#8217;d share a quick link.
Just learned about another pinball manufacturer.  These guys make a reproduction of a classic from the electromag days, Gottlieb&#8217;s Kind of Diamonds.
http://www.retropinball.net/index.html
Nice work!
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll have an update on my project later this weekend, but I thought I&#8217;d share a quick link.</p>
<p>Just learned about another pinball manufacturer.  These guys make a reproduction of a classic from the electromag days, Gottlieb&#8217;s <a href="http://ipdb.org/machine.cgi?id=1372">Kind of Diamonds</a>.</p>
<p><a href="http://www.retropinball.net/index.html">http://www.retropinball.net/index.html</a></p>
<p>Nice work!</p>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=182</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week in review Nov 22 edition</title>
		<link>http://xtcpinball.com/?p=177</link>
		<comments>http://xtcpinball.com/?p=177#comments</comments>
		<pubDate>Mon, 23 Nov 2009 23:29:54 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=177</guid>
		<description><![CDATA[Not nearly as exciting as the last update, but some small progress was made.

Re-arranged the driver code so that more work happens in driver.  This should result in a lot less thunking from user space to kernel space, and honestly, it&#8217;s just the right way to do it.
Roughed in some switch matrix handling code.  Doing [...]]]></description>
			<content:encoded><![CDATA[<p>Not nearly as exciting as the last update, but some small progress was made.</p>
<ul>
<li>Re-arranged the driver code so that more work happens in driver.  This should result in a lot less thunking from user space to kernel space, and honestly, it&#8217;s just the right way to do it.</li>
<li>Roughed in some switch matrix handling code.  Doing this is what precipitated the driver rework.  Should be able to have a working switch matrix &#8220;simultation&#8221; early this week.</li>
<li>Made a trusty checklist of what needs to happen for &#8220;in machine&#8221; testing of switches.  If all goes well, I could get to that this week (short week of work means more time to hack pinball!)</li>
<li>Did a little research on my display frame rate issues.  Might be able to make some changes to thread priorities, but the rate I&#8217;m getting is actually just fine.  In fact I have plenty of leeway while still being functional, which is good as there are a lot of mechanics still to code.</li>
<li>Set a simple roadmap to a minimal useable table.  I think I should be able to reach that goal by the end of December.  The roadmap, in short is: read switches, fire solenoids, code in simple game engine to hook switches to solenoids.</li>
</ul>
<p>Trying not to think too far ahead though.  Need to read the switches first.</p>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=177</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dot Matrix Display Working</title>
		<link>http://xtcpinball.com/?p=169</link>
		<comments>http://xtcpinball.com/?p=169#comments</comments>
		<pubDate>Mon, 16 Nov 2009 06:33:32 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=169</guid>
		<description><![CDATA[Great progress this week.  I got my checklist of items completed and was able to hook the sbc2440 board to the dot matrix display in the Goldeneye machine.  Success!

I want to write up some full details on this, but here is the quick version.
The new driver for bit banging the GPIO pins on the sbc2440 [...]]]></description>
			<content:encoded><![CDATA[<p>Great progress this week.  I got my checklist of items completed and was able to hook the sbc2440 board to the dot matrix display in the Goldeneye machine.  Success!</p>
<p><img class="alignnone size-full wp-image-170" title="xtc_dmd" src="http://xtcpinball.com/wp-content/uploads/2009/11/xtc_dmd.jpg" alt="xtc_dmd" width="400" height="300" /></p>
<p>I want to write up some full details on this, but here is the quick version.</p>
<p>The new driver for bit banging the GPIO pins on the sbc2440 didn&#8217;t work the first time.  I had to dig a bit more into the driver code where I discovered actual documentation.  Yes, I RTFM&#8217;d.  And it helped.  I had essentially configured the pins randomly.  Once set properly to be output pins things worked much better.</p>
<p>The simulator I wrote for the DMD appears to be pretty darn accurate.  Once I got the bit banging working and the cables hooked up properly, the driver worked without any modification.  There are a handfull of issues that need to be worked out.  I&#8217;m not happy with the refresh rate I&#8217;m getting.  I&#8217;m also getting a touch of flicker (barely, you really have to stare at it to notice).  It works well enough for now.</p>
<p>Needless to say I&#8217;m very excited about this progress.</p>
<p>The functioning display will make debugging the rest of the HW setup much easier.  Next up will be getting the switch matrix functioning with the matrix states showing on the display (much like every standard pinball diagnostics works.)</p>
<p>More photos and a details on code and stuff coming soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=169</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nice Metallica themed home brew over at ars technica</title>
		<link>http://xtcpinball.com/?p=165</link>
		<comments>http://xtcpinball.com/?p=165#comments</comments>
		<pubDate>Fri, 06 Nov 2009 00:05:40 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=165</guid>
		<description><![CDATA[Check out the work on this nice Metallica themed home brew.
Nice to see a linux system running at the core.
http://arstechnica.com/gaming/news/2009/10/metal-on-metal-behind-the-scenes-on-a-custom-pinball-game.ars
Nice work!
]]></description>
			<content:encoded><![CDATA[<p>Check out the work on this nice Metallica themed home brew.</p>
<p>Nice to see a linux system running at the core.</p>
<p><a href="http://arstechnica.com/gaming/news/2009/10/metal-on-metal-behind-the-scenes-on-a-custom-pinball-game.ars">http://arstechnica.com/gaming/news/2009/10/metal-on-metal-behind-the-scenes-on-a-custom-pinball-game.ars</a></p>
<p>Nice work!</p>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=165</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week in review Oct 30</title>
		<link>http://xtcpinball.com/?p=160</link>
		<comments>http://xtcpinball.com/?p=160#comments</comments>
		<pubDate>Mon, 02 Nov 2009 03:05:19 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=160</guid>
		<description><![CDATA[Not a good week in pinball land.
Step mother visiting == house cleaning instead of hacking.
Not complaining though.  I found a lot of things I otherwise would have kept scratching my head and wondering just what the heck I did with.
I did two things of note:

I started some sketchbook work on a playfield toy that I [...]]]></description>
			<content:encoded><![CDATA[<p>Not a good week in pinball land.</p>
<p>Step mother visiting == house cleaning instead of hacking.</p>
<p>Not complaining though.  I found a lot of things I otherwise would have kept scratching my head and wondering just what the heck I did with.</p>
<p>I did two things of note:</p>
<ul>
<li>I started some sketchbook work on a playfield toy that I want in the finished game.  While some might say it is a bit premature to be working that far ahead, I say it speaks to my confidence that I&#8217;ll get it working.  The goal will be to replace the Satellite playfield toy with something more in line with the new theme: a volcano.</li>
<li>I made a very detailed list of the steps that will lead up to some in machine testing.  It is not a long list.  In fact, the list points out very clearly that the only thing that will keep me from in machine testing in the next couple of weeks will be my fear of in machine testing.</li>
</ul>
<p>Unfortunately this weekend is lost and next weekend I will be out of town.  I am still committed to making progress every week.  It may just not be a lot.</p>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=160</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Week In Review Oct 23</title>
		<link>http://xtcpinball.com/?p=154</link>
		<comments>http://xtcpinball.com/?p=154#comments</comments>
		<pubDate>Sat, 24 Oct 2009 05:02:07 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=154</guid>
		<description><![CDATA[Ye Olde Day Job occupied way more of my waking hours this week than it ever should.
I did manage to get a little bit done:

Added a new driver to the linux kernel for configuring and driving the GPIO pins needed to  interface to the pinball machine.  Removed a couple of the test drivers that come [...]]]></description>
			<content:encoded><![CDATA[<p>Ye Olde Day Job occupied way more of my waking hours this week than it ever should.</p>
<p>I did manage to get a little bit done:</p>
<ul>
<li>Added a new driver to the linux kernel for configuring and driving the GPIO pins needed to  interface to the pinball machine.  Removed a couple of the test drivers that come with the prebuilt kernel that conflict with the GPIO usage I need.  The pinball driver is not complete, but it does allow me to reconfigure the GPIO registers to use the pins exactly how I want.  Hopefully I will get to test it this weekend.</li>
<li>I have been doing a lot of scratch pad calculations on how many GPIO pins I actually need.  For certain I will use 6 for the DMD and 11 for the switch matrix (3 for selecting and 8 inputs).  For the lamp matrix I&#8217;m pretty sold on using an LED driver which would only require 3 pins.  The final decision to make is exactly how to drive the solenoids and flash lamps.  I&#8217;m thinking, if 3 pins loading and running the lamp matrix is fast enough, would a similar driver also work to drive the coils?  At this point it will all be theoretical until I actually wire something up and test it.</li>
</ul>
<p>That&#8217;s it for this week, but under the circumstances at the &#8220;day job&#8221;, I&#8217;ll take it.</p>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=154</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Week in Review Oct 16 (er 19) 2009</title>
		<link>http://xtcpinball.com/?p=149</link>
		<comments>http://xtcpinball.com/?p=149#comments</comments>
		<pubDate>Mon, 19 Oct 2009 17:06:43 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=149</guid>
		<description><![CDATA[Once again, a small list of small accomplishments from last week.  Keeping the project crawling along:

Finalized timer system and gave it a good testing.  Should create a unit test for it just to make sure all corners are covered.
Reworked some of the simulated DMD code.  I had frame rate calculations happening in the simulator code [...]]]></description>
			<content:encoded><![CDATA[<p>Once again, a small list of small accomplishments from last week.  Keeping the project crawling along:</p>
<ul>
<li>Finalized timer system and gave it a good testing.  Should create a unit test for it just to make sure all corners are covered.</li>
<li>Reworked some of the simulated DMD code.  I had frame rate calculations happening in the simulator code side which didn&#8217;t make much sense.  Started moving the frame rate calculations to the driver so that it will work for both simulator and hardware.</li>
<li>In a flashback homage to my late 1970&#8217;s basic programming days, I hand coded a 5 x 7 dot matrix font for use on the DMD.  Of course this time it is done in C.</li>
<li>Worked up a good prototype for the switch matrix driver.  Next step is to create some kind of simulator input for the switches.  As with all of my code, I may end up discarding this and rewriting it a few times.</li>
<li>Started spec&#8217;ing out how to program the various modes for the game.  The current debate is whether to code directly in C, or to define a language for coding the game play.  As one does not preclude the other, I will probably be coding a few modes directly in C for early testing while the debate rages on.  I&#8217;ll write this up in detail at some point as it is exceedingly important.</li>
<li>Started the process of wiring up some test circuits and getting the 2440 hooked up to the protoboard.  Came to the realization that I really should fabricate a nice project box for this instead of housing the key components in an old cardboard box.  I envision a trip to TAP plastics in my future.  I hear the place is fantastic.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=149</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The week in review Oct 9 2009</title>
		<link>http://xtcpinball.com/?p=144</link>
		<comments>http://xtcpinball.com/?p=144#comments</comments>
		<pubDate>Sat, 10 Oct 2009 05:23:27 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Rambles]]></category>

		<guid isPermaLink="false">http://xtcpinball.com/?p=144</guid>
		<description><![CDATA[I&#8217;m trying hard to do at least a little bit of work on this project every day.  Most of the progress is pretty mundane.  Some simple coding, some schematic wrangling, some data sheet spelunking.   The simple truth is that not everything going on is very exciting, so I don&#8217;t feel compelled to post about it.
It [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m trying hard to do at least a little bit of work on this project every day.  Most of the progress is pretty mundane.  Some simple coding, some schematic wrangling, some data sheet spelunking.   The simple truth is that not everything going on is very exciting, so I don&#8217;t feel compelled to post about it.</p>
<p>It did however dawn on me while reading one of the many project blogs I follow that these little advances made every day are what keep the project alive.  If you skip too many days, you have to go back and remind/retrain/relearn things that should be second nature if you keep at it on a regular basis.</p>
<p>To that end here is a dump of the little things that kept me engaged this week:</p>
<ul>
<li>Wrote the basics of the swtich matrix code.  Still a lot of work to do including getting some kind of simulator switch matrix working.</li>
<li>Wrote, re-wrote, then threw out and wrote again the basics of the timer system.  I&#8217;m still not quite happy with it.</li>
<li>Bought the correct 2mm pitch cables from ebay to wire the GPIO port to the protoboard  (very, very exciting)</li>
<li>Identified the locations in the kernel drivers that need to be modified to use the available GPIO pins.  Came to a fairly good understanding of how the GPIO pin settings work.</li>
<li>Spent a few hours understanding exactly what the Stern/Data East switch matrix hardware is doing.  Made of list of components to order (probably from Digikey) to wire up a test circuit of my own.</li>
</ul>
<p>Hopefully these will turn into some full and more interesting posts in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://xtcpinball.com/?feed=rss2&amp;p=144</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
