Skip to content

Repository files navigation

Embedded Systems UEF - Spring 2026

This repository contains the code for the Embedded Systems course at UEF

Exercise 1 - Introduction

Steps

Setup Arduino IDE for Nano Sense Every

  1. Install the Arduino IDE:
  2. Plug the board into your computer with the provided USB Micro B cable
  3. Configure the IDE for Nano Every

Troubleshooting

Exercise 2 - Accelerometer & Screen

Configure the accelerometer & OLED Screen

Steps

  1. Install Adafruit SSD1306 by Adafruit in the Arduino IDE and optionally U8g2 by oliver for a second OLED driver library option (it handles fonts better). Also install the STM32duino LIS2DW12 by SRA library for the accelerometer. You can also use DFRobot_LIS by DFRobot for the DFRobot_LIS2DW12.h header
  2. Wire the OLED and accelerometer to the SCL and SDA ports of the board. DO NOT use external pullup resistors with the OLED display. It won't work. Wire the 3.3V power output to the VCC line. DO NOT wire 5V to the accelerometer or it will kill the sensor.

For Reference

Exercise 3 - Gyroscope

Add the gyroscope sensor

Steps

  1. Install Adafruit MPU6050 by Adafruit and MPU6050 by Electronic Cats in the Arduino IDE.
  2. Wire the OLED, accelerometer, and gyroscope to the SCL and SDA ports of the board. Follow the same precautions as before and ensure you use 3.3V power.

Troubleshooting

For Reference

Exercise 4 - Magnetometer

  1. Install DFRobot_BMM150 by DFRobot in the Arduino IDE.

For Reference

Oscilloscope Tutorial

See the oscilloscope_tutorial folder for code samples to run. The tutorial is adapted from Six Oscilloscope Measurements with Arduino and more detailed information can be found there.

To complete the challenge follow these steps:

  1. Check Auto-RESET on Arduino Nano Every. Locate the correct resistor via the datasheet and PCB diagram and probe it.
  2. Check the TX/RX decode behavior. Run both the 2_uart_... scripts. What is the difference between them?
  3. Measured the 3.3V DC Voltage rail. Also measure the 5V voltage rail
  4. See probe loading in action. Test a ceramic capacitor on the board and notice a difference!
  5. PWM Duty Cycle testing with sound!
  6. digitalWrite and port manipulation
  7. Tone generation with register programming

This tutorial also uses concepts from the following:

Exercise 06 - Arduino Nicola Sense ME

  1. In the Arduino IDE, install Arduino Mbed OS Nicla Boards by Arduino in the Boards Manager
  2. Configure the board setup as Arduino Nicla Sense ME
  3. Test the led_blink sketch and verify the on-board LED blinks

NOTE: If you get the following error (or something like it):

Error: unable to open CMSIS-DAP device 0x2341:0x60
Error: unable to find a matching CMSIS-DAP device nicla sense me

make sure you update your udev rules (as the library install says) by running

sudo "/home/alexbeat/.arduino15/packages/arduino/hardware/mbed_nicla/4.5.0/post_install.sh"
  1. Verify that the LED is blinking white (red, green, blue combined).
  2. Install Arduino_BHY2 by Arduino and ArduinoBLE by Arduino in the Library Manager
  3. Run the all_sensors_serial_read example
  4. Clone the zehpyr repository somewhere git clone https://github.com/gateway240/zephyr-nicla-sense-me.git
  5. Setup the zephyr repository according to the README

References

Exercise 07 - MVP Start

Exercise 08 - Embedded AI with BeagleBoardY-AI

Follow the getting started guide for the BeagleBoardY-AI.

Tasks:

  1. Setup the boot media with bb-imager or Balena Etcher and insert the SD card into the board. Please mount the heatsinks at least on CPU and RAM of the BeagleY-AI development board. Here is the reference of their location.

  2. Connect your board and ssh into it. Run echo "hello world!". Setup key-based ssh authentication with the dev board.

  3. Setup WiFi on the board using iwctl

Exercise 09 - Algorithms & Object Detection

Comparison between Beagle and Laptop performance: Benchmark

Tasks:

  1. Clone the demo repository onto the BeagleBoard and compile and run the 02-alg-bench. Also run the benchmark on your normal computer and compare results (like the graph above).

  2. Connect the camera and run the 03-object-detection example Python app. Transfer a collected image from the BeagleBoard to your computer and display it.

  3. Run the 04-web-app demo and connect to the web app in your browser on localhost on your computer. Show your working example!

References:

Exercise 10 - MVP fabrication start!

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages