The iPhone 5 review

The world needs another iPhone 5 review.  So I’m here to give you one.

I’m not going to get into all the specs.  Maybe in a past life, but plenty of other folks have done that quite well in today’s day and age.  So I’m just going to stick to impressions.

Box and packaging

The iPhone 5 comes in a nice box like the older iPhones. The main difference here is that instead of a USB AC adapter cube you get some bigger EarPods.  I couldn’t give a whit about the EarPods (I do not like things in my ears)  so I’ll leave those out of this review.

Weight

First impressions upon holding the phone … it is quite a bit lighter than the iPhone 4 (22% lighter, if I recall correctly).  I find the extra lightness to be a notably successful challenge of constraints, but practically of little use.  But good bragging rights for the hardware engineering team.

Thinness

The iPhone 5 is about 20% thinner than the iPhone 4 series.  Contrasting it with the previous generation, it is as if the back layer of the glass sandwich design simply went away.  While there are thinner phones out there today, this is probably the thinnest phone that you would care to use.  Again, I consider the “thinness wars” today to be of little practical use.

The front

The front of the phone is obviously taller now.  This is the most obvious change to the iPhone 5.  You get one extra row of icon space in the vertical direction.  This has been accomplished by both making the phone slightly taller and removing some extra space between the vertical edges of the screen and the edge of the phone.  So the phone is itself is only about 10% taller, whereas the screen itself is taller by 20%.

The taller screen is less useful than one might think.  The primary issue of tiny text on a phone is constrained in a horizontal direction, not a vertical one.  So when browsing a webpage in vertical format, you see more tiny text, not bigger and more visible text.  I find the lack of additional scrolling/swiping supposedly afforded by a taller screen to be of little extra importance.  Where the taller screen really shines is giving you extra space when the onscreen keyboard is in use, such as when texting or entering data into web forms.  There is far more screen real estate here; in this area, it is welcome.

In addition, the taller screen pushes the limit of one handed use.  At 5′ 8″, I have average or perhaps slightly larger than average hands, when you take the fairer sex into account.  I find it hard to bring the thumb over to the top right corner of the screen.  In addition, with the taller size of the phone, there is some confusion as to how to hold the phone.  If you hold it centered, you need to really stretch your thumb to hit the home button.  If you hold it at the bottom and treat the taller screen space as an extra bonus in the vertical direction, then you have quite a hard time getting to the top of the screen.  Arguably, Apple did a good job of walking the line here, as I can’t imagine it could get any larger without impacting usability for smaller handed folk.

Aesthetically, the front is similar to the iPhone 4S.  But while the top looks OK in terms of negative space, I feel the bottom area containing the home button looks cramped.  I think we should do away with the front location of the home button altogether.

The back

The phone itself is a much newer design when viewed from the rear.  Instead of the glass front and back, there is a mostly unibody aluminum band on the back with two tiny glass windows at the top and bottom of the phone.

There has been much ado about ScuffGate … wherein the black anodized aluminum case scratches through during normal use to reveal the raw aluminum underneath.  The phone is supposedly especially vulnerable at the chamfered edges where the unibody construction is cornered off from sides to back.  I cannot comment on this as I chose the white iPhone, but it seems valid.  I went with the white iPhone primarily for this reason (any scuff just reveals more raw aluminum anyway).  I also felt it was time to have a change of pace from the black iPhone.

It’s probably a quite difficult engineering exercise to cut the top and bottom glass panels exactly to fit flush with the aluminum case.  This is pretty impressive from an engineering standpoint.

Sides

The sides are largely similar to the iPhone 4 series.  The main changes are that the headphone port has been moved to the bottom, the speaker grill at the bottom is a series of drilled holes and not mesh ports, and the venerable 30 pin port has been replaced by a much smaller 8 pin Lightning port.  The new port does not care what orientation you plug the cable into it, which is a hugely welcome change in terms of usability.  In this case, I say this is one of those genius little changes that really matters.  However, there was no speed increase.  Not a deal breaker, but puzzling.

This port change, of course, causes quite an upheaval in the accessories industry.  I know I have a lot of gadgets that are going out the window.  But it was a necessary evolution.

Design as a whole

