RTOS Design and Debugging Techniques Hands-on

Instructor(s): Jacob Beningo

When: 05/18/2021 15:00:00 (EST)

Duration: 2 hours

Real-time operating systems (RTOS) have found their way into nearly every embedded system. The problem though is that an RTOS can often complicate implementation, increase module coupling and make debugging a nightmare.

In this workshop, Jacob Beningo will walk attendees through RTOS implementation and debugging techniques that will help developers accelerate their design cycle and implement more robust and flexible design techniques. Attendees will learn hands-on about topics such as:

  • How to initialize tasks
  • How to properly set task stack size and monitor for stack overflows
  • Decouple application code from the RTOS
  • Properly protect shared resources
  • Minimize response time for system events
  • Perform application tracing and performance analysis

Additional topics and details about specifics boards and RTOS will be provided closer to the conference.

Go to Workshop

Test-Driven Development

Instructor(s): James Grenning

When: 05/18/2021 13:00:00 (EST)

Duration: 2 hours

Test-Driven Development is a technical practice that supports Agile's iterative and incremental development cycle. TDD helps you quickly discover mistakes, preventing defects. You weave a test safety net as you grow your product's behavior one test at a time. This safety net supports you now and in the future to help you keep code working as you change it. Oh yeah, don't let me forget to tell you it's fun and once you learn it, you save time and money.

Maybe you have heard of Test-Driven Development but don't quite get it. A good way to understand TDD is to pair program with an experienced practitioner. We will start with a brief overview and demo of Test-Driven Development. In this interactive workshop, you can practice TDD in C. You don't need to install any tools for this workshop. You'll run the exercise on my exercise server. You will know what TDD is after this session. We'll conclude the workshop with a debrief on your experience.

Before attending this workshop, it is highly recommended that you watch this talk from the 2020 Embedded Online Conference.

Go to Workshop

Building Accelerated Applications with Vitis

Instructor(s): Adam Taylor

When: 05/18/2021 10:00:00 (EST)

Duration: 2 hours

Do you want to benefit from the acceleration of programmable logic using C or C++, for your quantitative finance /  signal or image processing or AI/ML applications.  The Vitis Unified Software Platform enables developers to more easily tap into the benefits of Xilinx heterogeneous SoCs and accelerate their applications, without needing advanced hardware development knowledge. This workshop will provide an in-depth tutorial on how to get started with Vitis and Vitis AI.

Topics covered in this workshop include:

  • Vitis features and elements
  • Vitis libraries
  • OpenCL
  • Vitis development flows
  • Optimizing software for programmable logic implementation
  • Vitis AI for machine learning inference acceleration
  • …and more!

Go to Workshop

Learning how to Deliver AI Solutions In Days, Not Months

Instructor(s): Jenny Plunkett

When: 07/27/2021 14:00:00 (EST)

Duration: 2 hours

Please visit the following URL and read about a few things you should consider doing to prepare and take full advantage of the workshop:

https://bit.ly/2TqZ6CA

Visual AI solutions combined with powerful sound diagnostics for real-time decision-making are some of the hallmarks of the Sony Spresense with Edge Impulse’s embedded ML technology. Together, Edge Impulse and Sony bring a unique combination of solid computing performance as well as serious power efficiency that is ideal for edge computing applications. 

Join our hands-on workshop to learn how to build future-proof solutions with smart sensor analysis, image processing, data filtering, collecting raw data, getting insight into that data using signal processing and machine learning, and deploying your ML models, ready for scale and industrial production.

  • Learn how embedded ML gives real-time insights into complex sensor streams
  • Build your first embedded ML model in real-time
  • Gain insight into the types of problems ML solves, then build better products
  • Learn how to take your ideas to production and scale through complete MLOps

Workshop details:

  • A 90-minute workshop
  • Beginner/Intermediate skill level
  • Hands-On, Instructor-Led, Live
  • A recording will be shared post-event
  • A personalized Certificate of Accomplishment from Edge Impulse
  • Purchase your Sony's Spresense kit from Adafruit today or check here for more buying options.

Go to Workshop

Fast Track to Designing FIR Filters with Python

Instructor(s): Dan Boschen

When: 10/06/2021 10:00:00 (EST)

Duration: 2 hours

Thank you for your interest in the Fast Track to Designing FIR Filters with Python workshop! Below are the installation instructions as well as a Jupyter Notebook with the material that will be presented in the workshop.

Option 1: Easy path to Python: Install the Anaconda Individual Edition which will have all the tools we will be using: https://www.anaconda.com/products/individual

