YOU CAN BUILD A LASER SCANNING MICROSCOPE FROM A DEAD BLU-RAY PLAYER
The optical unit inside a dead Blu-ray player already has a blue laser, a voice-coil lens and photodiodes — everything you need to scan a sample point by point and build an image.
by Doctor Volt
ScienceOpen-hardware
Built withESP32ESP8266Arduino3D printing
- difficulty
- ●●●●○
- time
- a weekend-plus
- license
- GPL-3.0
- repo
- repo ACTIVE146 stars
●●●●○ · a weekend-plus · GPL-3.0 · 146 stars · repo ACTIVE
WHAT YOU’LL NEED
Jump to section
COMPAREE VERDICT
This is a real scanning microscope built from a real Blu-ray optical pickup. The idea is elegant: the pickup already contains a blue-violet 405 nm laser, a focusing lens on voice coils and photodiodes, so the coils sweep the laser across each line while one stepper motor pulls the sample sled, an ESP32 digitizes the reflected light, and a browser page builds the image. You choose 120x120, 240x240, 480x480 or 960x960 dots; the author's 960x960 scan of a 0.9 mm area took about 20 minutes, and his test pattern with lines 10 micrometres apart came out clearly. He calls the theoretical limit 937.5 nanometres per dot and is honest that good optical microscopes do better. Everything is published under GPL-3.0: STL files, a KiCad schematic, firmware and the web UI. The single thing most likely to go wrong is sourcing the pickup: the creator salvaged a BDP-10G from a Samsung BD-J5900 that is no longer made, and links a source for the pickup in the video description, but availability varies. The firmware only compiles against ESP32 Arduino core 2.x, which is an immediate trap if you are using the latest toolchain. If you want to see microscopy at this scale and you are comfortable with schematics and fine adjustment, this is a weekend well spent.
IN THE REPO
GOOD TO KNOW
- —3D-printable frame files, KiCad schematics, ESP32 firmware and a browser-based scan interface are all in the repository.
- —The pickup is a BDP-10G, salvaged by the creator from a Samsung BD-J5900 Blu-ray player.
- —The firmware only compiles against ESP32 Arduino core 2.x, not 3.x.
- —The key parts (Joy-It NodeMCU ESP32, BDP-10G pickup, 40-pin FFC adapter) are linked in the part-3 video description; the rest comes from the KiCad schematic.
- —GPL-3.0 licence; permits commercial use but requires derivative work to also be open.
- —The author gives a theoretical resolution of 937.5 nanometres per dot at 960x960; no formal calibration procedure is provided.
Parts to buy
6 itemsFrom our check of the build. Exact quantities and part numbers are in the creator’s BOM.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Videos
DIY Laser Scanning Microscope from Blu-ray Player #3: Increasing the Resolution
Part 3 of the creator's series: building the improved 3D-printed version, electronics, web interface, adjustments and test scans. Part 1 shows the Blu-ray player being dismantled.
More builds like this
All projectsGallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Read the README and watch the video (The pickup is a BDP-10G, the unit inside the Samsung BD-J5900 player the creator salvaged.)
- 2.Source the optical pickup(BDP-10G — the creator links a source in the part-3 video description, or salvage one from a Samsung BD-J5900.)
- 3.Install ESP32 Arduino core 2.x(Version 3.x will not compile the firmware.)
- 4.Print the frame and mounts(STL files are in the cad folder.)
- 5.Assemble electronics and flash firmware(Follow the schematics and firmware instructions in the repository.)
Resources
Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.
KNOWN ISSUES
- The optical pickup is not a standard hobby part. The creator salvaged a BDP-10G from a Samsung BD-J5900 (no longer made); a purchase link for the BDP-10G is in the part-3 video description, but stock comes and goes, so check availability before you print anything.
- The firmware only compiles with ESP32 Arduino core 2.x. If you have 3.x installed, it will fail immediately.
- Resolution is a theoretical figure from the author (937.5 nanometres per dot at 960x960), checked only against a line pattern, not a calibration standard. Your results may differ.
- Scans are slow: a 960x960 image is over 900,000 points and took the author about 20 minutes. This is not real-time imaging.
- No formal documentation on pickup compatibility. If you buy the wrong one, the pinout or coil resistance may not match.
- The 405 nm laser is a real eye hazard and the pickup is not enclosed. The README has you look through the lens from above to position the sample - turn the laser power down first and never look into the beam at full power.
Can I use a different Blu-ray pickup?
Maybe. The repository does not list compatible models or explain what to check. If you buy a different one, you will need to reverse-engineer the pinout and verify the coil resistance yourself.
What is the actual resolution?
At the 960x960 setting over a 0.9 mm field, each dot is 937.5 nanometres - that is the author's theoretical figure. In his test, lines 10 micrometres apart were clearly separated. There is no formal calibration procedure, and he notes good optical microscopes reach about 200 nanometres.
Why does the firmware not compile?
It only works with ESP32 Arduino core 2.x. If you have 3.x installed, downgrade before you start.
How long does one scan take?
It depends on the mode: 120x120 is a quick positioning scan, a good 480x480 image takes around 5 minutes, and the author's 960x960 scan took about 20 minutes. The browser interface shows it building in real time.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion1
FROM THE COMPAREE TEAM
The microscope builds each image point by point from a repurposed Blu-ray laser, and the README shows onion cells as a first result. What would you scan first?
Doctor Volt
Doctor Volt publishes open hardware and retro-computing electronics projects on GitHub and YouTube. The Blu-ray microscope is a three-part video series, shared under GPL-3.0.
DISCLAIMER
- Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
- Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
- Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.
CompareeTEAM1mo agoedited
Practical notes from our verification: the repository contains STL files in the cad folder, a KiCad schematic, the ESP32 firmware and a browser UI. The pickup is the BDP-10G, salvaged from a Samsung BD-J5900 player, which is the same unit the README shows, so there is no version mismatch to worry about. The special parts (ESP32 board, BDP-10G pickup, FFC adapter) are listed with links in the build video description rather than in the repo. Only one stepper motor with an STSPIN220 driver moves the sample sled; the other axis is the pickup's own voice coils. The firmware only compiles with ESP32 Arduino core 2.x, not 3.x, which will catch anyone using a recent install. Take the time to do the calibration steps in the README, and start with low-resolution trial scans before going for detail. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.