Piotr Król

Founder and Embedded Systems Consultant at 3mdeb as well as freelance CTO of Vitro Technology and CEO of LPN Plant. Passionate about building firmware that enables advanced hardware features in modern products. Dedicated to customers that treat embedded software security and upgradeability as forethought. Open source firmware evangelist interested in platform security and trusted computing. In favor of fixed price projects with a clear definition of success.

Social media profiles

Check GitHub profile


Articles (83)


Zephyr initial triage on Nucleo-64 STM32F411RE

Published at January 14, 2017 ·  7 min read

As I mention in previous post Zephyr RTOS is an interesting initiative started by Intel, NXP and couple other strong organizations. With so well founded background future for this RTOS should look bright and I think it will quickly became important player on IoT arena. Because of that it is worth to dig little bit deeper in this RTOS and see what problems we faced when trying to develop for some well known development board....

Categories: firmware iot

Failure of ECC508A crypto coprocessor initial triage with SAM G55 Xplained Pro Evaluation Kit

Published at November 24, 2016 ·  7 min read

Some time ago (around August 2016) embedded community media were hit with hype around simplified flow for AWS IoT provisioning (1, 2, 3). I’m personally very interested in all categories related to those news: IoT - is 3mdeb business core and despite this term was largely abused these days, we just love to build connected embedded devices. Building this kind of devices is inherently related with firmware deployment, provisioning and update problems....

Categories: firmware iot security

Starting with Nucleo-F411RE and mbed OS for command line enthusiasts

Published at November 23, 2016 ·  9 min read

When I first time read about mbed OS I was really sceptical, especially idea of having web browser as my IDE and compiler in the cloud seems to be very scary to me. ARM engineers proved to provide high quality products, but this was not enough to me. Then I heard very good words about mbed OS IDE from Jack Ganssle, this was still not enough. Finally customers started to ask about this RTOS and I had to look deeper....

Categories: firmware iot

Chromium GStreamer backed for i.MX6 research

Published at November 1, 2016 ·  3 min read

Recently I work on i.MX6 based project that requires video hardware decoding in web browser (best case in QtWebEngine, which is entire Chromium platform in Qt). Chromium After some research it appears that Chromium is not interested in providing external support for GStreamer-backed video hardware decoding. Truly going through all discussion related to this topic was very disappointing. Typically Chromium developers just close thread when discussion started to be noisy and there mass of complaining people raised....

Categories: app-dev

SAMG55 + OLED1 Xplained Pro Hello World!

Published at October 20, 2016 ·  4 min read

AMG55 - recognition in the field If you are considering working on SAMG55 Xplained Pro board here you will find some basic know-how to quickly get you started. What you will need? In this example I will be using SAMG55 Xplained Pro with OLED1 extension board, and Atmel Studio 7.0 with Data Visualizer addon, which requires Windows to work. This however should be similar for other board with EDBG debugger....

Categories: firmware iot

FWTS on ARMv8 platform (HiKey LeMaker version) from scratch

Published at July 25, 2016 ·  8 min read

This is second post from series about LeMaker version of HiKey board from 96boards Customer Edition family. Previous post focused on describing hardware part. In this post I would like to show how to setup firmware development and testing environment. This post highly rely on 96boards documentation, so kudos to 96boards and LeMaker for providing lot of information for developers. Obtain pre-compiled binaries 1 2 3 4 5 6 7 wget https://builds....

Categories: firmware

Directory scheme for multiple projects

Published at July 5, 2016 ·  4 min read

How to keep clean organization while working on multiple projects ? Answer to this question depends on workflow and nature of projects itself. Below I would like to present my approach to manage sanity while having multiple projects going simultaneously. This would be Embedded Systems Consultant view and will mostly show directory organization, but I think it can be adopted to other programmers workflow. Directory organization Usually I have up to 10 projects from external customer running and ~3 internal....

Categories: miscellaneous

Powering on LeMaker HiKey (ARMv8)

Published at May 19, 2016 ·  4 min read

Embedded Systems Consultants have chance to live in interesting times. ARM expansion touch server market and UEFI coming to non-x86 platforms. Firmware gaining its importance and because handling real development is harder and harder lot of things starting to happen in open source. Big players trying to address security and virtualization issues, what leads to really interesting features in recent SoCs. Couple weeks ago I decided to recover my knowledge about UEFI and take a look how it is implemented for architecture that have its momentum - namely ARM in its 8 version (ARMv8)....

Categories: firmware

PC Engines APU2 netboot Debian installation

Published at March 26, 2016 ·  3 min read

In previous post I described how to setup PXE server and boot Debian installer using it. I mentioned that provided setup is limited and some extensive configuration is needed to make it useful for real world example. Since that time I learned that there is chain command in iPXE, which give ability to use arbitrary TFTP server as boot file source. Using RPi PXE server For example by changing my test network topology from previous post to something like that:...

Categories: os-dev

PXE server with Raspberry Pi 1

Published at March 12, 2016 ·  4 min read

Recent days we get the announcement about releasing Raspberry Pi 3. Those of you who play with embedded systems or just try to make things probably still got good old Raspberry Pi (1). Because during time old platforms loose value as potential candidate for new projects I decided to sacrifice my old RPi and make test server from it. One of my customer required testing his software against PXE server with various configurations....

Categories: app-dev