Option 2: Alternative manual path to Python: As a minimum install we will be using Python 3, Numpy, Matplotlib, and Scipy:

     Install python: https://www.python.org/downloads/

     From command window type: 

         pip install ipython 

         pip install numpy

         pip install matplotlib

         pip install scipy

         (if you encounter any difficulty with installing the packages, see this page: https://packaging.python.org/tutorials/installing-packages/)

Being able to run Jupyter Notebooks is not necessary for the workshop but convenient as I am sharing the details of the workshop in the attached Jupyter Notebook for future reference. If you would like further basics on running the Notebook, please see this link:

https://www.datacamp.com/community/tutorials/tutorial-jupyter-notebook

Notebook: Fast Track FIR Filter Workshop.ipynb


Finite Impulse Response (FIR) filters are the more popular of the two main types of digital filter implementations used in DSP applications. In this workshop, we will go through best practice approaches for optimized FIR filter design and implementation using the free and open-source Python programming language. This will include the common techniques for going from filter requirements to practical implementation and demonstrate both creating FIR filter designs as well as evaluating filter frequency responses using the Python language and its signal processing library.

This workshop will include:

  • Complete setup to get Python up and running for signal processing applications.
  • Summary of the high-level approaches to FIR filter design – which are best and why?
  • Fast track to using the signal processing library in Python for creating FIR designs.
  • The complete design flow for FIR filters from specification through verification.
  • Using Python for filter evaluation, including plotting magnitude and phase responses.

Go to Workshop

Machine Learning with Python: Introduction to Clustering and Classification

Instructor(s): Matous Cejnek

When: 10/07/2021 08:00:00 (EST)

Duration: 2 hours

In this workshop, the difference between clustering and classification will be explained with illustrative examples. The examples will demonstrate utilization of common machine learning algorithms (random forests, k-means, SVM) implemented in popular Python libraries.

Notebooks:

python_clustering.ipynb

python_classification.ipynb

Sample image


Go to Workshop

Training and Deploying ML models to STM32 Microcontrollers

Instructor(s): Jacob Beningo

When: 10/07/2021 10:00:00 (EST)

Duration: 2 hours

Machine learning (ML) has often been considered a technology that operates on high-end servers and doesn’t have a place in traditional embedded systems. That perception is quickly changing. This workshop will explore how embedded software engineers can get started with machine learning for microcontroller based systems.

This session balances theory with practical hands-on experience using an STM32 development board.

Attendees will learn:

  • How to collect and classify data
  • Methods available to embedded developers to train a model
  • Hands-on experience training a model
  • How to convert a model to run on an STM32 MCU
  • How to run an inference on a microcontroller

Additional details for development board and tools will be provided closer to the conference.

Go to Workshop

Signal Processing with FPGA, Python & no RTL Design!

Instructor(s): Adam Taylor

When: 10/06/2021 08:00:00 (EST)

Duration: 2 hours

To take full advantage of this workshop, you'll need an Arty Z7 board.  If you decide to purchase one, make sure to: 

  1. Select the Z7-20 version.
  2. Enter the promo code DSPARTYZ725 to save 25%

Before attending the workshop, make sure to download and install:

  1. Pynq 2.6 for the PYNQ Z1 http://bit.ly/pynqz1_v2_6
  2. Vitis 2020.1 this includes Vivado and Vitis HLS - https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vitis/archive-vitis.html
  3. Check out this github link for more workshop material, including a pdf of the slides: https://github.com/AdiuvoEngineering/EOC_DSP

Developing programmable logic solutions is moving up the levels of abstraction.

In this session we will use the Arty Z7 board and the Xilinx PYNQ framework to accelerate signal processing algorithms (FFT, FIR Filters) in programmable logic using with a combination of Python and High-Level Synthesis (C/C++). Techniques such as this will allow us to leverage the processing capabilities of programmable logic without the requirement to develop solutions using traditional FPGA Register Transfer Languages. This enables smaller, more power-efficient solutions.

This session will introduce the PYNQ framework and explain how it interacts with the programmable logic. We will then explore how we can use HLS – what is it, how do we go from untimed C to logic gates and what optimisations do we need. Finally, we will look at how we can build PYNQ overlays using IP Integrator which can be loaded onto the Arty Z7 for use with our Python application using Jupyter Notebooks / Labs. 

Go to Workshop

Test-Driven Development

Instructor(s): James Grenning

When: 12/09/2021 14:00:00 (EST)

Duration: 2 hours

If you missed this workshop at EOC earlier this year, here's a second chance to attend

Test-Driven Development is a technical practice that supports Agile's iterative and incremental development cycle. TDD helps you quickly discover mistakes, preventing defects. You weave a test safety net as you grow your product's behavior one test at a time. This safety net supports you now and in the future to help you keep code working as you change it. Oh yeah, don't let me forget to tell you it's fun and once you learn it, you save time and money.

Maybe you have heard of Test-Driven Development but don't quite get it. A good way to understand TDD is to pair program with an experienced practitioner. We will start with a brief overview and demo of Test-Driven Development. In this interactive workshop, you can practice TDD in C. You don't need to install any tools for this workshop. You'll run the exercise on my exercise server. You will know what TDD is after this session. We'll conclude the workshop with a debrief on your experience.

Before attending this workshop, it is highly recommended that you watch this talk from the 2020 Embedded Online Conference.

Go to Workshop

OUR SPONSORS