This repository contains the code for the Embedded Systems course at UEF
- Arduino Nano Every full pinout
- Follow the PWM DC Motor Guide, but use a lower resistance resistor for the fan (or it won't spin).
Setup Arduino IDE for Nano Sense Every
- Install the Arduino IDE:
- Plug the board into your computer with the provided USB Micro B cable
- Configure the IDE for Nano Every
- ”avrdude: jtagmkII_initialize(): Cannot locate "flash" and "boot" memories in description"
- Arduino Debugging Basics
Configure the accelerometer & OLED Screen
- Install
Adafruit SSD1306 by Adafruitin the Arduino IDE and optionallyU8g2 by oliverfor a second OLED driver library option (it handles fonts better). Also install theSTM32duino LIS2DW12 by SRAlibrary for the accelerometer. You can also useDFRobot_LIS by DFRobotfor theDFRobot_LIS2DW12.hheader - 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.
- Installing libraries in Arduino
- DFRobot Monochrome OLED Display
- DFRobot LIS2DW12 Triple Axis Accelerometer
- DIY Simple Three-axis Accelerometer Data Logger
- I2C Protocol
Add the gyroscope sensor
- Install
Adafruit MPU6050 by AdafruitandMPU6050 by Electronic Catsin the Arduino IDE. - 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.
- Install
DFRobot_BMM150 by DFRobotin the Arduino IDE.
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:
- Check Auto-RESET on Arduino Nano Every. Locate the correct resistor via the datasheet and PCB diagram and probe it.
- Check the TX/RX decode behavior. Run both the
2_uart_...scripts. What is the difference between them? - Measured the 3.3V DC Voltage rail. Also measure the 5V voltage rail
- See probe loading in action. Test a ceramic capacitor on the board and notice a difference!
- PWM Duty Cycle testing with sound!
- digitalWrite and port manipulation
- Tone generation with register programming
This tutorial also uses concepts from the following:
- Arduino Nano Every Register Deep Dive
- Arduino Nano Every Timers and PWM
- Arduino Nano Every ATMega4808/4809 Data Sheet
- Songs with the buzzer
- In the Arduino IDE, install
Arduino Mbed OS Nicla Boards by Arduinoin the Boards Manager - Configure the board setup as
Arduino Nicla Sense ME - Test the
led_blinksketch 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 memake 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"- Verify that the LED is blinking white (red, green, blue combined).
- Install
Arduino_BHY2 by ArduinoandArduinoBLE by Arduinoin the Library Manager - Run the
all_sensors_serial_readexample - Clone the zehpyr repository somewhere
git clone https://github.com/gateway240/zephyr-nicla-sense-me.git - Setup the zephyr repository according to the README
Follow the getting started guide for the BeagleBoardY-AI.
Tasks:
-
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.
-
Connect your board and ssh into it. Run
echo "hello world!". Setup key-based ssh authentication with the dev board. -
Setup WiFi on the board using
iwctl
Comparison between Beagle and Laptop performance:

Tasks:
-
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). -
Connect the camera and run the
03-object-detectionexample Python app. Transfer a collected image from the BeagleBoard to your computer and display it. -
Run the
04-web-appdemo and connect to the web app in your browser onlocalhoston your computer. Show your working example!
References: