
Edge Impulse is the leading development platform for machine learning on edge devices. Their portal allows you to train machine learning models and deploy those models on stand alone embedded devices.
The Virtual Breadboard Edge Impulse Component can be used to aquire data from virtual or real data sources ( via EDGEY interface) and upload to a specific EdgeImpulse project via their Ingest Service.
This tutorial will walk through the essentials needed to use the Edge Impulse component to capture and upload data.
Edge Impulse Projects are repositories for data and models that analyse that data. To recieve data from VBB you first need a project to send it to.
You should now have an empty project called TestVBB

To send data to this specific project you need the API KEY and HMAC key credentials to tag uploads so the data knows where to go.

We will need to copy these keys in the next step so when they are refered to follow these steps
API KEY to select the full key and click the copy option from the popup menuMAC KEY to select the full key and click the copy option from the popup menu
The VBB Edge Impulse Component is used inside VBB circuits to capture and submit data by interacting with the circuit.
From a new VBB Project:

The properties of a VBB Component are used to configure it's functionality and credentials.
API KEY property and paste the API key from the previous stepMHAC KEY property and paste the API key from the previous step
Edge Impulse models are comprised of one or more Axis data streams which are sampled in the time domain at Interval milliseconds. Specific features are captured and given a Data Label against which models are trained to classify.
For more information about these elements refer to the Edge Impulse Ingest Service specification.
The VBB Component properties are populated to represent the model

To specify the Data Label's
Data Label propertyThis reconfigures the VBB Component with 2 additional pins EDGE, IMPULSE which are used to select the label to capture. Usually these labels should be meaningful as to the feature that is being captured but in this case it's just illustrative.
To specify the Axis'
Axis propertyThis reconfigures the VBB Component with 2 additional pins X,Y which will be wired to capture data from the circuit.
To specify the Units
Unit propertyThis marks up the submitted data with the specified unit. See the Ingest Data Format for more information on the units.
To specify the Interval
Interval propertyKeep the default values of Submissions = 1 and Ingest = training
To capture data we need to wire the component into the circuit. Using the DIP and POT test components we can quickly create a capture circuit.

From the Buttons Group
TIP: Change the DIP position ‘Pins' property to Top to position the Pin at the top to help organise the wiring of Data Labels.
Asynchronous Capture is where the sampled by the Edge Impulse Component every Interval simulated milliseconds which is nominally real-time ie wall clock time.
Asynchronous is implied when the Sample pin is not wired.

To capture Asynchronously capture data:
HIGHHIGH to start the samplingLOW to finish with the LabelRepeat steps 1..5 for replacing EDGE with the IMPULSE Label.
The captured data should now be available in the Edge Impulse portal
To verify upload:

Synchronous Capture is where data is shifted into the captured data set on a rising clock edge. The sample is implicitly assigned a sample time of interval milliseconds as set by the interval property.
Synchronous capture mode is enabled by wiring the Sample pin.

To enable synchronous capture mode:
HIGHHIGH to start the sampling
To capture synchronous data:
HIGHHIGH to start the samplingHIGH and then LOW to capture the next sampleLOW to finish with the LabelRepeat steps 1..7 for replacing EDGE with the IMPULSE Label.
TIP: Synchronous can be used manually as above but is primarily intended to be controlled algorithmically by circuit shift registers or unit test scripts.
The captured syncronous data should now be available in the Edge Impulse portal.
To verify upload:
TIP: You can visually see the synchronous data is more uniform because it was clocked in with a fixed change per time step.

Congratulations, you have successfully uploaded data generate from VBB circuits to your Edge Impulse project.
Virtual Breadboard experts can go ahead and generate test data in Virtual Breadboard or standby for upcoming tutorials in the Edge Impulse ML series.