I believe that the iPhone 4 and iPhone 4S are simply better looking than the iPhone 5.  The pure glass and steel looking of the iPhone 4 series has always appeared very modern, refined, and symmetrical.  I feel the white/black bands at the back of the iPhone 5, while presumably necessary to maintain the proper reception characteristics, look aesthetically out of place.  As does the front home button.  This was a very hard exercise in constraint.

Coming back to the unibody construction … the use of aluminum to house the entire phone and the back makes the phone significantly more sturdy and resistant to drops.  So while the glass sandwich design of the iPhone 4 and 4S looks great, the glass was structurally vulnerable to shattering and weighed the phone down.  So there were gains to be had by switching to more aluminum construction, and Apple eked them out.

It is worth noting that if you aren’t a phone dropper, the iPhone 4 series and the glass back would actually be more durable to light scratches and other wear and tear use.

Speed

The iPhone 5 contains a new A6 series processor, running at 1.2 or 1.3 GHz.  The old iPhone 4S ran an A5 dual core processor at 800 MHz.  The new processor is remarkably fast … easily doubling the iPhone 4S in benchmarks, while utilizing less power.  I had slight complaints about the speed of the 4S, but have virtually none about the 5.  Apple did a fantastic job in managing constraints here.  I do not feel that I need extra speed in anything but web browsing right now anyway, so this represents a potential plateau in terms of my requirements for speed from mobile phones.  Hopefully something new and innovative will change my mind.

Speed (LTE and Wi-Fi)

The LTE support is excellent.  It is not uncommon to get speeds from 10 to 40 mbps down.  Combined with the A6 processor, the iPhone 5 truly feels unconstrained, and, paradoxically, users are likely to have a faster internet connection through their phones than their home broadband setups.

However, it also seems to sip battery life.  See below.

In terms of Wi-Fi, the iPhone 5 now supports the 5GHz band, as well as dual antennas for more throughput.  I am a big fan of 5GHz wireless, especially in crowded living environments such as apartments and condos.  But while this is a necessary evolution of the technology, and Amazon made a big deal out of it, it is a negligible real improvement for users.  Mobile devices generally don’t need that much bandwidth.

Battery life

Apple claims the battery life matches the iPhone 4S – 8 hours of talk time, web browsing, etc.  In practice, I find the iPhone 5 battery drains quickly, which makes me keep an eye on it through the course of the day.  I have been using a Mophie battery pack on my iPhone 4S, which, while somewhat unwieldy, has really given me enough battery life to truly make the phone a little more fire and forget, especially on trips … where I think the extra battery may just be necessary.  I don’t much enjoy the idea of tending my phone so I can use it throughout the day.

The new iOS 6

I find iOS 6 does little in the way of truly necessary new features.  The best changes … iMessage sync with your phone number across devices, faster safari performance, turn by turn directions, smoother app store interactions and less “enter your password” scenarios.

Apple Maps is getting a lot of flak, but the real bottom line is that it’s not as bad as you think.  I find turn by turn directions to be incredibly useful, and I don’t anticipate losing enough IQ points to drive into a ditch or head to the top of a building to get gas.

Some apps are still oddly lacking … Reminders continues to be a UI disaster, the Stopwatch portion of clock looks like it was coded as a sample app and never updated, and I still find organizing apps to be underfeatured.  The settings area is completely unorganized and really needs a complete rethinking.  More on that later.  Still, iOS 6 is better than not upgrading … but I really think more polish could have been had here.

Conclusion

Overall, the iPhone 5 may well round off the rapid pace of evolution that smartphones have undergone over the past year.  I enjoy the little design details and commenting on them … but the dominant change is that web browsing with LTE and the new A6 processor is blazingly fast … and there’s a cap on how fast I need web browsing to be.  I would be happy with this phone for a long time if web pages don’t get much more complex, and a battery pack will probably round out my biggest complaint with the phone.  You can tell Apple ran up against some tougher design constraints this time around, but it’s still the best phone out there.

Changes for the iPhone 6 I would suggest

Move the home button to the side.  The iPhone is so ubiquitous that users don’t really need an “intuitive” way to hit the home button right now.  It will save significant space and it will be easier to hit one handed than the home button anyway.

Kill the sim card tray.  Build some sort of sim cloning tool into the hardware and “load” sim cards into it with a lightning accessory.  Sim cards are a ridiculous waste of space.

