diff --git a/content/hardware/08.edu/solution-and-kits/alvik/Front-Alvik_Robot.svg b/content/hardware/08.edu/solution-and-kits/alvik/Front-Alvik_Robot.svg
new file mode 100644
index 0000000000..1de3ae75f7
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/Front-Alvik_Robot.svg
@@ -0,0 +1,147 @@
+
+
\ No newline at end of file
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/compatibility.yml b/content/hardware/08.edu/solution-and-kits/alvik/compatibility.yml
new file mode 100644
index 0000000000..c468923b69
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/compatibility.yml
@@ -0,0 +1,9 @@
+software:
+ - arduino-lab-micropython
+ - arduino-ide
+ - arduino-cli
+ - web-editor
+ - iot-cloud
+hardware:
+ boards:
+ - nano-esp32
\ No newline at end of file
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/APDS-9960_datasheet.pdf b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/APDS-9960_datasheet.pdf
new file mode 100644
index 0000000000..e4c9f5f89f
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/APDS-9960_datasheet.pdf differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/Block_diagram.png b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/Block_diagram.png
new file mode 100644
index 0000000000..84bb836757
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/Block_diagram.png differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/LSM6_datasheet.pdf b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/LSM6_datasheet.pdf
new file mode 100644
index 0000000000..048bd7c59d
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/LSM6_datasheet.pdf differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/STM32_datasheet.pdf b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/STM32_datasheet.pdf
new file mode 100644
index 0000000000..cdc91d8725
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/STM32_datasheet.pdf differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/VL53_datasheet.pdf b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/VL53_datasheet.pdf
new file mode 100644
index 0000000000..afb4811218
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/VL53_datasheet.pdf differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/alvik_battery.png b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/alvik_battery.png
new file mode 100644
index 0000000000..906038110e
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/alvik_battery.png differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/alvik_switch.png b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/alvik_switch.png
new file mode 100644
index 0000000000..601e7a7248
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/alvik_switch.png differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/alvik_topology.png b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/alvik_topology.png
new file mode 100644
index 0000000000..9361e6d012
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/alvik_topology.png differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/datasheet_connectors.png b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/datasheet_connectors.png
new file mode 100644
index 0000000000..f79ca0f4a8
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/datasheet_connectors.png differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/datasheet_main_components.png b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/datasheet_main_components.png
new file mode 100644
index 0000000000..09148d667f
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/datasheet_main_components.png differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/dc_motor_specs.png b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/dc_motor_specs.png
new file mode 100644
index 0000000000..e2d80a4825
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/dc_motor_specs.png differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/max22211.pdf b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/max22211.pdf
new file mode 100644
index 0000000000..740a133fee
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/max22211.pdf differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/perspective_front.png b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/perspective_front.png
new file mode 100644
index 0000000000..c0a6507e69
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/perspective_front.png differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/power.png b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/power.png
new file mode 100644
index 0000000000..29bb243779
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/assets/power.png differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/datasheet/datasheet.md b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/datasheet.md
new file mode 100644
index 0000000000..b3fcbbd7ca
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/datasheet/datasheet.md
@@ -0,0 +1,337 @@
+---
+identifier: AKX00066
+title: Arduino® Alvik
+type: edu
+author: Paolo Cavagnolo, Jose Garcia, Julián Caro Linares
+---
+
+
+# Description
+Arduino® Alvik is a powerful and versatile robot specifically designed for programming and STEAM education.
+
+Powered by the [Arduino® Nano ESP32](https://docs.arduino.cc/hardware/nano-esp32/), Alvik offers diverse learning paths through different programming languages including MicroPython, Arduino C, and block-based coding; enabling different possibilities to explore Robotics, IoT and AI.
+
+# Target areas:
+Maker, Education, MicroPython, Robotics
+
+# Contents
+
+## Features
+
+### General Specifications Overview
+
+Alvik is an educational robot that is battery-powered and has multiple sensors and actuators, like color detection, distance, line following, accelerometer, gyroscope and much more.
+
+
+
+ | Feature | Description |
+ | --------------------- | ------------------------------------------------------------------------------------------------------------- |
+ | Alvik on-board Core | STM32 Arm® Cortex®-M4 32 Bit |
+ | Alvik Main Controller | Arduino® Nano ESP32 |
+ | Connectivity | Wi-Fi®, Bluetooth® LE |
+ | Sensors | RGB Color detection, Distance ToF 8x8 Array - up to 350 cm, IMU - 6 degree, 3x Line follower, 7x Touch sensor |
+ | Motors | High precision with hall effect encoder. Up to 13 cm/s |
+ | Extensions | Servo motor, I2C Grove, Qwiic, Lego® Technic™, M3 x 5 mm Screws |
+
+### Related Accessories (Included)
+
+- Cable USB-C® to USB-C®
+
+### Controllers
+
+Alvik comes with two main microcontrollers:
+
+ - At the core of the robot there is the STM32 Arm® Cortex®-M4 that controls all the sensors and actuators.
+ - At the top a Nano ESP32 acts like the main controller and can communicate with the STM32 through a set of dedicated APIs.
+
+| **Controllers** | **Product page** | **Datasheet** |
+| ------------------- | ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
+| STM32F411RC | [Link](https://www.st.com/en/microcontrollers-microprocessors/stm32f411rc.html#st_description_sec-nav-tab) | [Link](assets/STM32_datasheet.pdf) |
+| Arduino® Nano ESP32 | [Link](https://docs.arduino.cc/hardware/nano-esp32/) | [Link](https://docs.arduino.cc/resources/datasheets/ABX00083-datasheet.pdf) |
+
+
+### Sensors
+
+Alvik comes with a large number of onboard sensors, from color detection to distance sensors or inertial measurement units, all of which are listed in the following table:
+
+| **Description** | **Part Name** | **Product page** | **Datasheet** |
+| ----------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------- |
+| Color detection (x1) | APDS 9660 | [Link](https://www.broadcom.com/products/optical-sensors/integrated-ambient-light-and-proximity-sensors/apds-9960) | [Link](assets/APDS-9960_datasheet.pdf) |
+| IMU (x1) | LSM6DSOX | [Link](https://www.st.com/en/mems-and-sensors/lsm6dsox.html) | [Link](assets/LSM6_datasheet.pdf) |
+| Time of Flight distance sensor (x1) | VL53L7CXV0GC | [Link](https://www.st.com/en/imaging-and-photonics-solutions/vl53l7cx.html) | [Link](assets/VL53_datasheet.pdf) |
+| Line Follower Array (x3) | Custom made | - | - |
+| Capacitive Touch buttons (x7) | Custom made | - | - |
+
+The sensory capabilities of Alvik can be expanded using the different connectors and communication protocols available at the back of the robot.
+
+### Actuators
+
+Alvik has as actuators two DC motors with magnetic relative encoders and two RGB LEDs that can be used for different purposes. In addition to that it is possible to expand the capabilities of Alvik by adding new actuators using the different connectors and communication protocols available at the back of the robot.
+
+#### Motors
+
+Alvik is a differential robot driven by two independent DC motors with magnetic relative encoders:
+
+
+
+The motors have the following technical specifications:
+
+| **Description** | **Information** |
+| ---------------------------- | --------------- |
+| Operating Voltage | 6 VDC |
+| No load Current | 70 mA |
+| Max load Current | 90 mA |
+| No load Speed | 96 rpm |
+| Magnetic relative AB encoder | 3 ppr |
+
+The two motors are driven by the MAX22211 motors driver:
+
+| **Description** | **Part Name** | **Product page** | **Datasheet** |
+|-------------------|---------------|----------------------------------------------------------|-----------------------------|
+| Dual Motor Driver | MAX22211 | [Link](https://www.analog.com/en/products/max22211.html) | [Link](assets/max22211.pdf) |
+
+#### RGB LEDs
+
+Alvik has two fully programmable RGB LEDs named `DL1` and `DL2` at its top.
+
+| **Description** | **Information** |
+| --------------- | --------------- |
+| RGB LED Left | DL1 |
+| RGB LED Right | DL2 |
+
+
+### Connectors & Communication Protocols
+
+The robot is compatible with the following communication protocols:
+
+| **Description** | **Information** |
+| --------------------------- | -------------------------- |
+| I2C | Groove and Qwiic connector |
+| PWM Servomotor Control (x2) | Servo Motor connector |
+
+The connectors are placed in the back of the robot, the pinout is shown in the following image:
+
+
+
+
+
+
+## Functional Overview
+
+### Topology
+
+The main parts of the robot are the following:
+
+
+
+
+| **Part** | **Quantity** | **Details** |
+| ---------------------------- | :----------: | :---------------------------------------------------------------------------------------------: |
+| Arduino® Nano ESP32 | 1 | Main controller of the robot |
+| Main PCB | 1 | Main PCB of the robot |
+| STM32 Arm® Cortex®-M4 32 Bit | 1 | Onboard STM32 auxiliary controller |
+| Touch Programmable button | 7 | Touch programmable buttons integrated on the main PCB |
+| ON/OFF Power Switch | 1 | Assembled on the main PCB |
+| RGB LED | 2 | Fully programmable RGB LED mounted on the main PCB |
+| Color Sensor | 1 | RGB Color detector |
+| 6-Axis Gyro/Accelerometer | 1 | 6-Axis Gyro and Accelerometer sensor |
+| Front PCB | 1 | Robot auxiliary PCB with additional sensors |
+| ToF Distance Sensor | 1 | Time-of-Flight Distance sensor up to 350 cm , mounted on the Front PCB |
+| Line follower array | 1 | Line follower array made up of 3 phototransistors and 5 infrared LEDs, mounted on the front PCB |
+| Grove Connector | 2 | I2C Grove Connector to extend robot's capabilities |
+| Qwiic Connector | 2 | I2C Qwiic Connector to extend robot capabilities |
+| Servomotor Connector | 2 | 3-pins connector to attach servomotors |
+| 18650 Li-Ion Battery | 1 | Battery of the robot |
+| Main Chassis | 1 | Main chassis of the robot made in plastic |
+| Motor holder | 2 | Plastic support to hold the motor in place, a screwdriver is required to open it |
+| Motors | 2 | DC Motor with magnetic relative encoder |
+| Rubber wheel | 2 | Rubber wheel with 34 mm of diameter |
+| Inox steal ball 9 mm | 1 | Ball that serves as third support for stability |
+| Ball caster holder | 1 | Plastic support to hold the steal ball |
+| INOX M3 x 5 mm Screws | 5 | Phillips Screws of the robot |
+| Battery cover | 1 | Cover to hold the battery, a screwdriver is required to open it |
+
+
+
+
+### Block Diagram
+
+The following block diagram describes the main blocks of the robot from a hardware point of view:
+
+
+
+### Power Supply
+
+The power distribution in the robot is explained by the following diagram:
+
+
+
+There are three levels of power inside the robot:
+
+| **Level** | **Description** |
+| --------- | ---------------------------------------------------------------------------------- |
+| +3V7 | From the battery, the reference level is 3.7 V but it can goes from 3.0 V to 4.2 V |
+| +5V | After the Boost Converter |
+| +3V3 | After the Step-Down Converter |
+
+
+
+#### Robot's Battery
+
+Alvik is powered by a single 18650 Li-Ion Battery protected by a battery cover at the bottom of the product which can be opened with a Phillips screwdriver. The battery is designed to be easily replaceable at any time so the robot can be used without interruptions in educational environments.
+
+The main board of the robot incorporates the `MAX17332X22` to manage the charge and use of the battery including an overvoltage and reverse-voltage protection `LTC4360CSC8-2` chip.
+
+
+
+
+Note: Do not replace the battery without adult supervision.
+
+
+#### ON/OFF Power Switch
+
+The power of the robot is located by a simple ON/OFF switch located on the top of the robot at the low right corner.
+
+
+
+
+
+## Device Operation
+
+### Getting Started - MicroPython
+Alvik can be programmed with MicroPython. To do that download and install the Arduino Lab for MicroPython **[1]**. To connect the Alvik robot to your computer, you will need a USB-C® cable.
+
+### Getting Started - Arduino IDE
+If you want to program your Alvik robot while offline you need to install the Arduino® Desktop IDE **[2]**. To connect the Alvik robot to your computer, you will need a USB-C® cable.
+
+### Getting Started - Arduino Cloud
+All Arduino® IoT-enabled products are supported on Arduino Cloud **[3]** which allows you to log, graph and analyze sensor data, trigger events, and automate your home or business.
+
+### Sample Sketches
+Sample sketches for the Alvik robot can be found in the “Alvik robot Documentation” section of Arduino® Docs **[4]** and inside its dedicated libraries.
+
+### Online Resources
+Now that you have gone through the basics of what you can do with the device, you can explore the endless possibilities it provides by checking exciting projects on Arduino Project Hub **[5]** and the online store **[6]** where you will be able to complement your Alvik robot product with additional extensions, sensors and actuators.
+
+
+## Product Compliance
+
+### Certifications Summary
+
+| Cert | Arduino Alvik (AKX00066) |
+| ------------- | ------------------------ |
+| **CE (EU)** | Yes |
+| **UKCA (UK)** | Yes |
+
+
+### Declaration of Conformity CE DoC (EU)
+
+We declare under our sole responsibility that the products above are in conformity with the essential requirements of the following EU Directives and therefore qualify for free movement within markets comprising the European Union (EU) and European Economic Area (EEA).
+
+### Declaration of Conformity to EU RoHS & REACH 211 01/19/2021
+
+Arduino boards are in compliance with RoHS 2 Directive 2011/65/EU of the European Parliament and RoHS 3 Directive 2015/863/EU of the Council of 4 June 2015 on the restriction of the use of certain hazardous substances in electrical and electronic equipment.
+
+| **Substance** | **Maximum Limit (ppm)** |
+| -------------------------------------- | ----------------------- |
+| Lead (Pb) | 1000 |
+| Cadmium (Cd) | 100 |
+| Mercury (Hg) | 1000 |
+| Hexavalent Chromium (Cr6+) | 1000 |
+| Poly Brominated Biphenyls (PBB) | 1000 |
+| Poly Brominated Diphenyl ethers (PBDE) | 1000 |
+| Bis(2-Ethylhexyl) phthalate (DEHP) | 1000 |
+| Benzyl butyl phthalate (BBP) | 1000 |
+| Dibutyl phthalate (DBP) | 1000 |
+| Diisobutyl phthalate (DIBP) | 1000 |
+
+Exemptions: No exemptions are claimed.
+
+Arduino Boards are fully compliant with the related requirements of European Union Regulation (EC) 1907 /2006 concerning the Registration, Evaluation, Authorization and Restriction of Chemicals (REACH). We declare none of the SVHCs ([https://echa.europa.eu/web/guest/candidate-list-table](https://echa.europa.eu/web/guest/candidate-list-table)), the Candidate List of Substances of Very High Concern for authorization currently released by ECHA, is present in all products (and also package) in quantities totaling in a concentration equal or above 0.1%. To the best of our knowledge, we also declare that our products do not contain any of the substances listed on the "Authorization List" (Annex XIV of the REACH regulations) and Substances of Very High Concern (SVHC) in any significant amounts as specified by the Annex XVII of Candidate list published by ECHA (European Chemical Agency) 1907 /2006/EC.
+
+### Conflict Minerals Declaration
+
+As a global supplier of electronic and electrical components, Arduino is aware of our obligations with regards to laws and regulations regarding Conflict Minerals, specifically the Dodd-Frank Wall Street Reform and Consumer Protection Act, Section 1502. Arduino does not directly source or process conflict minerals such as Tin, Tantalum, Tungsten, or Gold. Conflict minerals are contained in our products in the form of solder, or as a component in metal alloys. As part of our reasonable due diligence Arduino has contacted component suppliers within our supply chain to verify their continued compliance with the regulations. Based on the information received thus far we declare that our products contain Conflict Minerals sourced from conflict-free areas.
+
+### FCC Caution
+
+Any Changes or modifications not expressly approved by the party responsible for compliance could void the user’s authority to operate the equipment.
+
+This device complies with part 15 of the FCC Rules. Operation is subject to the following two conditions:
+
+(1) This device may not cause harmful interference
+
+(2) this device must accept any interference received, including interference that may cause undesired operation.
+
+**FCC RF Radiation Exposure Statement:**
+
+1. This Transmitter must not be co-located or operating in conjunction with any other antenna or transmitter.
+
+2. This equipment complies with RF radiation exposure limits set forth for an uncontrolled environment.
+
+3. This equipment should be installed and operated with a minimum distance of 20 cm between the radiator & your body.
+
+**Note:** This equipment has been tested and found to comply with the limits for a Class B digital
+device, pursuant to part 15 of the FCC Rules. These limits are designed to provide
+reasonable protection against harmful interference in a residential installation. This equipment
+generates, uses and can radiate radio frequency energy and, if not installed and used in
+accordance with the instructions, may cause harmful interference to radio communications.
+However, there is no guarantee that interference will not occur in a particular installation. If
+this equipment does cause harmful interference to radio or television reception, which can be
+determined by turning the equipment off and on, the user is encouraged to try to correct the
+interference by one or more of the following measures:
+- Reorient or relocate the receiving antenna.
+- Increase the separation between the equipment and receiver.
+- Connect the equipment into an outlet on a circuit different from that to which the
+receiver is connected.
+- Consult the dealer or an experienced radio/TV technician for help.
+
+English:
+User manuals for licence-exempt radio apparatus shall contain the following or equivalent notice in a conspicuous location in the user manual or alternatively on the device or both. This device complies with Industry Canada licence-exempt RSS standard(s). Operation is subject to the following two conditions:
+
+(1) this device may not cause interference
+
+(2) this device must accept any interference, including interference that may cause undesired operation of the device.
+
+French:
+Le présent appareil est conforme aux CNR d’Industrie Canada applicables aux appareils radio exempts de licence. L’exploitation est autorisée aux deux conditions suivantes :
+
+(1) l’ appareil nedoit pas produire de brouillage
+
+(2) l’utilisateur de l’appareil doit accepter tout brouillage radioélectrique subi, même si le brouillage est susceptible d’en compromettre le fonctionnement.
+
+**IC SAR Warning:**
+
+English
+This equipment should be installed and operated with a minimum distance of 20 cm between the radiator and your body.
+
+French:
+Lors de l’ installation et de l’ exploitation de ce dispositif, la distance entre le radiateur et le corps est d ’au moins 20 cm.
+
+**Important:** The operating temperature of the EUT can’t exceed 85℃ and shouldn’t be lower than -40 ℃.
+
+Hereby, Arduino S.r.l. declares that this product is in compliance with essential requirements and other relevant provisions of Directive 201453/EU. This product is allowed to be used in all EU member states.
+
+## Company Information
+
+| Company name | Arduino S.r.l. |
+| --------------- | ----------------------------------------------- |
+| Company Address | Via Andrea Appiani, 25 Monza, MB, 20900 (Italy) |
+
+
+## Reference Documentation
+
+| Reference | Description | Link |
+| --------- | ------------------------------------- | -------------------------------------------------------------------------- |
+| 1 | Arduino Lab for MicroPython (Desktop) | |
+| 2 | Arduino IDE (Desktop) | |
+| 3 | Arduino Cloud Editor | |
+| 4 | Arduino Official Documentation | |
+| 5 | Arduino Project Hub | |
+| 6 | Online Store | |
+
+## Revision History
+
+| Date | **Revision** | **Changes** |
+| ---------- | :----------: | :-----------: |
+| 24/04/2024 | 1 | First Release |
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/downloads/AKX00066-datasheet.pdf b/content/hardware/08.edu/solution-and-kits/alvik/downloads/AKX00066-datasheet.pdf
new file mode 100644
index 0000000000..79e2ef6f52
Binary files /dev/null and b/content/hardware/08.edu/solution-and-kits/alvik/downloads/AKX00066-datasheet.pdf differ
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/essentials.md b/content/hardware/08.edu/solution-and-kits/alvik/essentials.md
new file mode 100644
index 0000000000..9c254bf38e
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/essentials.md
@@ -0,0 +1,8 @@
+
+
+
+The Arduino Alvik MicroPython library.
+
+
+
+
\ No newline at end of file
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/features.md b/content/hardware/08.edu/solution-and-kits/alvik/features.md
new file mode 100644
index 0000000000..34001e5b7d
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/features.md
@@ -0,0 +1,45 @@
+
+
+Arduino Alvik is powered by the new [Arduino Nano ESP32](https://docs.arduino.cc/hardware/nano-esp32/) microcontroller, which features the newest popular MCU ESP32-S3, with the full support of the Arduino ecosystem, allowing users to explore the world of Arduino and MicroPython without any blocker.
+
+
+
+
+
+
+At the core of the robot there is a powerful 32-bit MCU.
+
+
+
+A reference to all the API to interface with the STM32 core.
+
+
+
+
+
+
+Learn the basics of MicroPython with the Nano ESP32 and our free MicroPython 101 course.
+
+
+
+
+
+
+Fast and accurate multizone distance ranging sensor with 90° wide Field of View.
+
+
+
+Rechargeable and replaceable battery.
+
+
+
+An ambient light, RGB color sensor and proximity sensor.
+
+
+
+The LSM6DSOX, a low-power IMU module that includes a 3D digital accelerometer & gyroscope.
+
+
+
+
+
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/image.svg b/content/hardware/08.edu/solution-and-kits/alvik/image.svg
new file mode 100644
index 0000000000..365735eb89
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/image.svg
@@ -0,0 +1,1001 @@
+
+
\ No newline at end of file
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/product.md b/content/hardware/08.edu/solution-and-kits/alvik/product.md
new file mode 100644
index 0000000000..03da6461c0
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/product.md
@@ -0,0 +1,13 @@
+---
+title: Alvik
+url_shop: https://www.arduino.cc/education/arduino-alvik/
+certifications: [CE, UKCA]
+primary_button_url: /tutorials/alvik/api-overview
+primary_button_title: API Overview
+sku: [AKX00066]
+---
+
+
+Arduino Alvik is a powerful and versatile robot car specifically designed for programming and robotics education.
+
+Powered by [Arduino Nano ESP32](https://docs.arduino.cc/hardware/nano-esp32/), Arduino Alvik offers a diverse learning paths through different programming languages, including MicroPython, Arduino C, and block-based coding, and it enables different possibilities to explore robotics, IoT and AI.
\ No newline at end of file
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/tech-specs.md b/content/hardware/08.edu/solution-and-kits/alvik/tech-specs.md
new file mode 100644
index 0000000000..5f3d683374
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/tech-specs.md
@@ -0,0 +1 @@
+Here you will find the technical specifications for the Arduino® Alvik.
\ No newline at end of file
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/tech-specs.yml b/content/hardware/08.edu/solution-and-kits/alvik/tech-specs.yml
new file mode 100644
index 0000000000..ad609774d4
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/tech-specs.yml
@@ -0,0 +1,36 @@
+Robot:
+ Name: Arduino® Alvik
+ SKU: AKX00066
+ Compatibility: Nano ESP32
+Core MCU: STM32 Arm® Cortex®-M4
+Power:
+ Battery: 18650 Li-Ion - 2500 mAh
+ Plug: Nano ESP32 USB-C®
+Connectivity:
+ Wi-Fi®: u-blox® NORA-W106 (ESP32-S3)
+ Bluetooth®: u-blox® NORA-W106 (ESP32-S3)
+Inputs:
+ Color detection: APDS 9960
+ Touch sensors: 7x
+ IMU: LSM6DSOXTR
+ Time of Flight: VL53L7CXV0GC
+ Line follower: 3x
+Outputs:
+ RGB LEDs: 2x
+ Motors: 2x w/ hall effect encoder
+Extensions:
+ Servo Motor: 2x
+ I2C Grove: 2x
+ QWIIC: 2x
+Mount compatibility:
+ Lego Technic: 4x on both side
+ M3 screw: 8x on both side
+Movements:
+ Max speed: 13 cm/s
+ Vision range: Up to 350 cm
+Dimensions:
+ Width: 96 mm
+ Length: 95 mm
+ Height: 37 mm
+ Weight: 192 g
+ Wheels: 34 mm diameter
diff --git a/content/hardware/08.edu/solution-and-kits/alvik/tutorials/api-overview/api-overview.md b/content/hardware/08.edu/solution-and-kits/alvik/tutorials/api-overview/api-overview.md
new file mode 100644
index 0000000000..24629f0662
--- /dev/null
+++ b/content/hardware/08.edu/solution-and-kits/alvik/tutorials/api-overview/api-overview.md
@@ -0,0 +1,682 @@
+---
+title: 'Arduino Alvik API Overview'
+description: 'A technical summary of the APIs used to control the Alvik Robot.'
+tags:
+ - Alvik
+ - API
+ - MicroPython
+author: 'Paolo Cavagnolo'
+hardware:
+ - hardware/08.edu/solution-and-kits/alvik
+---
+
+## API List
+
+To access to any of these functions you need first to initialize an instance of the class **ArduinoAlvik()**.
+
+
+```arduino
+alvik = ArduinoAlvik()
+```
+
+Then you can use the following functions as methods of the instance you've created, for example:
+
+```arduino
+alvik.begin()
+```
+
+### `is_on`
+
+is_on()
+
+_Returns true if robot is on_
+
+**Outputs**
+
+- boolean: Returns true if robot is on, false if is off.
+
+### `begin`
+
+begin()
+
+_Begins all Alvik operations_
+
+
+### `is_target_reached`
+
+is_target_reached()
+
+_Returns True if robot has sent an M or R acknowledgment. It also responds with an ack received message_
+
+**Outputs**
+
+- boolean: Returns True if robot has arrived to target, False otherwise.
+
+### `stop`
+
+stop()
+
+_Stops all Alvik operations_
+
+
+### `get_orientation`
+
+get_orientation()
+
+_Returns the orientation of the IMU_
+
+**Outputs**
+
+- **r**: roll value
+- **p**: pitch value
+- **y**: yaw value
+
+### `get_accelerations`
+
+get_accelerations()
+
+_Returns the 3-axial acceleration of the IMU_
+
+**Outputs**
+
+- **ax**: acceleration on x
+- **ay**: acceleration on y
+- **az**: acceleration on z
+
+### `get_gyros`
+
+get_gyros()
+
+_Returns the 3-axial angular acceleration of the IMU_
+
+**Outputs**
+
+- **gx**: angular acceleration on x
+- **gy**: angular acceleration on y
+- **gz**: angular acceleration on z
+
+### `get_imu`
+
+get_imu()
+
+_Returns all the IMUs readouts_
+
+**Outputs**
+
+- **ax**: acceleration on x
+- **ay**: acceleration on y
+- **az**: acceleration on z
+- **gx**: angular acceleration on x
+- **gy**: angular acceleration on y
+- **gz**: angular acceleration on z
+
+### `get_line_sensors`
+
+get_line_sensors()
+
+_Returns the line follower sensors readout_
+
+**Outputs**
+
+- **left**: left sensor readout
+- **center**: center sensor readout
+- **right**: right sensor readout
+
+### `brake`
+
+brake()
+
+_Brakes the robot_
+
+### `get_ack`
+
+get_ack()
+
+_Returns last acknowledgement_
+
+**Outputs**
+
+- **last_ack**: last acknowledgement value
+
+### `get_battery_charge`
+
+get_battery_charge()
+
+_Returns the battery SOC_
+
+**Outputs**
+
+- **battery_soc**: percentage of charge
+
+### `get_touch_any`
+
+get_touch_any()
+
+_Returns true if any button is pressed_
+
+**Outputs**
+
+- **touch_any**: true if any button is pressed, false otherwise.
+
+### `get_touch_ok`
+
+get_touch_ok()
+
+_Returns true if ok button is pressed_
+
+**Outputs**
+
+- **touch_ok**: true if ok button is pressed, false otherwise.
+
+### `get_touch_cancel`
+
+get_touch_cancel()
+
+_Returns true if cancel button is pressed_
+
+**Outputs**
+
+- **touch_cancel**: true if cancel button is pressed, false otherwise.
+
+### `get_touch_center`
+
+get_touch_center()
+
+_Returns true if center button is pressed_
+
+**Outputs**
+
+- **touch_center**: true if center button is pressed, false otherwise.
+
+### `get_touch_up`
+
+get_touch_up()
+
+_Returns true if up button is pressed_
+
+**Outputs**
+
+- **touch_up**: true if up button is pressed, false otherwise.
+
+### `get_touch_left`
+
+get_touch_left()
+
+_Returns true if left button is pressed_
+
+**Outputs**
+
+- **touch_left**: true if left button is pressed, false otherwise.
+
+### `get_touch_down`
+
+get_touch_down()
+
+_Returns true if down button is pressed_
+
+**Outputs**
+
+- **touch_down**: true if down button is pressed, false otherwise.
+
+### `get_touch_right`
+
+get_touch_right()
+
+_Returns true if right button is pressed_
+
+**Outputs**
+
+- **touch_right**: true if right button is pressed, false otherwise.
+
+### `get_color_raw`
+
+get_color_raw()
+
+_Returns the color sensor's raw readout_
+
+**Outputs**
+
+- **color**: the color sensor's raw readout
+
+### `get_color_label`
+
+get_color_label()
+
+_Returns the label of the color as recognized by the sensor_
+
+**Outputs**
+
+- **color**: the label of the color as recognized by the sensor
+
+### `get_version`
+
+get_version()
+
+_Returns the firmware version of the Alvik_
+
+**Outputs**
+
+- **version**: Returns the firmware version of the Alvik
+
+### `print_status`
+
+print_status()
+
+_Prints the Alvik status_
+
+**Outputs**
+
+- **status**: Prints the Alvik status
+
+### `set_behaviour`
+
+set_behaviour(behaviour: int)
+
+_Sets the behaviour of Alvik_
+
+**Inputs**
+
+- **behaviour**: behaviour code
+
+### `rotate`
+
+rotate(angle: float, unit: str = 'deg', blocking: bool = True)
+
+_Rotates the robot by given angle_
+
+**Inputs**
+
+- **angle**: the angle value
+- **unit**: [angle unit](#the-angle-unit)
+- **blocking**:[_True_ or _False_](#blocking-or-non-blocking)
+
+### `move`
+
+move(distance: float, unit: str = 'cm', blocking: bool = True)
+
+_Moves the robot by given distance_
+
+**Inputs**
+
+- **distance**: the distance value
+- **unit**: the distance unit. [?](#the-distance-unit)
+- **blocking**: _True_ or _False_, [?](#blocking-or-non-blocking)
+
+### `get_wheels_speed`
+
+get_wheels_speed(unit: str = 'rpm')
+
+**Inputs**
+
+- **unit**: unit of rotational speed of the wheels. [?](#the-rotational-speed-unit)
+
+**Outputs**
+
+- **left_wheel_speed**: the speed value
+- **right_wheel_speed**: the speed value
+
+_Returns the speed of the wheels_
+
+### `set_wheels_speed`
+
+set_wheels_speed(left_speed: float, right_speed: float, unit: str = 'rpm')
+
+_Sets left/right motor speed_
+
+**Inputs**
+
+- **left_speed**: the speed value
+- **right_speed**: the speed value
+- **unit**: unit of rotational speed of the wheels. [?](#the-rotational-speed-unit)
+
+### `set_wheels_position`
+
+set_wheels_position(left_angle: float, right_angle: float, unit: str = 'deg')
+
+_Sets left/right motor angle_
+
+**Inputs**
+
+- **left_angle**: the angle value
+- **right_angle**: the angle value
+- **unit**: the angle unit, [?](#the-angle-unit)
+
+
+### `get_wheels_position`
+
+get_wheels_position(unit: str = 'deg')
+
+_Returns the angle of the wheels_
+
+**Inputs**
+
+- **angular_unit**: unit of rotational speed of the wheels. [?](#the-rotational-speed-unit)
+
+**Outputs**
+
+- **angular_velocity**: speed of the wheels.
+
+### `drive`
+
+drive(linear_velocity: float, angular_velocity: float, linear_unit: str = 'cm/s',angular_unit: str = 'deg/s')
+
+_Drives the robot by linear and angular velocity_
+
+**Inputs**
+
+- **linear_velocity**: speed of the robot.
+- **angular_velocity**: speed of the wheels.
+- **linear_unit**: unit of linear velocity. [?](#the-linear-speed-unit)
+- **angular_unit**: unit of rotational speed of the wheels. [?](#the-rotational-speed-unit)
+
+### `get_drive_speed`
+
+get_drive_speed(linear_unit: str = 'cm/s', angular_unit: str = 'deg/s')
+
+_Returns linear and angular velocity of the robot_
+
+**Inputs**
+
+- **linear_unit**: unit of linear velocity. [?](#the-linear-speed-unit)
+- **angular_unit**: unit of rotational speed of the wheels. [?](#the-rotational-speed-unit)
+
+**Outputs**
+
+- **linear_velocity**: speed of the robot.
+- **angular_velocity**: speed of the wheels.
+
+
+### `reset_pose`
+
+reset_pose(x: float, y: float, theta: float, distance_unit: str = 'cm', angle_unit:
+str = 'deg')
+
+_Resets the robot pose_
+
+**Inputs**
+
+- **x**
+- **y**
+- **theta**
+- **distance_unit**: unit of x and y outputs, [?](#the-distance-unit)
+- **angle_unit**: unit of theta output, [?](#the-angle-unit)
+
+
+### `get_pose`
+
+get_pose(distance_unit: str = 'cm', angle_unit: str = 'deg')
+
+_Returns the current pose of the robot_
+
+**Inputs**
+
+- **distance_unit**: unit of x and y outputs, [?](#the-distance-unit)
+- **angle_unit**: unit of theta output, [?](#the-angle-unit)
+
+**Outputs**
+
+- **x**
+- **y**
+- **theta**
+
+### `set_servo_positions`
+
+set_servo_positions(a_position: int, b_position: int)
+
+_Sets A/B servomotor angle_
+
+**Inputs**
+
+- **a_position**: position of A servomotor (0-180)
+- **b_position**: position of B servomotor (0-180)
+
+### `set_builtin_led`
+
+set_builtin_led(value: bool)
+
+_Turns on/off the builtin led_
+
+**Inputs**
+
+- **value**: True = ON, False = OFF
+
+### `set_illuminator`
+
+set_illuminator(value: bool)
+
+_Turns on/off the illuminator led_
+
+**Inputs**
+
+- **value**: True = ON, False = OFF
+
+### `color_calibration`
+
+color_calibration(background: str = 'white')
+
+_Calibrates the color sensor_
+
+**Inputs**
+
+- **background**: string "white" or "black"
+
+### `rgb2hsv`
+
+rgb2hsv(r: float, g: float, b: float)
+
+_Converts normalized rgb to hsv_
+
+**Inputs**
+
+- **r**: red value
+- **g**: green value
+- **b**: blue value
+
+**Outputs**
+
+- **h**: hue value
+- **s**: saturation value
+- **v**: brightness value
+
+### `get_color`
+
+get_color(color_format: str = 'rgb')
+
+_Returns the normalized color readout of the color sensor_
+
+**Inputs**
+
+- **color_format**: rgb or hsv only
+
+**Outputs**
+
+- **r** or **h**
+- **g** or **s**
+- **b** or **v**
+
+### `hsv2label`
+
+hsv2label(h, s, v)
+
+_Returns the color label corresponding to the given normalized HSV color input_
+
+**Inputs**
+
+- **h**: hue value
+- **s**: saturation value
+- **v**: brightness value
+
+**Outputs**
+
+- **color label**: like "BLACK" or "GREEN", if possible, otherwise return "UNDEFINED"
+
+### `get_distance`
+
+get_distance(unit: str = 'cm')
+
+_Returns the distance readout of the TOF sensor_
+
+**Inputs**
+
+- **unit**: distance output unit
+
+**Outputs**
+
+- **left_tof**: 45° to the left object distance
+- **center_left_tof**: 22° to the left object distance
+- **center_tof**: center object distance
+- **center_right_tof**: 22° to the right object distance
+- **right_tof**: 45° to the right object distance
+
+### `get_distance_top`
+
+get_distance_top(unit: str = 'cm')
+
+_Returns the obstacle top distance readout_
+
+**Inputs**
+
+- **unit**: distance output unit
+
+**Outputs**
+
+- **top_tof**: 45° to the top object distance
+
+### `get_distance_bottom`
+
+get_distance_bottom(unit: str = 'cm')
+
+_Returns the obstacle bottom distance readout_
+
+**Inputs**
+
+- **unit**: distance output unit
+
+**Outputs**
+
+- **bottom_tof**: 45° to the bottom object distance
+
+### `on_touch_ok_pressed`
+
+on_touch_ok_pressed(callback: callable, args: tuple = ())
+
+_Register callback when touch button OK is pressed_
+
+**Inputs**
+
+- **callback**: the name of the function to recall
+- **args**: optional arguments of the function
+
+### `on_touch_cancel_pressed`
+
+on_touch_cancel_pressed(callback: callable, args: tuple = ())
+
+_Register callback when touch button CANCEL is pressed_
+
+**Inputs**
+
+- **callback**: the name of the function to recall
+- **args**: optional arguments of the function
+
+### `on_touch_center_pressed`
+
+on_touch_center_pressed(callback: callable, args: tuple = ())
+
+_Register callback when touch button CENTER is pressed_
+
+**Inputs**
+
+- **callback**: the name of the function to recall
+- **args**: optional arguments of the function
+
+### `on_touch_up_pressed`
+
+on_touch_up_pressed(callback: callable, args: tuple = ())
+
+_Register callback when touch button UP is pressed_
+
+**Inputs**
+
+- **callback**: the name of the function to recall
+- **args**: optional arguments of the function
+
+### `on_touch_left_pressed`
+
+on_touch_left_pressed(callback: callable, args: tuple = ())
+
+_Register callback when touch button LEFT is pressed_
+
+**Inputs**
+
+- **callback**: the name of the function to recall
+- **args**: optional arguments of the function
+
+### `on_touch_down_pressed`
+
+on_touch_down_pressed(callback: callable, args: tuple = ())
+
+_Register callback when touch button DOWN is pressed_
+
+**Inputs**
+
+- **callback**: the name of the function to recall
+- **args**: optional arguments of the function
+
+### `on_touch_right_pressed`
+
+on_touch_right_pressed(callback: callable, args: tuple = ())
+
+_Register callback when touch button RIGHT is pressed_
+
+**Inputs**
+
+- **callback**: the name of the function to recall
+- **args**: optional arguments of the function
+
+## Extras
+
+### The Distance Unit
+
+Distance unit of measurement used in the APIs:
+
+- _cm_: centimeters
+- _mm_: millimeters
+- _m_: meters
+- _inch_: inch, 2.54 cm
+- _in_: inch, 2.54 cm
+
+### The Angle Unit
+
+Angle unit of measurement used in the APIs:
+
+- _deg_: degrees, example: 1.0 as reference for the other unit. 1 degree is 1/360 of a circle.
+- _rad_: radiant, example: 1 radiant is 180/pi deg.
+- _rev_: revolution, example: 1 rev is 360 deg.
+- _revolution_: same as rev
+- _perc_: percentage, example 1 perc is 3.6 deg.
+- _%_: same as perc
+
+### The Linear Speed Unit
+
+Speed unit of measurement used in the APIs:
+
+- 'cm/s': centimeters per second
+- 'mm/s': millimeters per second
+- 'm/s': meters per second
+- 'inch/s': inch per second
+- 'in/s': inch per second
+
+### The Rotational Speed Unit
+
+Rotational speed unit of measurement used in the APIs:
+
+- 'rpm': revolutions per minute, example: 1.0 as reference for the other unit.
+- 'deg/s': degrees per second, example: 1.0 deg/s is 60.0 deg/min that is 1/6 rpm.
+- 'rad/s': radiant per second, example: 1.0 rad/s is 60.0 rad/min that is 9.55 rpm.
+- 'rev/s': revolution per second, example: 1.0 rev/s is 60.0 rev/min that is 60.0 rpm.
+
+### `"blocking" or "non blocking"`
+
+While programming a microcontroller, the terms "blocking" means that **all the resources are used only in performing a specific action, and no other things can happen at the same time**. Usually this is used when you want to be precise or you don't want anything else that could interact with the action you are performing.
+
+On the other hand, "Non blocking", means that the microcontroller is free to do other thing while the action is been performed.
diff --git a/scripts/resources/spell-check-ignore-list.txt b/scripts/resources/spell-check-ignore-list.txt
index 027f737cbf..18b54b23be 100644
--- a/scripts/resources/spell-check-ignore-list.txt
+++ b/scripts/resources/spell-check-ignore-list.txt
@@ -14,4 +14,4 @@ ro
som
ser
Manuel
-Technic
\ No newline at end of file
+technic
\ No newline at end of file