diff --git a/website/versioned_docs/version-fils_en/project/2026/alexandru_florin.neagu/index.md b/website/versioned_docs/version-fils_en/project/2026/alexandru_florin.neagu/index.md index b02ae543015..47378021303 100644 --- a/website/versioned_docs/version-fils_en/project/2026/alexandru_florin.neagu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/alexandru_florin.neagu/index.md @@ -1,5 +1,5 @@ # KaraBox -A Bluetooth-enabled karaoke device built around an STM32 brain board and an ESP32 wireless bridge, programmed primarily in Rust. +A Rust programmed Bluetooth-enabled karaoke device built around an STM32 main board and an ESP32 wireless bridge. :::info @@ -13,12 +13,12 @@ A Bluetooth-enabled karaoke device built around an STM32 brain board and an ESP3 ## Description -This project represents a **karaoke device** that lets a user pick a song from their phone, stream it via bluetooth to a small dedicated speaker system, and see synchronized lyrics scroll on both their phone and a tiny on-device display - all while a separate display shows the temperature and a small fun LED matrix goes through different colours. +This project represents a **karaoke device** that lets a user pick a song from their phone, stream it via bluetooth to a small dedicated speaker system, and see synchronized lyrics scroll on both their phone and a on-device display - all while a separate display shows the temperature and a small fun LED matrix goes through different colours!! The system is split into **two physical boards** that cooperate over Bluetooth and SPI: - The **audio path** is a hardware-only board built around an MH-M38 Bluetooth audio receiver that drives a small amplifier and the speakers. The phone pairs to it directly. -- The **brain board** runs a Rust firmware on an **STM32U545RE-Q**, drives a small **ST7789V TFT display**, a **MAX7219 8x8 LED matrix** and a **DHT22 temperature/humidity sensor**, and talks to an **ESP32-WROOM-32** over SPI. The ESP32 acts as the Bluetooth Classic bridge that hands lyrics and control commands from the phone to the STM32. +- The **brain board** runs a Rust firmware on an **STM32U545RE-Q**, drives two small **ST7789V TFT displays**, a **MAX7219 8x8 LED matrix** and a **DHT22/AM2302 temperature/humidity sensor**, and talks to an **ESP32-WROOM-32** over SPI. The ESP32 acts as the Bluetooth Classic bridge that hands lyrics and control commands from the phone to the STM32. ## Motivation @@ -28,10 +28,11 @@ I chose this project because karaoke is fun and my last project idea sadly died This is the diagram regarding how the project is organized: +![Architecture diagram svg](./karabox.svg) ![Architecture diagram first](./ss_kb_one.webp) ![Architecture diagram second](./ss_kb_two.webp) -These are the current KiCAD diagrams for the project depicting the power distribution and the communication protocols between the STM32 brain board and its peripherals (the ST7789V display over SPI1, the MAX7219 matrix over SPI2, the ESP32 link over SPI3, and the DHT22 sensor on a single GPIO line with an external pull-up).w +These are the current KiCAD diagrams for the project depicting the power distribution and the communication protocols between the STM32 brain board and its peripherals (the ST7789V display over SPI2 and SPI3, each display, the MAX7219 matrix over SPI2, the ESP32 link over SPI1, and the DHT22 sensor on a single GPIO line. ![KiCAD diagram first](./kicad__karaoke.webp) @@ -63,7 +64,8 @@ Arrival of most components. Realised I need for the CAN bus a twisted pair insul ### Week 11: 3 - 9 May -Finished designing the driver cages, still working on the rest of the components. Cable arrived. Realised my drivers have small can cables which I need to further connect to perfboards to fulfill CAN Bus conditions. Starting thinking about the KiCAD schematic and the different communication protocols required for pin connections between the board and the peripherals. +Finished designing the driver cages, still working on the rest of the components. Cable arrived. Realised my drivers have small can cables which I need to further connect to perfboards to fulfill CAN Bus conditions. +Starting thinking about the KiCAD schematic and the different communication protocols required for pin connections between the board and the peripherals. ![photo_first](./motors.webp) @@ -74,25 +76,42 @@ Finished designing the driver cages, still working on the rest of the components ### Week 12: 10 - 16 May -Finished the KiCAD schematic and submitted to Git branch for review by lab assistants. Worked on setting up motor drivers and motors with USB-C connection and integrated ODrive Python programs developed for MKS XDRive Mini. Still working on 3D design for arms and rails for coupling the 3 axis components. +Finished the KiCAD schematic and submitted to Git branch for review by lab assistants. Worked on setting up motor drivers and motors with USB-C connection and integrated ODrive Python programs developed for MKS XDRive Mini. +Still working on 3D design for arms and rails for coupling the 3 axis components. ### Week 13: 18 - 23 May -Things started going horribly wrong. 2 drivers fried, lots of components purchased and unusable, I ended up changing my project idea from SteadyFrame to KaraBox, the karaoke idea... Very little available working time. +Things started going horribly wrong. 2 drivers fried, lots of components purchased and unusable, I ended up changing my project idea from SteadyFrame to KaraBox, the karaoke idea... Very little available working time. Lots of stress. ### Week 14: 25 - 30 May -Components started arriving and I started assembly whenever I didnt have tests (mostly nights...) +Components started arriving and I started assembly whenever I didnt have tests (mostly nights...). Managed to get everything working, relatively well. + +Added photos during the building process and a final one with the box and the speakers from after the PM Fair with the cardboard box prototype. + +![photo_one](./photo_one.webp) + +![photo_two](./photo_two.webp) + +![photo_three](./photo_three.webp) + +![photo_four](./photo_four.webp) + +![photo_five](./photo_five.webp) + +![photo_six](./photo_six.webp) + +![photo_seven](./photo_seven.webp) + ## Hardware -Hardware used for creating this project (list currently WIP): STM32 NUCLEO-U545RE-Q board, ESP32-WROOM-32 DevKit v1, MH-M38 Bluetooth audio receiver with onboard amplifier, ST7789V 2.8" TFT display, MAX7219 8x8 LED matrix, DHT22 temperature/humidity sensor, a small 4Ω 3W speaker pair, and a USB power bank for portability. Photos of the assembled prototype will be added as the build progresses. +Hardware used for creating this project: STM32 NUCLEO-U545RE-Q board, ESP32-WROOM-32 DevKit v1, MH-M38 Bluetooth audio receiver with onboard amplifier, ST7789V 2.8" TFT display, ST7789V 1.3" TFT display, MAX7219 8x8 LED matrix, DHT22 temperature/humidity sensor, a 4Ω speaker pair, and the power distribution with the LiPo battery and the DC-DC step down converter setup I had to DIY in the meantime. ### Schematics ### Bill of Materials -#### --- WORK IN PROGRESS, NOT FINISHED ---