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

Microprocessor Minimum Requirements #71

Open
sk8board opened this issue Mar 17, 2024 · 5 comments
Open

Microprocessor Minimum Requirements #71

sk8board opened this issue Mar 17, 2024 · 5 comments

Comments

@sk8board
Copy link

I noticed the documentation for this project does not list a minimum requirement for the micro. Would you know the minimum processor speed, RAM, ROM, and flash size for this project?

For example, will any version of ESP8266 or ESP32 or Pi Pico work?

https://www.espboards.dev/blog/esp32-soc-options/#esp32-versions-comparison

https://www.waveshare.com/wiki/RP2040-Zero#Specification

@rengels
Copy link

rengels commented Mar 18, 2024

The SW uses the dual core of the ESP32 and both cores are fairly maxed out.
Regarding the Flash I think we are at 60% usage.
The only viable option without many SW changes might be ESP32S3.

The SW isn't optimized at all, so you might be able to change it. But would need to invest a lot of time.

If I were you, I would just just the same HW that everyone else uses.

@sk8board
Copy link
Author

Thank you for your response.

The problem that I have with the ESP32-WROOM and most other ESP boards is the size is too big for many WPL size models. For example, you have done good work with your PCB design, but the main component for your PCB is the large ESP32-WROOM, which makes your PCB too big for most WPL models.

The Raspberry Pi RP2040 micro is dual core, but only 2MB of flash, but can be found in 23mm x 18mm size, as shown in this link. Would 2MB of flash be too small?

https://www.waveshare.com/wiki/RP2040-Zero#Specification

I have made this project that uses the RP2040 with an Express LRS (ELRS) receiver to make a custom ELRS PWM receiver.

https://github.com/sk8board/CRServoF_ELRS_for_RP2040_Pico

I was considering to add ELRS to your project, but I noticed some of your code is specific to FlySky transmitters. Would it be painfully difficult to use your code with an ELRS transmitter and receiver?

@rengels
Copy link

rengels commented Mar 19, 2024

I understand your problem now.

While playing audio does not need a lot of processing power, the Rc_Engine project does a lot of computation and mixing of sounds.
That pretty much uses up the 200MHz core at higher RPMs (the interrupt get's triggered more often at higher RPMs).

I am sure you can create a small, stripped down version of an engine sound generator on a much smaller CPU.
You would need a digital-to-analog converter though.

The Raspberry is powerfull enough for this, there is however one big downside.
You will need to implement this yourself.

So this discussion is pretty much theoretical, unless you manage to set up a project on your own. The code of the Rc_Engine_Sound project is not portable at all.

@sk8board
Copy link
Author

Thank you for your response.

Based on your input, I decided to look for the smallest ESP32 and found the TinyPico Nano has the same specs as the ESP32-WROOM that you used. I designed a preliminary PCB to determine package size which includes an Express LRS (ELRS) receiver, 3A DC-DC power supply, Brushed ESC, and LED driver (58x38mm). The audio amplifier would need to be a separate board due to limited space on smaller WPL models. Changing to surface mound components would reduce size even more.

https://oshwlab.com/sk8board/esp32-elrs-receiver

I am looking at my options and would like to understand the challenges of adding Express LRS (ELRS) to your project. I was surprised to see some of your code is specific to FlySky transmitters. Is your code deeply connected to a FlySky transmitter? Would it be painfully difficult to add an ELRS transmitter and receiver to your code?

@rengels
Copy link

rengels commented Mar 19, 2024

Hi,
great that you found a nice HW.
The code is not specific to any transmitter. You can add your own stuff.

However, let me just repeat a part of my last message:

So this discussion is pretty much theoretical, unless you manage to set up a project on your own. The code of the Rc_Engine_Sound project is not portable at all.

You would need someone with good experience in C and embedded programming.
I would also estimate the necessary time to port the code to another architecture and rip out the unnecessary parts at 80 hours.

It's probably easier to start from scratch and just copy the audio conversion tools and some of the samples.

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