Skip to content

Commit

Permalink
Merge pull request #25 from hpsaturn/devel
Browse files Browse the repository at this point in the history
Devel
  • Loading branch information
hpsaturn authored May 1, 2024
2 parents 20b4a28 + 6bfed82 commit db64cc0
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 30 deletions.
70 changes: 42 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ The current version tested with the next cameras:

| Sender | Frame | JPGQ | FPS | Status |
|:-----------------|:-------:|:-----:|:------:|:------:|
| TTGO TJournal | QVGA | 12 | ~11 FPS | TESTING |
| TTGO TJournal | QVGA | 12 | ~11 FPS | STABLE |
| Freenove S3 | QVGA | 12 | ~10 FPS | STABLE |
| Freenove S3 | HVGA | 12 | ~6 FPS | STABLE |
| M5CoreS3 | QVGA | 12 | ~11 FPS | STABLE |
Expand Down Expand Up @@ -102,37 +102,55 @@ for now, it includes drivers for FreenoveS3, XIAOS3, and the TTGO T-Journal came
[![video demo](https://raw.githubusercontent.com/hpsaturn/esp32s3-cam/master/pictures/youtube.jpg)](https://youtu.be/nhLr7XEUdfU)
[[video]](https://youtu.be/nhLr7XEUdfU)

| ENV Name | Target | Status |
### Transmiter Camera samples

| ENV Name | Details | Frame| Status |
|:-----------------|:--------------:|:----------:|:----------:|
| freenove-basic-sender | PSRAM, 2FB, JPG | QVGA | STABLE |
| freenove-hvga-sender | PSRAM, 2FB, JPG | HVGA | <6 FPS |
| freenove-nojpg-sender | PSRAM, 2FB, NOJPG | QVGA | <2FPS |
| xiao-espnow-sender | PSRAM, 2FB, JPG | QVGA | STABLE |
| xiao-fpv-sender | POWER ON/OFF, PSRAM, 2FB, JPG | QVGA | STABLE |
| custom-camera-sender | Custom settings - optional PSRAM | QVGA | STABLE |
| tjournal-espnow-sender | NOPSRAM, 1FB, internal JPG | QVGA | STABLE |
| m5cores3-espnow-sender | PSRAM, 2FB, JPG built-in camera | QVGA | STABLE |
| | | | |

### Receivers samples

| ENV Name | Details | Status |
|:-----------------|:--------------:|:----------:|
| freenove-basic-sender | ESPNow camera transmitter (QVGA) | STABLE |
| freenove-hvga-sender | ESPNow camera transmitter (HVGA) | <6 FPS |
| freenove-nojpg-sender | ESPNow camera transmitter (NOJPG) | DEMO ONLY (<2FPS) |
| xiao-espnow-sender | ESPNow camera transmitter (QVGA) | STABLE |
| xiao-fpv-sender | Power ON/OFF improvement (QVGA) | STABLE |
| tjournal-espnow-sender | Camera without PSRAM (QVGA) | TESTING |
| freenove-tank | Advanced sample. Sender/Receiver | TESTING |
| m5core2-basic-receiver | Video receiver via ESPNow [1] | STABLE |
| m5core2-espnow-receiver | Video receiver via ESPNow [1] | STABLE |
| m5cores3-espnow-receiver | Video receiver via ESPNow [1] | STABLE|
| m5cores3-espnow-sender | ESPNow built-in camera transmitter | STABLE |
| m5stickCplus-joystick-tank | Advanced sample. Custom payload | TESTING |
| makerfabs-basic-receiver | Video receiver via ESPNow [2] | STABLE |
| makerfabs-nojpg-receiver | Video receiver via ESPNow [2] | DEMO ONLY (<2FPS) |

[1] Use with freenove or M5CoreS3 senders sample
[2] Use with freenove HVGA sender sample

### Install examples
| m5core2-basic-receiver | Video receiver [1] | STABLE |
| m5core2-espnow-receiver | Video receiver [1] | STABLE |
| m5cores3-espnow-receiver | Video receiver [1] | STABLE|
| makerfabs-basic-receiver | Video receiver [1] [2] | STABLE |
| makerfabs-nojpg-receiver | Video receiver [1] [2] | <2FPS |
| tft-3.5-basic-receiver | Any TFT display with LGFX [1] | STABLE |
| | | |

[1] Use with any sender sample
[2] Use with freenove HVGA sender sample for example.

### Advanced samples

| ENV Name | Details | Frame| Status |
|:-----------------|:--------------:|:----------:|:----------:|
| xiao-fpv-sender | POWER ON/OFF, PSRAM, 2FB, JPG | QVGA | STABLE |
| freenove-tank | sender and custom payload receiver | QVGA | TESTING |
| m5stickCplus-joystick-tank | custom payload - Telemetry | -- | TESTING |
| | | | |

## Running samples

For install and run these tests, first install [PlatformIO](http://platformio.org/) open source ecosystem for IoT development compatible with **Arduino** IDE and its command line tools (Windows, MacOs and Linux). Also, you may need to install [git](http://git-scm.com/) in your system.

For compile and install each sample, only choose one of them envs names in the table, and run the next command in the root of this project, like that:
For compile and install each sample, only choose one of them envs names in the table, and run the next command in the root of this project, like this:

```bash
pio run -e m5cores3-espnow-receiver --target upload
```

Some examples, only needs run `pio run --target upload` into each directory
Some examples, *.ino samples, only needs run `pio run --target upload` into each directory

## ESPNow Transmitter and Receiver

Expand All @@ -145,8 +163,6 @@ The last version has many improvements, and right now is very stable. For now, i

The **Freenove camera** sometimes needs good power cable and also takes some seconds to stabilization, that means, that not worries for initial video glitches.

The **XIAO camera** experiences thermal issues; after a few minutes, it may stop transmission and won't restart it until it's cooled down.

For **Arduino IDE users**, if you have a compiling error, maybe you forget install NanoPb library. Please see above.

This project was developed and thoroughly tested on PlatformIO. While I did compile and execute it successfully on Arduino IDE using Espressif 2.0.11 and Arduino IDE 2.2.1, with PSRAM enabled, I generally avoid using Arduino IDE due to its tendency to mix everything and its buggy nature. Therefore, **I highly recommend using PlatformIO** for a smoother and more reliable development experience.
Expand All @@ -162,7 +178,7 @@ This project was developed and thoroughly tested on PlatformIO. While I did comp

**Receivers:**

- [x] M5Core2 (AWS tested)
- [x] M5Core2 (tested on the AWS version)
- [x] M5CoreS3
- [x] Makerfabs Parallel using LGFX
- [x] TFT 3.5 and 2.5 " using LGFX (ILI9488/9486)
Expand All @@ -178,8 +194,6 @@ This project was developed and thoroughly tested on PlatformIO. While I did comp
- [ ] Add callback to Radio send action. issue #20
- [ ] Migration to esp_wifi_80211_tx() to improve Payload and Quality



## Credits

I want to extend my gratitude to @ElectroZeusTIC and @AcoranTf for testing it on Arduino IDE.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#include <ESPNowCam.h>
#include "S3_Parallel16_ili9488.h"
#include <LGFX_TFT_eSPI.hpp>
// #include "Utils.h"
#include "Utils.h"

ESPNowCam radio;
LGFX tft;
Expand All @@ -25,7 +25,7 @@ int32_t dw, dh;

void onDataReady(uint32_t lenght) {
tft.drawJpg(fb, lenght , 0, 0, dw, dh);
// printFPS("MF:");
printFPS("MF:");
}

void setup() {
Expand Down
2 changes: 2 additions & 0 deletions examples/makerfabs-basic-receiver/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ monitor_filters =
build_flags =
-D CORE_DEBUG_LEVEL=0
-D BOARD_HAS_PSRAM=1
-DARDUINO_USB_CDC_ON_BOOT=1
-DARDUINO_USB_MODE=1

[esp32common]
extends = env
Expand Down

0 comments on commit db64cc0

Please sign in to comment.