- 114
- 435 410
Steppe School
เข้าร่วมเมื่อ 10 ก.พ. 2022
Hi, my name is Yerke, a founder of Steppeschool.
I got a Bachelor's degree in electronics and a Master's degree in robotics and mechatronics. Currently, I am doing my PhD in robotics. I've always had a keen interest in robotics and used to spend hours developing robots and devices.
I dream of building an educational platform on robotics to make knowledge accessible to everyone and to help beginners and enthusiasts who want to grow into professional engineers.
Why Steppeschool? Mastering robotics requires not only understanding theoretical and practical aspects but also implementing very abstract ideas into practice. My aim is to equip YOU with the necessary theory and reinforce YOU to use it practically.
STM32 Intro course:
www.steppeschool.com/courses/stm326
You can support me on Patreon and to source code and complementary materials of all my projects:
www.patreon.com/user/posts?u=80399744
I got a Bachelor's degree in electronics and a Master's degree in robotics and mechatronics. Currently, I am doing my PhD in robotics. I've always had a keen interest in robotics and used to spend hours developing robots and devices.
I dream of building an educational platform on robotics to make knowledge accessible to everyone and to help beginners and enthusiasts who want to grow into professional engineers.
Why Steppeschool? Mastering robotics requires not only understanding theoretical and practical aspects but also implementing very abstract ideas into practice. My aim is to equip YOU with the necessary theory and reinforce YOU to use it practically.
STM32 Intro course:
www.steppeschool.com/courses/stm326
You can support me on Patreon and to source code and complementary materials of all my projects:
www.patreon.com/user/posts?u=80399744
STM32 Custom Bootloader P3/3: Python Script to Send the Binary File and Final Test
This video is the last part of the tutorial of designing a custom Bootloader for the STM32 MCUs. In this video, I will show how to send the binary file using the Python Script and test the Custom Bootloader
Steppeschool Courses:
www.steppeschool.com/courses/stm32-programming-course
www.steppeschool.com/courses/stm32-hal-orientation-estimation
www.steppeschool.com/courses/robotics-course-balancing-robot
Source Code and Other materials:
www.patreon.com/user?u=80399744
00:00 STM32 Programming Courses Announcement
02:12 UART Data packet format
09:38 Sending the binary file using the Python script
15:58 Vector Table Address
16:47 Final test
Steppeschool Courses:
www.steppeschool.com/courses/stm32-programming-course
www.steppeschool.com/courses/stm32-hal-orientation-estimation
www.steppeschool.com/courses/robotics-course-balancing-robot
Source Code and Other materials:
www.patreon.com/user?u=80399744
00:00 STM32 Programming Courses Announcement
02:12 UART Data packet format
09:38 Sending the binary file using the Python script
15:58 Vector Table Address
16:47 Final test
มุมมอง: 314
วีดีโอ
STM32 Custom Bootloader P2/3: Flash Memory, Aliasing and Toggling the Memory Banks
มุมมอง 304หลายเดือนก่อน
This video is the second part of the tutorial of designing a custom Bootloader for the STM32 MCUs. In this video, I will show how to work with the Flash memory and introduce aliasing. Then, we will learn how to toggle the memory banks. Steppeschool Courses: www.steppeschool.com/courses/stm32-programming-course www.steppeschool.com/courses/stm32-hal-orientation-estimation www.steppeschool.com/co...
STM32 Custom Bootloader P1/3: Dual-Bank Boot Introduction, UART DMA , and CRC
มุมมอง 9022 หลายเดือนก่อน
This video aims to deliver comprehensive guidance on designing a custom Bootloader for the STM32 MCUs. I will first explain the bootlader and flash memory. Then, we will use STM32 CubeMx to configure UART and CRC peripherals to ensure reliable data transactions. In addition, I will introduce a Python script to send data through a serial port. Steppeschool Courses: www.steppeschool.com/courses/s...
STM32: Analog Watchdog
มุมมอง 5765 หลายเดือนก่อน
This video aims to deliver comprehensive guidance on Analog watchdog in the STM32 MCUs. I will first explain the notion of watchdog in embedded systems. Then, we will use STM32 CubeMx to configure the peripherals, and HAL API to develop our code. Nucleo-L476RG is the board I used in this article, but the tutorial applies to other STM32 MCU boards. Steppeschool Courses: www.steppeschool.com/cour...
STM32 ADC Complete Guidance: Polling, Interrupt, and DMA Modes.
มุมมอง 4.3K6 หลายเดือนก่อน
This video aims to deliver comprehensive guidance on STM32 ADC peripheral configuration. In addition, I will show how to sample two analog channels in Polling, Interrupt, and DMA modes. We will use STM32 CubeMx to configure the peripherals, and HAL API to develop our code. Nucleo-L476RG is the board I used in this article, but the tutorial applies to other STM32 MCU boards. Steppeschool Courses...
Creating A Cool Balancing Robot Using Stm32 And LQR Control!
มุมมอง 1.5K8 หลายเดือนก่อน
This video shows a glimpse of the development of the self-balancing robot. The robot is based on the STM32L4 MCU. The control algorithm is a Linear Quadratic Regulator. PCB Design: oshwlab.com/contact63/stm32-balancing-robot Source Code: www.patreon.com/user?u=80399744 Balancing Robot Course: www.steppeschool.com/courses/robotics-course-balancing-robot Attitude Estimation: www.steppeschool.com/...
P2 STM32 USB Speaker: USB Audio Library
มุมมอง 1.7K10 หลายเดือนก่อน
This video is the second part of the tutorial which explains how to design a USB sound card using STM32F4 Discovery Board. In this particular video, I will explain how to produce sound using the stereo DAC on the board. SOURCE CODE: www.patreon.com/user?u=80399744 www.steppeschool.com/products/communities/steppeschool-miscellaneous STM32 PROGRAMMING COURSE: www.steppeschool.com/courses/stm32-pr...
P1 STM32 USB Speaker: Audio DAC to produce sound using I2S
มุมมอง 5K11 หลายเดือนก่อน
This video is the first part of the tutorial which explains how to design a USB sound card using STM32F4 Discovery Board. In this particular video, I will explain how to produce sound using the stereo DAC on the board. SOURCE CODE: www.patreon.com/user?u=80399744 www.steppeschool.com/products/communities/steppeschool-miscellaneous Website: www.steppeschool.com STM32F407G-DISC1 Schematic: www.st...
Use STM32 Flash Memory to store data Permanently
มุมมอง 4.5Kปีที่แล้ว
This video explains how to exploit STM32 Flash memory to store data permanently inside the microcontroller. So, you can restore data after a power outage. The STM32 Board in the tutorial: Nucleo-l476 Source Code: www.patreon.com/user?u=80399744 Website: www.steppeschool.com Written format of the tutorial: www.steppeschool.com/pages/blog?p=stm32-storing-data-within-flash-memory-permanently Websi...
STM32 Programming: Read PWM Input signal for Radio controller
มุมมอง 3.3Kปีที่แล้ว
This video explains how to communicate with the Radio transmitter by reading the input PWM signal on STM32 MCUs. STM32 Intro Course: www.steppeschool.com/courses/stm32-programming-course Website: www.steppeschool.com Source code: www.patreon.com/user?u=80399744 Callback function: void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) Starting the Interrupts: HAL_TIM_IC_Start_IT(&htim2, TIM_CH...
Fast Fourier Transform using the ARM CMSIS Library within the STM32 MCUs
มุมมอง 4.8Kปีที่แล้ว
The video explains how to implement the Fourier Transform using the ARM MATH CMSIS library. Key lines: arm_rfft_fast_instance_f32 fft_instance; arm_rfft_fast_init_f32(&fft_instance, FFT_LENGTH); arm_rfft_fast_f32(&fft_instance, input_fft, output_fft, 0); arm_cmplx_mag_f32(output_fft, output_fft_mag, FFT_LENGTH/2); Real-time FFT: github.com/Steppeschool/STM32-Audio-recording-/blob/Real-Time_FFT ...
STM32 ICM-20948 IMU Part 3: gyroscope and magnetometer bias removal
มุมมอง 2.3Kปีที่แล้ว
This video is about removing the gyroscope and compass biases of the ICM-20948 IMU sensor. Hardware: STM32 MCU board: STM32F407G-DISC1 SparkFun ICM-20948 board: SEN-15335 Patreon Page: www.patreon.com/user/posts?u=80399744 Website: www.steppeschool.com
DIY Smart led Lamp from scratch: PCB design, soldering, assembling, 3D cad design
มุมมอง 521ปีที่แล้ว
DIY Smart led Lamp from scratch: PCB design, soldering, assembling, 3D cad design
CMSIS Math library: linear algebra operations in STM32 MCUs
มุมมอง 1.6Kปีที่แล้ว
CMSIS Math library: linear algebra operations in STM32 MCUs
STM32 ICM-20948 IMU Part 2: magnetometer
มุมมอง 3.8Kปีที่แล้ว
STM32 ICM-20948 IMU Part 2: magnetometer
STM32 LED strip (WS2812b) control 2: adjusting RGB colors using potentiometers
มุมมอง 1.6Kปีที่แล้ว
STM32 LED strip (WS2812b) control 2: adjusting RGB colors using potentiometers
Kalman Filter 3/4: Multivariate Gaussian distribution
มุมมอง 645ปีที่แล้ว
Kalman Filter 3/4: Multivariate Gaussian distribution
Kalman Filter 2/4: State-Space representation
มุมมอง 804ปีที่แล้ว
Kalman Filter 2/4: State-Space representation
Kalman Filter 1/4: Gaussian Distribution and one-dimensional Kalman Filter
มุมมอง 2.1Kปีที่แล้ว
Kalman Filter 1/4: Gaussian Distribution and one-dimensional Kalman Filter
STOP using a soldering iron! Learn to solder PCB like a PRO
มุมมอง 347ปีที่แล้ว
STOP using a soldering iron! Learn to solder PCB like a PRO
STM32 ICM-20948 IMU Part 1: accelerometer and gyroscope | Do not use MPU6050 and MPU9250!
มุมมอง 14Kปีที่แล้ว
STM32 ICM-20948 IMU Part 1: accelerometer and gyroscope | Do not use MPU6050 and MPU9250!
PID Tuning: intuitive understanding of PID gains
มุมมอง 2.3Kปีที่แล้ว
PID Tuning: intuitive understanding of PID gains
STM32 motor control: PID theory and implementation
มุมมอง 19K2 ปีที่แล้ว
STM32 motor control: PID theory and implementation
STM32 Timer Encoder: motor velocity and position
มุมมอง 17K2 ปีที่แล้ว
STM32 Timer Encoder: motor velocity and position
STM32 LED Strip (WS2812b) control 1: Theory and implementation
มุมมอง 7K2 ปีที่แล้ว
STM32 LED Strip (WS2812b) control 1: Theory and implementation
STM32 DSP CMSIS: Real-Time FFT| Python script to plot spectrogram in real-time
มุมมอง 8K2 ปีที่แล้ว
STM32 DSP CMSIS: Real-Time FFT| Python script to plot spectrogram in real-time
How do i get one of this
can I get full code. and please make a video for USB_ Microphone
Hi is there a way you can help me with the same project but in keil uvision?
if it does take much time, you can ask your question here
Good job! Is the source code avalaible at github, or only for Patreon members?
Thanks! Unfortunately, the source code is available only for Patreon members
Are you running the filter on the mcu?
Yep, You can check: www.steppeschool.com/courses/stm32-hal-orientation-estimation
I'm using Cube IDE version 1.15.0. The microcontroller version I'm using is STM32 NUCLEO L073RZ DSP library is not listed under software component class. Which version are you using?
ICM-20948 status is NRND... Wtf
Seems like this IMU sensor will be also obsolete at some point. Hope they will release a new 9-axis IMU
@@steppeschool3629 Hope too!
Is it OK to cast a *uint_16 to a *uint_32 and pass it to Start_DMA? Does the function understand that the buffer is really only 4 bytes and not 8 bytes?
in that case, I guess you need to specify the memory width to 4 bytes, not 2 bytes.
@@steppeschool3629yes. I noticed now you set the DMA length to half word.
Keep up 👏
Thanks!
Great channel, subscribed. Great to see the overlap between Embedded and Dynamic and Control. Keep it up!
Awesome, thank you!
does it work on stm32f103x ?
I do not think it will work.
Note: Serial Wire Viewer (SWV) is a data trace feature found on many ARM Cortex-M3, M4, M7, M23, and M33 processors. Cortex-M0 and Cortex-M0+ do not have SWV.
Noted
Could please teack more about kalman filter also please please please
I have a playlist about the Kalman Filter: th-cam.com/play/PLmXXQ1iFwiyJxArw8tz_mnZfrVQ2B_FuH.html
Sir i want to learn
Hi! I have a course about designing a self-balancing robot from scratch: www.steppeschool.com/courses/robotics-course-balancing-robot
Nice. Waiting for part 2
Just released the rest of the parts
Thank you,Very informative video. Waiting for part 2
Just released the rest of the parts
Does the stm32f103c8 "Blue pill" support the arm_math library?
I am afraid it does not support
Thank you for the video. I tried to use this dsp lib with my stm32f103c8t6 cortex m3 with clock speed 64mhz. But i could not install it because bluepill has only 20kb. I wrote recursive fft code myself. but it took almost 70ms to finish and i lost some values from adc. sampling rate was 8khz. and window size is 128 or even with 64 it was still slow. i think arm dsp uses some kind of hardware accelerated things to make the calculations much faster for example in 1-2ms. But i could not use it as bluepill has only 64kb of flash. What can you suggest? Appreciate that thanks.
The easiest solution would be to upgrade your microcontroller. Try more powerful microcontrollers, such as STM32F4, STM32L4, etc. They are not expensive and you can easily implement FFT.
@@steppeschool3629 Hi. Thank you for the answer. Yes i had also F407 with 512kb of flash. But i wanted to try it with 64kb. Because i saw someone got fft working even with atmel processor with good performance. In the end i wrote my fft function with float type which took 70ms to calculate which is very slow. There is no fpu in bluepill. And after working 2 days i rewrote my functions in fixed point numbers and got it working. Fft took 3-4 ms for calculation, flash usage is 34kb with whole code.
What you did is quite impressive
_write is never called. And i cant figure out, where _write would be called from.
Hi mate, really appreciate for your valuable content. It is really helpful to understand the concept and the flow is just superb! One thing to add, in the line: velocity = linspace(0.0,0.1,num_samples); if you would inverse(transpose) that definition the plot at the end would be more sensible which has actual and encoder plots. Prediction step looks incorrect because you create the velocity_encoder matrix as 300x300 instead of 300x1. Thanks again for this valuable post!
Great to hear!
Thanks for the vide how to save data acquire in a csv file in the computer?
You can send data to a computer through UART. From the computer side, you can write a simple PYTHON script to record data and store it within a file
Friend, thanks for the video. Can you send or take a video, which contacts did you connect the microphones and SD card reader to?
Great stuff thank you.
what to do if I get no message in console?
Why their balancing bot is tremoring with phobia? LOL
Great way of teaching. Carry on brother.
awesome
Very cool! Looking forward to seeing P2!
no HAL Please
is it the best sensor for drones?
I do not think so, there should be other IMU sensors with better characteristics
Kudos to you, didn't know i could do that
Gracias por tu tutorial, aclaro la habilitación de la consola ITM. en Core/Src/syscalls.c añadir en línea 33 #define DEMCR *((volatile uint32_t*) 0xE000EDFCU) #define ITM_STIMULUS_PORT0 *((volatile uint32_t*) 0xE0000000) #define ITM_TRACE_EN *((volatile uint32_t*) 0xE0000E00) void ITM_SendChar(uint8_t ch) { DEMCR |=(1<<24); ITM_TRACE_EN |=(1<<0); while(!(ITM_STIMULUS_PORT0 & 1)); ITM_STIMULUS_PORT0 =ch; } en linea 100 ITM_SendChar(*ptr++) ;
Guys, avoid this person. He is showing different code that then what is actually written. With 2 hours of work i was able to make it working.
Hello, Have you tutorial of RTOS? Thanks
great video sir
Did you encounter issues when in some USB ports you get flooded with isoOutIncomplete and glitches since a packet is received not each SOF?
Nice one... useful function, simple presentation. Thx!
🫡❤️
Congrats!!! Smooth explanation.
wonderful demonstration of the PID controller!
Good work bro 👍👍
You only plot the Spectrum of a signal. Can you have a video to guide and filter the signal?
Sorry ! You only record in a half of data_i2S buffer with statement :HAL_I2S_Receive_DMA(&hi2s2, (uint16_t *)data_i2s, sizeof(data_i2s)/2 but you write data in full data_i2S buffer in SD card with statement write2wave_file(((uint8_t*)data_i2s), WAV_WRITE_SAMPLE_COUNT); Can you explain to me?. Thank you very much!.
Thank you! The concepts are explained neatly, and the video is one of the best-structured ones I have watched on Kalman Filters!
Why does it show zero speed in all cases when I run this code?
Thanks for sharing. These simple examples explain the concepts crystal clear... concise and substantial.
Hi Why uart sends data reversed For example If I want to send 1139(ascii) = 0473(hex) When uart sends data i have 7304(hex) in my computer How I can prevent this?
Can't say without code. But you should take a look into little endian and big endian
@@Flawake thanks👍
was very useful, thanks! Are you Afghan brother?
thank you, excellent, very clear explanations
IS IT POSSIBLE TO IMPLEMENT THIS ON MULIPLE ADC CHANNELS? I AM USING FOR SING CHANNED BUT FAIL TO IMPLEMENT ON MULTIPLE ADC CHANNEL..
of course you can. Just create multiple instances
@@steppeschool3629 okay. you mean fir_instance[12], fir_in_arm[12] and fir_out_arm[12] is only modification in program for 12 ADCs? or something more nedded? am I correct?