Skip to content
nRF52 embedded code
C C++ Python Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
nRF_SDK WIP: sync pulse measures OK. May 16, 2018
reception
BLESerial.cpp Now send data over BLE. Aug 30, 2018
BLESerial.h Now send data over BLE. Aug 30, 2018
Makefile Makefile: always compile in the same directory now. Sep 10, 2018
PPI.cpp Fix: nrf_ppi_channel_disable_all() blocked SD (+it was not useful). Jul 16, 2018
PPI.h
README.md
Timer.cpp
Timer.h
communication.cpp Fix BLE. Jun 12, 2019
communication.h Now send data over BLE. Aug 30, 2018
firmware.h Add DEBUG_WRITE(). Aug 30, 2018
firmware.ino
photosensors.cpp Improve LED debug for photodiodes problems. Jun 12, 2019
photosensors.h
pinout.h WIP: sync pulse measures OK. May 16, 2018
pulse.cpp Remove useless memory allocation. Sep 9, 2018
pulse.h
ts4231.cpp
ts4231.h

README.md

Firmware

This project is about a miniaturization of the Vive Tracker by HTC. It allows sub-millimetric 3d positioning, and embeds a 9DoF IMU with sensor fusion. This project is open source, all the materials can be found online:

https://hivetracker.github.io

This repository contains the Arduino code to program it, more explanations to use it are below:

Install

The processor used in this project is not Arduino compatible by default but the following steps explain how to do it anyway.

  1. Download the Arduino IDE:

https://www.arduino.cc/en/Main/Software

  1. Install the nRF52 support - read carefully these instructions (no need to follow the "From git" instructions):

https://github.com/sandeepmistry/arduino-nRF5#installing

  1. Install the BLE peripheral library with these instructions:

https://github.com/sandeepmistry/arduino-BLEPeripheral/#using-the-arduino-ide-library-manager

Compile

In the "Tools" menu select:

  • "Board->Generic nRF52"
  • "Softdevice->S132" (select "None" if you don't use BLE)
  • The rest depends on your personal configuration.

If you prefer command line, you can also do:

make compile

Program

Probes

This board doesn't come with a programmer for now but several cheap solutions exist:

  1. Adafruit sells J-Link and ST-Link probes:

https://www.adafruit.com/product/3571

https://www.adafruit.com/product/2548

  1. For those with limited budget, these alternatives work too:

https://www.aliexpress.com/item/1PCS-ST-LINK-Stlink-ST-Link-V2-Mini-STM8-STM32-Simulator-Download-Programmer-Programming-With-Cover/32839270086.html

https://www.aliexpress.com/item/1PCS-Jlink-for-SWD-Jlink-3-Wire-for-STM32-on-SWD-Debug-New/32746364818.html

  1. But if you already have a Teensy or a 3.3V Arduino compatible board with ATmega32U4 (such as this one), you can build your own programmer thanks to this repository:

https://github.com/myelin/arduino-cmsis-dap

Setup

The above Install section should be enough in most cases but you might need to install udev rule on linux:

https://raw.githubusercontent.com/arduino/OpenOCD/master/contrib/60-openocd.rules

Finally, in the "Tools" menu select the right SWD probe:

  • "Programmer->J-Link"
  • "Programmer->ST-Link"

Upload

In the Arduino IDE it's the same as usual...

...and if you prefer command line, you can also do:

make # upload is by default

Licence

GNU General Public License version 3

Enjoy!

You can’t perform that action at this time.