Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beginner, Requesting help in porting to ESP32 WROOM #179

Open
KrishnaAswin opened this issue Jan 18, 2025 · 5 comments
Open

Beginner, Requesting help in porting to ESP32 WROOM #179

KrishnaAswin opened this issue Jan 18, 2025 · 5 comments

Comments

@KrishnaAswin
Copy link

Hi,

I am trying to port the project to an ESP32 WROOM (4 MB flash, 520 KB SRAM). The hardware components I plan to use are:

  • TFT ILI9341 (2.8") display with an SD card reader
  • Tactile buttons for controls
  • 5V power source
  • No audio functionality planned

I have already set up the environment as per BUILDING.md, cloned the repository, and verified the environment by creating a .img file for the esp32s3-devkit. The next step, as I understand it, is to modify the configuration and other files. I have a few questions:

  • Is it possible to port this project to the ESP32 WROOM?
  • If it is possible, where should I start?
  • What changes do I need to make?
  • I am planning to follow the Odroid-Go schematics with minor modifications. Am I on the right track?

I am a beginner, so any advice, recommendations, or instructions would be greatly appreciated.
(Forgot to mention: I am new to GitHub and unsure if the Issues section is the right place to ask for help. I apologize if this violates any community guidelines.)

Thank you!

@rapha-tech
Copy link

rapha-tech commented Jan 18, 2025

Hi,
I have personnaly made my own retro-go compatible "console" so here are some advices I can tell you

1°) I think it should be easier to directly go with the ESP32 wrover or ESP32-S3 with at least 2MB of PSRAM. I don't think it would be possible to adapt the firmware to only use 520KB of RAM or it would probably be very uncompatible and very very difficult.
2°) Odroid-go schematic is a very nice start ! I personnaly copied some parts of it ;)
3°) For the screen I would recommend you to go with an "ST7789" IPS screen, TFT ILI9341 visual quality isn't the best and if you can find an 2.8" IPS with ST7789 it would be compatible with retro-go since some people already wrote some code for it !

Anyway, good luck for your port !

@KrishnaAswin
Copy link
Author

Hi, I have personnaly made my own retro-go compatible "console" so here are some advices I can tell you

1°) I think it should be easier to directly go with the ESP32 wrover or ESP32-S3 with at least 2MB of PSRAM. I don't think it would be possible to adapt the firmware to only use 520KB of RAM or it would probably be very uncompatible and very very difficult. 2°) Odroid-go schematic is a very nice start ! I personnaly copied some parts of it ;) 3°) For the screen I would recommend you to go with an "ST7789" IPS screen, TFT ILI9341 visual quality isn't the best and if you can find an 2.8" IPS with ST7789 it would be compatible with retro-go since some people already wrote some code for it !

Anyway, good luck for your port !

Thanks @raphatex ,
But my goal is to make this work with the parts that I already have.

@rapha-tech
Copy link

rapha-tech commented Jan 19, 2025

Alright, so here are some recomendations to at least get it to boot:

  • start from odroid-go target and modify the pinout to correspond to yours
  • then do a build of the launcher
  • then go cd into your launcher folder
  • type the command "idf.py menuconfig"
  • on this menu find the flash size and modify it from 16mb to 4mb
  • also find the settings for the external ram and disable it
  • now exit with escape and save (y)
  • you fill find a new sdkconfig file in your launcher folder, copy it to the target folder (odroid-go)
  • delete the build folder inside the launcher folder
  • and you can build retro-go again ! (Don't forget to cd back into retro-go
  • you can't put all the apps on 4mb so for example you can drop Genesis or msx

@KrishnaAswin
Copy link
Author

@raphatex, thank you for the detailed instructions!

I have a couple of additional questions:

  • Would removing the audio from the firmware help make the build lighter?
  • Are there any other modifications you’d recommend to optimize the system for my hardware constraints?

I do have a few more questions in mind, but I think it’s best to address them after I’ve implemented your suggestions. I’ll follow up with an update soon. Once again, Thank you for all the recommendations!

@rapha-tech
Copy link

rapha-tech commented Jan 19, 2025

Yes of course disabling audio can free up some space but more importantly ram !
You can also disable networking at build time I think

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants