The vLabtool has a dedicated wireless transceiver on-board. Slave nodes consist of a PIC16F+NRF24L01+ with unique 3-byte addresses.
Theoretically, up to 2**24 nodes can be controlled from one vLabtool.
KiCAD Design files on Github.
Each Node is currently capable of the following:
- Speak to an I2C device that is supported on the Python side of things ( Not complicated at all. This is simply a python class contained in the SENSORS submodule of the vLabtool package. Users can easily add their own )
- Scan for I2C devices.
- Read voltages on various analog inputs.
- Control daisy chain of WS2812B addressable LEDs
- R/W to NRF24 registers
- Broadcast Mode: In addition to their unique receive addresses, all the nodes have a common receive pipe. Any packets sent to this address will be picked up by all the nodes simultaneously, and will not be acknowledged to prevent collisions. Big things have been planned with this functionality.
- 8 - bit DAC
- Digital output
The layout is minimal
Basic functions have been broken out into berg strips. Digital functions include SPI/I2C/EUSART ports. Several inputs can also serve as analog inputs connected to a 10-bit ADC. There is also an 8MHz clock generator, and an 8-bit DAC. For now I've marked the default functions of the pins on the PCB wherever applicable.
Should've thought of adding a boost regulator for battery powered applications.
I'll make the next prototype using the PIC24E since it has separate I2C and SPI ports in addition to a wide array of other peripherals.
In addition to the basic functions, the PIC16F has several interesting peripherals such as angular timers(http://ww1.microchip.com/downloads/en/DeviceDoc/30010090A.pdf), hardware PID etc. These may soon come in handy for implementing science demos/experiments.
3-D printed case for basic protection.