Brussels / 4 & 5 February 2017


(Ab)using Google's Chromium-EC firmware for your own designs

Building Franken-Chromebook-devices

Google’s chromebooks and routers use off the shelf Microcontrollers (MCU) to do power sequencing, fan control, PWM and other hardware control tasks one typically encounters in embedded systems. Interestingly enough the firmware is available under (3 clause) BSD license and thus open for hacking, abusing and modifying to your needs.

We’ll look at a bunch of MCU options and eval boards to get started with, their availability and pricing in low quantities as well as ways to hook them up to your embedded platform. Moreover we’ll look at hardware level requirements your SoC / board will have to provide in order to make it all work.

We’ll cover existing driver / software support in upstream Linux and U-Boot, as well as parts that are or were missing.

Typical tasks of an embedded controller for a chromebook or random other devices like mine - which is everything but a laptop - will be discussed. Topics covered will include boot selection, firmware upgrades, watchdog timers and others.

Finally I’ll share my experiences building a real world Zynq based system using chromium-ec on an STM32 MCU and my experiences adapting the software to my needs and interacting with the community. Examples include replacing the coreboot bootflow with U-Boot, creating device drivers for things like buttons and issues encountered in making things work.


Photo of Moritz Fischer Moritz Fischer