Maker Chris Hackett, of Zoid Technology, has demonstrated how to dramatically improve the functionality of a $150 spectrometer — without having to spend a penny more.
“Priced at under $150, it claims a measurement range of 340 to 1,000nm, a resolution of 7nm, and an accuracy of 1nm,” Hackett explains of the Torch Bearer spectrometer which is the focus of his work. “But, most importantly for me, it returns data in absolute units, with an advertised illumination accuracy of just four percent.”
With professional-grade devices costing upwards of a thousand dollars, Hackett was keen to put the Torch Bearer gadget to the test — but ran into some early difficulties. First, its USB cable was actually a USB to TTL serial cable; second, the company’s software proved limiting with a fixed window size and only basic functionality. Worse, while the spectrometer might output absolute units they’re not easy to get out of the software in any format but PDF.
The solution: ditching the manufacturer’s software in favor of some homebrew Python. “Torch Bearer provides protocol documentation for some of their other models,” Hackett explains, “[and] while my model had several differences, it was close enough to put together a simple Python library and extract some data.”
A little hacking with the Android app delivered a way to unlock more advanced features — including absolute spectral data. (📷: Zoid Technology)
That pulled data samples out with a 16-bit resolution, lower than the advertised 20 bits, but the spectrum data itself remained inaccessibly encrypted. For this, Hackett turned to the company’s Android app — disassembling and patching the software to unlock features normally reserved for high-end models in the company’s spectrometer line-up, including CSV export, and to figure out the encryption scheme to unlock the spectral data.
Hackett’s project is detailed in full in the video above and on the Zoid Technology YouTube channel; the software has been released on GitHub under the reciprocal GNU General Public License 3.