Skip to content

Commit 1b9737f

Browse files
authored
Merge pull request #6 from Avnet/v1.4.0
Release V1.4.0
2 parents 0c27cc4 + 02ff8b3 commit 1b9737f

File tree

174 files changed

+3374
-1700
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

174 files changed

+3374
-1700
lines changed

configuration.xml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,11 @@
484484
<property id="rtos.awsfreertos.object.queue.queue_length" value="128"/>
485485
<property id="rtos.awsfreertos.object.queue.allocation" value="rtos.awsfreertos.object.queue.allocation.static"/>
486486
</object>
487+
<object id="rtos.awsfreertos.object.mutex.1817494091">
488+
<property id="rtos.awsfreertos.object.mutex.symbol" value="g_sd_mutex"/>
489+
<property id="rtos.awsfreertos.object.mutex.type" value="rtos.awsfreertos.object.mutex.type.mutex"/>
490+
<property id="rtos.awsfreertos.object.mutex.allocation" value="rtos.awsfreertos.object.mutex.allocation.static"/>
491+
</object>
487492
<context id="_hal.0">
488493
<stack module="module.driver.ioport_on_ioport.0"/>
489494
<stack module="module.middleware.rm_freertos_port.0"/>
@@ -749,8 +754,8 @@
749754
<configSetting altId="p103.gpio_mode.gpio_mode_out.high" configurationId="p103.gpio_mode"/>
750755
<configSetting altId="p104.output.high" configurationId="p104"/>
751756
<configSetting altId="p104.gpio_mode.gpio_mode_out.high" configurationId="p104.gpio_mode"/>
752-
<configSetting altId="p106.output.high" configurationId="p106"/>
753-
<configSetting altId="p106.gpio_mode.gpio_mode_out.high" configurationId="p106.gpio_mode"/>
757+
<configSetting altId="p106.output.low" configurationId="p106"/>
758+
<configSetting altId="p106.gpio_mode.gpio_mode_out.low" configurationId="p106.gpio_mode"/>
754759
<configSetting altId="p108.debug0.swdio" configurationId="p108"/>
755760
<configSetting altId="p108.gpio_mode.gpio_mode_peripheral" configurationId="p108.gpio_mode"/>
756761
<configSetting altId="p109.sci9.txd" configurationId="p109"/>

docs/ApplicationUserGuide.md

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,29 @@ When the ndp120 detects a ML feature in the data it interrupts the RA6 MCU and p
1414
1. Optionally send a MQTT telemetry message to the target cloud implementation if enabled (see the ```[Cloud Connectivity]``` section below).
1515