Take the screen out to the edges horizontally.  This would help text size issues, and it’s pretty much the only way to go without killing one handed usability by further increasing the screen size.

Make an iPhone for business.  This may go against some design sensibilities, but there are a lot of people that would benefit more from extra battery life and buttons nowadays.  I would gladly buy a thicker, denser iPhone if it had more battery.  I really feel like this niche is underserved.

Wireless charging – I want this badly, but it may be difficult to accomplish.  Ignoring the technical challenges of coil windings and inductive charging, etc … it would be great to see it.  Setting down your phone and having it charge on its own means one less thing to worry about.

More battery – Granted, it’s hard to make this a selling point in specs, but, honestly, this is one of the few additional changes I would really benefit from now as things like speed reach diminishing returns.  As it stands now, I’m going to need an extra battery case anyway, so all that painstaking design work from Apple is sort of out the window hidden behind an ugly plastic case.

Merge the headphone jack with the lightning port – Again … more space for more battery.  Make tiny lightning to headphone adapters for everything else that needs to plug in.

Posted in Apple, Uncategorized | Leave a comment

Repurposed an old Mac Mini

In the process of getting a Hadoop cluster running on many of the machines around my household (made possible and relatively uniform thanks to virtual machines running in VirtualBox and VMWare), I ran across issues with getting an old Mac Mini to help the cluster out.  It was of the first Intel Mac Mini’s from 2006 and was a 32-bit processor only (a 1.83 GHz Core Duo, to be precise).  New Cloudera deployments only go 64-bit.

Luckily, I had an old Core 2 Duo lying around from another Mac Mini that bit the dust a year ago, so I was able to put the processor in.

In the process, I rediscovered the plastic push pins that hold the cpu heatsink in.  In short, these things were never meant to come out again, and invariably break.  Again, luckily, some 4-40 machine screws and nuts from Lowe’s helped replace those pieces of plastic junk.

Finally, 64-bit is good, but 2GB of max RAM by default isn’t that much.  The firmware on the 2006 Mac Mini was limited to 2GB, but it’s the same hardware as the 2007 Mac Mini, which supported 4GB of RAM (3GB addressable).  So I found the user hack to get the new firmware on there … and voila … a 2GB + 1GB config installed and the machine sees 3GB of RAM … which gives me a little bit of breathing room to put VM’s on the machine.

As a side note, I really dislike the OS obsolescence being forced on some of this perfectly working hardware.  There isn’t much good reason to stop updating these machines.  In fact, I rather like the Mac Mini’s because the idle power consumption lets you run them 24/7 without burning money.  Even as old hardware, they end up still being useful to host apps and background services.  I suppose if push comes to shove, I will probably find a way to hack Ubuntu onto the native hardware.

Posted in Apple, Uncategorized | 2 Comments

Back to My Mac interferes with IPSec based VPN

Apparently a few weeks ago my home VPN stopped accepting incoming connections.  I discovered this last week when I was on vacation and tried to remote into my home network, only to discover that it would not work.

I was understandably confused because I hadn’t changed my configurations at all.  And having something like this break is a bit scary, precisely because it is so difficult to get a router set up and configured just the way you want it.

Anyway, when I got home, I decided to begin troubleshooting.

One thing I noticed was that UPnP was mapping ports 4500 and 4501 to computers on my network.  But why?  I ignored this for a bit and played around with uninstalling and reinstalling openswan (an IPSec implementation).  Oddly, it worked after I reinstalled it, but stopped working a few minutes afterwards.

This led me back to try and figure out what was going on with those ports.  I eventually figured out with an IP scanner (AngryIP) that the machines mapping the ports were my Mac’s.  That nailed it down.  I discovered that port 4500, used by IPSec, was getting remapped via UPnP for the Back to My Mac service.  I care more about my VPN than I do that feature, so I blocked that port from being remappable on the UPnP side.

I guess Apple isn’t exactly worrying about this sort of scenario for most users, but I think it’s a bit presumptuous to lock down that port when it has a very common alternate usage.

Posted in Apple, Uncategorized | Leave a comment

Passion is more than just consumption

Occasionally, someone will ask me questions like the following.

“Are you a foodie?”

“Are you a car guy?”

In true engineering (and perhaps anti-social) fashion, I often ask “How do you define ‘foodie'”?  Because to me, the distinction is important.

