Skip to content

Commit 47d7913

Browse files
authored
Merge pull request #18 from scientisst/dev_qol_improvements
- Added support for SCIENTISST_V2 api format. Everyone should use this version as it is more precise and allow the use of higher sampling rates without experiencing time drift (using only 1 internal channel can now go up to 18KHz). - The default is the old version - No changes required to use the old version: both the api and new firmware use the old version by default - Removes NSeq and introduces a 36bit timestamp in micro-seconds - Created a new code for the status LED. This allows to have better feedback of what is happening with the board without having to use "idf.py monitor". Check the datasheet for a full rundown of all the codes - Updated flash config: - Now you can set up the WI-FI SSID, Password and api port with "idf.py menuconfig" - BT pairing should now not require to confirm the PIN Code (Does not always work though) - Finalized all IMU functionality and can now be fully configured with "idf.py menuconfig" - Fixed the channel values being wrong on the lowest channel used when using an odd number of channels - Fixed Ext. ADC channels being swapped on SD Card mode - Changed the BT MAC address print from "XX-XX-XX-XX-XX" to "XX:XX:XX:XX:XX". You can now just copy paste it when needed. - Reduced IRAM usage
2 parents 56d5476 + fd20f81 commit 47d7913

26 files changed

+953
-940
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ The firmware supports the following APIs:
8383
- **Scientisst API**: This is the recommended API, as it has more features and is the one currently maintained. It can
8484
be found at [Scientisst Python API](https://github.com/scientisst/scientisst-sense-api-python).
8585
- **Bitalino API**: (deprecated) This API is only supported for compatibility with the Bitalino API.
86-
- **JSON API**: (:warning: Currently not working).
8786

8887
## Repository structure
8988

deps/esp-idf

Submodule esp-idf updated 1246 files

main/Kconfig

Lines changed: 209 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,139 +1,241 @@
11

22
menu "SCIENTISST Configuration"
33

4-
# General Configuration
5-
menu "General Configuration"
6-
74
choice
85
prompt "Hardware version"
96
default HARDWARE_VERSION_CORE
107

11-
config HARDWARE_VERSION_CORE
12-
bool "Core version (default)"
13-
14-
config HARDWARE_VERSION_NANO
15-
bool "Nano version"
16-
17-
config HARDWARE_VERSION_CARDIO
18-
bool "Cardio version"
19-
20-
endchoice
21-
22-
choice
23-
prompt "Default communication mode"
24-
default DEFAULT_COM_MODE_BT
25-
26-
config DEFAULT_COM_MODE_BT
27-
bool "Bluetooth (default)"
28-
29-
config DEFAULT_COM_MODE_BLE
30-
bool "Bluetooth Low Energy"
31-
32-
config DEFAULT_COM_MODE_TCP_AP
33-
bool "TCP Access Point"
34-
35-
config DEFAULT_COM_MODE_TCP_STA
36-
bool "TCP Station"
37-
38-
config DEFAULT_COM_MODE_UDP_STA
39-
bool "UDP Station"
40-
41-
config DEFAULT_COM_MODE_SERIAL
42-
bool "USB"
43-
44-
config DEFAULT_COM_MODE_WS_AP
45-
bool "WebSocket Access Point"
8+
config HARDWARE_VERSION_CORE
9+
bool "Core (default)"
10+
11+
config HARDWARE_VERSION_NANO
12+
bool "Nano"
4613

14+
config HARDWARE_VERSION_CARDIO
15+
bool "Cardio"
4716
endchoice
4817

18+
menu "Communication Configuration"
19+
choice
20+
prompt "Communication mode"
21+
default DEFAULT_COM_MODE_BT
22+
23+
config DEFAULT_COM_MODE_BT
24+
bool "Bluetooth (default)"
25+
26+
config DEFAULT_COM_MODE_BLE
27+
bool "Bluetooth Low Energy"
28+
29+
config DEFAULT_COM_MODE_TCP_AP
30+
bool "TCP Access Point"
31+
32+
config DEFAULT_COM_MODE_TCP_STA
33+
bool "TCP Station"
34+
35+
config DEFAULT_COM_MODE_UDP_STA
36+
bool "UDP Station"
37+
38+
config DEFAULT_COM_MODE_SERIAL
39+
bool "USB"
40+
41+
# config DEFAULT_COM_MODE_WS_AP
42+
# bool "WebSocket Access Point"
43+
endchoice
44+
45+
# Wi-Fi Configuration
46+
menu "Wi-Fi Configuration"
47+
visible if (DEFAULT_COM_MODE_UDP_STA || DEFAULT_COM_MODE_TCP_STA)
48+
49+
config WIFI_SSID
50+
string "Wi-Fi SSID"
51+
default "riot"
52+
help
53+
Enter the SSID of the Wi-Fi network you want to connect to.
54+
55+
config WIFI_PASSWORD
56+
string "Wi-Fi Password"
57+
default ""
58+
help
59+
Enter the password for the Wi-Fi network.
60+
61+
config WIFI_HOST_IP
62+
string "Host IP"
63+
default "192.168.1.100"
64+
help
65+
Enter the IP of the host you want to connect to.
66+
67+
config PORT
68+
string "Port"
69+
default "8800"
70+
help
71+
Enter the port of the device should connect to.
72+
endmenu # Wi-Fi Configuration
73+
endmenu # Communication Configuration
74+
75+
# External ADC Configuration
4976
config ADC_EXT
5077
bool "Enable external ADC"
5178
default n
52-
53-
endmenu # General Configuration
79+
help
80+
This option should only be enabled if an ext adc is present on the board.
5481

5582
# SD Card Configuration
5683
menu "SD Card Configuration"
57-
58-
config SD_CARD
59-
bool "Enable SD Card"
60-
default n
61-
62-
config FORMAT_SDCARD_IF_MOUNT_FAILED
63-
bool "Format SD Card if mount failed"
64-
default n
65-
66-
config NUMBER_CHANNELS_EXT_ADC
67-
int "Enter number of channels of external adc"
68-
default 0
69-
range 0 2
70-
help
71-
This option should only be diferent from 0 if an ext adc is present and working on the board.
84+
config SD_CARD
85+
bool "Enable SD Card"
86+
default n
87+
88+
config FORMAT_SDCARD_IF_MOUNT_FAILED
89+
depends on SD_CARD
90+
bool "Format SD Card if mount failed"
91+
default n
92+
93+
config NUMBER_CHANNELS_EXT_ADC
94+
depends on SD_CARD
95+
int "Enter number of channels of external adc"
96+
default 0
97+
range 0 2
98+
help
99+
This option should be set to 0 unless an ext adc is present on the board and enabled.
72100

73101
endmenu # SD Card Configuration
74102

75-
76103
menu "IMU Configuration"
77-
78104
# IMU enable/disable setting
79-
config IMU
80-
bool "Enable IMU"
81-
default n
82-
help
83-
Enable or disable the IMU (Inertial Measurement Unit).
84-
If unsure, select 'n' to disable it.
85-
86-
# IMU Data Acquisition Mode
87-
choice IMU_DATA_ACQUISITION
88-
prompt "IMU Data Acquisition Mode"
89-
default EULER_ANGLES_AND_LINEAR_ACCELERATION
90-
91-
config EULER_ANGLES_AND_LINEAR_ACCELERATION
92-
bool "Euler angles and linear acceleration"
93-
help
94-
Select this mode to acquire Euler angles and linear acceleration data from the IMU.
95-
96-
config ANGULAR_VELOCITY_AND_LINEAR_ACCELERATION
97-
bool "Angular velocity and linear acceleration"
98-
help
99-
Select this mode to acquire angular velocity and linear acceleration data from the IMU.
100-
101-
endchoice
105+
config IMU
106+
bool "Enable IMU"
107+
default n
108+
help
109+
Enable or disable the IMU (Inertial Measurement Unit).
110+
If unsure, select 'n' to disable it.
111+
112+
# IMU Data Acquisition Modes
113+
choice
114+
prompt "IMU Data channels AI1-AI3"
115+
depends on IMU
116+
default IMU_H1_NO_DATA
117+
118+
config IMU_H1_NO_DATA
119+
bool "No data"
120+
help
121+
No data on AI1-AI3
122+
123+
config IMU_H1_EULER_ANGLES
124+
bool "Euler angles"
125+
help
126+
Select this mode to acquire Euler angles data from the IMU on AI1-AI3.
127+
128+
config IMU_H1_LINEAR_ACCELERATION
129+
bool "Linear acceleration"
130+
help
131+
Select this mode to acquire linear acceleration data from the IMU on AI1-AI3.
132+
133+
config IMU_H1_ANGULAR_VELOCITY
134+
bool "Angular velocity and linear acceleration"
135+
help
136+
Select this mode to acquire angular velocity data from the IMU on AI1-AI3.
137+
138+
config IMU_H1_MAGNETIC_FIELD
139+
bool "Magnetic field"
140+
help
141+
Select this mode to acquire magnetic field data from the IMU on AI1-AI3.
142+
143+
config IMU_H1_GRAVITY
144+
bool "Gravity"
145+
help
146+
Select this mode to acquire gravity data from the IMU on AI1-AI3.
147+
148+
config IMU_H1_ACCELERATION
149+
bool "Acceleration"
150+
help
151+
Select this mode to acquire acceleration data from the IMU on AI1-AI3.
152+
153+
config IMU_H1_TEMPERATURE
154+
bool "Temperature"
155+
help
156+
Select this mode to acquire temperature data from the IMU on AI1-AI3.
157+
endchoice
158+
159+
choice
160+
prompt "IMU Data channels AI4-AI6"
161+
depends on IMU
162+
default IMU_H2_NO_DATA
163+
164+
config IMU_H2_NO_DATA
165+
bool "No data"
166+
help
167+
No data on AI4-AI6
168+
169+
config IMU_H_EULER_ANGLES
170+
bool "Euler angles"
171+
help
172+
Select this mode to acquire Euler angles data from the IMU on AI4-AI6.
173+
174+
config IMU_H2_LINEAR_ACCELERATION
175+
bool "Linear acceleration"
176+
help
177+
Select this mode to acquire linear acceleration data from the IMU on AI4-AI6.
178+
179+
config IMU_H2_ANGULAR_VELOCITY
180+
bool "Angular velocity and linear acceleration"
181+
help
182+
Select this mode to acquire angular velocity data from the IMU on AI4-AI6.
183+
184+
config IMU_H2_MAGNETIC_FIELD
185+
bool "Magnetic field"
186+
help
187+
Select this mode to acquire magnetic field data from the IMU on AI1-AI3.
188+
189+
config IMU_H2_GRAVITY
190+
bool "Gravity"
191+
help
192+
Select this mode to acquire gravity data from the IMU on AI1-AI3.
193+
194+
config IMU_H2_ACCELERATION
195+
bool "Acceleration"
196+
help
197+
Select this mode to acquire acceleration data from the IMU on AI1-AI3.
198+
199+
config IMU_H2_TEMPERATURE
200+
bool "Temperature"
201+
help
202+
Select this mode to acquire temperature data from the IMU on AI1-AI3.
203+
endchoice
102204

103205
# IMU Calibration Behavior
104-
choice IMU_CALIBRATION
105-
prompt "IMU Calibration Behavior"
106-
default ALLOW_IMU_ACQUISITION_WHILE_CALIBRATING
107-
108-
config LOCK_IMU_ACQUISITION_UNTIL_CALIBRATED
109-
bool "Lock IMU acquisition until calibrated"
110-
help
111-
Select this option to lock IMU data acquisition until the device is calibrated.
112-
113-
config ALLOW_IMU_ACQUISITION_WHILE_CALIBRATING
114-
bool "Allow IMU acquisition while calibrating"
115-
help
116-
Select this option to allow IMU data acquisition even when the device is in the process of calibrating.
117-
118-
endchoice
119-
206+
choice
207+
prompt "IMU Calibration Behavior"
208+
depends on IMU
209+
default ALLOW_IMU_ACQUISITION_WHILE_CALIBRATING
210+
211+
config LOCK_IMU_ACQUISITION_UNTIL_CALIBRATED
212+
bool "Lock IMU acquisition until calibrated"
213+
help
214+
Select this option to lock IMU data acquisition until the device is calibrated.
215+
216+
config ALLOW_IMU_ACQUISITION_WHILE_CALIBRATING
217+
bool "Allow IMU acquisition while calibrating"
218+
help
219+
Select this option to allow IMU data acquisition even when the device is in the process of calibrating.
220+
endchoice
120221
endmenu # IMU Configuration
121222

122-
choice "Debug level"
123-
prompt "Debug level/verbosity"
223+
# Debug level/verbosity
224+
choice
225+
prompt "Debug level"
124226
default SCI_DEBUG_WARNINGS_AND_ERRORS
125227

126-
config SCI_DEBUG_NO_DEBUGGING
127-
bool "0 - Nothing"
228+
config SCI_DEBUG_NO_DEBUGGING
229+
bool "0 - Nothing"
128230

129-
config SCI_DEBUG_ERRORS
130-
bool "1 - Print Errors"
231+
config SCI_DEBUG_ERRORS
232+
bool "1 - Print Errors"
131233

132-
config SCI_DEBUG_WARNINGS_AND_ERRORS
133-
bool "2 - Print Warnings and Errors (default)"
234+
config SCI_DEBUG_WARNINGS_AND_ERRORS
235+
bool "2 - Print Warnings and Errors (default)"
134236

135-
config SCI_DEBUG_INFO_WARNINGS_AND_ERRORS
136-
bool "3 - Print Info, Warnings and Errors"
237+
config SCI_DEBUG_INFO_WARNINGS_AND_ERRORS
238+
bool "3 - Print Info, Warnings and Errors"
137239

138240
endchoice
139241

@@ -144,4 +246,5 @@ config PREVENT_ACQUISITION_ON_LOW_BATTERY
144246
When on low battery, the sensor data has an increased error margin. This option forces the device to stop the acquisition and restart when that happens.
145247
It will become virtually unusable until it is charged above a certain threshold. Unfortunately, this only works for non-wifi modes.
146248

249+
147250
endmenu # SCI Configuration

main/communication/include/sci_ws.h

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,16 @@
77
* \warning The WS_AP communication mode is not fully working at the moment.
88
*/
99

10-
#pragma once
10+
// #pragma once
11+
//
12+
// #include "esp_http_server.h"
13+
//
14+
// #include "sci_scientisst.h"
15+
//
16+
// #if !CONFIG_HTTPD_WS_SUPPORT
17+
// #error This mode cannot be used unless HTTPD_WS_SUPPORT is enabled in esp-http-server component configuration
18+
// #endif
19+
//
20+
// esp_err_t wsSerialSend(uint32_t fd, int len, const uint8_t *buff);
21+
// httpd_handle_t startWebserver(void);
1122

12-
#include "esp_http_server.h"
13-
14-
#include "sci_scientisst.h"
15-
16-
#if !CONFIG_HTTPD_WS_SUPPORT
17-
#error This mode cannot be used unless HTTPD_WS_SUPPORT is enabled in esp-http-server component configuration
18-
#endif
19-
20-
esp_err_t wsSerialSend(uint32_t fd, int len, const uint8_t *buff);
21-
httpd_handle_t startWebserver(void);

0 commit comments

Comments
 (0)