The TMPDIR podcast: Recent Episodes

TMPDIR

Learn about best practices and the latest developments with Embedded Linux and IoT

View Details

Available on your favorite podcast platform.

In this episode, we discuss some of the new tools we started using (more) in2024 that can help you become a more productive developer.

  • Zellij
  • Helix
  • Terminals
    • Alacritty
    • Kitty
    • Ghostty
  • tio
  • fd
  • rg
  • Perplexity
  • Yazi
  • LazyGit

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss the tendency to end up on a hard fork of an OSSproject, how this happens, and why we should consider another model.

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we learn how the BeagleBoard Foundation does open hardware andhow their products can be useful in your product development efforts.

Notes:

  • how Beagleboard products are different than Raspberry PIs
  • why open hardware is important
  • overview of some of Beagleboard.org’s products
  • why upstreaming development is important
  • how to do things right
  • discussion about RISC-V
  • and more

See the Beagleboard.org main site anddocumentation site for more information.

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss our recent experiences building a product usingZephyr, and how Zephyr has helped us move fast and quickly integrate advancedfeatures like a HTTP server, non-voltile store in flash, device support, etc. Wealso discuss how to set up a project in Zephyr and have built a project templatethat demostrates how to use the Zephyr T2 workspace setup. This template alsoincludes common things projects need like a web application example.

Zephyr SimpleIoT

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss how 3D printing in manufacturing can help you byreducing cycle times, shorten lead times, etc.

Outline:

  • what makes companies successful
  • growing a company
  • 3D printing in design and manufacturing
    • design during day, print through night, test in morning, and repeat
  • design for manufacturing
    • production vs hobby 3D printers
    • types of filament
    • print part number and revision into each part
  • manufacturing in-house vs outsourcing

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

Matthew is an expert in Lean Manufacturing and shares with us an overview of thebasic concepts and what has worked for him and the companies he works with. Inthis episode, we explore how ideas the manufacturing space can also improve ourproduct development efforts.

Resources:

  • Matthew’s web site
  • The Toyota Way
  • Lean Thinking
  • The Motive

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss Yocto support for Nvidia embedded processors, suchas the Jetson devices that areincreasingly being used to power edge AI applications. Matt created andmaintains the meta-tegra layer. meta-tegrais one of the highest quality BSPs we’ve used, so learn from Matt how hemaintains it, what makes a good BSP, and many other thoughts from an experiencedYocto/Embedded Linux developer.

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss aspects running AI on edge systems (bothmicrocontrollers and embedded Linux). Chris has a lot of experience doing thisand has used AI at the edge in multiple projects to solve real problems. Thisepisode provides an overview of the technology and will help you understand thesteps to implementing an AI model in your system.

Chris has published an open source projectfor implementing neural networks on embedded systems.

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

Great discussion with Eystein on updating systems, how Mender has evolved overthe last ~10 years, and more:

  • Eystein has a background in Math and cryptography
  • Company started as CFEngine
  • Things people tend to not think about with system update:
    • security
    • reliability (power loss, does it resume downloads when there are networkissues, etc.)
    • future products – is the solution general
    • scheduling
    • updating multiple devices in the system
  • Mendor milestones
    1. OSS release
    2. SaS service
    3. advanced environments, complex deployments, orchestration, etc
  • OSS foundation
    • open-core model
    • product led growth
    • is working well
  • Programming languages
    • Switching the Mender client fromGo to C++so the client is more portable.
  • Platform vs Product
    • Product – narrow set of problems, pick what you need, less vendor lock-in
    • Platform – wide focus and tends toward locked in
  • Interesting in the technology space
    • Bootloader standardization would help a lot
    • ARM System Readylooks interesting.
  • Advice for young engineers

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we had a great discussion withDrew about:

  • Drew’s career – many interesting companies
  • Toradex
    • manufacturers SOMs (System-on-Module)
    • started out providing WinCE solutions
  • Torizon
    • opinionated stack
    • fully integration solution
    • container runtime – allows developers to deploy applications withoutknowing much about Linux
    • customize OS without doing Yocto builds
  • Visual Studio Code plugin
    • simplifies management of Docker images, containers, cross compilation,remote debugging, etc.
  • Torizon device side software is OSS
  • SW update system
    • many options: Mendor, RAUC, SWUpdate, OSTree
    • Toradex uses OSTree
      • OSTree is file based for delta updates, where RAUC and SWUpdate are blockbased.
      • single partition
      • Git-like store where changes can be rolled back, etc.
      • read-only rootfs
    • Uptane is provides protection against attackers
  • Greenboot – used to verify system is functioning properly
  • Toradex’s upstream first policy
  • Challenges in developing with Embedded Linux
    • drinking from the OSS firehose
    • understanding all the components
    • realistic expectations about how long this stuff takes to develop
    • regulations
  • The future
    • immutable distros

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