I love the analogy of when people are asked to rate themselves on a scale of 1-10 of how fit they are.  Inevitably they rate themselves around a 7 or so.  Then they are asked to imagine themselves standing next to Lance Armstrong and rate themselves again. They end up in the 3 to 4 range.

True passions must involve a betterment of one’s self.  And the bar must be high.

Let’s use food as an example.  Some points on the range are:

  • I don’t care what I eat at all
  • I have eaten at some nice places, and actively seek out new experiences.
  • I am a skilled chef.  I regularly create new recipes, and evaluate other dishes in the context of my own creations.

I fall into the second category.  Now, there is nothing wrong with the first two.  We all have priorities, and not all interests can be elevated to expert levels.  However, I hesitate to put a label on this (“foodie”) because I find it to be nothing to be proud of.  Yes, I eat food.  So what?  Is that something I should be proud of?  Of the many labels that I might define myself by, this is not one of them.

Consumption for consumption’s sake is akin to gluttony.  It provides no lasting benefit to the world or to one’s psyche.  Consumption combined with creation … now that is admirable.  A talented chef who can create, consume, criticize and refine is leagues beyond me.  He or she is more of a foodie that I would ever be.  Indeed, I would be embarrassed to call myself a foodie in his or her presence, just as I would be embarrassed to call myself fit in Lance Armstrong’s presence.

My point is … when I evaluate for passion, I evaluate to see if one has done something unique with that passion.  Either in terms of deconstruction of consumption back to modification, creation or enhancement of skill, or perhaps critique via compare and contrast methods to synthesize an opinion (which is another form of creation).

So here’s an exercise for the truly introspective.  Stack rank the things you consider yourself truly passionate about … take the first three or so, and honestly ask yourself: Have I created, changed, or contributed anything to this category?  Would I be perfectly OK and not embarrassed to stand next to an expert in this category and call myself truly passionate?  If yes, great, and keep doing more of that.  If no, then stand back, re-evaluate what passion really is to you, and ask how you can better yourself or the whole category with what you are doing.

Posted in Uncategorized | Leave a comment

The Amazing Spider-Man review

Some might question the need for this movie, but the basic problem, according to what I’ve been told, was that:

  • Sam Raimi and Tobey McGuire were tired of the franchise and wanted way too much money to continue.
  • Sony needs to make a Spider-Man movie every so often to keep the license.
  • Continuing within the existing framework would have contractually required Sam’s involvement, since he set everything up.

Hence the reboot.

At any rate, I found this to be a decent movie.  I’m not sure I went into it with high expectations, but I was interested in the darker tone of the movie.  Cliche, but true.

The movie redoes the origin story.  It didn’t bother me, but it probably will annoy some people.  The teen romance angle and witty dating banter gets a little more airtime in this movie.  I enjoyed the action more in places, and less in others.  In particular, the practical stunts look good, but also often fail to communicate the real “superhero” like jumps and moves that should be possible.  Spider-Man gets injured a lot, and that isn’t really consistent with his “pre-cognition” powers.  I guess this is done for the sake of movie drama, but I’d like to see the fights be a little more intelligent and consistent with the comic.

The Lizard was not a particularly compelling villain, nor were his motivations interesting.  He’s sort of a bad guy for no reason at all.  They should have done more with the character.  It would have helped.

Garfield was a great choice for this movie, and he and Emma Stone have believable chemistry.  Garfield gets across some of that high school angst with a serious tone and not the comical one that Tobey McGuire was laden with.  It works.

There are some strong parallels with the first Spider-Man movie (2002).  Both villains inject themselves with green liquid to turn into super villains.  Both involve a refusal to perform human testing of highly experimental procedures. Both have a “New Yorkers helping out Spider-Man in his time of need” event.  I would have preferred that the plots diverge more widely.  A reboot needs to distinguish itself from its predecessor.

The movie strongly foreshadows that this trilogy is going to end up with the famous death of Gwen Stacy.  It would be a more complex and interesting twist if that’s where it all ends up.

I still miss the old MTV Spider-Man series.  It had a great trance musical theme, dark overtones (students and people suffering serious consequences from villains left and right), all oddly but well mixed with serious college issues (stalking, hazing, dating, general life etc).  Enjoyed that more than all the movies.

Posted in Uncategorized | Leave a comment

