Spectral ESP

ESP32 / Micropython based wireless spectrometer

Public Chat
Similar projects worth following
ESP32 / micropython based wireless spectrometer

Creating a wireless, battery powered AS7265X spectrometer probe using ESP32-WROVER and Micropython 1.12 for the hardware and Python 3.8 on the workstation client side. I've had a direct wired ( serial over USB ) probe for some time - but found cable length a problem as well as placement. Using an external antenna - the ESP32-WROVER provides a solid connection for the client.

I'm only testing on OSX 10.15.6 with Python 3.8.5, so YMMV.

The code is working just fine so far :) Since I'm using a ESP32-WROVER - I have about 6MB of space for Micropython and plenty of SPIRAM to add features and functions.

I've been wanting to go wireless on this sensor for quite awhile and it seemed like a good way to explore Micropython on the ESP32.  

For the battery supply, I used a Adafruit PowerBoost 500 to get a +5V on the ESP module from a single 18650 cell.

There are two components - the sensor "pod" hardware + firmware and the python client that creates the visualization of detected spectrum on a workstation with a display.

This is just the first prototype for the code and hardware. I expect to continue development until I am distracted by yet another shiny object - but that may take a while because this one is rather shiny.  It might be fun to have collaboration, so join early if you are interested in applying the AS7265X sensors. 

The company that makes the sensor devices has a compelling demonstration for analysis use cases: Tricorder demo


ESP32-DevKitC pinout

Portable Network Graphics (PNG) - 394.10 kB - 08/30/2020 at 05:37


  • Adding a battery gauge

    CarbonCycle11/19/2020 at 00:10 0 comments

    Adding a LC709203FQ1 battery gauge.  Code to follow.

  • Version 0.5

    CarbonCycle09/18/2020 at 03:33 0 comments

    This version works well enough, but turns on the LEDs for every sample.  My typical use case is measuring light sources so I want to be able to request samples that do not enable the onboard LED sources.

  • Managing power use

    CarbonCycle08/30/2020 at 05:05 0 comments

    While I wait for the battery to charge - I'm thinking about how to make it last a bit longer.   To keep my end simple, I used a Adafruit PowerBoost board.  This also allows low battery detection and shutoff ( Not yet wired or coded ).  I can see the typical consumption runs about 50 milliamps without sleeping - but that doubles on a sample send.  

    Feature ideas:

    1.   Add sleep mode while awaiting a GET.

    2.  Add low-batt detection and shutdown.

    3.  Add charging circuit.

View all 3 project logs

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

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