Banner

Wednesday, June 12, 2013

Syma X1 with FPV Camera

So while in Huntsville I came across a Syma X1 in a GigaParts store and had to impulse buy it. It didn't take long for my colleague and I to attach a HobbyKing 720p camera to the top of it.


The maiden flight...


Plus I got to test the durability of the camera and the quad...


I love this thing.

Tuesday, January 29, 2013

Spoof your iPhone firmware iOS 4.2.6 as iOS 4.3

I am sure I can't be the only one. I currently have an iPhone 4 (Verizon) updated to the last iOS4 version that is jailbreakable, 4.2.6. I really like this iOS version and my iPhone 4. I thought I was set for years. I could stand up against the onslaught of tempting technology. Then Apple got tricky.

Before iOS 5, CDMA and GSM iPhones were on different firmwares for the slightly different phones. Towards the end of iOS 4, GSM got 4.3 and CDMA got 4.2.10. Greenpois0n didn't bother releasing a jailbreak for the last firmware since iOS 5 was on the horizon and deserved their full attention. The result: any iPhone owner who did not want iOS 5 (for many reasons) and wanted to stay jailbroken had to stay with the earlier iOS 4.2. This was fine with me. Until I started seeing apps on Apple's App Store requiring 4.3 or above.

At face value, this seems straight forward. iOS 4.3 must include some newer libraries required for these newer apps. Not quite. The only main addition in 4.3 was a patch for the 4.2 jailbreak exploit. This was the checkmate to jailbreakers. Either update and lose your jailbreak, keep your jailbreak and be prohibited from using newer apps, or suck it up and continue the cycle with iOS 5. Until now.

As it turns out, the reported iOS firmware is actually set in a plist file. Once you modify the file, you can spoof the version as 4.3. Your jailbreak will stick around and you can download and use all apps requiring iOS 4.3!

A quick note:
There are reports that some have yielded their iPhone unbootable by misnaming or screwing up the plist file. As always, back your phone up and make absolutely sure everything is correct before rebooting. You can always do a restore. I have done this many times using the method below on my CDMA Verizon iPhone. TLDR: I'm not responsible if you have to do a restore.

STEP 1
First, make sure you are running the latest RC6 greenpois0n jailbreak. There are many fixes included in RC6 that you definitely want. Especially if you use emulators. You might be rolling back to 4.2 from another firmware. I won't get into that here since there are guides everywhere out there. Just follow a tutorial until you have a working, jailbroken, iOS 4.2.

STEP 2
Install iFile from Cydia

STEP 3
Navigate to /System/Library/CoreServices in iFile

STEP 4
Make a copy of SystemVersion.plist (call it SystemVersion.plist.old)

STEP 5
Open the original SystemVersion.plist in "Text Viewer"

STEP 6
Change the version id string to 8F190 (mine was 8E200)
Change the version number string to 4.3 (mine was 4.2.6)


STEP 7
Double check to make sure your SystemVersion.plist is set correctly

