Skip to content

Add ND1000 open science project backend support - #1166

Open
Jordvl wants to merge 8 commits into
PyLabRobot:mainfrom
Jordvl:add-nd1000-support
Open

Add ND1000 open science project backend support#1166
Jordvl wants to merge 8 commits into
PyLabRobot:mainfrom
Jordvl:add-nd1000-support

Conversation

@Jordvl

@Jordvl Jordvl commented Jul 17, 2026

Copy link
Copy Markdown

Sorry for no earlier notice, I was busy with thesis and internship while I had this project. FYI, hello I'm Jord and I worked on a small opensource science project under Wageningen University with Vittorio and Vincent if those names ring a bell. Ive quietly been working on this project a bit to make the nanodrop 1000 (legacy protein measurement device) available on windows 10 and above. Although some hacks exist to get it working already, having an open source library and reverse engineering the code will be helpful to realizing a fully open source lab environment. I know the files are not completely where they belong, it took a while before I figured out most things about Git! As of now the code was changed to fit PLR v1b1 from my own writing style, so I have not yet been able to test this version. If nothing broke this code should be able to send commands to the ND1000 (if setup properly) and turn on the clamp, lamp and spectrometer to request data. It should also be able to decode the data into a proper spectrum, but I will do more tests and updates on this later, this just had to be pushed this weekend as both Vincent and Vittorio will be on holiday soon ;)

@rickwierenga
rickwierenga force-pushed the v1b1 branch 2 times, most recently from 6af085c to 1ae9dc6 Compare August 1, 2026 20:32
@rickwierenga
rickwierenga changed the base branch from v1b1 to main August 16, 2026 05:41
@rickwierenga

Copy link
Copy Markdown
Member
  • Changed the NanoDrop 1000 transport from direct PyUSB calls to PyLabRobot’s USB layer.
  • Added alternate read-endpoint support to USB and USBValidator.
  • Added USB endpoint draining for the communication and spectrum endpoints.
  • Simplified the original driver, capability, and device split into one NanoDrop class.
  • Changed spectrum and absorbance calculations from NumPy arrays to Python lists and math to remove numpy dependency.
  • Changed setup and shutdown to use PLR’s asynchronous USB lifecycle and logging.
  • Moved the implementation into a dedicated thermo_fisher/nanodrop_1000 package.
  • Changed wavelength calculation to return wavelengths on demand instead of storing them.
  • Added the setup guide, hello-world notebook, documentation index, and Thermo Fisher index entry.
  • Added the NanoDrop 1000 device card and devices.json entry.
  • Moved the old setup-guide location and removed bosdescriptor.reg.

@Jordvl could you please confirm the tutorial and driver work for you?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants