When Apple started supporting Bluetooth LE in iOS 5, giving the possibility for apps to use bluetooth devices without the need to be tested and approved before it could be used with an app (along with the associated costs of that), it offered the first glimpses of a Bluetooth solution. The downside was that, getting it working, required a custom "stack" to be embedded in the Bluetooth device, limiting the real world availability.
Since that time however Bluetooth LE devices have matured and it has become possible to buy an "off the shelf" module with an embedded stack that will allow the app to communicate with it. I'm currently evaluating one such device for use with the app and, if it works as documented, will offer this as an option within the app and add the steps required to configure the module to the manual pages.
The two items in the picture are the Bluefruit LE UART Friend and a generic RS232 to UART convertor which should just need a few interconnecting wires between them to connect a MegaSquirt ECU to Bluetooth LE. Total cost for the two was just under £27 delivered. Thanks to Christian for the "heads-up" regarding this module as it's cheaper and more widely available than the ones I'd previously been evaluating.
I've completed the architecture changes I've been working on and the first test version of the app is being distributed to testers now. If you haven't already signed up and are using iOS 8 or later, use the contact form to let me know you would like to become a tester. The new Apple TestFlight system allows for up to 1000 testers and the more people testing it the better !
The architecture changes offer far more flexibility and improved speed of logging by recording the data into a database, including logging sessions. As well as the improved speed it opens up new possibilities, such as a graph view of the data in both realtime and logged data environments. Data from the MS ECU is also stored with log sessions, allowing easier transfer of log data between devices in the future. At some point I will also leverage this mechanism to provide iCloud support for your logging sessions.
Updates to the latest iOS SDKs and methods mean an updated layout that should cope better with different device screen sizes and native support for 64 bit devices will improve performance on those devices.
The one feature that has been lost as part of this restructuring is the ability to transfer log files from the device using iTunes. On the plus side though the email facility allowing log files to be emailed has been updated to support the iOS7 and later action facility. This allows log files to be emailed as before but also allows them to be transferred via AirDrop or any other method that your device is configured for (Facebook, Messages etc...) or opened directly in another app on your device that supports the file type. For Mac users this means you can quickly send log files directly to your Mac over WiFi.
With the new data format it is possible for full log files, with all the MS ECU config data, to be sent between iOS devices and imported into other copies of MobiSquirt at some point in the future.
Following a sabbatical which included driving around Australia in my Land Rover. I've started to tidy up the code base that I was working on for the next release version.
A lot has changed since the last release with new iOS releases, new iOS devices, new beta testing options and Roving Networks being consumed by MicroChip.
The iOS changes have at least resolved a few issues - the problems I was having supporting new versions of iOS without alienating users who wanted to use the app on old devices have been resolved.
The new release will be an iOS 8 app, it will run on iOS 7 and should be OK on iOS 7 but it will not be possible to test on iOS 7.
I will be using Apple's TestFlight to ship test versions of the app to "beta testers" and with this in mind anyone wanting to test the app will need to apply using the contact form.
Sadly this project has fallen victim to a lack of time and priority compared to all the other things that take up my spare time.
There has been some progress as, yet again, I embarked on another architecture change, this time around the way the logs are created and stored and the way the incoming data is analysed. This is aimed at streamlining the data capture process and, hopefully, this will speed up the entries per second for the logs which have been down on where they should be, particularly on the MS2/MS2-Extra devices.
The iPhone 5 question has been resolved once and for all as Apple will no longer accept apps or updates to apps that don't support iPhone 5. Anyone still using an iPhone with an iOS version prior to 4.3 will no longer be supported through the app store although I will continue to support older versions in the test version of the app for a while at least.
At the moment I'm not sure when I'll get any real time to devote to this project but I'm optimistic that in the next couple of months I will at least be able to get the current test version into a state where it can be submitted to the app store.
While the test versions of the app work quite happily on both the iPhone 5 and the iPhone 3G and earlier it seems that the App Store version can't have that luxury unfortunately. At some point soon I'll need to make a final decision on how to handle it but my current thinking is that I may create a new version of MobiSquirt on the App store that will support legacy hardware and iOS versions while at the same time allowing the "main" app to take advantage of the latest and greatest iOS developments. Of the current user base of around 800 active users there are 10 users that have devices that don't support iOS 4.3 and later according to the analytics.
Going down the legacy app route will have the advantage that, when and if I can no longer update the legacy version at least the legacy version will remain on the App Store should an older device need a factory reset or similar and lose the app.
The next App Store release will not support iPhone 5 natively as I want to get the RPM fix out while I pontificate further and see how other developers handle the iPhone 5/iPhone 3G problem.
I've been contacted by a few people concerned about the possibility of dropping iPhone 3G and earlier device support. As a result and after some experimentation I've found I can, for the time being, support all the existing devices that are supported and also support the new iPhone 5 by using an older compiler.
I've been trying to get to the bottom of the problems some people have been experiencing with incorrect RPM readings on MS1Extra. After analysing files supplied by those experiencing the problem and running the configurations up in my test environment I've finally got to the bottom of the problem and the latest test version contains a fix. It turned out to be a problem with the way the app was determining the number of cylinders and this was then leading to rogue calculations.
I'll release this version to the app store after testing is complete.
I've got some test logs and configurations from people experiencing odd displays/logging on MS1-Extra versions. In particular this seems to effect the hi res rpm calculation and I currently think it's related to installations where the spark table isn't being used. I'm going to load one of the supplied configurations on a spare ECU and see if I can reproduce the problem.
The launch of the iPhone 5 with it's new processor and screen size has left me in a bit of a quandry. To fully support the iPhone 5 (which I want to do) I'll need to drop support for the iPhone 3G and iPod Touch gen 2 and earlier and any devices running iOS version prior to iOS 4.3. The stats I have suggest this shouldn't be a problem BUT if it is a problem for you, please let me know.
Obviously I'm looking to support the iPhone 5's new screen size in the next release.
I now have a working MegaJolt Lite Jr that has been lent to me for testing and development so I'm beginning work on the connection and logging classes to support it. Not sure yet which versions of MegaJolt it will be compatible with initially but hopefully that will become apparent as development progresses and I work my way through the tech notes.
The outstanding MegaSquirt version support (MS2 B&G code) is also on my list of things to add. I may end up adding them both as part of a single update or add and release each one as a subsequent release. I'm not sure how many users there are of the MS2 firmware but no doubt there will be some.
As always I'm open to any other suggestions and/or bug reports for the current release versions or the test versions. Feedback from users always gives a boost to the development effort, if only because it lets me know I'm not the only one using the app ! Version 1.1 now has over 200 users since it was released so hopefully some of those users are using it for logging and display !
V1.1 of the MobiSquirt app is now available on the App Store. This version contains a number of improvements, new features and bug fixes.
- This version adds support for logging of MS2-Extra firmware revision ECUs
- The app is now a universal app, running on both iPhone/iPod and iPad devices with new view layouts tailored to the iPad.
- The design of the main gauges views have, in my opinion, been much improved over the last version. Users who prefer the original look can still use that design via a switch on the settings screen.
- An AFR gauge option has been added that uses configurable lookup .ini file that can be customised by the user to suit their lambda sensor. This gauge does not currently work on log playback as the data to reproduce it isn't available in the log files. This may change in a future version.
- The architecture used to handle the low level communications with your MegaSquirt ECU has undergone a complete rewrite. This improves initial connection establishment speeds and should result in a more stable connection.
You can view/download the app from the App Store here
I've run out of devices to test against now. I'm trying to track down a MegaJolt ECU I can test/develop against next and will continue to build up a library of raw data and pages files for my test environment so I can perform regression testing against them.
Anyone using the latest test versions or, when it becomes available, v1.1 or greater on the app store, can contribute raw data and pages file to have their setup included in the regression testing. More details in the user manual troubleshooting page.