1616
## Data Collection for Developing/Testing New ML Models
17-
Avnet, Syntiant, Renesas and Edge Impulse have all worked together to enable RASynBoard ML model development in [Edge Impulse Studio](https://www.edgeimpulse.com/). Edge Impulse Studio is a free on-line toolkit that enables data ingestion from development boards that can be used to develop/test/deploy ML models. Additionally, Edge Impulse will generate the \*.syspkg files that can be used on the RASynBoard with the OOB application.
17+
Avnet, Syntiant, Renesas and Edge Impulse have all worked together to enable RASynBoard ML model development in [Edge Impulse Studio](https://www.edgeimpulse.com/). Edge Impulse Studio is a free on-line toolkit that enables data ingestion from development boards that can be used to develop/test/deploy ML models. Additionally, Edge Impulse can generate the \*.syspkg files that can be used on the RASynBoard with the OOB application.
1818

19-
**Note: RASynBoard Edge Impulse support is scheduled to be released in late October 2023**
20-
21-
**Note: Edge Impulse will release a custom RASynBoard application to interface with the Edge Impulse Studio to develop/test/deploy/test on device in conjunction with the late October 2023 release**
19+
**Note: RASynBoard Edge Impulse support has been released!
2220

2321
The OOB application also implements multiple ways to collect data from the on-board sensors
2422
1. Audio data can be recorded to the microSD card
2523
1. 6-Axis IMU data can be written to the microSD card and/or streamed to the debug UART
2624
1. (Future enablement) Using additional external sensors
2725

2826
### Flash microSD card images to core board SPI Flash
29-
When developing a RASynBoard ML application it's common to use the microSD card to manage the config.ini and \*.synpkg files. However if users get to a point where they want to deploy the RASynBoard core board without the I/O board, they can move the config.ini and \*.synpkg files to the on-board SPI flash by pressing the user button for > 3 seconds.
27+
When developing a RASynBoard ML application it's common to use the microSD card to manage the config.ini and \*.synpkg files. However if users get to a point where they want to deploy the RASynBoard core board without the I/O board, they can move the config.ini settings and \*.synpkg files to the on-board SPI flash by pressing the user button for > 3 seconds.
3028

3129
Once the > 3 second button press is detected the application will . . .
3230
1. Erase the SPI Flash region that holds the config.ini and \*.synpkg files
3331
1. Concatenate all the files into a single binary blob
3432
1. Flash the binary blob to the SPI Flash
33+
1. Copy all core board only relevant config.ini settings to SPI Flash
3534

3635
Once the images have been moved to SPI Flash, the application will run from SPI Flash if . . .
3736
1. The microSD card is removed from the I/O board
3837
1. The I/O board is separated from the core board
3938

40-
![](./assets/writeToFlash.jpg "")
39+
![](./assets/images/writeToFlash.jpg "")
4140

4241
**Note: Use caution when separating and re-attaching the core board from/to the I/O board as the interconnect pins have a fine pitch and are easy to damage.**
4342

@@ -52,6 +51,8 @@ The OOB application reads application configuration data from the config.ini fil
5251
### Syntiant Binary Images
5352
The microSD card is also used to add syntiant binary images that are used by the NDP120. These files end with the \*.synpkg file extension. There are three \*.synpkg files for any given ML model. Using this approach, ML models can be added to the OOB application without having to rebuild the application. The user defines which \*.synpkg files get loaded onto the NDP120 with config.ini configuration changes (details below).
5453

54+
**Note:** The *.synpkg files are specific to the Syntiant SDK version. Always use the *.synpkg files included with any specific OOB release to maintain compatability
55+
5556
### Data Recording
5657
The other main use of the microSD card is to capture training data from either the on-board TDK digital microphone, or the TDK 6-Axis IMU sensor.
5758

@@ -81,7 +82,7 @@ The OOB features are configured by editing the config.ini file located on the mi
8182

8283
The application will output the current configuration.
8384

84-
![](./assets/configOutput.jpg "")
85+
![](./assets/images/configOutput.jpg "")
8586

8687
## ndp120 Configuration
8788
The ndp120 is configured by identifying the firmware images that will be loaded onto the device. There are three images referred to as the \*.synpkg files. These files are usually delivered together and should only be used together. New model files and ndp120 firmware can be copied to the microSD card and configured using the config.ini file. The application looks for the ndp120 files in the root directory of the microSD card.
@@ -101,12 +102,12 @@ Each ```[Function_x]``` block defines a description, and the three required ndp1
101102
- ```DSP``` refers to the dsp firmware that runs on the ndp120. This firmware does data pre-processing plus other functions.
102103
- ```DNN``` refers to the Nerual Network Parameters and ML model. This firmware implements the ML model.
103104

104-
![](./assets/ndpConfig.jpg "")
105+
![](./assets/images/ndpConfig.jpg "")
105106

106107
## LED control
107108
The ```[LED]``` block allows the user to assign different RGB LED colors to each inference index. When the ndp120 detects a feature in the data the inference results are passed to the application. The application uses the index of the inference result [0 - n] to identify how to light the RGB LED on the I/O board. The comments in the config.ini file associate each index with the 5-keyword model, but this feature works with any model that's loaded.
108109

109-
![](./assets/ledConfig.jpg "")
110+
![](./assets/images/ledConfig.jpg "")
110111

111112
## Debug Print
112113
The application can be configured to output debug messages to either the UART exposed on the PMOD connector (I/O Board), or the USB-C UART on the core board (the smaller board).
@@ -117,23 +118,23 @@ The application can be configured to output debug messages to either the UART ex
117118
- ```Port=2``` Outputs debug to the UART associated with the core board USB-C connector
118119
- This selection allows developers to access debug when the core board is running without the I/O board
119120

120-
**Note the application must bring this UART connection on-line when the application starts. Because of this delay, most of the startup debug will not be displayed on the UART.**
121+
**Note the application must bring this UART connection on-line when the application starts. Because of this delay, most of the startup debug will not be displayed on the UART. Release v1.4.0 added a serial command ```log``` that will output the early debug when using the core board USB-C com port**
121122

122-
![](./assets/debugConfig.jpg "")
123+
![](./assets/images/debugConfig.jpg "")
123124

124125
## Recording Period
125126
The application can record audio or IMU data.
126127

127128
1.```[Recording Period]-->Recording_Period``` defines how long the application collects/records data in units of seconds.
128129

129-
![](./assets/recordingPeriodConfig.jpg "")
130+
![](./assets/images/recordingPeriodConfig.jpg "")
130131

131132
## 6-Axis IMU Data Stream Features
132133
The OOB application can capture 6-Axis IMU data either to a \*.csv file on the microSD card, and/or stream data out the debug UART.
133134

134135
**Note: in order to capture 6-Axis IMU data the active ```[Function_x]``` block must contain ```Button_shift=imu``` within the block. This is true for any active ```[Function_x]``` block even if the block defines audio detection files.**
135136

136-
![](./assets/imuButtonShift.jpg "")
137+
![](./assets/images/imuButtonShift.jpg "")
137138

138139
**Note: There is currenty a bug if you try to use the circular motion ```[Function_3]``` block to capture 6-Axis IMU data. If you need to capture 6-Axis IMU data please use the ```[Function_1]``` block. (AAGBT-82)**
139140

@@ -147,20 +148,7 @@ The OOB application can capture 6-Axis IMU data either to a \*.csv file on the m
147148
- ```[IMU data stream]-->Print_to_terminal=1``` tells the application to stream IMU data to the debug UART for ```[Recording Period]-->Recording_Period``` seconds when the user button is pressed. This data can be used in conjunction with the [Edge Impulse Data Forwarder](./EdgeImpulseDataForwarder.md) to stream 6-Axis IMU data directly to Edge Impulse.
148149
- ```[IMU data stream]-->Print_to_terminal=0``` disables this feature
149150

150-
![](./assets/imuDataConfig.jpg "")
151-
152-
## Low Power Mode
153-
The OOB application supports low-power mode. When in the low-power state, the RA6 device is put into sleep mode, and the DA16600 WiFi/BLE device is held in reset. The low power mode configuration section defines when the applicatoin enters and exits low power mode.
154-
155-
1. ```[Low Power Mode]-->Power_Mode=x```
156-
157-
- ```[Low Power Mode]-->Power_Mode=0```: When in ```Power_Mode=0``` the application will enter a low-power state when the application detects the "down" \<pause for < 3.6 seconds\> "down" sequence. The device will stay in a low-power state until any other inference detection event occurs. When the next event is detected the device will exit the low-power state not enter low-power state again until the "down" \<pause for < 3.6 seconds\> "down" sequence is detected.
158-
159-
- ```[Low Power Mode]-->Power_Mode=1```: When in ```Power_Mode=1``` the application will enter low-power state on power-up and will come out of low-power state when any inference detection occurs. As soon as the new inference detection logic is completed, the application will automatically re-enter the low-power state.
160-
161-
**Note: The data recording feature is disabled when ```[Low Power Mode]-->Power_Mode=1```**
162-
163-
![](./assets/lowPowerConfig.jpg "")
151+
![](./assets/images/imuDataConfig.jpg "")
164152

165153
## BLE Mode
166154

@@ -171,7 +159,7 @@ The application can broadcast inference results over BLE that can be displayed o
171159
- ```[BLE Mode]-->BLE_Enabled=0```: Disable the BLE functionality (default)
172160
- ```[BLE Mode]-->BLE_Enabled=1```: Enable the BLE functionality
173161

174-
![](./assets/bleConfig.jpg "")
162+
![](./assets/images/bleConfig.jpg "")
175163

176164
## Cloud Connectivity
177165
The OOB application implements logic to send telemetry to a cloud provider. The first release connects to the Avnet IoTConnect Cloud solution built on AWS. In the future, the application will also interface directly with AWS or Azure.
@@ -185,7 +173,15 @@ There are multiple configuration items required to establish an MQTT connection.
185173
1. ```[WIFI]-->Access_Point=<Your AP SSID Here>```: Used to set your WiFi access point SSID
186174
1. ```[WIFI]-->Access_Point_Password=<Your AP Password Here>```: Used to set your WiFi Access Point password
187175

188-
![](./assets/wifiConfig.jpg "")
176+
![](./assets/images/wifiConfig.jpg "")
177+
178+
### WiFi Access Point Configuration Source
179+
Sometimes the user may want to dynamically change the WiFi Acess point configuration. For instance when deploying a solution on the core board only, it may be necessary to change the WiFi credentials when moving the device to a new location.
180+
181+
1. ```[WIFI]-->Use_Config_AP_Details=0```: Don't use the config.ini WiFi configuration. This assumes that the user will use the free Renesas Wi-Fi Provisioning Tool avalible from your mobile device's App store
182+
1. ```[WIFI]-->Use_Config_AP_Details=1```: Use the config.ini wifi access point configuration
183+
184+
![](./assets/images/wifi_use_config_details.jpg "")
189185

190186
### Target Cloud Provider
191187
The application currently only supports IoTConnect on AWS, however we have feature enhancement tickets written to add AWS and Azure implementations. The ```[Cloud Connectivity]-->Target_Cloud``` configuration item is used to define which service the device should connect to.
@@ -200,7 +196,7 @@ The application currently only supports IoTConnect on AWS, however we have featu
200196
- ```[Cloud Connectivity]-->Target_Cloud=2```: Connect to AWS (Not currently implemented)
201197
- ```[Cloud Connectivity]-->Target_Cloud=3```: Connect to Azure (Not currently implemented)
202198

203-
![](./assets/cloudConfiguratioin.jpg "")
199+
![](./assets/images/cloudConfiguratioin.jpg "")
204200

205201
### IoTConnect
206202
Please see the [IoTConnect](./IoTConnect.md) document for details on how to . . .
@@ -212,5 +208,5 @@ Please see the [IoTConnect](./IoTConnect.md) document for details on how to . .
212208
- ```[IoTConnect]-->Device_Unique_ID=<your device id here>```: Enter the Unique Device ID as defined in your IoTConnect account. - ```[IoTConnect]-->CPID=<your IoTConnect company ID here>```: Enter the 32 character company ID
213209
- ```[IoTConnect]-->Environment=<your IoTConnect environment varaible```: Enter the environment here i.e., poc, prod
214210

215-
![](./assets/iotConnectConfig.jpg "")
211+
![](./assets/images/iotConnectConfig.jpg "")
216212

docs/EdgeImpulseDataForwarder.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Power_Mode=0
7777
```
7878
Remove the microSD card and insert into the RAsynBoard. Connect a USB Serial adapter to the RASynBoard as shown below:
7979

80-
![](../images/UartConnection.jpg "")
80+
![](./assets/images/images/UartConnection.jpg "")
8181

8282
Power on the RASynBoard.
8383

@@ -87,7 +87,7 @@ Create a free account with Edge Impulse and create a new project if one isn't al
8787

8888
Press the user button to start printing IMU data to the serial port:
8989

90-
![](../images/UserButton.jpg "")
90+
![](./assets/images/UserButton.jpg "")
9191

9292
From a terminal window, run the following command:
9393

@@ -143,14 +143,14 @@ If you only have one project in your Edge Impulse account, the tool will automat
143143
```
144144

145145
Navigate to the acquisition link that the tool provides. You should be presented with the following screen:
146-
![Edge Impulse Acquisition Screen](assets/acq_landing_screen.png "Edge Impulse Acquisition Screen")
146+
![Edge Impulse Acquisition Screen](./assets/images/acq_landing_screen.png "Edge Impulse Acquisition Screen")
147147

148148
On the right side of the screen, there's a `Collect Data` pane. This is where you specify the label for the data being collected, along with the sample size. In this case, `circle` has been entered for the label and a sample size of 5000 ms will be collected.
149-
![Collect Data Pane](assets/acq_collect_data.png "Collect Data Pane")
149+
![Collect Data Pane](./assets/images/acq_collect_data.png "Collect Data Pane")
150150

151151
Click the `Start sampling` button and press the user button on the RASynBoard. At this point, the forwarder will start sampling the sensors on the device.
152152

153153
Once the sample period has completed, the data should be uploaded to Edge Impulse and you should see the samples appear:
154-
![Collected Samples](assets/acq_sampled_data.png "Collected Samples")
154+
![Collected Samples](./assets/images//acq_sampled_data.png "Collected Samples")
155155

156156
More information on the data forwarder can be found at the following link: https://docs.edgeimpulse.com/docs/edge-impulse-cli/cli-data-forwarder

docs/EdgeImpulseUploader.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,23 +86,23 @@ Create a free account with Edge Impulse and create a new project if one isn't al
8686

8787
Press the user button to start printing IMU data to the serial port:
8888

89-
![](../images/UserButton.jpg "")
89+
![](assets/images/UserButton.jpg "")
9090

9191
Navigate back to the projects page and select your project. In the project, select the `Data Acqusition page. Startup the CSV Wizard by clicking CSV Wizard:
92-
![Edge Impulse Acquisition Screen](assets/acq_upload_button.png "Edge Impulse Acquisition Screen")
92+
![Edge Impulse Acquisition Screen](assets/images/acq_upload_button.png "Edge Impulse Acquisition Screen")
9393

9494
Remove the microSD card from the RASynBoard and mount it on your computer. Click select file and select the IMU csv file:
95-
![Select File](assets/acq_select_file.png "Select File")
95+
![Select File](assets/images/acq_select_file.png "Select File")
9696

9797
You should be presented with a preview of the uploaded data.
9898

9999
Remove the microSD card from the RASynBoard and mount it on your computer. Click select file and select the IMU csv file:
100-
![Preview Data](assets/acq_preview.png "Preview Data")
100+
![Preview Data](assets/images/acq_preview.png "Preview Data")
101101

102102
Click the next button.
103103

104104
You'll be presented with a pane to specify the type of data. Ensure that the time series option is slected and the option stating each column contains a reading and fill row contains a sample:
105-
![Step 3](assets/acq_upload_step_3.png "Step 3")
105+
![Step 3](assets/images/acq_upload_step_3.png "Step 3")
106106

107107
Click the next button.
108108

@@ -115,7 +115,7 @@ accel,gyro
115115
```
116116

117117
For data frequency, enter 100Hz
118-
![Step 4](assets/acq_upload_step_4.png "Step 4")
118+
![Step 4](assets/images/acq_upload_step_4.png "Step 4")
119119

120120
Finally, select finish wizard.
121121

0 commit comments

Comments
 (0)