How to create a custom BSP (board.h)?

sb_espressif
Posts: 28
Joined: Fri Dec 08, 2023 3:04 am

How to create a custom BSP (board.h)?

Postby sb_espressif » Fri Dec 29, 2023 3:27 pm

(is the ADF forum actively monitored by Espressif? I see a lot of questions going unanswered on this forum, which seems quite different from the IDF forum).

I'm trying to learn ESP-ADF. it's very hard! It *seems* like a critical element when making the transition from IDF to ADF is the use of a BSP, a Board Support Package, which describes the hardware being used. There are existing BSPs for audio development boards from Espressif, but I'm finding it quite difficult to understand how to create one for a system that is not one of these boards. Are there any resources that explain what is required to write a custom BSP?

All advice I can find just kind of says "copy an existing one". This is difficult for a beginner because existing ones are not documented and they often include way more features than one might have on a breadboard setup (which is where I am at the moment).

For example, I have what I think is a very 'vanilla' project right now. I have an 'empty' board.h and board.c file in a custom BSP component in my project, and I have selected this custom, empty board in my Menuconfig. Theoretically I would imagine this setup - which does nothing - should compile fine. However, I get a ton of errors from various audio_hal component files (an example is "get_es7243_mclk_gpio()"). It seems I am meant to implement these functions in my custom board.h, but again there's very little documentation about this that I can find.

ADF seems perplexing to me. It seems at once designed to facilitate the creation of complex smart home systems involving microphones, video cameras, audio, wifi, etc. etc. and yet I've been stuck for weeks just trying to get an MP3 to play on an esp32-s3 Feather board, predominantly because I find the documentation impenetrable and the examples exceedingly complex to learn from. A video from DevCon 23 describes it both in vague and fantastically complex terms, but I'm confused how one is meant to learn how to use it.

Who is online

Users browsing this forum: No registered users and 59 guests