Google could make the iPhone 5 today, and it wouldn’t matter

In the midst of all this patent brouhaha, I think it’s important to note that Apple’s success with the iPhone and iPad wasn’t just the result of innovation in one product area.  It was the result of years of constantly putting the customer first.  Years of saying “hey, as a company, we aren’t going to waste your time.”

That’s why when Apple finally announced the iPhone, it hit big.  Rather than all of the initial skepticism people usually have with a product, customers knew there would be something worth looking at.

The fact is, Apple occupies a psychological space in the market’s mind that is closer to the “buy” decision than other companies.  It’s not much different from a friend recommending movies or games to you.  Once or twice … you have similar tastes, and maybe he got lucky.  5 times … you start paying attention.  You may plan a whole night of entertainment around his recommendation.

It’s not a fair race any more.  In the minds of consumers, Apple is already half way to the finish line at the start of each product cycle.  And that’s because they’ve been running the race correctly for 10 years or more.

And that’s also why, even if Google makes a great phone or tablet, it won’t matter.  At this point, it would have to be an order of magnitude better to get attention.  Google just doesn’t have the trust.  Instead, they stand up in front of you and declare that the Nexus Q is best thing since sliced bread.  And that Google+ is doing amazing numbers … all of which you suspect are carefully selected to hide the truth, which is that none of your friends are using the service and you have no reason to go there.  And which you confirm later by reading any number of reasonably researched articles on the Internet, as well as correlating it with your own experience.

This kind of marketing spin does Google no favors.  It is developing skepticism within its customer base, not a willingness and automatic expectation to buy.  It is a bad direction to head in.

It is worth noting that the two models:

  • Innovating by seeing what sticks
  • Filtering everything so that only the best makes to the customer

are not right or wrong.  Certainly startups tend towards the “what sticks” approach, and many companies (perhaps even most) succeed there as well.

However, the absolute pinnacle of success is only reachable by filtering for your customers.  There is no other way to get that Pavlovian “yes” response to develop.  If your model relies on constant refreshes of products or services to customers, then you will, at some point, be surpassed by a company that filters unless you do it first.

Is this bad?  Not necessarily.  Second or third place products can serve different niches and different needs, but they won’t be an object of desire for the masses.  Just try not to let your ego get in the way if it happens.

Posted in Apple, Uncategorized | Leave a comment

Over to WordPress

Made the switch today.  Looking OK so far, tho I seem to have lost most of my image links.  I suppose that’s the price of progress, eh?

Auto sharing to Facebook and other networks seems to be possible now.  These weren’t even options when I started the blog the first time.

Posted in Uncategorized | Leave a comment

Vegas tip – don’t get “longhauled”

Pro tip to the inexperienced.  In Vegas, there’s the short way to get to your hotel on the Strip, typically via Swenson and Tropicana.  This comes straight out of the north end of the airport and should cost you around 15-20 bucks with no traffic.

And there’s the long way … via the freeway that comes out of the airport south, and around to the strip afterwards.  The fare can run up to 30-50 dollars.

Going the tunnel/freeway route means you got “longhauled”.  It’s a generally a crime if done without express permission, and it is still done all the time by cabbies trying to run up fares.

What does this look like?  Here’s a google maps example going to Aria.

Here’s an article by the Las Vegas Review-Journal about the extent of the longhauling problem and the ineffectiveness of the crackdown.

http://www.lvrj.com/business/going-the-long-way-costly-cab-trips-grow-into-epidemic-148421785.html

Always tell the cab driver that you want the shortest path to your destination and “no tunnel”.  Don’t say quickest, because quickest is discretionary, and lots of cabbies like to claim that it is quicker to go via the freeway.

Posted in Uncategorized | Tagged | Leave a comment

Forza Motorsport 4 – TSW 6-speed shifter with the Fanatec wheel, via Arduino

Forza Motorsport 4

Forza 3 and my first shifter approach

In my previous post, I discussed my dissatisfaction with Forza Motorsport 3 and the SST Lightning shifter I modified to work with it.

I was always aware that my original circuit design was less clean than it could have been.  For one, it required direct modification of the third party shifter … which is usually not pretty.  Two, it used a lot of different IC's that probably could have been consolidated into the logic of a single microcontroller.

