Last Saturday in Tampa was sunny, cloudless, and warm, and still I chose to spend half the morning and half the afternoon indoors to participate in GM’s Makers Hustle Harder hackathon at Tampa Hackerspace. And it was worth it — I got to meet new people, hang out with friends, work on some interesting tech, and even won a prize!
GM is opening their in-car console system— called NGI, which is short for Next Generation Infotainment — to third-party app developers in a way that no other auto manufacturer has before, and they’re promoting the NGI SDK with a series of hackathons taking place this year. The first hackathon took place here in Tampa on Saturday, March 4th; there will also be hackathons in Boston and Chicago later this year.
Using the NGI SDK, developers can write apps for the in-car infotainment consoles located in many GM vehicle center dashboards, like the one pictured above. The SDK gives you access to:
- An 800-pixel high by 390-pixel wide touchscreen to receive input from and display information to the user
- The voice system to respond to user commands and provide spoken responses to the user
- Data from nearly 400 sensors ranging from the state of controls (buttons and the big dial) to instrumentation (such as speed, trip odometer, orientation) to car status information (Are there passengers in the car? Are the windows open or closed?) and more.
- The navigation system to get and set navigation directions
- The media system to play or stream audio files
- The file system to create, edit, and delete files on the system
- An inter-app communication system so that apps can send messages to each other
The SDK allows you to build and test apps for GM cars on your own computer. It comes with an emulator that lets you see your apps as they would appear on the car’s display, simulate sensor readings, and debug your app with a specialized console.
If you’d like to try your hand at building apps for NGI, check out my introductory tutorial, Build your first app for GM’s Next Generation Infotainment (NGI) in-car platform.
Crown, a local auto dealer, provided 3 NGI-equipped GM vehicles: 2 Buick Lacrosse sedans (pictured above), and a GM Sierra truck:
The NGI team were there to answer our questions and help us install our apps onto the in-car console to give them some non-emulator, on-the-real-thing testing. I gave one of my apps, Shotgun, a “smoke test” early in the morning on the Sierra’s console…
…and I have to say that there’s nothing like the feeling when your code runs for the first time on a completely new-to-you platform. I also ran a smoke test for WeatherEye, an app written by my teammate Chris Woodard (whom I know from his Meetup group, Tampa Bay Cocoaheads), and it worked as well.
Tampa Hackerspace was a hive of coding activity, what with teams working on all sorts of projects. With about three hours remaining in the allotted hacking time, I came up with an idea for an app: a referee for the car game classically known as “Chinese Fire Drill”. Here’s how it works:
- Four people get in the car, close the doors, and someone starts the app. They’ll see this screen:
- When everyone’s ready, someone in the front presses the start button.
- If any of the doors are open when the start button is pressed, the players will be told to close all the doors first:
- If all the doors are closed when the start button is pressed, the game begins. The screen looks like this:
- Players exit the car, run around it once, return to their original seat, and close their doors.
- The game ends when all four doors are closed, at which point the time it took them to complete the drill is displayed:
Yeah, the app’s not pretty, but that’s not what hackathons are about — they’re about working code in the time allotted. If you’d like to see the code, I’ve put it in a repo on my GitHub account.
An hour later, I had working code, an available vehicle, three other people to playtest the game with me, and two camera operators to record video of a test runs. We played the game twice, and we were giggling all the time. Fitness Fire Drill (I decided to not call it Chinese Fire Drill, as the term comes from an era when “Chinese” was used as a pejorative adjective to mean sloppy, sub-par, or amateurish) was a success!
Everyone who built a project presented it at the end of the day to the panel of judges, and the organizers saved Fitness Fire Drill for the very end — it got a lot of laughs.
My wife Anitra was flying out early the following morning on business, so rather than stay for the hackathon dinner and judges’ results, I high-tailed it home to have dinner with her. Before going to bed, I noticed that Chris had sent me an email telling me that I’d won the “Judges’ Fetish” prize for Fitness Fire Drill, which was a pleasant surprise.
My thanks to GM and Tampa Hackerspace for making this event happen!