// Bring-up sanity check ONLY - confirms the board is alive and PSRAM is detected
// before moving on to the camera example. This does NOT touch the camera at all,
// so it has no board-specific pin numbers to get wrong.
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("=== ESP32-S3 Camera Board Bring-Up ===");
Serial.print("Chip model: ");
Serial.println(ESP.getChipModel());
Serial.print("Chip revision: ");
Serial.println(ESP.getChipRevision());
Serial.print("CPU frequency (MHz): ");
Serial.println(getCpuFrequencyMhz());
Serial.print("PSRAM size (bytes): ");
Serial.println(ESP.getPsramSize());
Serial.print("Free heap (bytes): ");
Serial.println(ESP.getFreeHeap());
if (ESP.getPsramSize() == 0) {
Serial.println("WARNING: No PSRAM detected - the camera example needs PSRAM enabled.");
Serial.println("Check Tools > PSRAM is set to 'OPI PSRAM' (or your board's PSRAM option) in Arduino IDE.");
}
}
void loop() {
// Nothing to do here - this sketch is just a bring-up check.
}
/*
* NEXT STEP - loading the real camera example (do this instead of guessing pins):
* 1. In Arduino IDE: File > Examples > ESP32 > Camera > CameraWebServer
* (this ships with the Arduino-ESP32 core and already contains correct
* camera_pins.h definitions for known board models).
* 2. In the sketch, find the block of "#define CAMERA_MODEL_..." lines near the
* top and uncomment the one matching your Freenove board (check Freenove's
* own product page/wiki for the exact model name - if none match exactly,
* use Freenove's own official example sketch instead, which ships with the
* correct camera_pins.h for their board).
* 3. Enter your WiFi credentials, set PSRAM enabled in Tools, and upload.
* 4. Open Serial Monitor at 115200 baud to get the board's IP address, then
* visit it in a browser to confirm the camera stream works.
*/