However, I was generally aware of the tradeoffs between the two and made the decision to go with a bunch of individual IC's consciously at the time.  For one thing, I actually wanted to print a circuit board.  Second, I decided it was more important to go through the motions of it as a learning experience rather than focusing on an optimal design.  And, third, I could always take the microcontroller approach the next time.

Future goals for my next shifter

Find a better shifter

With the generally unintuitive behavior of the SST Lightning, my next shifter needed to be something that I wouldn't feel ashamed of putting in front of any normal stick shift capable driver.

Parse the USB output directly with an adapter

Creating a custom circuit board and modifying a shifter is far too difficult and complicated for most people, and it isn't first option that comes to mind when you think of ways to make a third party shifter compatible with your own steering wheel.  The natural inclination is to just put an adapter of some sort between the wheel and the shifter, without modifying anything  So that's what I wanted to build this time around. 

The release of Forza Motorsport 4

The above thoughts percolated for many months while my sim racing cockpit sat idle.  As Forza Motorsport 4 gradually approached its official release date of October 11th, 2011, I resolved to go fix my rig in preparation for the new game, even though the new game honestly didn't look all that different.

Finding the new shifter

It's hard to say how exactly I found it, but suffice it to say that, after occasional bouts of 30 minute Google search sessions, I ran across the TSW 6 speed shifter and some associated useful reviews.  Check out the following features.

  • Centered on gears 3/4
  • Decent throw
  • Reverse all the way on the left with extra resistance
  • Gear below reverse locked out

I don't know how I managed to miss the existence of the TSW shifter in 2009, but it became quickly apparent that I had chosen the wrong shifter two years ago.  This was what I needed.

OK, it was a bit expensive, but it wasn't going to be possible to build a shifter like this on my own right now. One criteria down.

Figuring out how to build the adapter

The platform – Arduino

The Arduino is a popular low cost and open source micro controller platform.  The basic version of this can be picked up for around 30 dollars.

Luckily, I had an Arduino Duemlianove that had been sitting around in my apartment for a couple of years from a Sparkfun talk at Google.  It's always strangely coincidental how you find a use for things that you could never have anticipated.

The USB Host Shield

Of course, just having an Arduino lying around doesn't do you much good.  You need a way to physically connect to the USB shifter, and you need to be able to host it via software.  Arduino's can be expended by the use of "shields", which are essentially just additional boards that can be stacked on top of the Arduino.  With shields, you can add Ethernet ports, wireless modules, and all other kinds of expanded functionality to an Arduino.

Luckily for me, someone developed a USB Host Shield that stacks on the Arduino and provides you one standard size USB host port to interface with USB devices.

With the Arduino and USB Host Shield, it looked like I would have everything I needed to build my adapter.  Second and last criteria met.

Putting it all together (The old way)

The TSW shifter was the first part to arrive.  My Arduino project was going to take a lot more time to come together, so, in the mean time, I decided to figure out if I could hack up a way for the TSW shifter to work with my SST Lightning adapter.

It turns out that not only is the TSW shifter nicer in build quality than the SST lightning, it's also better for modding too.  The switches are wired via ribbon cable to a controller PCB mounted on the outside of the shifter.  This means to access the switches, all you really need to do is pop the ribbon cable off the PCB and stick header pins into the ribbon cable.

The only difficulty here is that the TSW shifter operates active high (All switches are 0V by default, and the active one is 5V) instead of active low (default 5V, active 0V) like the SST Lightning.  So to make the shifter work with my SST Lightning circuit, I needed to invert the switch values before passing them in.  I built a simple circuit to do this.

I placed the inverter circuit between the TSW shifter and my SST lightning circuit … and it worked as expected in the game.  I was actually quite pleased with how well the TSW shifter played in the game.  I now knew that the TSW shifter was going to work one way or the other, and that I could spend some additional effort and time on the Arduino approach while having a working TSW shifter in game.

Putting it altogether (The new way)

First milestone: Do anything with the Arduino.  That wasn't too hard at all.  I just downloaded the Arduino Development Kit for Windows, plugged the Arduino into my USB port, and I got an LED to blink on the Arduino.  Success!

Second milestone: Finding a way to interface with the joystick.  This was the trickiest part.  I attached the USB Host Shield to the Arduino, and then attached the shifter to the USB host shield.

