Miscellaneous




Optimizing SPI communication on STM32 MCUs: a comprehensive guide to high-frequency communication

Published at July 28, 2023 · Artur Kowalski ·  22 min read

In this blog post, we delve into the fascinating world of Serial Peripheral Interface (SPI) on STM32 microcontrollers (MCUs). Specifically, we explore how SPI is utilized in TPM chips for communication with PC motherboards. We encounter the challenges of achieving high-frequency SPI communication, especially when operating as a slave, and the specific limitations of STM32L476 MCUs. The article further uncovers the limitations of existing approaches in platforms like Zephyr and STM32 HAL. We then embark on a journey to fix SPI issues, improve DMA performance, and optimize the firmware for high-speed SPI communication. Throughout the blog post, we provide in-depth technical insights and share valuable test results. Join us as we push the boundaries of SPI communication and unlock new possibilities in the world of microcontrollers....

Categories: firmware miscellaneous security


3mdeb Insights - Winter 2023

Published at January 30, 2023 · Norbert Kamiński ·  5 min read

This blog post will provide an in-depth look at upcoming plans and events for the near future.n the next quarter, we have several exciting events planned for the 3mdeb community. Our events aim to provide a platform for members to connect, share knowledge, and stay informed about the latest developments in the open-source ecosystem....

Categories: firmware miscellaneous


Qubes OS summit 2022 - Summary

Published at October 5, 2022 · Norbert Kamiński ·  10 min read

Three weeks ago 3mdeb with Qubes OS team had organized next edition of the Qubes OS summit. This year summit was a face-to-face event hosted in Berlin, which took place from the 9th to the 11th of September....

Categories: miscellaneous os-dev








3mdeb contribution 2020'Q2

Published at September 3, 2020 · Kamila Banecka ·  4 min read

The second post on 3mdeb contribution summary! The second quarter of 2020 has brought new merged patches. Check the samples of code that we successfully contributed and feel free to use them in your own projects....

Categories: miscellaneous


coreboot Fundamentals Training

Published at August 9, 2020 · Kamila Banecka ·  4 min read

coreboot Fundamentals Training is the first step of 3mdeb Firmware Training path. It provides solid grounds for further development towards proficiency in coreboot firmware platform enginering. With this blogpost we are starting coreboot fundamentals mini-course....

Categories: firmware miscellaneous











3mdeb roadmap for August 2019

Published at August 19, 2019 · Artur Raglis · Łukasz Wcisło ·  2 min read

Thrilled about what we are doing to change the world right now? Interested in the fancy stuff we make? Check out our plan for August 2019, find out more about our recent projects and stay tuned with the most sophisticated tech-team in the neighborhood....

Categories: miscellaneous





USB Sniffing With OpenVizsla

Published at April 24, 2019 · Łukasz Wcisło ·  11 min read

OpenVizsla allows to passively monitor the communication between a USB host and USB peripheral. It is a tool for developers working with USB and especially those who are using USB in embedded designs. We have tested its possible use cases and see it is really valuable, and has a lot of potential for further development....

Categories: miscellaneous security


3mdeb at Embedded World 2019

Published at February 23, 2019 · Marta Szelecka ·  2 min read

3mdeb at Embedded World 2019 We are excited to inform You that 3mdeb will take part in embedded world Exhibition & Conference - Embedded World 2019 next week! In place full of enthusiasts You can meet us personally between 26.02-28.02 in Nuremberg, Germany. Come and talk with us about amazing world of embedded systems. We will tell You not only about our work and innovations, but also share our knowledge, help and present to You our products and demos:...

Categories: miscellaneous


Optimize performance in Docker containers used by Embedded Systems Consulting business

Published at September 27, 2018 · Piotr Król ·  11 min read

In 3mdeb we use Docker heavily. Main tasks that we perform using it are: firmware and embedded software building - each software in Embedded System requires little bit different building environment, configuring those development environments on your host may quickly make a mess in your system for daily use, because of that we created various containers which I enumerate below trainings/workshops - when we perform trainings we don’t want to waste time for users to reconfigure the environment....

Categories: firmware miscellaneous


Directory scheme for multiple projects

Published at July 5, 2016 · Piotr Król ·  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


Improve productivity with Google history using bookmarks and Chrome extensions

Published at July 30, 2013 · Piotr Król ·  5 min read

The idea of this post is very simple (as usually) and I wonder why I didn’t thought about it earlier. The point is to use history of your Google queries to improve productivity. Most of things that we google can be replaced for example by browser extensions, bookmarks or rss feeds. That’s how we can gain few additional free seconds on each google-type-click cycle. Statistics Depending on different factors we spend a lot of time in browser....

Categories: miscellaneous


Workflow improvement with Open Source tools - part 1

Published at May 16, 2013 · Piotr Król ·  5 min read

