Steppe School
Steppe School
  • 114
  • 435 410
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
มุมมอง: 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
Kalman Filter: check how well it works
มุมมอง 946ปีที่แล้ว
Kalman Filter: check how well it works
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 Intro Course announcement
มุมมอง 3.1Kปีที่แล้ว
STM32 Intro Course announcement
Kalman Filter 4/4: Linear Kalman Filter
มุมมอง 715ปีที่แล้ว
Kalman Filter 4/4: Linear Kalman Filter
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
C programming: double pointers
มุมมอง 2232 ปีที่แล้ว
C programming: double pointers

ความคิดเห็น

  • @sinamathew
    @sinamathew 8 วันที่ผ่านมา

    How do i get one of this

  • @ShanmugasundaramM-z7h
    @ShanmugasundaramM-z7h 21 วันที่ผ่านมา

    can I get full code. and please make a video for USB_ Microphone

  • @feramez
    @feramez 24 วันที่ผ่านมา

    Hi is there a way you can help me with the same project but in keil uvision?

    • @steppeschool3629
      @steppeschool3629 24 วันที่ผ่านมา

      if it does take much time, you can ask your question here

  • @ZiclopDevices
    @ZiclopDevices 25 วันที่ผ่านมา

    Good job! Is the source code avalaible at github, or only for Patreon members?

    • @steppeschool3629
      @steppeschool3629 24 วันที่ผ่านมา

      Thanks! Unfortunately, the source code is available only for Patreon members

  • @Deborah_innovates
    @Deborah_innovates 28 วันที่ผ่านมา

    Are you running the filter on the mcu?

    • @steppeschool3629
      @steppeschool3629 25 วันที่ผ่านมา

      Yep, You can check: www.steppeschool.com/courses/stm32-hal-orientation-estimation

  • @dasunisaparamadu2876
    @dasunisaparamadu2876 หลายเดือนก่อน

    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?

  • @henryhetz8212
    @henryhetz8212 หลายเดือนก่อน

    ICM-20948 status is NRND... Wtf

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      Seems like this IMU sensor will be also obsolete at some point. Hope they will release a new 9-axis IMU

    • @henryhetz8212
      @henryhetz8212 9 วันที่ผ่านมา

      @@steppeschool3629 Hope too!

  • @CLGilbert
    @CLGilbert หลายเดือนก่อน

    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?

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      in that case, I guess you need to specify the memory width to 4 bytes, not 2 bytes.

    • @CLGilbert
      @CLGilbert หลายเดือนก่อน

      ​@@steppeschool3629yes. I noticed now you set the DMA length to half word.

  • @mrshelpy1
    @mrshelpy1 หลายเดือนก่อน

    Keep up 👏

  • @dymastro788
    @dymastro788 หลายเดือนก่อน

    Great channel, subscribed. Great to see the overlap between Embedded and Dynamic and Control. Keep it up!

  • @gcenter1552
    @gcenter1552 หลายเดือนก่อน

    does it work on stm32f103x ?

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      I do not think it will work.

  • @obedbabington3903
    @obedbabington3903 หลายเดือนก่อน

    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.

  • @iota_i_1
    @iota_i_1 หลายเดือนก่อน

    Could please teack more about kalman filter also please please please

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      I have a playlist about the Kalman Filter: th-cam.com/play/PLmXXQ1iFwiyJxArw8tz_mnZfrVQ2B_FuH.html

  • @iota_i_1
    @iota_i_1 หลายเดือนก่อน

    Sir i want to learn

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      Hi! I have a course about designing a self-balancing robot from scratch: www.steppeschool.com/courses/robotics-course-balancing-robot

  • @farahkhan1482
    @farahkhan1482 หลายเดือนก่อน

    Nice. Waiting for part 2

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      Just released the rest of the parts

  • @venkygoud7421
    @venkygoud7421 หลายเดือนก่อน

    Thank you,Very informative video. Waiting for part 2

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      Just released the rest of the parts

  • @sizuziledlamini1852
    @sizuziledlamini1852 หลายเดือนก่อน

    Does the stm32f103c8 "Blue pill" support the arm_math library?

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      I am afraid it does not support

  • @kamarmeredow7644
    @kamarmeredow7644 หลายเดือนก่อน

    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.

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      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.

    • @kamarmeredow7644
      @kamarmeredow7644 หลายเดือนก่อน

      @@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.

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      What you did is quite impressive

  • @SurvivalSquirrel
    @SurvivalSquirrel หลายเดือนก่อน

    _write is never called. And i cant figure out, where _write would be called from.

  • @cemdogan6657
    @cemdogan6657 หลายเดือนก่อน

    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!

  • @LaboussoleNano
    @LaboussoleNano หลายเดือนก่อน

    Thanks for the vide how to save data acquire in a csv file in the computer?

    • @steppeschool3629
      @steppeschool3629 หลายเดือนก่อน

      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

  • @Марш-ц6ф
    @Марш-ц6ф 2 หลายเดือนก่อน

    Friend, thanks for the video. Can you send or take a video, which contacts did you connect the microphones and SD card reader to?

  • @pyrhockz
    @pyrhockz 2 หลายเดือนก่อน

    Great stuff thank you.

  • @kalex7370
    @kalex7370 2 หลายเดือนก่อน

    what to do if I get no message in console?

  • @TheOldmankk
    @TheOldmankk 2 หลายเดือนก่อน

    Why their balancing bot is tremoring with phobia? LOL

  • @SaumikKhan
    @SaumikKhan 2 หลายเดือนก่อน

    Great way of teaching. Carry on brother.

  • @hz.turqay426
    @hz.turqay426 2 หลายเดือนก่อน

    awesome

  • @bobby9568
    @bobby9568 2 หลายเดือนก่อน

    Very cool! Looking forward to seeing P2!

  • @jugnu361
    @jugnu361 3 หลายเดือนก่อน

    no HAL Please

  • @myetis1990
    @myetis1990 3 หลายเดือนก่อน

    is it the best sensor for drones?

    • @steppeschool3629
      @steppeschool3629 3 หลายเดือนก่อน

      I do not think so, there should be other IMU sensors with better characteristics

  • @raffazaver
    @raffazaver 3 หลายเดือนก่อน

    Kudos to you, didn't know i could do that

  • @fernandolebrato8464
    @fernandolebrato8464 3 หลายเดือนก่อน

    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++) ;

  • @machmanish1
    @machmanish1 3 หลายเดือนก่อน

    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.

  • @lehuubaothuan8559
    @lehuubaothuan8559 3 หลายเดือนก่อน

    Hello, Have you tutorial of RTOS? Thanks

  • @toorikul
    @toorikul 3 หลายเดือนก่อน

    great video sir

  • @Sx107music
    @Sx107music 4 หลายเดือนก่อน

    Did you encounter issues when in some USB ports you get flooded with isoOutIncomplete and glitches since a packet is received not each SOF?

  • @lohikarhu734
    @lohikarhu734 4 หลายเดือนก่อน

    Nice one... useful function, simple presentation. Thx!

  • @Barentts2
    @Barentts2 4 หลายเดือนก่อน

    🫡❤️

  • @douglasrom40
    @douglasrom40 4 หลายเดือนก่อน

    Congrats!!! Smooth explanation.

  • @sumedhburbure4173
    @sumedhburbure4173 4 หลายเดือนก่อน

    wonderful demonstration of the PID controller!

  • @kishankumarhazari3692
    @kishankumarhazari3692 4 หลายเดือนก่อน

    Good work bro 👍👍

  • @buuvo4711
    @buuvo4711 4 หลายเดือนก่อน

    You only plot the Spectrum of a signal. Can you have a video to guide and filter the signal?

  • @buuvo4711
    @buuvo4711 4 หลายเดือนก่อน

    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!.

  • @jf4-d5m
    @jf4-d5m 4 หลายเดือนก่อน

    Thank you! The concepts are explained neatly, and the video is one of the best-structured ones I have watched on Kalman Filters!

  • @faezefaraz
    @faezefaraz 4 หลายเดือนก่อน

    Why does it show zero speed in all cases when I run this code?

  • @jakvirtua5631
    @jakvirtua5631 4 หลายเดือนก่อน

    Thanks for sharing. These simple examples explain the concepts crystal clear... concise and substantial.

  • @Radplus
    @Radplus 4 หลายเดือนก่อน

    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?

    • @Flawake
      @Flawake 4 หลายเดือนก่อน

      Can't say without code. But you should take a look into little endian and big endian

    • @Radplus
      @Radplus 3 หลายเดือนก่อน

      @@Flawake thanks👍

  • @AbbasHashemi-pe2st
    @AbbasHashemi-pe2st 5 หลายเดือนก่อน

    was very useful, thanks! Are you Afghan brother?

  • @padakathu2882
    @padakathu2882 5 หลายเดือนก่อน

    thank you, excellent, very clear explanations

  • @electronic-ebox6403
    @electronic-ebox6403 5 หลายเดือนก่อน

    IS IT POSSIBLE TO IMPLEMENT THIS ON MULIPLE ADC CHANNELS? I AM USING FOR SING CHANNED BUT FAIL TO IMPLEMENT ON MULTIPLE ADC CHANNEL..

    • @steppeschool3629
      @steppeschool3629 5 หลายเดือนก่อน

      of course you can. Just create multiple instances

    • @electronic-ebox6403
      @electronic-ebox6403 5 หลายเดือนก่อน

      @@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?