The makers of the USB Host Shield have supporting code for it that is on version 2.  Unfortunately, the USBJoystick code I found on the net was meant to work with version 1.  I spent a couple of days messing with porting over the code for the USBJoystick to v2 before I realized it would take too long to understand how everything worked.

Eventually, I gave up on the port and just compiled the old USB Host Shield (v1) code on the Arduino along with the sample USBJoystick code to see if it would work.  Debug outputs started popping out of the serial monitor with every shift.  Success!

Third milestone: Output analog voltages from the Arduino to the Fanatec wheel.

Now, the tricky part about micro controllers like the Arduino is that they don't output analog voltages.  They generally either out
put either 5V or 0V.  Being microcontrollers, however, they can do this switching very often and very quickly.   In order to get an analog voltage, what you need to do to get, say, 3V, out of the Arduino, is output 5V 60% of the time (3V being 60% of 5V, of course), and use a low pass filter to smooth things out.

What are the implications of doing this?  Well, you need to select an appropriate resistor and capacitor that creates good low pass filter characteristics for your intended application.  And your actual output has some deviations from a true analog voltage output that you need to be aware of.

Ripple – Because the microprocessor behind the scenes is constantly flipping its voltage from 5V to 0V and back again, the actual output from your low pass filter will never settle at an exact value.  Instead, it will bounce around your target voltage value.  Allow too much ripple in your filter output, and you could end up sending unexpecting values or voltages downstream that you never really intended.

Settling time – The time it will take for your filter output arrive within some acceptable range of your target output is now non-trivial.  For dimming Christmas lights, this probably isn't a big deal, but for gaming, you can imagine that it actually matters a bit.

Ripple and settling time are at odds with each others.  You can reduce the ripple in your filter output, but at the expense of the settling time when the desired output changes.  That's why knowing your application needs is important.  Turns out that there's a really good calculator for displaying the results of a low pass filter for PWM in Japan.  I used the heck out of this and it came in very handy, as you'll see next.

Fourth milestone: Reduce the latency of the switching as much as possible

Of course, in gaming, it's important that controllers be as responsive as possible.  One of the advantages of my old circuit was that the response time would have been nearly instantaneous.  Now, with my new adapter, there would be a slight lag time in polling the USB outputs, plus a settling time required by the low pass filter.  Instantaneous was no longer in the cards.

In order to reduce the latency, the first thing I did was up the polling frequency in the software for the Arduino.  It was defaulting to 50 ms in the USBJoystick code, which was way too long.  I changed it to every 1 ms.  This seemed to work (although the real polling frequency was more like every 2 ms due to actual code execution).  Anyway, no ill effects, and that chopped a good 48 ms off the latency of any shift.

The second piece of this was to select a decent looking low pass filter.

I'm not going to break this down tremendously, but the default PWM frequency out of the Arduino is about 1 kHz, so in order to minimize latency and keep ripple within reasonable levels, I selected a 4.7k resistor and a 1uF capacitor.  This produces a transient analysis that looks like the following.

