Embedded signal-processing prototype with ESP32 firmware, a React Native companion app, PCB design files, and enclosure/CAD assets.
CapstoneProject brings together embedded firmware, mobile UI work, and hardware design files for a capstone prototype. The ESP32 code samples signal data, runs FFT analysis, stores result output on an SD card, serves a small local web flow, and controls a DFPlayer Mini module. The React Native app mirrors the user-input flow with screens for profile details and result viewing.
- ESP32 access-point web server with form submission and results routes.
- FFT processing pipeline using a local
ESP_fftimplementation and a 2048-sample signal buffer. - SD card read/write flow for storing submitted names and FFT result output.
- DFPlayer Mini integration for audio playback from embedded firmware.
- React Native mobile app with Home, Details, and Results screens.
- Hardware artifacts including Eagle board/schematic files, SolidWorks parts, and a parts list.
Screenshots and hardware photos are not included yet. Add images here when available:
| Firmware / Hardware | Mobile App |
|---|---|
docs/hardware-demo.png |
docs/mobile-demo.png |
- Embedded: ESP32, Arduino/C++, SPI, SD, ESPAsyncWebServer
- Signal processing: FFT over sampled signal data
- Audio: DFRobot DFPlayer Mini
- Mobile: React Native, React Navigation
- Hardware design: Eagle board/schematic files, SolidWorks part files
.
├── ESP32/ # ESP32 firmware, FFT helper, and sample signal data
├── mobileApp/ # React Native companion app
└── Others/ # PCB, schematic, CAD, and parts-list assets
- Install the Arduino IDE or PlatformIO with ESP32 board support.
- Install the firmware dependencies used in
ESP32/fullcode.ino, including SD/SPI support, ESPAsyncWebServer, SoftwareSerial, and DFRobotDFPlayerMini. - Open
ESP32/fullcode.ino. - Connect the ESP32 and required SD/DFPlayer hardware.
- Build and upload the sketch.
cd mobileApp
npm install
npm startIn a second terminal, run the target platform:
npm run android
# or
npm run ios- Power the ESP32 prototype and connect to the local access point configured in
ESP32/fullcode.ino. - Open the served form, enter the available profile fields, and submit.
- Use the results route to read the generated FFT output from the SD card.
- Run the React Native app to test the companion mobile flow.
- Coordinating firmware, storage, web serving, audio playback, and mobile UI requires clear boundaries between hardware control and user-facing flows.
- Embedded prototypes benefit from simple, inspectable data paths such as SD-card output while the signal-processing flow is still being validated.
- Keeping hardware assets, firmware, and mobile code in one repository makes capstone review easier, but good documentation is essential so each layer is understandable on its own.
Built by Kanav Gupta. For questions or collaboration, reach out through GitHub.