Thanks to the vibrant hobbyist market, several sensors which would otherwise have remained inaccessible owing to their reflow-only footprints, are now available in amateur friendly breakout boards with clearly labeled pins.
I bought up a bunch of these, and tested most of them. Several of these use SPI/I2C, and companion classes to support them can be coded on the PC side without having to touch the firmware. Some however, use non-standard/timing critical protocols, so I have added support for them in the firmware. These include ( I may have mentioned them in a previous log somewwhere ), the HX711 weighing sensor(24-bit fully differential, 128x PGA), DHT22(humidity), and a 3648 element optical array from Toshiba.
refer to http://pythonhosted.org/LabtoolSuite/interface.html for a rough programmer’s manual generated using Sphinx.
A UART relay has been implemented, but it’s fairly buggy at this point. When activated, all data sent to the device is ignored, and relayed directly to the output port, and vice versa. It can be used to test UART devices like bluetooth modems with little overhead.
There are two modes. One where the device returns to normal functionality if no data is exchanged for more than one second, and another where a power cycle is required for the device to return to normal functioning. Can possibly be used for programming secondary microcontrollers with bootloaders such as the ESP8266.
Here’s some example output from a BOLUTEK bluetooth modem(left side of the box in the picture above), after I activated the relay.
The 1ms delay between characters is to prevent buffer overflows caused by the much lower BAUD rate of the modem. I could alter the vLabtool’s BAUD rate to keep up, but like I said, there are many problems with this feature that need to be looked at.
Here’s an elaborate explanation on how the DHT-22 sends data, along with the timing details for all the pulses. I will soon write a dedicated loop in the firmware which collects and sorts the pulse width encoded data in real time, but using the logic analyzer first gave me an accurate idea of what the timing details are.
The code is self explanatory.
Also testing a PIC16F1618+NRF24L01+ combo for making wireless sensor nodes.