Development

Rants about application development technologies.

CyanogenMod Fusion

In January, I’ve been added as a device maintainer for Sony’s fusion3 platform on CyanogenMod. That platform includes the original Xperia Z line of devices (Z, ZL, ZR, Tablet Z, Tablet Z Wifi). Most of my work went into the platform and the 2 tablets, since I actually own one of these. By now, I greenlighted the tablets for CM12, and they are now official CyanogenMod nightlies. , they are my main target of development. The phones will trail a bit, since I need to rely on others to test fixes and features for me, mainly through a thread on XDA.

CyanogenMod Fusion Read More »

Smart phone RIL

After tinkering with cameras and solar power systems, it was time to play around a bit with Android – in the form of CyanogenMod. After setting up a build environment for my i9100 (a Galaxy S2 in marketing terms), I decided to help figure out a problem with open-sourcifying one of the libraries for it, namely libril (part of the radio interface layer).

This device has a history of freaking out OSS people, and libril was no different, as can be seen in the code review for the library. While the same code would work perfectly fine on similar devices with similar radios, it kept crashing on the i9100 upon dialing out. After some debugging, I found out that the UUS (user-to-user signaling) handling was causing the crash – a MEMMAP SIGSEV error!

Namely, it was memset(&uusInfo, 0, sizeof(RIL_UUS_Info)); that caused the kernel to freak. Intermediate solution? Remove the UUS information, as it is not really mandatory. The question remains: why can’t the phone allocate the (little) memory required for this struct? Might have something to do with heap/stack allocation…

Smart phone RIL Read More »

B,C,D,F

Today, the updated CHDK code for IXUS 970 has been uploaded to the project’s official source code repository. This new version fixes a problem with the detection of the play mode, and most prominently adds support for firmware revision F, so now all dumped revisions are covered. The firmware addon can be downloaded at the CHDK autobuild server.

B,C,D,F Read More »

Vis Solis

Another piece of contract work completed: this one involved solar power panels and inverters from Austrian manufacturer Fronius. Developed a generic, object oriented data fetching backend and set it up to transmit the data to a database over a HTTP tunnel. One visible outcome of the project can be found here: VS Seeham.
Enjoyed working with the guys responsible for the project and the web frontend development, here’s hoping we will have some future projects together.

Vis Solis Read More »

ARM Success

Work on the Canon camera is finished by now, with all features seemingly working. As an added bonus, due to a recent update, exposure times can now exceed 64 seconds. If you own a Ixus 970 and want to enhance your camera functionality, pay a visit to the CHDK Downloads page and give it a try.

ARM Success Read More »

1 equals 1?

Back to .NET: amazing what you stumble across when writing software. Assume you have 2 arrays and want to compare them:
byte[] array1 = new byte[] { 1, 2, 3 };
byte[] array2 = new byte[] { 1, 2, 3 };
array1.Equals(array2);

All you want to do is determine if the two arrays contain the same elements. The problem with above pseudo-code: it returns “false” as result! The arrays are considered to be different instances of the same data – and thus not equal.

Quick and dirty workaround for small arrays: convert both arrays to a Base64 string and compare their values.

1 equals 1? Read More »

Part Time Assembly

What if you are a sworn in C and C#/VB.NET coder working mostly on x86/x64 architectures who is looking for a past time occupation? Of course, you go with ARM CPUs, assembly language, and intercepting functions of an embedded system’s innards!
The target of choice: the Canon Ixus 970 digital camera. As mentioned in the article Fiddling with an Ixus, it’s firmware was dumped to contribute it to the community. However, no volunteer stepped forth to port the Canon Hackers Development Kit over. Consequently, the port has been started and shows some success, a beta version is already available for download. Some technical info and the download can be obtained at the CHDK Wiki.

Part Time Assembly Read More »

Fiddling with an Ixus

In the best spirit of looking beyond Windows/Linux development, the recently acquired digicam Canon DIGITAL IXUS 970 IS seemed to be a good target for some practicing. They sport ARM based processors, which we gathered some experience on when working on dumping tools for the Dreamcast.
The main goal is to help the CHDK community to port their enhancements over to the Ixus 970. Obviously the first step in doing so is to dump the original firmware, and it seems there was no dump of a PAL device with version GM1.00C available yet. Things have changed, and the firmware has been made available to the public by vware!

Fiddling with an Ixus Read More »

own3d Video

A long term friend and source of inspriation started a gaming related community site named own3d some years ago. With a recent development towards video hosting, the need for a simple to use video transcoding tool was born.
Presenting our first cooperation after a long break, we would like to hint you at the little x264 video converter tool which is available for site subscribers. Hopefully a lot of users will find it easy enough to create and share their videos! The video site is currently in beta and can be checked out here: beta.own3d.at

own3d Video Read More »

Mono

With the latest round of Linux distribution releases just being completed, notably Ubuntu and Fedora, it was time to give Linux another shot, along with the latest Mono version, to be able and run our projects in a free (as in speech) environment.
Seems like vbnc, the free VB compiler, has still its fair share of issues, so efforts were put into porting the vware Libraries to C#, as well as a small project that uses it: FileIndexer. All said and done, after ironing out a lot of conversion errors, both projects compile and run just fine in Microsofts .NET implementation as well as Mono. Expect both to be released rather soon, as using C# inspired me to include a few new features.

Mono Read More »

Scroll to Top