The Embedded Open Source Summit is a Linux Foundation event that covers embeddedcomputing systems (mainly Linux and Zephyr). Listen to learn industry trendsthat may affect your product development efforts.

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this espisode, we discuss what Yocto Dynamic Layers are, how they can helpyou manage changes for multiple layers, and how this helps you build an EmbededLinux Platform that you can scale accross time and products.

Documentation

Seehow we use them in the Yoe Distribution for an example of how you might use dynamic layers.

Another discussion

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss workflow ideas that can help you improve yourdeveloper productivity.

Outline:

  • How to find the right people?
  • How to accelerate the rate of development?
  • How to be more efficient?
  • How will AI impact me?
  • How do we adapt to change?

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss technology trends and opportunities in 2024 that canhelp you develop better products.

Outline:

  • Hardware
  • Embedded Linux
  • Application development

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss how Open Source software can help you add value toyour products.

This topic is also covered inthis blog post.

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss the latest features in the Yoe Distribution that canhelp you build products more efficiently using Yocto.

  • New platforms:
    • Nvidia Jetson Orin Nano
    • VisionFive2 RISCV64 SBC
  • Yoe Projects - a better way to configure your project
  • Qt 6.6
  • switch to LLD linker
  • ptests can not be run inside Docker

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss the “living on main” philosophy so that you cantrack the latest software developments more effectively, reduce technical debt,and participate in the software projects you use.

Outline:

  • What do we mean by living on main?
  • Traditional view of stability
  • Advantages
  • Examples
  • How to do it

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, Burkhard shares his experiences about using Qt and Yocto:

  • focus on HMIs in industrial equipment
  • Why use Yocto instead of Ubuntu for embedded devices
  • QML vs Qt C++ widgets
  • Qt vs Web platform
  • Hexagonal architecture
  • Tips for selecting a SOC/SOM
  • CI/CD

Discuss this episode at ourcommunity site.

View Details

In this episode we discuss how Arch Linux can help you as a developer.

View Details

Available on your favorite podcast platform.

  • backstory
    • working on a project using freeRTOS on STM32H743
    • a lot of work integrating things like Ethernet/USB
    • code generation has tradeoffs
    • without one week, 1 engineer working part-time had Zephyr running with most drivers working
  • Build
    • Kconfig (very granular)
    • Device Tree -> C headers
    • extensive use of Macros
    • no C++
  • differences between other RTOS models
    • most MCU tooling takes RTOS, and MCU integrates and delivers
    • Zephyr does the opposite – they take MCU HAL, and then integrate and deliver directly to developers
  • Support/Community
    • Discord
    • Github discussions
  • Shell
    • is amazing
    • proper terminal with tab completion, proper backspace support, etc
    • keeps what you are typing at bottom of screen even if there are logging messagesscrolling
    • list threads, memory used, %CPU, etc
    • Projects like Beagle Connect Freedom – they are piping shell over radio connection
  • Logging
    • standard levels ERR, WRN, INF, DBG
    • easy to add a logging domain in any module
    • Macros automatically apply LOG_WRN() to current logging domain
    • can change log level of each domain at runtime in shell
  • Tooling
    • well-integrated flashing
    • debugging uses the command line GDB
  • Linux connections
  • Performance
  • challenges
    • configuration
    • tracing code through system calls
    • documentation is fairly good, but can be hard to find things
  • opinion
    • The Zephyr project is a sustainable approach as MCUs become more complex

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

  • Would like to know a great way to prove your ideas and then sell them?
  • The power of the demo
  • Why it works
  • what?
    • live demo
      • document camera
    • recording a video is effective – managers like video as they can moreeasily understand it
    • proposal document
  • How to do it
    • you need to become a media producer
    • use OBS to record screen casts
    • the more you do it, the better you’ll become
    • KDENlive
    • OpenShot

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

