After upgrading to Yosemite, I noticed that graphics performance was starting to lag a bit on my 2009 Mac Pro while driving two monitors at fairly low resolutions. At one point I had two GT 120s running separate monitors, but after one replacement and two failures, I was back down to one.
I decided to look into upgrade options and was happy to see that OS X now supports non-EFI video cards. The only catch: You won’t see anything displayed until OS X loads your drivers. Who cares?
I settled on an EVGA GeForce GTX 660 2GB, which Best Buy happened to sell. I can feel the judgement from the hardcore nerds for buying something at Best Buy. Nevertheless, this was much cheaper than trying to buy another GT 120 to replace my second one and offers WAY more power. I don’t game on my Mac – I just want the OS to feel snappy and fluid.
Like many powerful cards, the GTX 660 requires the PCIe 6 pin power connector from the power supply or motherboard. I’ve ordered this, but until it gets here, I’ve rigged up an external power source.
Steps to install:
- Attach one of these cables to your Mac Pro motherboard OR rig up an external PSU like I did
- Insert the new card and attach the other end of the 6 pin PCIe power cable
- Put the card retainer back in place, fasten everything down and reassemble
- If running an external PSU, make sure it is powered up before powering up the Mac Pro
Thoughts after installation:
- Why didn’t I do this sooner
- OS X is silky smooth
- The fans will ramp up audibly if doing anything intensive in apps that utilize the GPU, but that’s OK
- Everything just works – no drivers to install
- My biggest bottleneck is now my disk – an SSD is next
Mode: 1680×1050 fullscreen on one monitor
- FPS: 5.9
- Score: 148
- Min FPS: 3.3
- Max FPS: 11.8
- FPS: 52.8
- Score: 1330
- Min FPS: 8.3
- Max FPS: 103.3
With an Arduino Ethernet, Processing, and a Kinect, I was able to easily create this little demo where hand movement can control a servo. This is just a tiny step in my master plan to create a robot clone so that I don’t have to leave my chair.
The following libraries and drivers made this work and also made it super easy for me to create it:
EMAX ES08A Servo
How it works:
- The Arduino Ethernet acquires an IP address and waits for UDP packets on a certain port.
- The machine with the Kinect sends packets to the Arduino that contain hand coordinate data.
- The Arduino then takes this data (an integer) and maps the range from 0 to 180 degrees.
- The mapped value is sent to the servo.
I played around tonight with making my iPod touch an auxiliary display. I thought it may be neat to just have random real-time public tweets cycle through on it so I made the following. As you can see there’s nothing too smooth about it yet – no AJAXiness implemented as this was purely proof of concept.
I think this is pretty cool for a Happy Meal toy…