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 menuThe 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 stepEdge 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:
HIGH
HIGH
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:
HIGH
HIGH
to start the samplingTo capture synchronous data:
HIGH
HIGH
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.