STM32H750IB Pins

Please ignore, found all the data in the seed’s schematics. Thanks

Hi, I’m trying to find a place that shows me how all the hardware in Patch is connected to the STM32 pins.

I’m using patch with my code (from scratch, not using any of the libraries) and trying to get the oled to work, want to make sure I’m using the correct pins.

I looked at the schematics on github, but I don’t see anything related to the STM32H750IB, maybe I’m missing something.

Also, which oled is on the patch? 1306?


Congratulation on choosing the hard way! But still, you should keep an eye on libDaisy sources for understanding how everything is configured. The display is SSD1309. Also, my OWL port has a CubeMX project that could be used as a references

In addition to the schematic for the Daisy Seed, there is a CSV file on the pinout page of the Wiki that has a good reference for the STM32 pin names, available alternate functions, etc. (It’s can be easy to miss because the photo hogs attention on the page).

The DaisyExamples repo also has a CubeMX project for the DaisySeed. Not sure how different it is from the one that @antivison linked. (Except that it may address specific Patch features better than the Seed file).

The .ioc file is labeled Rev2, mostly becuase Cube had an issue with renaming projects at the time. That might be resolved now. But as long as you’re in the DaisySeed_Rev4 folder you should be solid

Thanks for the info!

I’ve done a few projects with stm32 in the past, but seems like will take me time to ramp up here as it’s kind of reverse engineering stuff (Im used to design the hardware as well :wink: ).

still can’t get the oled to work.

can someone take a quick look and tell me if something is wrong with the pins? I’m using a library that worked for me in the past (with i2c though).

#define SSD1306_SPI_PORT hspi1
#define SSD1306_CS_Port GPIOG
#define SSD1306_CS_Pin GPIO_PIN_10
#define SSD1306_DC_Port GPIOB
#define SSD1306_DC_Pin GPIO_PIN_5
#define SSD1306_Reset_Port GPIOB
#define SSD1306_Reset_Pin GPIO_PIN_15

also this:

void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
GPIO_InitTypeDef GPIO_InitStruct = {0};

    GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_4;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
    HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);



Have you compared your SPI_HandleTypeDef.Init to the settings used in libdaisy’s SPI driver? (it’s actually still hard-coded for the OLED on Patch/Field)

Your MspInit looks OK to me, and the pins appear correct.

Other things to check would be that the SPI peripheral’s clock is actually enabled (this would likely be in the Cube-generated SystemClockConfig function).

Also, once you start transmitting are you able to see the pins strobing if you patch a jumper into the SPI pins of the DaisyPatch or is the bus completely inactive?

Clocks are different, the old Seed project was configured for 400Mhz, plus I’ve changed some SAI related stuff to set 100% precise clock. I think there could be some other things that I had to fix in to match code used in libDaisy at that time. And yes, Patch-specific peripheral setup.

#define SSD1306_DC_Port GPIOB
#define SSD1306_DC_Pin GPIO_PIN_5

DC pin is PB4, not PB5.

I actually think it is 5, was able to make it work when playing with the library I downloaded, now can’t get it to work again, but I did see stuff when using PB5…

Just updating that it’s probably something to do with the library I’m using.
If I download one of the example over usb and then go back to jtag and flash my code, the oled is working (kind of). if I turn off the module and back on the oled is back into darkness :wink:

I guess the Init function of the library is doing something wrong. Will check the examples and try to fix it.