FlexCell innovative ways of flexible manufacturing

For the last days I have been involved in commissioning a new project started at one of our degree programs mechatronics at CUAS.

The FlexCell program is about innovative technologies usable for effective manufacturing in the field of automation technologies.

Project Leader : Christoph Ungermanns

One of the core components is a 6 axes industrial robot arm 🙂

[local /files/2012/06/robi3.flv]

[local /files/2012/06/robi2.flv]

have fun

Mario

How to cross compile ffmpeg for iOS (iPhone and iPad)

In one of my latest projects I needed some audio/video streaming capabilities for iOS driven devices.

The first App. which we implemented was a audio/HDVideo low latency conference streaming application for smart phones.

The second app was around  MPEGTS to Elementary Stream demuxer for some dreambox streaming fun 🙂

The framework of choice is the swiss army knife for streaming stuff,.. ffmpeg. To be more precise, ffmpeg consists of serveral libraries and the command line programs ffmpeg, ffplay, ffprobe.

What do you need:

  • Xcode4.3
  • Apple’s command line tools (Xcode -> Preferences -> Components)
  • pkg-config -> download
  • gas-preprocessor -> download (extract under your ffmpeg root dir ./gas-preprocessor)
  • build-essentials -> you can download an install script
  • m4
  • autoconf
  • automake
  • libtool

I used the latest snapshot available at the the time of writing. Extract the snapshot .tar to a folder of our choice.

Thanks Michael, the lead developer of ffmpeg, the ffmpeg source comes with the convenient autotools facilities. So we only need to set the correct configure flags 🙂

1. Compiler flags:

As we need to do some cross-compiling we need to select the compiler/assembler which comes with our XCode

–cc=’/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2′.

–as=’./gas-preprocessor/gas-preprocessor.pl /applications/xcode.app/contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2′

–arch=arm

–target-os=darwin

–cpu=cortex-a8

–enable-pic

–disable-yasm

2. iOs SDK path:

–sysroot=’/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk’

3. extra flags:

–extra-cflags=’-mfpu=neon -pipe -Os -gdwarf-2 -miphoneos-version-min=5.0′

–extra-ldflags=’-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk -miphoneos-version-min=5.0′

4. configure ffmpeg library components:

for example:

 –disable-ffmpeg
–disable-ffplay
–disable-ffprobe
–disable-ffserver
–disable-avdevice
–disable-avfilter
–disable-everything

and then enable the components you need

–enable-decoder=xxx
–enable-parser=xxx
–enable-demuxer=xxx

after successful completion of ./configure run make… and voilà 🙂

If you get some errors complaining about  “error: invalid operand in inline asm: ” try to disable assembler directives with

–diasble-asm

have fun

Mario

 

iPhone4 slack joint microphone quickfix

One of my colleagues, Marvin – proud owner of an iPhone4, has been fighting for some weeks with his iPhone internal microphone. Skype and Facetime stuff are working without problems but on “Radio” calls he got unsuspected mutes. The issue occurs in not deterministic intervals.

First aid,… yeahhh we have to open the phone, … operation on the open heart :-).

The problem must be the bottom mic. So we disassembled the bottom part of the phone.

No fancy actions here,… one two three screws open, some lever actions to loosen the glue stuff and voilà it’s open.

If it were up to me I would eliminate the apple hardware and build in a Galaxy S hardware, but marvin was dead set against it,… I don’t know why 🙂

Update” :

We initial thought that the bottom microphone was causing the problem. It turns out we were wrong 🙂

After 3 days without mic. problems I would say the problem is the grounding screw left next to the upper microphone. The conductivity pad on the print is very small and it seems that slight corrosion which results in an increased transition resistance to GND causes the mic problem. 🙂

Have fun!

Mario

Switching iPhone4 from custom iOS 4.3.1 to custom iOS 5.0.1

It’s been a while I updated my developer iPhone4 to custom  iOS 4.3.1.  According to statistics more than 75 % of all registered mobile iOS Devices are on iOS >= 5.0. So I decided to switch over to 5.0.1.

It would be remiss not to tell you that 5.0.1 is currently also supported as Untethered jailbreak, which I need for some comprehensive study 🙂

But here’s where the problem starts.

It’s been a while since Apple released version 5.0.1 and at time of writing the sign window is just closed. So if you build your custom ROM with your favorite RomOMagic Tool, put your device in DFU,.. fireup iTunes and start the recovery procedure,… you will end with a shine This device isn’t eligible for the requested build…… umpf WTF.

etc/hosts are ok, but iTunes cannot “sign” your ROM.

So what can you do?

First, as a brave jailbreaker you have your umbrella always with you and also a bunch of valid SHSH Blobs and the corresponding APTickets. We are interested in BLOBS for 5.0.1 🙂

Second, we need RedSnow. With this tool you can stitch (sign) an IPSW with your SHSH blobs.

Be sure to stitch only a custom ROM without the BaseBand!

voilà, no annoying isn’t eligible message,….after flashing your device should boot with a shiny new custom  5.0.1

be nice

have fun

Mario

Fixing XCode 4.x slow responsiveness / performance

The last months I noticed a very annoying behavior of Xcode 4.2 which results in responding very slowly to user interactions, e.g. editing code, debugging refactoring … mostly all IDE day to day work were affected.

It turns out that the problem is related to the project “workspace ” file. If  you delete em, .. yes you can :-), you get back a more or less speedy XCode.

The Credits for this valuable hint goes to link

have fun

Our new medIt-Campus Information System

Since several months three of my colleagues (Johannes L. , and Dominik R. ) and me have put together our new Campus Information System. We use a customized version of Xibo linked together with our internal process management system aCTIons to get various information about room assignments and upcoming events for students on our information screens. In addition we also have some campus news channels, special event information pages etc.

The whole System can be configured trough a central server web interface. Every Infoscreen can be independently configured which and when some information should be shown.

Moodle Drag Drop features does not work in IE9 fix

We recently encountered some IE9 incompatibility issues with our latest Moodle 2.1+ installation. It turns out that the used version of the graphical back-end Yui seems do have some problems with IE9 ,…. or the other way round :-).

There are couple of bug request in the moodle bug tracking system, but for 2.1+ there is unfortunately no commit in master which fixes this issue.

So if you do not want to wait for an official release take a look at -> link. Follow the walkthrough how to update Yui an this should fix the IE9 problems.

have fun