Also updating the project page on my website periodically:
notblackmagic.com/projects/plu...
Also updating the project page on my website periodically:
notblackmagic.com/projects/plu...
Base SD Card driver is now complete:
Reads full specs from SD card and configures the SDMMC peripheral appropriately (max 4-bit and 50 MHz). IDMA (SDMMC specific DMA) also working!
On a C10 class uSD card I'm getting:
Read: 5 MByte/s
Write: 19 MByte/s
#PlumaN6 #stm32n6 #embedded
Progress Update on #PlumaN6:
SD card driver is coming together, I can now connect and read all essential SD card information and change the SDMMC peripheral to match the specs of the SD card (up to 4-bit width and sadly 50MHz speed). Read and write is also progressing.
#stm32n6
It's a very cheap AliExpress one, so not unexpected just first time ๐
Button failure analysis:
Had two SMD buttons fail on the #PlumaN6, next to each other. De-soldering and opening them up showed the likely cause. Solder flux on the contact pads. Very likely due to reworks and hand soldering next to them.
Interesting find for sure!
#embedded #diy
Short update, the SDMMC driver skeleton is mostly implemented and working. Can read basic registers from a uSD card. This in standard single wire mode for now.
Next to implement the SD card driver level!
Doing the whole firmware and drivers in low level (no HAL) and using C++.
With the HyperBus devices working at 100MHz, moving to the next peripheral to implement for the #PlumaN6 controller: uSD Card (SDMMC)!
In theory it should support UHS-I but due to a hardware mistake will be limited to standard speed (50 MHz and 4-bit width).
Finally have both the HyperBus external Memories working error free at 100MHz. Was an issue with drive strengths configurations, I had to lower them on the Memory side (reflection issues?).
Stable and error free 350 MB/s reads from PSRAM (DMA).
Next figuring out limits (200MHz?)
So getting some issues with the HyperBus, although it is working at 100MHz, there are occasional data corruption... At 50MHz it works flawlessly.
Need further investigation, but that's the challenge when pushing speed closer to the limit (limit is 200MHz)!
#embedded #stm32n6
More improvements, testing both the HyperRAM and HyperFlash with DMA reads I'm reaching there limits:
HyperRAM at 351 MB/s
HyperFlash at 190 MB/s
Both using HyperBus at 100 MHz but the PSRAM with 16-bits bus width.
#stm32n6 #pulman6 #drone #robotics #embedded
Configured the RIF and doing some basic SRAM to SRAM data movement using the HPDMA, getting just about 500MByte/s in this test. Theoretically the AXI bus can deliver 3200 MByte/s at 400 Hz and 64-Bit width.
The lower number is due to Read then Write I guess
Started to work and test the DMA of the #STM32N6, specifically to test performance with the HyperBus devices for my #PlumaN6 board.
The safety features are really a pain point here... Can't just use the DMA, you have to setup the RIF (resource isolation framework) stuff...
Some further development on the #PlumaN6. Improving the HyperBus driver and now also started to develop the HyperFlash part.
Both HyperRAM and HyperFlash now working!
Interestingly both have the same read performance in memory mapped mode: 125 MByte/s.
#stm32n6 #drone #robotics
Updates from weekend development of my custom #STM32N6 robotics focused board #PlumaN6:
- Implemented bare-metal (no HAL) HyperBus
- Implemented and tested HyperRAM driver
Currently running it at 100MHz DDR and reaching 125 MByte/s sequential read speeds in Memory Mapped mode.
Progress on the #PlumaN6 board, UART is now working. Starting to work on a simple Logger and Console/Shell functionality over it as the basis for debugging and developing.
Progress during weekdays is slow but still going!
After comes the HyperBus for the external flash and PSRAM!
Over the weekend I got the #PlumaN6 with its STM32N6 powered up! Simple LED showing code running.
In debug mode from SRAM, which was already a challenge to get working! Significantly more then other MCU I have used, which didn't have all this security and external flash stuff...
Minimal assembly of the #PlumaN6 board. Just the MCU (and external memory due to also being BGA), the decoupling capacitors, debug interface and power supplies.
Ready for first power ups and connecting to see if the MCU is alive!
#Embedded #Robotics #Engineering #STM32
Step 2: The Placement.
Placing fine-pitch BGAs by hand with quality tweezers and a, somewhat, steady hand.
Dropping the STM32N6 and the memory chips onto their pads. You have to trust the alignment.
Next up: Reflow on the hot plate. ๐ฅ
#PCBAssembly #STM32N6 #PickAndPlace
Oh yes, I only did it now because the 6L boards from JLC are much cheaper now! Below 100โฌ with ENIG and capped vias, where before it was in the 100's.
The most critical step in BGA assembly: applying the solder paste. Too much = bridges. Too little = open circuits. โ๏ธ
Stencil perfectly aligned and with one clean swipe, the result is crisp. (Not the first attempt ๐)
Next up: Placement.๐
#PCBDesign #Robotics #Engineering #STM32
New task for the weekend just arrived: The PlumaN6 PCBs! ๐ฆ
The BGA fanout looks neat and I'm loving the gold ENIG finish!
Now the tricky part: aligning the BGAs by hand!
Assembly starts this weeken.
#PCBDesign #PCB #STM32N6 #Robotics #Drone
Soldering setup โ
Motivation โ
PCBs this week! ๐ฆ
The PlumaN6 HD PCB are to arrive in the next days, sourced all the soldering tool over the last week's/months to. Ready for my first BGA soldering in the home lab!
#PCB #soldering #stm32n6 #lab #diy
PCB is expected to arrive this week! Components already arrived, and I purchased and prepared my small lab (table) for BGA soldering with stencils for it!
Might post a pic of the setup before the PCBs arrive ๐
Some of my ordered parts for my #STM32N6, the PlumaN6 HD, showed up!
I'm building my own take on it, focused on exploring all it's latest features for robotics and drone control applications. Not just NPU/Vision but also Gig Ethernet, I3C and USB-HS.
It is! So much potential to unlock!
Good to hear the post was helpful!
Spent the weekend building the landing page for the new PlumaN6 HD controller board.
It features my "traditional" interactive PCB viewer: Hover over the board to see component and connector placements.
Full details and specs here: notblackmagic.com/projects/plu...
#PCB #STM32 #Robotics
Started designing the MobED inspired actuator with two serial motors I grabbed on AliExpress ages ago (used/old stock). Sadly, they are now no more sold.๐
Forced to switch to established parts. Front runner:
Feetech STS3215.
Any other recs for smart/bus servos in this class?
The from years ago H723 attempt. ๐
Abandoned halfway as other projects called. Was designed for coreless micro-quads.
Now I'm back and fully motivated. Switched to #STM32N6 and fix the architecture (HW & FW) + add vision, for the new wheeled platform.
#PCBDesign #Hardware #KiCad
I never thought about this connection, but then the STM32F1 should be the fastest ones ๐
Correction: PlumaN6 ๐ชถ
I have a drawer of abandoned F1, F4, H7 controller boards. All felt incomplete, lacking the fun stuff eg vision.
The #STM32N6 changes that. Control + Vision. One Chip. No Linux. All custom FW!
Target: MobED-style wheeled robot.
#Robotics #Embedded #PlumaN6