parametrek
Enlightened
- Joined
- Apr 3, 2013
- Messages
- 578
The other month I came across something that sounded too good to be true: the Benetech GM1020. $20 Chinese luxmeters are nothing new, but meters that can log are usually ten times as expensive.
At $20-$30 a pop you can pick up a spare or two. What does a flashlight reviewer need spare meters for? Those low modes that keep going for days or weeks. Now you can run those tests without tying up the main meter.
As I feared, the software it came with was both Windows-only and completely terrible. With a few days of prodding I reverse engineered the communication protocol and wrote a cross-platform python script.
Here is Benetech's page for the GM1020: http://www.benetechco.com/en/products/digital-lux-meter-gm1020.html
The script is hosted on github at https://github.com/parametrek/gm1020
Some observations on the hardware:
The specs and build quality are on par with any other $20 meter.
It will draw power from USB, giving it unlimited runtime. Current consumption over USB is next to nothing. Under 10mA for normal operation. Sending a USB command wakes up the Prolific chip and the power draw will jump to 70mA. Closing the serial connection does not reset this. Thankfully unplugging and replugging the USB will, which will happen anyway if you move the meter from your computer to a powerbank. Looking at the datasheet it might be possible to add a jumper and a pushbutton to make it go back to sleep. But the datasheet also says it shouldn't draw more than 25mA and that closing the COM port should automatically suspend the chip. I'd like to figure this out but 70mA isn't a big deal.
The meter gives fairly different values from my "nice" luxmeter. However my "nice" meter has no thermal compensation and I can't trust it. The GM1020 does measure temperature so one would hope it is using the information. I would appreciate it if someone with a good quality meter could do a comparison.
At first I was annoyed that there was no cable between the sensor and the body. It is much easier to build an integration box with one. However that doesn't bother me any more. The meter is not very usable as a standalone by repeatedly tapping and holding the three buttons. For all practical purposes the USB cable is always plugged in and I only operate the meter by computer.
I do still wish there was a tripod mount. I might epoxy a 1/4"-20 nut somewhere.
The USB connection only supports a sluggish 19200 baud and there is only 4KB of EEPROM. The non-volatile memory can only hold 1900 samples, which take 0.6 seconds to transfer. At the fastest 1-second sampling rate the memory will fill in 30 minutes. At the slowest 1-hour rate it will fill in 11 weeks. Of course 19200 baud is more than enough for live monitoring.
Some comments on my script:
It should work anywhere the PySerial module can be installed. I've written the script for python3 but it runs okay in python2 as well. The defaults are for a linux system. Windows users will have to install the Prolific USB driver that comes on the CD-ROM. Windows and OSX will also need to tweak the port name. In the future I would like my script to automatically detect the OS and choose the correct defaults for it.
With the script you can do everything the Windows software did, except for make terrible graphs. Instead the script logs data to a tab separated file and then you can use whatever plotting software you are comfortable with. It is very easy to automate too. The script has a lot of options. I'm not going to copy them here, run "--help" to see it all.
The best way to use the meter is to plug it into a Raspberry Pi, set it in a corner and forget about it. With live monitoring it will log 2 samples per second forever. Multiple meters per computer is fine too. You could probably run a hundred of these meters from a single computer with enough USB hubs.
Alternatively it can log to EEPROM. Keep the meter plugged into a USB charger so it can run forever. Every couple of hours or days (depending on the logging rate) you'll have to plug the meter into your laptop, then download and wipe the data. It isn't quite as convenient but it doesn't require a dedicated computer.
Next I'd like to get more feedback from people using the meter. At least in three weeks when your new meter finally arrives
If you have any questions about the meter or the software, please fire away.
And I should do a teardown of the hardware too. Expect photos of that soon.
At $20-$30 a pop you can pick up a spare or two. What does a flashlight reviewer need spare meters for? Those low modes that keep going for days or weeks. Now you can run those tests without tying up the main meter.
As I feared, the software it came with was both Windows-only and completely terrible. With a few days of prodding I reverse engineered the communication protocol and wrote a cross-platform python script.
Here is Benetech's page for the GM1020: http://www.benetechco.com/en/products/digital-lux-meter-gm1020.html
The script is hosted on github at https://github.com/parametrek/gm1020
Some observations on the hardware:
The specs and build quality are on par with any other $20 meter.
It will draw power from USB, giving it unlimited runtime. Current consumption over USB is next to nothing. Under 10mA for normal operation. Sending a USB command wakes up the Prolific chip and the power draw will jump to 70mA. Closing the serial connection does not reset this. Thankfully unplugging and replugging the USB will, which will happen anyway if you move the meter from your computer to a powerbank. Looking at the datasheet it might be possible to add a jumper and a pushbutton to make it go back to sleep. But the datasheet also says it shouldn't draw more than 25mA and that closing the COM port should automatically suspend the chip. I'd like to figure this out but 70mA isn't a big deal.
The meter gives fairly different values from my "nice" luxmeter. However my "nice" meter has no thermal compensation and I can't trust it. The GM1020 does measure temperature so one would hope it is using the information. I would appreciate it if someone with a good quality meter could do a comparison.
At first I was annoyed that there was no cable between the sensor and the body. It is much easier to build an integration box with one. However that doesn't bother me any more. The meter is not very usable as a standalone by repeatedly tapping and holding the three buttons. For all practical purposes the USB cable is always plugged in and I only operate the meter by computer.
I do still wish there was a tripod mount. I might epoxy a 1/4"-20 nut somewhere.
The USB connection only supports a sluggish 19200 baud and there is only 4KB of EEPROM. The non-volatile memory can only hold 1900 samples, which take 0.6 seconds to transfer. At the fastest 1-second sampling rate the memory will fill in 30 minutes. At the slowest 1-hour rate it will fill in 11 weeks. Of course 19200 baud is more than enough for live monitoring.
Some comments on my script:
It should work anywhere the PySerial module can be installed. I've written the script for python3 but it runs okay in python2 as well. The defaults are for a linux system. Windows users will have to install the Prolific USB driver that comes on the CD-ROM. Windows and OSX will also need to tweak the port name. In the future I would like my script to automatically detect the OS and choose the correct defaults for it.
With the script you can do everything the Windows software did, except for make terrible graphs. Instead the script logs data to a tab separated file and then you can use whatever plotting software you are comfortable with. It is very easy to automate too. The script has a lot of options. I'm not going to copy them here, run "--help" to see it all.
The best way to use the meter is to plug it into a Raspberry Pi, set it in a corner and forget about it. With live monitoring it will log 2 samples per second forever. Multiple meters per computer is fine too. You could probably run a hundred of these meters from a single computer with enough USB hubs.
Alternatively it can log to EEPROM. Keep the meter plugged into a USB charger so it can run forever. Every couple of hours or days (depending on the logging rate) you'll have to plug the meter into your laptop, then download and wipe the data. It isn't quite as convenient but it doesn't require a dedicated computer.
Next I'd like to get more feedback from people using the meter. At least in three weeks when your new meter finally arrives
And I should do a teardown of the hardware too. Expect photos of that soon.