1. UDS-M continues

    Today is a last day of Ubuntu Developers Summit. I plan to attend few sessions, on evening maybe go to Brussels for some shopping (UDS is in a middle of nowhere) and tomorrow I hope to fly home.

    So far I attended several sessions, some were too Ubuntu specific for me to get idea what it is about (PPA or other Launchpad related services for example) but in general time is not wasted.


    Missed keynote ;( I blame Belgium train company for it. But I fetched it from YouTube so will watch it during return travel. Then Ubuntu on ARM project had private meeting where we had a chance to connect faces to names and got some short introduction. That was all for me — after lunch^Wbreakfast I got to sleep. During dinner time I met some fellows from old time: Rob Taylor, Neil Patel, Peter Goodall and spoke with several other guys.


    ARM talk about toolchain was great. GCC 4.5 is what we want for our project I think. There was also warning that switching to 4.6 version will probably require transition process. Then I was on AEL/ALIP talk — should attend SoC:Dove talk instead. Session about building root filesystem images was started by me and then lead by Luïc. There was some good ideas told, many tools were mentioned so I will have something to do in near time. Another talk about toolchain and then Device Tree overview — what it is and why we want it.


    Another sessions related to development tools for attending, one about U-Boot features and performance and three about building ARM archives. Kiko’s introduction to ARM was interesting presentation.

    Day finished in Waterloo where we had a dinner with ARM Ltd. people. Nice chats with good food and wine.


    Attended memory footprint talk, next was kernel version alignment where people from ARM vendors gave us informations about their work on getting support for products in mainline kernel. Looks like 2.6.35 will be used in Maverick release.

    Later was marketing talk about Freescale i.mx51/53/508 cpu family plus mentioning of Cortex-A9 based i.mx61/63 chips which will be released next year. Rob Herring mentioned that there may be BeagleBoard like device with i.mx53 processor available.

    Zack from Debian told about cooperation between Debian and Ubuntu developers from Debian perspective. It was nice talk. Next was about plumbering and explained how HAL got removed, how other components changed in base of base system. Looks like upstart developers know what they do and where they are going.

    As a way to get something different I went to QA session about tracking performance on different architectures. Mostly it was about Phoronix test suite and how it can be adapted for ARM. Then went to cross compiler packages which was nice session.

    Last session was SoC: OMAP3/4 talk made by Texas Instruments people. They had Blaze with them, shown Ubuntu Lucid on it and then booted to Poky Linux to show OpenGL/ES and video decoding capabilities. Playing 6 video streams on rotating cube was nice. Playing 1080p videos without any visible frame drops was another nice stuff. And there will be OMAP4 based PandaBoard developer board similar to BeagleBoard line. When it arrive was not announced.

    After that I went to Brussels with TI people for some food and beer. Discussed on many things, I shared my suggestion on how to make PandaBoard really nice, we did few beers. It was good spent time.


    First got to rootless building of root filesystem images, then was ‘mukluk’ soft bootloader which is yet-another-kexec-based-bootloader. A bit of NIH syndrome but can grow into something interesting and kexecboot got mentioned few times.

    Written by Marcin Juszkiewicz on
  2. UDS-M day 0

    Tired, tired, tired. That’s how I feel now. And all by one trip which had to end over 12 hours ago…

    I left home after 13:30 and took taxi for bus station. Then bus to Berlin Schonefeld airport — arrived before 17:00, passed security check and found good place to wait for depart. Some flights were cancelled, some were late but my to Brussels was still listed as operating one. Forty five minutes before depart it got cancelled :(

    So let’s check options… Other flight maybe? Frankurt and Köln were listed still but who knows will they fly… So I decided for train. Launched browser, accepted data roaming warning and started checking. One hour later, at Südkreiz, I had a set of tickets in a pocket. Paid 160€ for it — more then my flight tickets in both directions…

    My cellphone got discharged at that moment, so I took laptop from the bag and connected both devices to get some power for phone. Worked good.

    Went to Berlin Hbf station, got some food and beer and half past midnight took first trip: to Köln. I discovered where power sockets are but it was a bit too late to take such seat :( But I managed to get about 3 hours of sleep.

    Köln station had free wifi at Starbucks (btopenzone network) so Twitter, emails and checked some UDS travel part. Then TGV to Brussels. This time power sockets were easy reachable so laptop got charged a bit and phone to the maximum. Watched a movie, checked some code.

    Brussels station was disaster. Ticket machine did not accepted any of my cards so I got into queue so first train got missed. Second one got cancelled… One extra hour on that crappy place where there is no such thing as information in English…

    Now I am somewhere between Brussels and La Hulpe and hope that will not miss station. Then finding hotel, register and trying to find coworkers which I never met.

    And just because one vulcano did what it did I had to spend extra thirteen hours for a trip :(

    Written by Marcin Juszkiewicz on
  3. Maemo5 Calendar — is it cruel joke?

    I was using many different mobile devices during last years. Some were GSM phones, some were PDA, now I use Nokia N900 which tries to join both functions.

    When I saw calendar on N900 I thought: Is it some cruel joke? But then I got to simple conclusion: designers and developers never used anything newer then Nokia 5110 and never saw (or heard) about PDA devices. I do not see other reason for creating such brain damaged application.

    What it supports? Simple events in few local calendars with simple repeat, simple only predefined alarm times, todos (without priority). User gets unusable month view + nearly not usable week view + agenda view. And desktop widget which does not allow any configuration. Probably even PalmOS 1.0 DateBook was more advanced (I would have to check on PalmPilot 5000 which I have in basement).

    What it lacks? List would be quite long but I will list few most important things:

    • custom alarm times (I like 1:15 alarm times) — now it does not even display such properly
    • edition of repeatable events without breaking repeat cycles
    • extended repeat possibilities (like: 1st Tuesday in month, every 3rd Saturday)
    • remote calendars
    • portrait view
    • configurable work hours in week view
    • day names in date picker (PalmOS like chooser instead of iPhone like rolling lists maybe)
    • search function
    • attendees support

    What makes situation even worse is amount of reported bugs against Calendar. Many of them got resolution ‘MOVED’ which is other word for WONTFIX as it looks like everything which lands in so called ‘brainstorm’ area of maemo.org website is on a list of things to forget.

    So far there is only GPE calendar which can be used instead of Maemo one but this one does not have working alarms (without running it in background or using ugly GPE summary widget). Platform is so niche that there will be no commercial application to fill that hole and that’s sad. And I do not require port of PalmOS Agendus (the most advanced PIM I ever used on mobile devices) but something usable.

    Written by Marcin Juszkiewicz on
  4. What makes a good developer board?

    During FOSDEM 2010 I had discussion with Ulf Samuelsson from Atmel and few other guys about developer boards. What is required on them and what should be avoided. Some time later I had a talk with one person about new OMAP3 based board and what I would like to see on it. So I decided to write something in public.

    So far I used mostly ARM developer boards from ST Microelectronics/ST Ericsson, Atmel, Cirrus Logic, Intel, Simple machines, Bug Labs, Texas Instruments. Some were better then others etc. But what ideal developer board should have? Let me try to create a list:

    • 2 serial ports (one can be null modem, second should have RTS/CTS/DTR lines)
    • working Ethernet not placed on USB bus (so it works when USB does not)
    • powered USB host port (more then one would be great)
    • USB device port
    • JTAG connector
    • one power input — +5V or +12V — other should be forbidden as those ones can be taken from PC PSU which can power multiple devices at same time
    • SD/MMC slot — even if it is over slow SPI (like on Sim.One — 250KB/s max)
    • GPIO pins
    • I²C bus
    • SPI bus
    • keypad with Up/Down/Left/Right + Enter at least
    • easily reachable reset button (pins to short are acceptable as micro switch can be put on them)
    • few LEDs controlled by system
    • all connectors put on one or two edges of board — top one + one of side ones are ok (Atmel at91sam9m10-ekes for example)
    • mounting holes (so board can be mounted on A5 sheet holder for presentation at stand)
    • backup battery for RTC
    • U-Boot
    • quite fresh kernel (not NHK-15 due to 2.6.20 kernel which is 3 years old now)

    What to avoid:

    • female serial port connectors (Atmel NGW100) — most devs will find 3 null modem cables before straight one
    • flat cables which connect “debug boards” with main board (Openmoko phones, NHK-15 from ST Ericsson)
    • RJ45 connectors for serial console (Sim.One) — DB9 or properly done USB->RS232 adapter on-board are best
    • placing connectors on all edges (BeagleBoard — but it had to be cheap)
    • non standard bootloaders (U-Boot is what I prefer)
    • Ethernet on USB (Bug 2.0) — it is hard to use when you have problems with USB Host
    • jumpers (Atmel boards)
    • non standard connectors (Bug r1.2 and it’s Handylink crap — next versions use iPod connector which is easier to use)

    I am trying to not cover should developer board contain display with touchscreen or not as it depends on type of board. But if screen is present then more then QVGA (320x240) would be nice (WVGA anyone?). Some kind of video out connector can also be used but would be nice to have one of VGA/DVI/HDMI so normal PC monitor can be used — Composite video and S-Video require searching for some kind of TV

    Which boards are my favorites? There are few:

    • FriendlyARM with WVGA screen — cheap product which gives access to everything needed to start with embedded Linux
    • Atmel AT91SAM9263-EK — my first own developer board
    • BeagleBoard Cx — has own problems but I like the power of it
    Written by Marcin Juszkiewicz on
  5. Another job change

    Since OpenedHand was acquired by Intel I worked with few customers. The biggest one was Bug Labs Inc. with which I spend lot of time on hacking Poky Linux and OpenEmbedded to make their BUG devices prosper in hacking community.

    Thanks to developers there Java land is not so strange for me (not that I started to like it) and I know which projects exist in that area. Many of changes done for BUG landed in OpenEmbedded metadata and helped other projects. Last release of Poky ‘pinky’ (stable branch which we used with R1.4) was done due to out improvements and bug fixes (we got credit on them). It was great time and I really enjoyed it.

    The open source companies have this nice feeling — developers work on code to make it better and better (as other people look at code) and are friendly to own employees and contractors.

    What next? My first job where my experience from OpenEmbedded will be used in a project which does not derive from it. Yes — no OpenEmbedded, no Poky Linux. But it will be GNU/Linux still and still ARM architecture.

    In 3 weeks from now I will work for Canonical as Foundations OS Engineer. The goal is to make Ubuntu/ARM fly on supported devices (armv7a only). This will be full time job but I hope that will have possibility to do some OE related things from time to time.

    Written by Marcin Juszkiewicz on
  6. How time flies…

    Tomorrow there will be 6 (six) years since my first contribution to OpenEmbedded project. It was plugin for OPIE — palmtop environment which I stopped using (and developing) years ago running on device which I no longer own (Sharp Zaurus SL-5500).

    There were interesting moments during those years but I covered most of them year ago so will not repeat here.

    Now I am using OpenEmbedded derived distributions on many devices at home. Some runs Ångström, some runs BUG Linux, some runs random stuff… But I still have one Zaurus in case if I would like to check how does it works those days :D

    Written by Marcin Juszkiewicz on
  7. Transplanting bugLCDs

    As you know from previous post about BUG 2.0 new device require using of new LCD module. I got one but without case.

    Using screen case less is asking for problems — think of all short circuits it can do… So I decided to move new LCD into case of old LCD module (I have two of them).

    So first let’s look at case donor: old LCD module. Front view:

    old LCD module - top view
    old LCD module - top view

    Back view with all tools required (module was signed for FOSDEM as we had two bugs there and I wanted to know which modules/bugs are mine):

    old LCD module - bottom view
    old LCD module - bottom view

    And dissasembled:

    old LCD module - dissasembled
    old LCD module - dissasembled

    PCB view (notice plastic frame between PCB and LCD — it fits new module too but I isolated screen instead):

    old LCD module - PCB view
    old LCD module - PCB view

    New LCD on left, old one on right. Large connector is for screen, smaller for touchscreen. And they are different then in old one:

    PCBs from old and new module
    PCBs from old and new module

    Modules with screens attached. Old bugView modules also were using Sharp screens and I did not looked at my second one.

    old and new modules with screens
    old and new modules with screens

    First problem during mounting — BUG 2.0 video slot is reversed… But few minutes with sharp knife solved that problem.

    new module does not fit old case
    new module does not fit old case

    And this is how result looks. On left side is VonHippel module fitted into BMI adapter, on right new LCD in case from old one:

    BUG 2.0 with LCD module in a case
    BUG 2.0 with LCD module in a case

    Yes — there are two pieces of isolation tape on board. Those blue LEDs are too bright so I had to make them less annoying.

    Now I have screen working, X11 starts — time for touchscreen driver.

    Written by Marcin Juszkiewicz on
  8. BUG 2.0 arrived

    Some time ago there was decision that BUG 1.x will not be supported with next version of BUG Linux. As a result I ended in situation when I worked on handling device which I never saw.

    It was not first time — in OpenedHand times I had this quite often but it is not a problem because my “hardware park” covers nearly whole ARM family:

    • armv4t (s3c2410 in Openmoko GTA01, EP3907 in Sim.One)
    • armv5te (at91sam9263, at91sam9m10 on Atmel boards, PXA255 in Zaurus c760, Sheeva in Marvell Sheevaplug, omap1510 in Nokia 770 tablet, ST88n15 in NHK-15)
    • armv6 (omap24xx in Nokia N810, i.mx31 in BUG 1.2/1.3)
    • armv7a (omap3530 in BeagleBoard B7/C3 and in Nokia N900)

    So I am able to test binaries on other hardware or even in QEMU.

    But few days ago I got information that developer version of BUG 2.0 will be sent to me. To make me more happy I ordered few books from Amazon to get them with package (inside US I got free posting). And today package was delivered by FedEx courier (their tracking page said Friday as delivery day).

    Package reminds why recycling is easy: UPS package from Amazon (the one with books which I ordered) was repacked and got FedEx papers:

    Package closed
    Package closed

    But box itself is not interesting — stuff in matters. After taking books out I got lot of packing bubbles and my eyes were presented with first level of things:

    Package opened
    Package opened

    And then second one:

    Next layer of items
    Next layer of items

    Everything unboxed:

    All items from a box
    All items from a box

    And again but this time without packaging. From left-top to right-left:

    • BUGduino module
    • camera module
    • OMAP3 video module with HDMI and VGA outputs
    • new LCD module
    • LCD screen with touchscreen (for LCD module)
    • battery
    • BUG 2.0 dock with serial (miniUSB), Ethernet, USB host, JTAG connectors
    • BUG 2.0 rev. A
    • two BMI adapters
    • BMI cable extender
    Unpacked items
    Unpacked items

    Look at new modules. First goes BUGduino which is Arduino thing with BUG connection. I do not know how it works but I knew that John Connolly did some programming for it.

    BUGduino module
    BUGduino module

    New LCD module — QVGA like before.

    LCD module
    LCD module

    Video module with HDMI and VGA outputs. This one is BUG 2.0 only as it uses OMAP3 signals and needs BMI slot with video signals. Yes, new BUG has only one slot for video — two screens configuration is not possible anymore. But hey — you can even connect 150” LCD ;)

    Video module
    Video module

    New camera module. I do not remember how many Mpx it has (old one had 2Mpx).

    Camera module
    Camera module

    BUG 2.0 itself. Notice two microSD slots — one will be used for system, second is for user. There are just two buttons now, no LCD, no joystick. Also buzzer got removed in favour of headphone connector.

    BUG 2.0
    BUG 2.0

    New hardware requires new BUGDock. What got changed? Serial is now present as miniUSB connector instead of DB9 so is easier to use with today computers (not everyone has 7 serial ports in desktop). Power and headphones connectors were removed because on-board ones are reachable. And JTAG connector is present. To tell the true I like old dock more then current one. But thats mostly because of angle connector instead of flat one. Anyway before BUG 2.0 will hit market there will be new dock for it.

    BUGDock side view
    BUGDock side view
    BUGDock top view
    BUGDock top view

    And thats how system can look. BUG 2.0 with Dock and two modules connected by adapters.

    Whole system with dock and two modules
    Whole system with dock and two modules

    Now I am waiting for Bug Labs guys to appear in the office to get informations how to boot it ;D

    Written by Marcin Juszkiewicz on
Page 50 / 105