Firmware and board design files for the Turn Touch smart home remote control
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.
archive
ble_peripheral
bootloader
doc
firmware
remote eagle
.gitignore
.tm_properties
README.md

README.md

Turn Touch remote firmware, schematic, and board layout

The design files used for the nrf51-based Turn Touch remote.


Available at turntouch.com

License Platform PRs Welcome

Screenshots of the board design files

PCB EAGLE
Top Bottom

Background

You can read the complete documentation and background on the Turn Touch blog series.

Features of the remote

Turn Touch is a smart home remote control carved out of beautiful mahogany wood. This is a remote control for Hue lights, Sonos speakers, and all the other connected devices in your home. Turn Touch works on iOS and macOS, giving you control of your music, videos, presentations, and more.

  • Extraordinary design: This isn't yet another plastic remote. Turn Touch is carved from solid wood and worked to a show-stopping, textured finish.
  • Well connected: Turn Touch connects to most smart devices in your home that speak WiFi. And this is just the first version. Over time, there's no telling what you'll be able to control.
  • Always ready: Turn Touch is always on, always connected, and always ready to take your breath away. Once you connect your Turn Touch via Bluetooth it stays connected and always available, even without the Turn Touch app actively running. And there's no delay, when you press a button the result is instant.
  • Built to last: Not only will your Turn Touch stand up to drops and shock — its entire circuit board can be inexpensively replaced with newer, future wireless tech. You won't have to buy a new remote every time Apple comes out with a new phone. And instead of flimsy plastic clasps, a set of 8 strong magnets invisibly hold the remote together.

Requirements

  • macOS or Windows
  • nrf51 Development Kit ($39 on Digikey)
  • EAGLE for schematic and board layout
  • ARM toolchain for firmware

Installation

To install dependencies, start here:

https://devzone.nordicsemi.com/blogs/22/getting-started-with-nrf51-development-on-mac-os-x/

To use gcc, you will need to download:

  • nRF51 SDK

  • S110 SoftDevice

  • J-Link by Segger

  • srec_cat

    $ brew install srecord

  • GCC ARM Embedded

    When installing GCC tools, do not use "The Unarchiver". It messes up the symlinks for all of the binaries. Make sure to use "Archive Utility"

    $ mv -f ~/Downloads/gcc-arm-none-eabi-4_9-2015q2 ~/projects/code/
    $ ln -s ~/projects/code/gcc-arm-none-eabi-4_9-2015q2 /usr/local/gcc-arm-none-eabi-4_9-2015q2
    
  • ./bin/nrfjprog.sh into /usr/local/bin/nrfjprog

Running

$ make
$ make bootloader
$ make flash
$ ./bin/nrfjprog.sh --rtt

Build on Windows

Build DFU package

$ C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin --output Z:\remote\ble_peripheral\ble_app_template\pca10028\s110\arm5\_build\nrf51422_xxac_s110.bin Z:\remote\ble_peripheral\ble_app_template\pca10028\s110\arm5\_build\nrf51422_xxac_s110.axf

$ & 'C:\Program Files (x86)\Nordic Semiconductor\Master Control Panel\3.10.0.14\nrf\nrfutil.exe' dfu genpkg --sd-req 0xfffe --application Z:\remote\ble_peripheral\ble_app_template\pca10028\s110\arm5\_build\nrf51422_xxac_s110.bin --application-version 0x06 --dev-revision 0x01 Z:\remote\ble_peripheral\nrf51_06.zip
Back on Mac
$ cp ../ble_peripheral/nrf51_*.zip ../../app/Turn\ Touch\ Mac/DFU/firmwares/
$ cp ../ble_peripheral/nrf51_*.zip ../../ios/Turn\ Touch\ iOS/DFU/
In Xcode (in both turntouch-mac/turntouch-ios repos)

In Supporting Files/defaults.plist, change TT:firmware:version

Build flash hex

$ mergehex -m Z:/remote/firmware/libs/components/softdevice/s110/hex/s110_nrf51_8.0.0_softdevice.hex Z:/remote/ble_peripheral/dfu/bootloader/pca10028/dual_bank_ble_s110/arm5/_build/nrf51422_xxac.hex Z:/remote/ble_peripheral/ble_app_template/pca10028/s110/arm5/_build/nrf51422_xxac_s110.hex -o Z:/remote/ble_peripheral/nrf51_sd_bootloader_app.hex

make flashwin on Mac in firmware/

Upgrading to latest nrf51 SDK

  1. Replace app_error.c with RTT logs
  2. Add BSP_BUTTON_ACTION_LONG_PUSH and BSP_BUTTON_ACTION_RELEASE to bsp.c

Contribute

We would love you for the contribution to the Turn Touch remote firmware. Feel free to submit a Pull Request with the improvements or additions you've made.

Turn Touch open source repositories and documentation

Everything about Turn Touch is open source and well documented. Here are all of Turn Touch's repos:

The entire Turn Touch build process is also documented:

Author

Samuel Clay – @samuelclaysamuelclay.com

Distributed under the MIT license. See LICENSE for more information.

https://github.com/samuelclay/turntouch-mac