HOWTO: Downgrade iPhone OS from 3.0 to 2.2.1

This is what worked for me. I had an original iPhone (EDGE) that I updated to the OS 3.0 once it was publicly released. I then upgraded to an iPhone 3GS, so I decided to take the original iPhone back to 2.2.1 for app testing purposes. Some people have been able to restore by simply putting the phone in DFU mode and doing the restore. That didn't work for me - I would get either an error 20 or error 1600. After trying for about two hours, the following is what finally worked for me. A word of warning though - I do not use this phone as anything other than a test device now...so I can't speak to whether it would actually function as a phone after the downgrade. I assume it would, but perform this downgrade at your own risk...

Also, you'll need to be on a Mac with the iPhone SDK installed to do this...

1 ) Plug device into the Mac

2 ) Open Xcode Organizer

3 ) Put the device into DFU Mode (hold power + home for exactly 10 sec, release power - phone should disappear then reappear in Xcode)

4 ) Attempt to restore to 2.2.1 in Xcode (a second device with same name should appear in the organizer window and the original device should show "Waiting on device..." in Xcode)

5 ) While first device is restoring, start restore on second device (obviously there isn't a second physical device, just a relisting of your original device..just select it and do the restore the same way as you did in step 4) At this point, your phone's screen should turn white. If not, you may need to start over.

6 ) Close Xcode (you'll be prompted that the device is busy...quit anyway...twice)

7 ) Close iTunes (if it opened automatically when you connected the device)

8 ) Unplug the device

9 ) Open iTunes

10 ) Reconnect the device to the Mac

11 ) Option+Click Restore in iTunes (phone screen is still white at this point)

12 ) Choose 2.2.1 firmware and wait

You're done. Fun huh?

Again, try a regular DFU restore first, but if that doesn't work, these steps *may* work for you - I tried lots of less roundabout ways, but this was the only way that it worked for me.

CodeStock 2009 - iCode Presentation & Code

For those of you who attended "iCode - An Intro to iPhone OS Development" at CodeStock 2009, here are the slides and the finished demo source.  I don't expect this to be the final home for my presentation materials, but I'll make this information available here at least until I can get this up on the codestock.org site.

Tasker Demo Application Source

iCode Presentation (PDF Format)

When looking at the sample code, remember the caveats: this isn't best practice code (in fact, quite a few things are really pretty bad - BUT it should be easier to read/follow this way) and this code is not about UI design at all - purely an introduction to the iPhone OS.

Budgee 1.5 Slightly Delayed

UPDATE: Budgee 1.5 is now live in App Store.  Direct link: Budgee

Just a quick update for anyone waiting on the 2 main features coming in Budgee 1.5 (multiple budgets & integrated web server)... The update was submitted to Apple a while ago, but Apple found an issue in the middle of the week last week. The issue was addressed and re-submitted last Wednesday, so the update should now be going live by Wednesday or so of this week unless things are delayed due to changes related to the Apple announcements on March 17th.

Budgee Version 1.5

Budgee 1.5 will be available in the App Store early this next week unless there are unexpected delays during the Apple review process. There are two major features which are entirely new in this release:

Multiple Budget Support

One of the limitations on pre-1.5 Budgee is that you are always working with a single budget. If you wanted to keep budgets around from previous periods, you couldn't. If you wanted to track other projects, a kitchen remodel for example, you couldn't do that either - not unless that was the only budget you tracked. Starting with this release, Budgee will now support multiple budgets. If you want to delete a budget after you've exported it, you can still do that, but Budgee won't force you to do that if you don't want to.

Multiple Budgets

Multiple Budgets



Budgee Web - an alternative to CSV export

Until now, the only way to extract budget info was via the CSV export to email.  Over the last two months or so, I've been getting more reports of CSV export to email failing for users.  I've released several fixes that attempted to work around the issues.  In the end, there is a bug within the core iPhone/iPod Touch itself that is causing these issues and there isn't anything I can do about it until Apple fixes it (there is an open bug report on the item).  So CSV export to email will remain in Budgee, but you'll get a popup notification if your particular data runs into the Apple bug.  With Budgee Web, all of those issues go away.  In a nutshell, Budgee Web is an internal web server built right into Budgee.  It only runs while you have the Budgee Web screen open and it is only accessible while on a Wi-Fi connection.  It allows you to browse to your iPhone/iPod Touch and download CSV data right from your PC/Mac using Safari, IE, Firefox, Chrome, or whatever you'd like.  Right now, Budgee Web only supports downloading transaction information in true CSV format, but the CSV data that was previously exportable via e-mail is also an option (just not as a .csv file).  This is simply the start for Budgee Web - it's one of the features I would really have liked to hold off on until 2.0, but I'd rather put it in place early so that anyone having CSV export problems can easily work around the email bug.

Budgee Web

Budgee Web



Version 2.0 of Budgee will have several upgraded features as well as at least one new major feature. The "under the hood" components of Budgee are also being re-written to support future features and to greatly improve application performance & stability. The 2.0 release is currently targeted for on or before May 1st. Between now and the 2.0 release, there will be a series of minor updates to further improve existing Budgee functionality.

Budgee Sales Data for 2008

I know we're already well into 2009 at this point, but since I've been promising to post Budgee sales data for a while now, I'm going to go ahead and get this out there. This is the raw weekly sales data for Budgee for all of 2008.

Budgee Weekly Sales & Updates for 2008
Date Sales Updates
20081019 389 0
20081026 169 235
20081102 99 45
20081109 72 18
20081116 36 9
20081123 29 7
20081130 18 4
20081207 60 151
20081214 136 152
20081221 58 320
20081228 138 90
Total 1204 1031

For reference, Budgee was introduced in mid-October 2008 at price tier 2 (that's $1.99 US). It stayed at $1.99 except the last two weeks of December 2008 when the price was lowered to $0.99 for a holiday sale. During these few months, there were not a ton of updates - a few right at the beginning and then a couple scattered around after that. The dip the week of December 21st was caused by Budgee being removed from the app store for a couple of days prior to the holiday sale. (In short, I wanted the price to start at Christmas, but Apple was cutting off iTunes Connect access a few days ahead of that...so I had to change the release date to Christmas and then change the price...the result of that was that the app was removed until Christmas and I couldn't change it back.)

You can see that Budgee doesn't bring in enough revenue for one to live on - it averages ~$250/mo - but it is certainly a nice side job. Keep in mind, these sales were all made without any form of advertising. My goal for 2008 was just to break even with the cost of the iPhone SDK - so I've more than met that goal. Budgee is also one of the programs *I* really wanted on my iPhone for the longest time - so my intent was to make the app that I wanted and then if people enjoyed it and I made money with it, then all the better. For 2009, I'm trying some different tactics with Budgee - online marketing, more frequent updates, a major upgrade - so we'll see how all of that ends up changing things.

I have also included data on updates so you can see how the number of total users compares to the number of users running the latest updates. If you have any questions about this data, feel free to leave a comment and I'll do my best to answer. I'd like to be pretty open about Budgee since I've learned a lot from the iPhone dev community sharing information like this, so I'd like to try to give back when I can.