Design West 2013, previously known as the Embedded Systems Confertence, will take place later this month, on 23-25 April to be exact, at San Jose McEnery Convention Center in San Jose, California, US. The event will be divided into 22 tracks dealing with software development, hardware design, operating systems, security and more:
Android Certificate Program – Two-day hands-on embedded android workshop.
Black Hat Summit – The Black Hat Embedded Security Summit will provide electronics professionals with essential information and tools, as well as a forum for the discussion and evaluation of the latest solutions for securing their embedded systems. Training courses will focus on topics such as Network Security, Incident Response, Web Application Security, and Exploit Development.
Connectivity and Networking – The Connectivity and Networking track educates design engineers on wired and wireless communications, spanning need-to-know topics from essentials of USB device development to antenna and RF system design.
Debugging and Test – This track features a mix of lectures focusing on useful insights on troubleshooting real world embedded software, and tips and tricks with highly practical takeaways that embedded systems designers can apply immediately.
Embedded Android – This track covers the tradeoffs of Android versus Linux in a real-world case study, teaches engineers how to streamline Android implementation on embedded systems, and provides information on how to apply USB technology and provide connectivity to various configurations of Android platforms.
Hardware: Design, I/O, and Interfacing – This track examines how to ameliorate the challenges associated with design element such as the interface between hardware and firmware; synchronizing I/O, integrating embedded vision and motion control, and leveraging existing sensor drivers.
Internet of Things – This track covers some of the specific challenges and opportunities for embedded designers, including today’s fragmented sensor and device market, the move from IPv4 to IPv6, and the return to resource-constrained embedded systems.
Linux Kernel and Operating Systems – The Linux Kernel and Operating Systems Track focuses on the kernel itself, and the operating system and programs running above it. Sessions cover best practices for engineers to leverage the use of open source software within embedded systems while avoiding common pitfalls, plus a session showing how Linux, though not a real time kernel, is likely good enough for your application.
Low-Power Design – The Low-Power Design track covers the latest techniques to conserve power at the system; architectural and component level as well as the advantages and trade-offs of different power optimization techniques.
Processors and Programmable Devices – The Processors and Programmable Devices track focuses on embedded systems that feature the use of processors (MPUs, MCUs, DSPs) and/or programmable devices (FPGAs, Programmable SoCs).
Programming – The Programming track focuses on embedded system programming languages, tools and techniques. Sessions provide practical tips and tricks and actionable information that developers can apply immediately to their code.
Prototyping – The Prototyping track focuses on the science and art of rapidly creating embedded systems for proof of concepts, demonstrations and iterative product developments.
Real Time Operating Systems – This track focuses on delivering real-time performance with the assistance of a real-time scheduler and related tools and techniques. Sessions include practical information on the design of real-time embedded systems that will be timely and predictable, design options for achieving real time without an RTOS, and the application of RTOS in safety critical applications.
Safety, Security and Hacking Embedded Systems – The Safety, Security, and Hacking Embedded Systems covers the latest techniques for designing and managing more secure systems. Sessions cover a mixture of hacking history, security knowledge, techniques for building more secure embedded system, and coping with the special case of Android.
Software Architecture and Design – Using practical, real-world advice from experts, this track will guide you through everything from requirements and specification development techniques, to optimizing your multicore and user-interface design. Agile design techniques will also be introduced.
Software Development – The Software Development Track will guide you toward a more disciplined approach to software development to improve performance, while emphasizing agility. A special session on common traps and pitfalls when developing real-time software will underscore the importance of such approaches.
Systems Engineering – The Systems Engineering Track’s objective is to improve analytical skills, impart an enhanced understanding of the impact of your engineering decisions on others on the design team, and the impact of other decisions on you. Engineers will learn the benefits of looking at the big picture, in addition to focusing only on the detail.
Hello World! – Track engineers share their embedded design experiences and provide information that will help you bring your ideas to life more quickly and successfully.
Lessons and Lessons Learned – Engineers share their successes and failures along with some practical tips, tricks, and how-tos to jump start your next big embedded systems project.
Connected Devices – Learn about the whacky wonderful future of mobility and learn about some real world examples of products with embedded systems that are already talking to the cloud.
Tech Fundamentals – This 3-day series consists of 18 45-minute sessions designed specifically for engineers who are new to embedded or experienced embedded engineers who want an introduction to topics outside of their core expertise. These practical sessions delivered in a tutorial format cover topics ranging from Embedded 101 to Analog for Digital Designers to Why the Programming Language C matters.
Hands-on Speed Training – Attendees can get some drive time on the latest development boards, hardware, and software tools and face time with expert engineer-trainers. Developments boards include Arduino, Beaglebone, Raspberry Pi… software tools include Microchip MPLAB X, TI WEBENCH Power Designer, etc..
To select the sessions, the best way is to use the schedule builder available on UBM website.
If you plan to only access the expositions, attend a few of the many vendor-sponsored sessions, and listen to keynotes, the pass (Expo Only Pass) is free and you only need to register. For details about the other pass see table below.
Expo Only Pass
Advanced | Feb 16 – Apr 18
Onsite | April 19 – 25
April 21 – April 25
Black Hat Conference Sessions
April 23 – April 24
April 22 – April 25
April 23 – April 25
April 22 – April 25
Sketch to Shenzhen, Fundamentals, and Hands-On Training Lab Included
Karim Yaghmour, Opersys’ CEO, gave 4 training sessions dealing Embedded Android at Linaro Connect Asia 2013, in Hong Kong, earlier this month. Charbax filmed those 4 40 to 50 minutes session with excellent video and audio quality, so I encourage you to watch all sessions if you are interested in this topic. The presentation slides are available on Slideshare.
The first training session is entitled “Android Internals”, and Karim introduces Android’s overall architecture, following the agenda below:
Calling on Services
Stock AOSP Apps
The second session “Working with the AOSP” deals with the following key points:
Tools and location
Build system architecture
Custom toolchains and dev kits
Compatibility Test Suite
The third session entitled “Native Android user-space” gives details about Android “rootfs”:
Architecture vs. filesystem
Build system and filesystem
The fourth and last session “Using and Customizing the Android Framework” is divided into 6 main parts:
Kickstarting the Framework
Utilities and Commands
System Services Internals
Creating your Own System Service
If you want to go further, you may want to read “Embedded Android: Porting, Extending, and Customizing” also written by Karim available in Paperpack or Kindle versions.
AnDevCon is a technical conference for software developers building Android apps, and the fourth Android developer conference will take place in San Francisco on December 4-7, 2012. The organizers have already listed the schedule, including details about the workshops and classes which will take place at the conference.
The 4th of December is reserved for workshops, and the other 3 days can be spent on shorter classes. All workshops will provide sample code, as well as most classes, excluding the overview session and business related sessions.
There will be three full day Android workshops:
Android Development Boot Camp – Hands-on introduction to Android application development and the tools essential to the process. Beyond an introduction to the basics, this workshop also covers some of the common hurdles met with development, and how to overcome them. You will also have the opportunity to build an Android app of your own where you can apply what you learn in the workshop.
Building and Distributing Social Apps with Facebook Platform and Open Graph – This full-day workshop will introduce key features of Facebook Platform with deeper dives delivered through live-coding examples. You will be guided through Facebook Android integration for native apps and Facebook Android PhoneGap and Cordova integration for mobile Web apps. You’ll also learn about Open Graph, how to build a Timeline app and more.
Embedded Android Workshop – This workshop is aimed at embedded developers wanting to build touch-based embedded systems using Android. You’ll learn about Android’s overall architecture, and Android internals. The Android Open Source Project (AOSP) will be covered during this session, then you’ll learn more about native Android user space and Android’s power tools, see how hardware support is implemented in Android, and see how the kernel is modified to support the Android user space. Finally, you’ll find out how to customize the System Server, the Android Framework and core Android applications.
as well as four half-day workshops:
Easy Mobile: Making Your Application Easier to Use – This hands-on workshop will consist of critiques and walkthroughs of your applications with an eye to making them easier to use. The goal is to make sure that everyone leaves this workshop with at least 1-3 usability improvements made to their application, and a list of 2-3 other things that can be done.
Pretty Mobile: Making Your Application Look Sexy – This hands-on workshop will consist of critiques and walkthroughs of your applications with an eye to making them look amazing. You’ll hack up screens and try new things using Photoshop, and learn about best practices.
Securing User Data with SQLCipher – One key tool for App security is SQLCipher for Android, an encrypted form of the SQLite database. You’ll learn how to replace your current SQLite usage with SQLCipher , how to check users password strength, and how to use it to store files and preferences securely.
Talk to Your Toaster: Developing Android Accessories – In-depth look at the APIs available in Android to connect with external hardware via USB, Wi-Direct, Bluetooth… You’ll also explore some accessory firmware, so experience with embedded development platforms such as Arduino can prove helpful.
There will also be plenty of classes categorized in 3 different levels. I listed a summary below, and highlighted the sessions related to embedded Android either directly or via communication to external devices, and lower level development (NDK, Drivers…) in green.
Android Fundamentals: What I Wish I Knew When I Started! – It will cover things like activities vs applications, UI development, and differences between Android and other mobile platforms.
Android OpenGL ES Essentials – OpenGL ES 101
Architecting Android Apps – Learn about building blocks of Android: activities, services, providers and receivers, as well as intents .
Building HTML5 Apps for Phone or Tablet – Learn to build online / offline HTML5 applications.
Creating Android Apps for Today’s Bluetooth Devices – Learn how to develop apps that let mobile devices receive and process data from BT enabled devices such as heart-rate monitors, thermometers, weight scales and more.
Creating ePub Books for Android
Designing Accessible Android Applications – Integrate accessibility features into your applications using touch, speech, sensors, haptics, gesture and more.
Designing Responsively with CSS3
Developing and Optimizing for Atom Processor-Based Platforms – Learn how you can use the x86 NDK.to optimize apps for Atom processors.
Exposing the Android Camera Stack – Integrate, improve or innovate using the Camera subsystem, learn about the Android Camera APIs, Camera Internals, and driver Architecture.
Extending the Android Platform – Ever run into a roadblock when developing for Android? There are several ways to extend Android capabilities such as using the Android Open Source Project (AOSP), using hidden APIs, rolling your own SDK add-ons or even customizing development tools.
Intro to Renderscript or Can’t I Just Depend on JIT? – Learn how to boost compute intensive tasks performance with Renderscript.
Introduction to Android Animation
Leveraging Android’s Linux Heritage – Running embedded Linux applications in Android.
MintChip and Virtual Loonies: A Case Study in Implementing Digital Currency – Virtual currency for mobile devices.
Optimizing Android UI: Tips for Creating Fast and Responsive Applications
Part I: App Marketing for Developers – Topics will include business models for apps, marketing funnel, tracking and analytics, keyword research, and many key marketing terms. Actual examples will be shown.
Part I: Beautiful Android on a Shoestring – Learm how to use XML and Java to create nice looking UI.
Part II: Hands-on Icon Creation – Demos on how to use the free resources to download vector graphics to create beautiful icons for your app using Photoshop and Imagemagick.
Part I: Bringing Up Android on Your Favorite X86 Workstation or Virtual Machine – This class introduces the concepts of AOSP and how to use it in order to configure and build one of the most popular Android devices available: The Android emulator, for an X86 target.
The Wonderful World of Wearables – Current wearable Android devices and accessories will be presented, and you’ll learn what it takes to get your apps to run on them.
Tracking User Behavior Creatively – Introduction to Google Analytics for mobile Web applications, and tips and techniques for building custom and granular tracking features.
Two-Part Class: Mastering the Android Developer Tools – Half-day workshop about Android development tools (DDMS, ADB, AVD/emulator, Lint, XML tools, HierarchyViewer, TraceView and more.
Advanced OpenGL ES – Learn how to use OpenGL ES 2.0 in your application
Advanced Techniques for Developing Powerful, Yet Lightweight Android SDKs – How to developer your own Android SDK
Android Forensics and Malicious Users – Hands-on review on how to forensically analyze an Android device and collect hidden data.
Attacking Android Insecurity – Learn how to create a secure app.
Battle-Tested Patterns in Android Concurrency – Leverage multi-core processors in Android.
Building NFC-Enabled Android Applications
Connecting to the Outside World – USB, Bluetooth and RS-232 connection to external devices. They’ll provide examples (barcode reader, credit card reader…) using an Arduino board.
Drinking from the API Fire Hose – Tailor Web APIs for mobile device in order to improve performance and battery life.
Extending the Android Vibrate Function for Games – Learn how to implement console-like gaming effects using the free Immersion Corporation SDK.
Inside Android’s User Interface – Internals of Android user-facing components, useless for those who want to use and/or modify those for embedded systems.
Intent + Service + Content Provider = Plugin Architecture
KVKit: A Simple, Powerful, ORM and Key-Value Store – KVKit is a lightweight alternative to Hibernate, and can be used as a simple database (SQLite) or for key-value storage.
Mastering the Android Touch System
Mobile Data Synchronization: Any Database, Any Back End, Any Time – QCDBSync is a lightweight open-source library that allows you to synchronize data stored in the SQLite database on Android devices with remote databases of any flavor.
Part II: Android Business Essentials – How to build a sustainable business based on Android apps. (Part I: App Marketing for Developers)
Part II: Bringing Up Android on Your Favorite X86 Workstation or Virtual Machine - Comprehensive tutorial on how to configure and build an Android desktop machine. A full working laptop Android distribution will be built.
QC: An Easy to Use Modular Framework – QC is an open-source framework that reduces time to delivery for applications.
Reusable Custom Components – Learn how to extend a View class to create custom views.
Save the Battery! App Design and Testing for Better Power Consumption
Tips, Tricks and Secrets of the Android Multimedia APIs – How to use Android audio and video APIs, and ffmpeg in an Android app via JNI.
Two-Part Class: Hacking APKs for Fun and Profit (Mostly for Fun) – Dive into the internals of Android (Dalvik bytecode, smali syntax, decompilation tools, …) and hack a popular app.
Who’s there? Home Automation with Arduino and Android – How to use Arduinos to be notified that someone has shown up at your doorstep wherever you are.
If you are interested in participating, you can register online. Here’s AnDevCon IV ticket prices:
By Aug. 3
By Sept. 21
By Oct. 19
By Nov. 16
After Nov. 16
3-day Passport PLUS Pre-Conference Workshops
3-day Passport Only
Exhibit Hall Only
As with other conference, it’s cheaper if you can register early. $100 discount is available for group registration (3 attendees or more), people working for the government (Coupon: GOV), in educational institutions (Coupon: EDU) or non profit organization (Coupon: NONPROFIT). The exhibit hall will be open on December, 6-7 2012 only.
Mike Anderson, CTO and Chief Scientist for The PTR Group, gives a tutorial about Linux kernel debugging in Android with OpenOCD JTAG at the Android Builder Summit in February 2012.
Owing to the use of the Linux kernel, Android device drivers can be debugged using many of the same techniques as Linux. Still, much of the user-space interface code typically found in Linux is missing in Android. This complicates the debugging of kernel driver code. This presentation will demonstrate the use of the open on-chip debug (OpenOCD) software and an inexpensive JTAG to debug Android kernel code. The target audience for this presentation are platform developers looking to debug their kernel code such as device drivers. This presentation is targeted at intermediate-level developers with some understanding of kernel code development.
Benjamin Zores, Open Source Software and Multimedia Architect at Alcatel-Lucent, gives step-by-step to port Android to your own device at Android Builder Summit in February 2012.
This talk is presented as a step by step tutorial meant for Android platform rookies, as to discover all Androidisms one has to tackle down to bring his own custom device to life. Based on a real-life Android 4.0 ICS device porting experience, the talk will cover early board bringup (from U-Boot and Fastboot to Linux kernel and drivers), AOSP device integration, Android-specific device init customization, touchscreen input layer adaptations and Hardware Abstraction Layer (HAL) driver interfaces development.
Free Electrons, a technology company offering embedded Linux consulting services as well as embedded Linux training, has released their training materials for Linux and system development for embedded systems including their Lab sessions.
The training materials are available in their git repository in LaTeX format.
If you want the latest documentation in PDF, you’ll need to build it by following those steps:
Install the required packages:
sudo apt-get install git dia inkscape texlive-full python-pygments