Close
0%
0%

Ramanova

Handheld spectroscope. Currently working towards spectrometry, self-calibration, Raman spectroscopy, fluoroscopy.

Public Chat
Similar projects worth following
In its current embodiment this project is a handheld spectroscope. This project started out as a prototype of a Raman spectrometer for the business card contest, but the timeline was blown due to needing additional 532nm band stop filters. The original device would have been a pocket-scale Raman spectrometer, if it worked. Most recently the Raman side of the project was derailed by an apparent failure of the C12880MA mini spectroscope component. The project was restarted with constructing a camera spectroscope.

Features:
* ESP32-S3 (Seeed Studio ESP32S3 Sense)
* OV2640 camera+spectroscope
* 2.8" TFT with capacitive touch screen
* DS3231 RTC
* LiPo power
* Gesture recognition

With the addition of manual calibration this spectroscope is now capable of spectrometry.

So far the project can do/has the following:

  • 320x240 screen w/ capacitive touch
  • Realtime clock
  • LiPO battery
  • Internal uSD card
  • Persistent device settings
  • Camera feed of the spectroscope output
  • Manual calibration of the spectroscope: spectrometer
  • Profile view of the spectrum
  • Waterfall view of the spectrum
  • Screen capture support
  • WiFi connectivity for mini web server

  • 1 × SeeedStudio ESP32S3-Sense Has most of what you need for a range of projects, including LiPo battery support and camera support
  • 1 × Pocket spectroscope Pocket-sized diffraction spectroscope, probably originally purchased off Aliexpress

  • Graticules and system menu

    derek watson08/31/2025 at 18:03 0 comments

    With the addition of calibration it is possible to have a graticule, and now those have been added to 3 views.  A crude level of image processing has been added to help merge images and metrics together.  A proper system menu now exists,  You can now set the the time and date.  A change has been implemented to better handle power-off detection for the RTC.  Added the concept of a "UICard" to combine screen-to-screen navigation and other facilities in a common base class, reducing code.  "close" function for the views seems to work stably, providing another means to reduce code requirements a little.

    I had a nice little exchange with Mattias Koch on calibration, and I appreciate the suggestion of using neon lamps as a calibration source -- this saves me the trouble of figuring this out on my own.  He also has a CCC presentation on Raman spectroscopy with a particular focus on chlorophyl fluorescence.  

    I am projecting there will be near-term work towards neon-based self-calibration, peak detection & labelling, and adding SMA-905 connections.  SMA-905 is like your typical SMA connector, except it is for optical connections.  SMA-905 connections will offer a modular approach to allow reconfiguration for different kinds of analysis while mitigating bulk.

  • Spectrometry (calibrated spectroscope)

    derek watson08/25/2025 at 00:04 0 comments

    Many pieces of UI later we now have the ability for the user to manually calibrate the spectroscope.  Calibration was performed with  LEDs, the spectroscope, and a DVM.  The voltage across the LEDs provides an approximate value for the energy of the generated photons.  Converting from volts of nm of wavelength provides the ability to perform a basic level of calibration.  The calibration process deserves a separate writeup given the UI-intensive nature of this feature.

  • WiFi changes posted

    derek watson08/11/2025 at 22:10 0 comments

    Code changes have been posted for Waterfall View, WiFi connectivity and WiFi configurability.  Many little changes behind the scenes are settings things up for easier UI additions.  No pictures this time as the UI added over the past week is serviceable, but boring.

  • Waterfall Display, web server

    derek watson07/30/2025 at 19:01 0 comments

    Added a waterfall view of the spectrum data.  This image is the morning light coming in through the window as I move the device around.  Writing these different image views is getting easier as the framework layers (system/UI/application) develop and mature.  The screen shot is captured by doing a long press on the screen.  Original attempts to save images to SD cards ran into some issues, resulting in two bricked uSD cards.  The ESP32 sample code for a web server allowing file access went in fairly easily.  I can now not only capture screen shots, but also access them from a web browser.  Since that last round of code went in via an ad hoc fashion there is a bit of code re-work to be performed, and UI needs to be added to allow configurability of the network settings.  I did find out the hard way SSID is case sensitive, which feels like a potential security vulnerability as that leaves open avenues for spoofing and confusion.

    After this round of changes I may pivot towards calibration configurability so the spectroscope can graduate into being a spectrometer.

  • Touchscreen calibration; settings persistence

    derek watson07/23/2025 at 17:20 0 comments

    Added a touchscreen calibration tool - now it is much nicer to use the UI.  Settings persistence has been added via ArduinoJson.  For some reason calls to vector<T>::resize was resulting in heap corruption, or so it appeared.  Code repo has been sync'ed up.  I think it would be nice to add functionality for screen captures since the camera shots seem rather inadequate and fiddly.  Time to review the wandering list of requirements and decide what items to work on that will be most impactful over the next week+.

  • Implemented substream configuration tool

    derek watson07/15/2025 at 22:07 0 comments

    Added a tool to configure which portion of the camera feed to pull the spectrum image from.  The spectrum is sampled from the horizontal center line (not depicted).  This bit of functionality took longer than expected due to running into some heap corruption issues.  Non-obvious is the impact on the framework code underlying the application.  So far there is no serialization for the settings, hopefully this will change soon enough.  The current code has been committed to github

View all 6 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates