Dmitry Grinberg designed an SBC with an #STM32 (STM32G030) that can run Linux at an interactively usable speed with just three 8-pin chips: the μC, an SPI PSRAM, and a USB-to-serial chip. Also some resistors and caps. #hardware #electronics #microcontrollers
on 02026-06-12#Smoothieboard #hardware had showstopper supply-chain problems in late 02020 because of the #COVID shortages of #microcontrollers, which is how they ended up switching from LPCxxxx to #STM32. #history
on 02026-04-12#Mecrisp Stellaris #Forth apparently has pretty good support for #STM32 #microcontrollers #electronics #hardware
on 02026-04-12#Thisismax #video on sensorless #FOC #control of #hardware #motors, using the most hilarious Nerf launcher I’ve ever seen, using three Kv = 2200 drone motors (minimum 10krpm) as rollers to launch the balls in a curved trajectory by controlling their spin. He wanted to use STMicroelectronics’s “#STM32 MC Motor Profiler”, but that would have required using Microsoft Windows, so he used the Arduino #SimpleFOC library instead. He gets motor position feedback from the back EMF of the motor windings (I’m not sure if this is inherent to “FOC”). He says most small drone motors are Y-topology. #electronics
on 02025-11-11another #video of #STM32 DMA, this time to onboard DACs on a 168MHz STM32F405RGTx. But the sampling rate is only 100ksps. #toread maybe.
on 02025-08-13#PDF of #STM32 RM0008 reference manual for STM32F1xxx, §13.3.7, relevant to DMA request routing. On here all the possible request signals for a channel just go into an OR gate, and there’s a single EN bit for the whole channel. TIM1_UP is one of six signals on DMA1 Channel 5. “The 7 requests (...) are simply logically ORed before entering the DMA1, this means that only one request must be enabled at a time.
The peripheral DMA requests can be independently activated/de-activated by programming the DMA control bit in the registers of the corresponding peripheral.” No CHSEL field. §14.4.4 TIMx_DIER looks exactly the same as on the STM32F4xxx, with UDE, CC1DE, TDE, etc. §14.2 clarifies: “Update: counter overflow/underflow, counter initialization (by software or internal/external trigger)”.
1757-page #PDF of #STM32 RM0090 reference manual for STM32F4xxx, section relevant to routing DMA requests to DMA controllers: Table 44 shows that Channel 6 of Stream 5 on DMA 2 is TIM1_UP. There’s a 3-bit field CHSEL in DMA_SxCR which selects which of the 8 channels is active for that stream. §§17.3.2, 17.3.6, and 17.3.9 explains that you need to set various bits in TIMx_DIER to enable generation of DMA requests from the timer; §17.4.4 on p. 570/1757 has 15 bits to enable interrupts and DMA requests on different conditions, such as UDE, “Update DMA request enable”. But the STM32F1xxx is different.
you can set up DMA on #STM32 #microcontrollers such as the STM32F407VG to write data to a GPIO port controlled by a timer; to enable DMA on timer 1 rollover, you select channel 6 on stream 5 on DMA 2 with DMA2_Stream5->CR = (6u << DMA_SxCR_CHSEL_Pos) | stuff and tell the timer to generate a DMA signal on timer overflow with TIM1->DIER = TIM_DIER_UDE.
#video by "simonmartin_ch" of how you can get #STM32 #microcontrollers such as an STM32f103rb running at 64MHz to DMA data from memory to a GPIO at 2MHz using a timer. Using STM32Cube tho. He sets bit 8 (UDE he says) in TIM2->DIER to make TIM2 generate DMA requests repeatedly. Also he’s using the TIM2 output compare signal itself as one of his output signals and using circular DMA mode. He says at 4MHz you get a lot of jitter, even with “High” priority (visible from 3’25"). A commenter “synergie8” warns that on STM32F2 and STM32F4 DMA1 can’t be used with GPIO, so you have to use DMA2 and consequently TIM1 or TIM8.
on 02025-08-13you can get #STM32 #microcontrollers such as an STM32f103rb running at 64MHz to DMA data from memory to a GPIO at 2MHz using a timer
on 02025-08-13#PDF #appnote on #STM32 #microcontrollers: many of the line (but not STM32F) support DMA multiplexing
on 02025-08-13The #ARM Cortex-M3 (used in many processors of the #STM32 line) has #performance of 1.25 #Dhrystone MIPS/MHz
on 02025-07-20the STM32F103C8T6 is the #STM32 in the #Blue-Pill
on 02025-07-20the STM32F746 is the #STM32 in the #Playdate and it costs US$14.33 in quantity 1
on 02025-07-20#video of Iran’s #Shahed 136 kamikaze drone servomotor. It uses an #STM32 with six power MOSFETs to control a brushless motor and read from an encoder; these motors sell for €20 in Ukraine. There’s a silicone conformal coating to protect the board. It uses a conventional 600μs–2.4ms PWM control signal. Interesting reverse-polarity protection circuit on the ground rail. Detailed schematic analysis, awesome. #electronics #hardware #microcontrollers #flying #weaponry #Le-labo-de-Michel
on 02024-06-26#video of #microcontroller #hardware, the #Puya PY32 Cortex-M0, with #pricing of 10¢ in quantity 500. Over ten minutes of worthless talking-head footage at the beginning of the video. 5.5 volts, reprogrammable. Part numbers sound like STM32F0 clones? PY32F0032A is 24MHz, 20KiB Flash, 3KiB SRAM, 18 GPIOs, 1 ADC, 3 timers, SPI, UART, I²C; the 30¢ PY32F030 has, among other things, 32KiB Flash, 8KiB RAM, and 48MHz; the 50¢ PY32F072 even has CAN and USB. You have to get them off LCSC. He’s using Keil and programming it with an ST-Link v2, and some people use Stm32Cube. Screenshots of py32.org, which still has Puran’s documentation for their chips. He’s only able to get the code to flash at 3.3V. He recommends reading the STM32 manual to learn how to set up the ADC, so I guess this really is an #STM32 clone. (He points at ST copyright notices in the BSD-licensed HAL source code.) He also recommends reading Puya’s example code in the zip file and the well-written PY32F030 series reference manual in English.
on 02024-05-09#video about improved #mechanical servomotors for hobby robotics. He’s using an SPI magnetic encoder with on-chip sensors to read the motor position, controlled with an #STM32 G0 interfaced via I²C, programmed in Rust, which controls an LV8548 H-bridge driver chip, which can handle 12V 2A output. #microcontrollers #electronics #hardware
on 02024-04-28salvaging motors from floppy disk drives #hardware #bootstrapping #hoarding #video He doesn’t manage to nondestructively disassemble these NEC floppy drives; he suggests making a nut for their leadscrews by twisting some wire, which seems like it ought to work. Rather than trying to use the flat-flex cables, he solders directly to the motor pins. Demonstrates crimping Dupont pins onto the wires he soldered onto the motor. Then he wires them up to a couple of DRV8825 stepper driver chips and an #STM32 Blue Pill. Running them on 9 volts with a 100% duty cycle they got up to 90° (according to his thermocouple) and started to smell, for which he suggests using a different driver board called the “EasyDriver”. He uses Arduino’s LiquidCrystal_I2C.h to talk to his 16×2 LCD.
on 02024-04-05#latency on #STM32 #radio #hardware
on 02024-02-10Initial #buck50 #Sigrok #logic-analyzer #STM32 firmware announcement from 02020. Including discussion of #performance and how it differs from the #ARM reference manual cycle counts.
on 02024-01-28Another #STM32 #Blue-Pill #hardware #USB #bootloader firmware. “This is a driverless (no USB drivers needed, even on Windows) USB HID bootloader for STM32F10x and STM32F4xx devices. It doesn’t use ST libraries since they are bloated and buggy. Only CMSIS and some required system files and macros have been used from ST provided SDK.”
on 02024-01-28"STM32duino" #USB #bootloader firmware for the #STM32 #Blue-Pill #hardware derived from maple-bootloader
on 02024-01-28#tutorial for installing a #USB #bootloader (Roger Clark’s #stm32duino) for the #STM32 #Blue-Pill #hardware
on 02024-01-28Mark R. Rubin’s GPL "buck50" #Sigrok #logic-analyzer firmware for #STM32 #Blue-Pill #hardware. Also comes with a CLI to puppet it over USB and use it, for example, as a USB UART.
on 02024-01-28#Sigrok can now use #STM32 or compatible #Blue-Pill #hardware as a #logic-analyzer using the #buck50 firmware. 8 channels, 6 MHz, 5000 samples, stored only on transitions; also usable as a 1Msps dual-channel digital storage #oscilloscope with 5000 samples
on 02024-01-28notes on #STM32 clone from "CKS" (中科芯微)
on 02024-01-17on #STM32 clones, including the #CKS clone, the #GD32, and the #WCH clone. Discussion in the comments says the CKS chip is fine, while the GD32 reliably has 128KiB of Flash, but its USB peripheral isn’t quite compatible
on 02024-01-17Keir Fraser of Xen and STM fame has a guide to #STM32 fakes and the #CKS clone CS32F103, because he’s been working on Greaseweazle #hardware apparently for floppy #archival
on 02024-01-17#ARM #STM32 (specifically STM32L4xx/6xx, in this case STM32L486ZG) has a bug where it can't read a burst of 9 or more words from off-chip memory.
on 02023-07-19explains how to control #OpenOCD by telnetting to port 4444 and typing textual coommands. Discussion of what #asm the #STM32 STM32F103 does and doesn't support. Discussion of linker scripts. Explanation of the #ARM literal pool.
on 02023-07-05oh my, I hadn’t realized that all the Cortex-M #ARM #hardware only supported Thumb-2 #asm. Or that every #STM32 #microcontroller supported SWD for single-stepping with OpenOCD. Apparently to burn the Flash on an STM32 you openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "program prog1.elf verify reset exit"? And then to provide a gdbserver on port 3333 you openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg?
Slide deck about #ARM #asm. Supposedly the #Raspberry-Pi 2 and 3 (but not 1 and Zero) support #Thumb-2 instructions, and the #STM32 STM32L only supports Thumb-2 (no original ARM fixed-width instruction set). There’s a super sweet #code-density graph on p.35 of the #PDF: 8086 is the champion; PDP-11 and Z80 are almost tied and beat Thumb-2, which beats Thumb, which beats VAX, which beats i386, which beats x86_64, which beats 6502, which beats arm_eabi, which beats the living shit out of ia64.
on 02023-07-04#STM32 #hardware and the ChibiStudio setup of Eclipse using OpenOCD to develop for #ChibiOS
on 02021-12-23overview of the #STM32 F4 series and the "Black Pill" boards with them
on 02021-01-21