STEP 8
Reboot! (Don't mind the crazy screens you get during reboot)

And you're done! Feel free to enjoy the App Store once again. If you ever need to rollback, such as re-jailbreaking, change SystemVersion.plist to something else and remove the .old from the original.

Thursday, August 2, 2012

The State of Personal Computing

So here we are, at a tipping point in personal computer history.

Windows 8 and OSX 10.8 seems to want to push us into using, essentially, giant mobile phones. With the giant grids to launch applications, concealment of all inner workings of the OS, and this push to put all of our personal data on "the cloud", what are we to do?

I prefer to have control of my information rather than rely on automatic saving and uncontrolled syncing over the Internet. I feel like we are going through change for the sake of going through change. Sure, a giant phone GUI with pre-k style inputs will help the non-tech-savvy population embrace their computers. But what about those of us that prefer a OS that has a bit more depth than a McDonald's cash register?

The obvious choice is Linux. I really like Linux. I use it on my servers and use it as my main portable OS. However, if you've been keeping track, lead developers of the main Desktop Environments are falling into the same trap! GNOME3 and Unity mark the strongest push yet for 2012 to be "the year of the Linux desktop." The developers seem to think "sleek and simple" means plagiarize popular OS ideas and strip options that don't fit.

So what are our options? Why don't we take the best of each OS and combine them into one?
I like Snow Leopard. I really like Aqua. I love the way OSX handles applications. And, most importantly, there are some proprietary apps that I like more than the open source alternatives.
I like the open source aspect of Linux. The customizability. The packages. The community.
I hate Windows, outside of gaming. Steam is coming to Linux and my favorite games work with OSX. Wine works for everything else.

So lets see...
  • Darwin is open source.
  • X is open source.
  • XQuartz is open source.
  • GNUstep is open source.
 Add a desktop environment of your choosing and you're done? I feel like if it were this easy, it would be a pre-packaged distro by now. Does anybody else share my desperate hope for an alternative OS in these desperate times? Or should I just shut up and go back to Crunchbang?

Thursday, May 31, 2012

Wednesday, March 21, 2012

DIY light show controller with Vixen and Arduino

Back in 2005, I saw Christmas light show and was instantly obsessed. It was well beyond my comprehension at the time but I vowed to one day do something like it.

Fast forward six years to Christmas 2011 and I finally met that goal. Because light-o-rama setups are quite expensive and I wanted a real challenge, I decided to try to build the entire setup from scratch.

I went into this knowing I wanted to use Vixen, as it seemed to be the best free option for light show controlling. The next step was to find a controller to work with it. Being a big Arduino fan, it seemed only logical to start there. I found some scraps of code on doityourselfchristmas.com, and I was off to a good start.


My final setup was Vixen outputting from my MacBook Pro (bootcamped) to the Arduino via Vixen's "generic serial driver". My code in the Arduino broke the serial stream into pins, which then ran to the relay board. The 5VDC from the Arduino would trigger a transistor (and LED), which would then trigger a 12VDC relay on the relay board. This completed the circuit on a homemade 110VAC power strip causing each light to light up. The result...


I was pretty proud, I have a couple other songs on my youtube channel. Still, it has quite a bit of evolving to do. I am making some revisions for next year that I wish I thought of in the initial design. Mainly, make several, smaller relay boards to place at strategic spots and run the signal lines. This is much cheaper and safer than my ridiculous method of a central control with 110VAC lines running all over the place.
 
Another thing to think about is multiplexing the signal line rather than breaking into pins at a central controller. If each relay satellite had a small micro-controller and a method of addressing, you could just spam the serial stream to each and have them decide what to take and what to ignore.

Most importantly, I desperately need PWM to get the lights to fade. I encourage anybody thinking about this project keeping this all in mind as it would have saved me a lot of money in the long-run. How much you ask?

My cost breakdown was roughly as follows:
Vixen Software - Free
Arduino Mega - $60
Relay Board Materials - $100
Outlet Power Strip Materials - $20
Lights - $150
Extension Cords - $200

Yup, the most expensive item were the extension cords. A reel of CAT5 could have replaced 90% of that if I would have thought to run signal wires in length instead of power. Wal-Mart did allow me to get 1500 feet of extension cords in 15' stretches for that price though. And I needed it.



Please don't call the fire dept on me...

If you're looking to do something like this, here is my Arduino code:
int C1 = 2;
int C2 = 3;
int C3 = 4;
int C4 = 5;
int C5 = 6;
int C6 = 7;
int C7 = 8;
int C8 = 9;
int i = 0;
int incomingByte[8];

void setup()
{
  Serial.begin(9600);
  pinMode(C1, OUTPUT);
  pinMode(C2, OUTPUT);
  pinMode(C3, OUTPUT);
  pinMode(C4, OUTPUT);
  pinMode(C5, OUTPUT);
  pinMode(C6, OUTPUT);
  pinMode(C7, OUTPUT);
  pinMode(C8, OUTPUT);
}

void loop()
{
  if (Serial.available() >= 8) {
    for (int i=0; i<=8; i++)
    {
      incomingByte[i] = Serial.read();
    }
    analogWrite(C1, incomingByte[0]);
    analogWrite(C2, incomingByte[1]);
    analogWrite(C3, incomingByte[2]);
    analogWrite(C4, incomingByte[3]);
    analogWrite(C5, incomingByte[4]);
    analogWrite(C6, incomingByte[5]);
    analogWrite(C7, incomingByte[6]);
    analogWrite(C8, incomingByte[7]);
  }
}

As a bonus, here is a poorly cut video showing different views of the setup:

Special thanks to:
Ashley - Motivation and wire debuncher
Josh - Relay board design and assembly
Peter - Uber debugger
Tyler - Light man (no fear of heights)
John - Fix lights that fell off man
Couldn't have happened without all of you.