Introduction I want to start a series of articles to describe how I improve my workflow with geeky Open Source applications. I will concentrate on terminal applications that I try to use in my GTD process. Terminal Solarized gnome-terminal If you already don’t know what solarized color scheme is then please take a look at this page. To install solarized colorscheme in gnome-terminal simply follow instruction from this git repository....

Categories: miscellaneous


Thunderbird to Mutt migration - tips & tricks

Published at May 15, 2013 · Piotr Król ·  3 min read

Preface I migrate with my working environment to laptop. My workstation going older and I don’t have time to maintain few systems to keep it clean and in sync. I probably have to improve my work flow but right now I have different problems. Few weeks ago after changing environment to mobile and powerful laptop I also changed OS to Ubuntu and mail client to Thunderbird. I have to admit that both choices were mistake and I want to came back to Debian and Mutt....

Categories: miscellaneous


Music for programming

Published at March 30, 2013 · Piotr Król ·  2 min read

Of course this is strongly associated with personal taste but I will write my experience. <www.pandora.com> - really great radio station, choose your genre or artist and it will lead you through all variety of this type. unfortunately if you are fan of Iron Maiden, Blind Guardian, prog rock or irish folk you will be bored after 2 hours or less. Sadly not available in Poland {% emoji disappointed %} maybe some proxy will work but I wasn’t able to find one....

Categories: miscellaneous


Tmux multiplexer and vi-like keys in copy-mode

Published at March 19, 2013 · Piotr Król ·  1 min read

So I tried to write second post for my new blog but to effectively work using terminal I need terminal multiplexer. I switched to tmux from screen because I reach point that I can’t do some things in it in easy way and performance was poor. Also activity of tmux developers is better than for gnu screen. I also experienced annoy buffer crashing especially after come back from lock mode or cmatrix much but after reading few articles about alternative for screen I switched to tmux....

Categories: miscellaneous


Short hint for all those who use vim and pathogen

Published at January 15, 2013 · Piotr Król ·  1 min read

Today, after updating my workspace to latest version I encounter below error during vim running. Error detected while processing function pathogen#runtime_append_all_bundles: line 1: E121, E116. Quick look on pathogen runtime_append_all_bundles function and I found...

Categories: miscellaneous


Mutt tutorial part 4 - html mails, address book and other useful features

Published at May 13, 2012 · Piotr Król ·  2 min read

How mutt can handle mails in html format ? Takling about html mail handling is talking about handling any type of Multipurpose Internet Mail Extensions. Mutt supports handling for all MIME types in one place for all programs. This place is .mailcap file. Googling a little bit I found below mailcap file configuration (kudos to Bart Nagel). 1 2 3 4 text/html; pandoc -f html -t markdown; copiousoutput; description=HTML Text; test=type pandoc >/dev/null text/html;lynx -stdin -dump -force\_html -width 70; copiousoutput; description=HTML Text; test=type lynx >/dev/null text/html; w3m -dump -T text/html -cols 70; copiousoutput; description=HTML Text; test=type w3m >/dev/null text/html; html2text -width 70; copiousoutput; description=HTML Text; test=type html2text >/dev/null Of course we need to install all applications to make mailcap work correct:...

Categories: miscellaneous


Mutt tutorial part 3 - sidebar, URLs in e-mails

Published at May 13, 2012 · Piotr Król ·  2 min read

Information in this post came from lunar linux page. Kudos to its author. In this post I want to discuss two topics: sidebar and how to open urls form inside mutt. Sidebar is mutt feature delivered in mutt-patched package in Debian. It cause to split standard mutt window in two parts. In first we can find list of folders defined in the $HOME/.muttrc file, second window is a known old window with the list of posts....

Categories: miscellaneous


Mutt tutorial part 2 - secure login

Published at May 13, 2012 · Piotr Król ·  2 min read

This is second post of mutt tutorial series. As in the previous post for below information I need to thank Kousik for posts about gpg and using it with mutt. But probably the most important to simplify this method was Fau comment here. So going to the point of secure login for mutt we need gpg. First of all we need to install it by simply: 1 sudo apt-get install gpg After that we generate our keys by:...

Categories: miscellaneous


Mutt tutorial part 1 - setup IMAP account

Published at May 13, 2012 · Piotr Król ·  3 min read

Mutt is one of those programs that make people call you a linux geek, nerd or a snob. This is because using TUI or command line tools in world of fancy GUI for most people is weird. What’s so great about mutt? I probably still have not found much of its advantages, but at first glance we can notice a few things. First, it keeps Unix convention of small programs for specific task “Make each program to one thing well” or KISS....

Categories: miscellaneous


Vim as a Blogger editor

Published at April 21, 2012 · Piotr Król ·  2 min read