Show Notes:

  • which do you find more inspiring – a stagnant pond covered in algae or a fast-flowing mountain stream?
  • why should you share your work early and often?
  • Two scenarios
    • everything done in private and then we try to integrate at the end
    • continuous stream of work done in a transparent way
      • can exist inside companies as well as OSS projects
    • stagnant pond vs fast flowing mountain stream
  • why
    • builds trust
    • get feedback early
    • people can watch the work go by and optionally take a closer look if they are interested.
    • spreads knowledge
    • we do better work in public
    • injects energy into the team
    • no status meetings are required
  • how do you do this?
    • work on a Git branch, rebase, squash commits, force push, delete, etc
    • do batches of work in a pull request
    • small commits/PRs – monster commits/PR are exhausting to review (at least daily)
    • stream of commit messages tell a story how you got from point A -> B
    • lead your work with documentation
  • objections
    • My code is not perfect
    • I don’t want to bother people
    • It is only an experiment and may get redone anyway
    • I’m not comfortable showing my work/process

See also: TMPDIR handbookDiscuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

How can you make your builds go faster? Some of the ideas we discuss in thisepisode:

  • C/C++
    • the problem of headers
    • Clang CI tools
    • parallel builds
    • ccache/distc
    • linking technologies
  • get a new workstation (the easiest way to speed up builds)
  • Yocto
    • Yoe defaults to fast defaults where possible
    • sstate
    • Memory requirements per core – 4G RAM/Physical Core

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

See also relatedblog article.

In this episode, we discuss the trajectory that technology takes and howunderstand this can help you make better technology predictions.

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we discuss why you should consider a 64-bit processor for yourembedded Linux project.

Discuss this episode at ourcommunity site.

View Details

Available on your favorite podcast platform.

In this episode, we are joined by Blake Minerto discuss databases.

Show notes:

  • Introduction
    • Blake’s background, what type of work he does, company information, etc.
    • Data has substantial value
  • What is a database?
    • General overview - store data, process it, and look it up later
    • Important that data stays intact in the event of a app/system crash, powerloss, etc.
    • Important that conflicting concurrent changes are handled appropriately
    • What safety guarantees do I get? -> Transactions / ACID - Atomicity,Consistency, Isolation, Durability
      • atomicity -> abortability guarantee for a group of writes (i.e. uponfailure)
      • consistency -> guarantee that certain (app-specific; sometimesdatabase-specific) constraints are not violated
      • isolation -> describes how database handles concurrent edits of the samedata. Serializable is the strongest guarantee. Snapshot isolation is verycommon.
      • durability -> storage guarantee (i.e. upon commit, data has fsync‘ed todisk). Study: SSDs get 1 bad block in first 4 years; disaster could wipeout an entire data center; nothing is perfect.
    • Storage / lookup: Data models / data structures
    • Derived data; caching
    • Concurrency; consistency & isolation
  • Reactivity/Realtime
    • tradeoffs between reacting to DB changes vs using a message bus
    • streaming platforms such as NATS Jetstream and Kafka
  • SQL
    • Tables and rows -> array of structs
    • SQL -> Declarative query language (query engine determines implementationdetails at runtime)
    • B-tree Indexes
  • NoSQL Databases
    • “NoSQL” -> a marketing term
  • Redis
    • Data structure store
    • In-memory vs. disk-based
  • Embedded databases (i.e. API vs. commands over TCP)
  • Designing Data-Intensive Applications by MartinKleppmann. Blake recommends this book.

Discuss this episode at ourcommunity site.

View Details

In this episode we describe what a platform is and the importance of owning it.

View Details

In this episode we describe the typical experience of a Go developer.

View Details

In this episode we describe how we develop, test, and use the Yoe Distribution.

View Details

In this episode we discuss many aspects of Open Source and learn from Andrew's experience.

View Details

In this episode we discuss several aspects of documentation.

View Details

In this episode we discuss what makes a good Yocto BSP.

View Details

In this episode we discuss our experience using the Elm language for web application development.

View Details

In this episode, we discuss the Yoe updater and why it exists.

View Details

In this episode, we discuss our experiences using the Yoe Distribution on a real project.

View Details

In this episode, we discuss Embedded Linux application development.

View Details

Learn how Thomas Petazzoni got into Embedded Linux and his thoughts on Buildroot, Open Source, running a small company, etc.

View Details

Join Khem and Cliff to learn more about Yoe and how it can help you develop Embedded Linux systems easier and faster.

View Details

In this episode, Cliff and Khem reflect on the path that led them to creating the Yoe distribution.

View Details

In this episode, we discuss some of the projects Cliff is working on, tips, etc.