As you can see, it arrives at the 90% mark in around 10 ms.  I could have improved the latency more by testing the exact limits of the ripple (I was very conservative on this for obvious reasons), or by modifying the Arduino timers to switch its PWM outputs faster.  This turned out to be more of a pain in the ass than I had hoped, so I ended up skipping it and taking the 10ms hit (which isn't that much anyway).

Fifth milestone: Make it look reasonably nice

This is where the Arduino Protoshield comes in.  It's basically an Arduino shield with a prototyping area where you can put your own stuff.

Anyway, there's not much to say here.  The low pass filters and the outputs of this filters into the Fanatec wheel have to go somewhere, so they go here.  I also added a mini DIN breakout board for the 6 pin connector (that interfaces to the Fanatec wheel).  With the right combination of resistors, capacitors, etc … you end up with something like the below.

Finale

Here's the final product.

  • It's powered by any USB port.
  • It interfaces directly with an unmodified TSW 6-speed shifter (and powers it as well).
  • It has a standard 6 pin mini-DIN port (aka PS/2 port) that can be connected directly to a Fanatec wheel.
  • The top shield is my custom output shield to the Fanatec, with the low pass filters going to the 6 pin mini-DIN port for the Fanatec, the middle shield is the USB Host Shield, and the bottom is the Arduino.

It would be nice to put it inside a custom enclosure of some sort, but I think that's going to be unlikely unless I can find a 3D printer to work with (and learn how to use it).  Anyway, it's pretty sturdy as is … and perhaps more interestingly, much easier to replicate off the shelf by others.

Finally, here's a YouTube video that puts this all together – http://www.youtube.com/watch?v=2utk_62blmM.

Hope you enjoyed the walkthrough!

Posted in Uncategorized | Tagged , , , , , | Leave a comment

SST Lightning with Forza and the Fanatec wheels – not good enough

History
Some of you may remember that when Forza Motorsport 3 came out, I built up a pretty elaborate rig to use with the game.  Features included:
 
  • A full steel frame cockpit by Obutto
  • High end steering wheel and pedals from Fanatec
  • Anywhere from 3 to 5 Xbox 360's at one time driving triple screens and rear mirror/spectator cams
  • A small rack holding all of that equipment behind a UPS and surge protector.

 
 
The centerpiece of the whole rig, in terms of effort, however, was the custom circuit I designed to make the SST Lightning (a standard USB shifter designed for PC gaming) compatible with the Fanatec wheel.
 
 
As it turns out, I never really used the rig that much … and, although I presumed the SST Lightning was going to be a really high quality shifter when I purchased it, that actually wasn't the case at all.  In fact, the SST Lightning has a couple of major problems.
Problems with the SST Lightning
 
 
Positives
Solid, 360 degree mounting options – The shifter is made of solid aluminum and rotates 360 degrees within a heavy duty clamp that can be mounted to pretty much anything.  It's a good design in this respect and won't move around on you if mounted to something solid.
 
Click shift action – The click action is smoother than the Fanatec provided shifter and snaps into place more cleanly and readily.
Negatives
2nd gear doesn't always engage – It's too hard to explain here, but tolerances are such that the ball detente mechanism used to snap and keep the shifter in place is slightly off.  In essence, if you move the shifter fully in, the gear makes contact.  However, the gear actually wants to snap in just before it is fully making contact.  If you shake the shifter a little, it will pop into place and lose contact with the gear.
I was able to fix this with some electrical tape over the switches to thicken the contact area, but that should not have been necessary.
Difficult to modify – Wiring out the contacts from the shifter bottom to make them work with my circuit was major work.  This is not a shifter that wants to be modded.
Poor feel (Short throw) – Despite the positive I listed above on this point, it's better than the Fanatec provided shifter, but still not very close to a real 6 speed shifter.  It feels like a lightweight toy or joystick, not a shifter.  "Dinky" might be the right word.
 
Poor feel (Not centered on gears 3 and 4) – Probably worst of all, it's an 8 position shifter that isn't centered on gears 3 and 4, but instead centers between gears 1/2 and gears 3/4.  For anyone that's driven stick in real life, this is completely unintuitive and hard to get used to.  In addition, with the throws being as short and light as they are, it's very easy to miss a shift since there's not much of a difference at all in motion between going into 3rd and 5th gear.
Poor feel (no Reverse/empty gear lockout) – In a normal 6 speed shifter, there is a lot more resistance moving the shifter over to the left into Reverse, and you can't move the shifter at all into the space below reverse.  Simulating this is something the SST lightning just doesn't try to do.  Again, combined with the unusual non-centered layout of the gear pattern and the shortness and lightness of the throws, you'll be hitting the wrong gears a LOT.
Embarrassing – In the end, although the shifter worked, friends who came over to try it out would constantly miss shifts and get confused.  All I could do was apologize to anyone that came over for how the shifter worked.
Moving forward
 
As you might have guessed, I was pretty happy with myself in terms of actually being able to engineer the translation circuit and build out a clean PCB to bundle it all up.  I learned a lot from the challenge and that was probably more important than anything else here.
 
But, in the end analysis, I wasn't all that happy with the actual setup, and combined with the fact that Forza is actually more of a sandbox game than it is a structured game with accomplishments for you to reach, etc … it didn't feel like much fun.  It probably didn't help that by the time this all came together, I also had a real car to take to the track!
 
But fast forward to nearly two years later.  Forza Motorsport 4 would be coming out in October (and has as of now), and I wanted to see if there was something more I could do to fix up all of the initial effort I had put into this.  And that leads into the next post … a new shifter and a new circuit board.
 
Posted in Uncategorized | Leave a comment