Blogger.vim is a vim plugin for interfacing with Google’s Blogger. Below I will use my workspace git repository. To use this plugin we need pretty new ruby >= 1.9.2 and gems nokogiri and net-https-wrapper. Let’s install latest possible ruby for Debian, before that make sure you have latest updates: 1 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade And ruby: 1 sudo apt-get install ruby1.9.3 Before we install gems , we need to resolve some dependencies:...

Categories: miscellaneous


How to download videos from videos.linux.com

Published at April 6, 2012 · Piotr Król ·  1 min read

Therefore, I’m leaving for the Easter holidays I wanted to download some lecture on embedded systems, which was presented at the 2012 Embedded Linux Conference. Although I regret I found that I could not find as good quality copy in the network as on the Linux Foundation page. It is unfortunate that linux.com site does not have the possibility of direct downloading video files. But there is a workaround. Follow below tutorial:...

Categories: miscellaneous


Splitting my personal repository

Published at March 14, 2012 · Piotr Król ·  1 min read

After writing a few posts in which my workspace scripts could be useful, I realized that I should split blog works from the scripts that can be useful to others. From now materials related to the blog I will track in a separate repository and I’ll add them as submodule into my environment. This implies that if we intend to deliver something to a broader audience this should include only those things which the recipient is expected and which we say that we provide....

Categories: miscellaneous


Hostname generator

Published at February 20, 2012 · Piotr Król ·  1 min read

Many times happened that I spend time, during the installation of the new system, whether it be a virtual physical machine, wondering about it’s hostname. One day I asked myself the trouble searching for host name generator. Best I could find (currently second in the results of google) is rospo.net. It gives you the choice of category for the host name. My favorite, as a fan of fantasy is “Characters from Tolkien”....

Categories: miscellaneous


Improve productivity by tracking work environment with git - vim

Published at February 20, 2012 · Piotr Król ·  3 min read

In this post I try to describe my vim configuration procedure and how it is connected with git. The whole concept is based on keeping all the configuration files in a separate directory. These files are connected using symbolic links in places where system or application requires it....

Categories: miscellaneous


Improve productivity by tracking work environment with git - preparation

Published at February 19, 2012 · Piotr Król ·  1 min read

Update: My repository is available here. Below is first post from series in which I want to describe my experience gained in attempt to enhance my productivity by using git to control the contents of some files in my home directory. The first step to improve the productivity is good organization of working environment. It happens very often that I work on multiple machines both physical and virtual. Therefore I need a good mechanism to share knowledge, experience, code, configuration and many other things....

Categories: miscellaneous


Set irssi under debian to use freenode server

Published at February 15, 2012 · Piotr Król ·  1 min read

Very short manual on how to set up irssi to work with freenode servers. First, install irssi: 1 sudo apt-get install irssi Run: 1 irssi For freenode write: 1 /connect holmes.freenode.net Send register command for your {nickname} and add information about your {e-mail}: 1 /msg nickserv register {nickname} {e-mail} Copy and paste line, which you get from freenode registration server to your mailbox, to irssi....

Categories: miscellaneous


arbtt as productivity improver for Linux environment

Published at February 6, 2012 · Piotr Król ·  3 min read

As I mentioned in previous post I work a lot on improving my productivity. After FreeMind it is time for arbtt. This is small tool which tracks active windows during your work. It is delivered with distro that I’m currently using (Debian wheezy). So all I had to do was: 1 sudo apt-get install arbtt Below I try describe how I configure arbtt to work with some apps that I use (Google Chrome, FreeMind, gnome-terminal and screen)....

Categories: miscellaneous


First steps to improve work productivity in Linux environment

Published at February 5, 2012 · Piotr Król ·  2 min read

The problem encountered on several occasions over several months. Now it is time to deal with it. How did this happen? As always, resources were not sufficient, and if we can not increase the amount of resources we must strive to optimize their use.In this case, it was about time. While reading my last acquisition, once again I faced the problem of re-configure Linux account. Every time when I need new account for some reasons I need to configure some things manually....

Categories: miscellaneous


UEFI from Linux enthusiast perspective

Published at January 15, 2012 · Piotr Król ·  2 min read

Another interesting topic with which I am dealing with recently is the UEFI. As we read on wikipedia: “The Unified Extensible Firmware Interface (UEFI) is a specification that defines a software interface between an operating system and platform firmware.". The purpose of this specification is to create something what in the future fully replace the BIOS. Of course, as always in such a situation, I wonder what OpenSource and Linux gurus have to say....

Categories: miscellaneous


Tmux as screen replacement and productivity accelerator

Published at January 6, 2012 · Piotr Król ·  5 min read

As I wrote in previous post I switched from GNU screen to tmux. I use it for a few moths and have to said that I’m really impressed by simplicity, performance and community support in this project. In this post I want to discuss my configuration and useful additions for it like tmuxinator, session logging, colors or status bar configuration. Basics Debian contain tmux package but for stable and testing release it is pretty old version....

Categories: miscellaneous