Small wearable NRF52832-based-based voice recorder.
Device was initiated after my frustration while using voice recorder for storing ideas. It was taking up to 7 seconds from taking the voice recorder of the pocket to start recording the data.
Idea behind the device: press and hold the big button on the device and start speaking. The device should start recording immediately (== under human reaction time, <=0.4 sec), without the need for any other presses or for looking at the screen. When you're done - release the button. This should end the record.
After finishing the record device should transfer the record to the phone. The record is then transferred to the voice recognition service. The recognized text should then be sent to the note keeper of your choice.
Project consists of 3 parts:
pcb
- everything related to the schematics/PCB/boards' production. Currently v1.0, 1.1 and 1.2 exist, only v1.2 is supported in the software.firmware
- software components for NRF52 chip.case
- STL files for 3D-printing the case for the Dictofun device.doc
- folder with documentation used in the process of the development (datasheets, and potentially later schematic files).
iOS
and Android
counterparts are placed in a separate repository.
Relevant schematics for device is located here: out/v1.2/schematic/nRF52832_qfaa.pdf
TBD.
Before building the firmware, SDK should be downloaded. To do that, go to firmware/sdk
folder and execute script
download_nordic_sdk.sh
. This command downloads and extracts the SDK files into the folder locally.
After the download one can open a corresponding Segger SES Project with SES. Later it should be possible to build with CMake.
- install
gcc-arm-none-eabi-10.3-2021.10
to/usr/share/gcc-arm-none-eabi-10.3-2021.10
. - install
cmake
3.22 or newer - install
make
- run script
firmware/sdk/download_nordic_sdk.sh
nrfjprog
is required to flash firmware into the device. Following command performs flashing (without changing the SoftDevice)
nrfjprog --reset --program ./build/src/targets/dictofun/Dictofun.hex --sectorerase --family NRF52 --verify
If SoftDevice is not flashed, it should be flashed using the following command:
nrfjprog --reset --program ./sdk/nRF5_SDK_17.1.0_ddde560/components/softdevice/s132/hex/s132_nrf52_7.2.0_softdevice.hex --family NRF52 --sectorerase --verify
Both commands should be executed from folder firmware
in the project structure.
This command is used to format code recursively.
find ./ -iname "*h" -o -iname "*.cpp" | xargs clang-format -i