New to ESP32. Which one should I buy for my specified needs?
Posted: Tue Nov 27, 2018 2:17 am
Hello.
I've been programming AVR XMEGA and AVR MEGA microcontrollers, but I didn't like some things about them. I've always wanted to make my own alternative to a Sony Ericsson K510i/C510/2705 phone which would have things like a file manager, music player, paint program, programmable apps, etc.. This has been such a childhood dream that I even have drawings of that since 2010. Throughout my learning about computers, I've learned C/C++, AVR assembly, 6502 assembly for NES homebrew game development, Multimedia Fusion-like tools, Game Maker Language (GML), but I've really wanted to make my own full thing.
So now I found out about this ESP32 microcontroller that could help me with learning how to make new things. Unfortunately, my first experience with one has been when I bought one from eBay and it would heat up really fast. The datasheet said it shouldn't be so, but maybe this happened because it could be a clone. I would like to see where I can order a board with these capabilities:
- ESP32 should have 2 CPU cores with modifiable CPU microcode where I could insert things like matrix operations and logarithmic color mixing for 3D graphics rendering
- ESP32 should have internal 2MB of Embedded Flash. If I read correctly, there's one version which has this feature. I hope that these 2 megabytes are mounted directly onto the ESP32 CPU's address space for access via my program(s) without latency as with the serial flash so that my program doesn't have to load itself into RAM and so that I don't have to use that pesky PROGMEM and other nonsense that I had to lose my nerves and nights over in highschool when making my final project on AVR XMEGA.
- Huge emphasis on DMA channel number speed as well as 80MHz of SPI speed for a 320x240 TFT display for sending pictures at 60fps (I won't use a framebuffer, but scanline buffers to decrease memory usage and instead render graphics just like how retro consoles did it: GBA's nametable layers, NES's sprites, SNES's HDMA, 2D vector graphics from OAM memory as PS1 did with Spyro 2)
- There should be at least 4MB of external flash and at least 4MB of external RAM on board
- I would like to do memory management with caching things myself. I've read that things can be pushed out of the normal memory and into the external RAM, but my project needs to be truly real-time and I would like to gain full control over the memory management even if I have to learn about it rather than struggle for 6 months learning something only to find that a key feature which I assumed to be available doesn't exist (like putting a breakpoint into an AVR without JTAG, but via USART console shell).
- All pins need to be available for me to use and labeled so that I know which one is which
- SD card and headphones/microphone/headset jack need to be present (example: https://www.aliexpress.com/item/MP3-Bre ... 87637.html )
- USB type C connector with a LiPo battery and a charging circuit along with a USART interface with the ESP32 microcontroller. If there's an USB microcontroller that could help me use my board for USB Mass Storage, that could be awesome as it was with Sony Ericsson phones
- If a screen is available, it should be a 320x240 16-bit and 24-bit color TFT running at max 60FPS and with an adjustable manual refresh rate and 80MHz SPI transfer rate over DMA.
I'm sorry if this seems to be too broad, but I'm unable to find the correct components and I don't want to buy cheap clones, but the real thing at the price around $50-$100 (including shipping and taxes) to Croatia.
Thank you for your help.
RetroZvoc
I've been programming AVR XMEGA and AVR MEGA microcontrollers, but I didn't like some things about them. I've always wanted to make my own alternative to a Sony Ericsson K510i/C510/2705 phone which would have things like a file manager, music player, paint program, programmable apps, etc.. This has been such a childhood dream that I even have drawings of that since 2010. Throughout my learning about computers, I've learned C/C++, AVR assembly, 6502 assembly for NES homebrew game development, Multimedia Fusion-like tools, Game Maker Language (GML), but I've really wanted to make my own full thing.
So now I found out about this ESP32 microcontroller that could help me with learning how to make new things. Unfortunately, my first experience with one has been when I bought one from eBay and it would heat up really fast. The datasheet said it shouldn't be so, but maybe this happened because it could be a clone. I would like to see where I can order a board with these capabilities:
- ESP32 should have 2 CPU cores with modifiable CPU microcode where I could insert things like matrix operations and logarithmic color mixing for 3D graphics rendering
- ESP32 should have internal 2MB of Embedded Flash. If I read correctly, there's one version which has this feature. I hope that these 2 megabytes are mounted directly onto the ESP32 CPU's address space for access via my program(s) without latency as with the serial flash so that my program doesn't have to load itself into RAM and so that I don't have to use that pesky PROGMEM and other nonsense that I had to lose my nerves and nights over in highschool when making my final project on AVR XMEGA.
- Huge emphasis on DMA channel number speed as well as 80MHz of SPI speed for a 320x240 TFT display for sending pictures at 60fps (I won't use a framebuffer, but scanline buffers to decrease memory usage and instead render graphics just like how retro consoles did it: GBA's nametable layers, NES's sprites, SNES's HDMA, 2D vector graphics from OAM memory as PS1 did with Spyro 2)
- There should be at least 4MB of external flash and at least 4MB of external RAM on board
- I would like to do memory management with caching things myself. I've read that things can be pushed out of the normal memory and into the external RAM, but my project needs to be truly real-time and I would like to gain full control over the memory management even if I have to learn about it rather than struggle for 6 months learning something only to find that a key feature which I assumed to be available doesn't exist (like putting a breakpoint into an AVR without JTAG, but via USART console shell).
- All pins need to be available for me to use and labeled so that I know which one is which
- SD card and headphones/microphone/headset jack need to be present (example: https://www.aliexpress.com/item/MP3-Bre ... 87637.html )
- USB type C connector with a LiPo battery and a charging circuit along with a USART interface with the ESP32 microcontroller. If there's an USB microcontroller that could help me use my board for USB Mass Storage, that could be awesome as it was with Sony Ericsson phones
- If a screen is available, it should be a 320x240 16-bit and 24-bit color TFT running at max 60FPS and with an adjustable manual refresh rate and 80MHz SPI transfer rate over DMA.
I'm sorry if this seems to be too broad, but I'm unable to find the correct components and I don't want to buy cheap clones, but the real thing at the price around $50-$100 (including shipping and taxes) to Croatia.
Thank you for your help.
RetroZvoc