> For the complete documentation index, see [llms.txt](https://docs.nap.works/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nap.works/devious-pocket.md).

# Devious Pocket

Documentation

### Manual

Download the quick start guide [**here**](https://download.nap-labs.tech/devious/devious_pocket_manual.pdf).

### FAQ

#### Connectivity

<details>

<summary>How do I connect my turntable?</summary>

Connect the RCA output of your turntable to the 3.5 jack input of the Devious Pocket.&#x20;

We recommend connecting the turntable directly to the devious pocket using a high quality [RCA to 3.5](https://www.sebson.de/en/rca-to-audio-jack/a-4053) cable with a maximum length of 1 meter, to minimize signal loss. If your turntable lacks a detachable RCA cable (common on older Technics models), use a [coupler](https://www.amazon.com/rca-coupler/s?k=rca+coupler) to adapt RCA to 3.5mm.

</details>

<details>

<summary>How do I ground my turntable?</summary>

We recommend that you ground your turntable directly to your mixer, using a [turntable ground wire](https://www.amazon.com/turntable-ground-wire/s?k=turntable+ground+wire). If the turntable isn't grounded, the time-code vinyl may not be read correctly, and you might hear a humming sound in pass-through mode.

</details>

<details>

<summary>What is the right input volume?</summary>

There are many different types of phono cartridges available, with varying output voltage based on their intended purpose. Our benchmark cartridge is the [Ortofon  Concore MKII Mix](https://ortofon.com/products/concorde-mkii-mix), which has an output voltage of 6mV.

We recommend setting the input volume to a level that has the level meter sit at approx 1/3th of the full range, with time code enabled. This allows for more than enough room for vinyl playback in pass-through mode and enough amplitude for the system to decode the time-code vinyl accurately.

<figure><img src="https://3879702043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFUXK3a3Lwhp7BRip3ZR5%2Fuploads%2FdaKcECdYeZMzsumbHiym%2Fimage.png?alt=media&amp;token=4adfafa9-d52d-4688-bb54-cf0dc9ae928d" alt="" width="358"><figcaption></figcaption></figure>

</details>

<details>

<summary>What phono cartridge do you recommend?</summary>

Most cartridges are compatible, but for best results, we recommend using a cartridge with a minimum output of 6mV, such as the [Ortofon Concorde MKII Mix](https://ortofon.com/products/concorde-mkii-mix). We tested and developed the system using a variety of [Ortofon MKII cartridges](https://ortofon.com/collections/concorde-mkii-series) and all worked perfectly. Just make sure you adjust the input volume as described in the section above.

</details>

<details>

<summary>Track plays backwards?</summary>

Flip the RCA connectors - some 3.5mm jacks have their polarity reversed.

</details>

<details>

<summary>My 3.5mm jack doesn't fit?</summary>

We’ve heard from some users that the case can be a bit too tight for larger 3.5mm jack plugs. Unfortunately, not every cable will fit. If you encounter this, we recommend using [this](https://www.sebson.de/en/rca-to-audio-jack/a-4053) cable, which we’ve tested and confirmed to work.

</details>

#### File Management

<details>

<summary>How do I manage my music library?</summary>

No proprietary software required - just organize your files in folders and copy them to your USB. Devious Pocket reads ID3 tags and offers to sort by title, artist, album, BPM, key, or genre. It also offers search within folders.&#x20;

Since version 1.2 the Devious Pocket also supports [playlists](#playlists) exported from Rekordbox.

</details>

<details>

<summary>What file formats are supported?</summary>

mp3, flac, wav, aif, caf, and ogg

</details>

<details>

<summary>What partition formats are supported?</summary>

FAT32, exFAT, EXT4 and NTFS

</details>

<details>

<summary>What USB stick do you recommend?</summary>

Not every flash drive is the same, after extensive testing we recommend the [Samsung USB 3.1 FIT Flash Drive](https://www.samsung.com/nl/memory-storage/usb-flash-drive/muf-128ab-apc/). It is small, fast, runs relatively cool and is of good build quality. Use the USB2 ports if your device or stick is getting hot. USB3 ports require more continuous power, which can place additional stress on both the stick and the hardware.

</details>

<details>

<summary>Can I use an SSD?</summary>

We currently support all USB attached SCSI drives, including solid state drives, hard drives and sticks.

</details>

<details>

<summary>Do you support Rekordbox playlists?</summary>

Since version 1.2 we do, check the [playlist](#playlists) section for more details.

</details>

#### Operation

<details>

<summary>What time code formats are supported?</summary>

Serato 2, Serato CD, Traktor 1, Mixvibes V2, Mixvibes 7 and Pioneer time code formats

</details>

<details>

<summary>What control vinyl do you recommend?</summary>

We recommend using Serato 2, which is considered the best in terms of quality and loudness and was used as the main format during development of the unit.

</details>

<details>

<summary>Why does my Traktor control vinyl not work as expected?</summary>

Newer Traktor time-code vinyl (version 2+) uses a proprietary format that we cannot decode properly. We do support the original Traktor control vinyl (version 1) but haven't been able to validate it because it's not in production any more. For best results we recommend using Serato 2, as described in the previous section.

</details>

<details>

<summary>How do I synchronize 2 units?</summary>

Set the pitch of both units to the same tempo and lock it by pressing the lock icon in the play view. When loading a new track the system will internally pitch the new track to match the locked BPM at a pitch of 0. Put the pitch slider at 0 and both tracks should now be in sync until you unlock the tempo again.

<figure><img src="https://3879702043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFUXK3a3Lwhp7BRip3ZR5%2Fuploads%2FiDDyxrKJvhd376S13Gtj%2FBPM%20lock.jpg?alt=media&amp;token=15146ccd-d00d-4194-bf8e-f0812005fe18" alt="" width="357"><figcaption></figcaption></figure>

</details>

<details>

<summary>Vinyl control stopped working?</summary>

This can happen by accident, and is triggered by pressing the round icon in the top left corner of the screen in the play view. This switches the control mode from vinyl to internal, which allows you to remove the needle from the record and continue playback at the last know pitch. Because this disables external control it can lead to confusion.

To enable record control mode again, simply press the play / pause icon for 2 seconds and everything should be back to normal.

<figure><img src="https://3879702043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFUXK3a3Lwhp7BRip3ZR5%2Fuploads%2F5rmR7skD0m73yab1qlbq%2Fimage.png?alt=media&amp;token=5f3cfb33-a234-4504-bfb7-a34c5bdd97e3" alt="switch to control mode" width="357"><figcaption></figcaption></figure>

</details>

<details>

<summary>I can't find my track?</summary>

Currently search is limited to the directory you're in. We're exploring ways to enable global or nested file searches, which will be included in a future update.

</details>

<details>

<summary>Does it support Phase DJ?</summary>

Absolutely, you can use Phase DJ to adjust the pitch and our track view to move the playhead. Cueing and looping are fully supported as well.

</details>

<details>

<summary>Can I update the firmware?</summary>

Yes, the firmware can be [updated](#update) over USB by plugging in a drive with the firmware update. The system will run the update on startup when found.&#x20;

</details>

#### Hardware

<details>

<summary>Is it safe to power the unit on / off using a switch?</summary>

Yes it is. We do not write any data to the boot or firmware partitions, these are considered read-only. Non-critical data, such as logs and settings, are stored in a dedicated non-critical partition. That said, it is still recommended to use sleep mode rather than powering the unit on and off with the switch.

</details>

<details>

<summary>What power adapter should I use?</summary>

The unit requires a [dedicated 5V, 3A](https://www.amazon.com/Raspberry-Supply-iUniker-Switch-Listed/dp/B097P2NLVH?crid=2FJ7CZHO9OXIM\&dib=eyJ2IjoiMSJ9.vCOxv1KhmrZCiKZJsy5rLyEo7NVckpewa8BkqV9NbX7GEwf1wKViU5If-MuUezDeEeQVu0Xx0WvOoQqBlZLV9jP45bA-FquxhzXgAd0du0EqYfJCU_V9XSi3TRwtBDUMFGngqHrULpH1zMALcp-QEYmN_1QVu233_TlveGE9_A0WoDcHO_m3EIi4DQGGoT7ecBOuYeKj8Xn8Mcl3N1faKwXW6eKqhoYQywCLWGonMoo.9PDfLLZkmlepUS0x6StyxdY74gZAYF6RgcSwcjQbUno\&dib_tag=se\&keywords=5v+3a+usb+c+adapter+with+switch+raspberry+pi+4\&nsdOptOutParam=true\&qid=1779964552\&sprefix=5v+3a+usb+c+adapter+with+switch+raspberry+pi+%2Caps%2C168\&sr=8-6) (15W minimum) USB C adapter, compatible with the Raspberry Pi 4. Do not use your phone or laptop charger, these are ***not compatible*** with the Devious and will damage the hardware when used.&#x20;

</details>

<details>

<summary>Why does the screen feel hot?</summary>

The screen can feel hot to touch when the unit is running in a not well ventilated environment of more than 30°C. This is caused by the heat emitted by the controller chip on the screen, in combination with the increased heat of the CPU.&#x20;

There is no harm in the screen running hot. As long as the unit does not throttle extensively everything should continue to work as expected. You can see if the unit has throttled by tapping the `</>` icon at the bottom of the settings page, it should say 'never' if it has not throttled, otherwise a hex code indicating when it throttled.&#x20;

We include a significant performance buffer to guarantee that the unit will keep operating as intended, even when throttling occurs.

<figure><img src="https://3879702043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFUXK3a3Lwhp7BRip3ZR5%2Fuploads%2Fe8ojQtSyUE9yxz9YkTbg%2Ftemperature.jpg?alt=media&amp;token=962c66ca-92b8-45fe-b3c5-9071b206b341" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>USB3 or USB2?</summary>

Both work equally well, with USB3 (blue port) having a slight advantage in speed, which doesn't have a large impact on loading times, because most of that time is spent on re-sampling & analysis.

USB2 has one big advantage over USB3; it draws less power and therefore makes the unit run less hot. In our testing we found that certain USB3 sticks draw a lot of power and run very hot, raising the overall temperature of the unit. This is caused by the stick continuously drawing power from the computer, in combination with the controller chip on the stick itself. It does this to meet the high transfer speeds required by the USB3 specification.

We therefore recommend to use USB2 instead of USB3 when ambient temperatures are high or your stick gets hot.

</details>

<details>

<summary>Are the blue ports USB3?</summary>

Yes, the blue ports are USB3, the other are USB2.

</details>

<details>

<summary>What is a good operating temperature?</summary>

The measured temperature = CPU temperature, not the system temperature and is allowed to go up to 85°C before the system starts throttling. Under regular circumstances the temperature hoovers around 60°C to 65°C. In very hot, humid environments the temperature can go up to 75°C.

The unit is passively cooled, to minimize noise and potential points of failure, but that does come at the cost of increased CPU temperatures. If you feel your unit runs too hot you can increase airflow by adding a USB powered fan, and use the USB2 instead of USB3 ports. Also avoid exposing it to direct sunlight when it's hot.

As long as the unit does not throttle extensively everything should continue to work as expected. You can see if the unit has throttled by tapping the `</>` icon at the bottom of the settings page, it should say 'never' if it has not throttled, otherwise a hex code indicating when it throttled.&#x20;

We include a significant performance buffer to guarantee that the unit will keep operating as intended, even when throttling occurs.

<figure><img src="https://3879702043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFUXK3a3Lwhp7BRip3ZR5%2Fuploads%2Fe8ojQtSyUE9yxz9YkTbg%2Ftemperature.jpg?alt=media&amp;token=962c66ca-92b8-45fe-b3c5-9071b206b341" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>What's the audio latency?</summary>

The Devious Pocket significantly outperforms traditional USB solutions. This advantage comes from its direct CPU connection, eliminating the need to package and unpack audio data through USB frames. Internal processing latency is 0.666 ms, which doesn't account for latency introduced by transmission, which varies but 'averages' around 1-2 ms, as explained [here](https://www.hifiberry.com/blog/techtalk-latency).&#x20;

But there's more to latency than just numbers: the Devious Pocket avoids running a full desktop environment, resulting in a snappier, more responsive experience. Its hardware-accelerated GUI is faster than most alternatives and we use real-time audio scheduling for improved timing and stability. The software is written in C++, using our own in-house developed real-time control and visualization platform NAP Framework, which has been battle tested in production for years and is used by us and our partners to power performance critical, large scale interactive installations and embedded solutions world-wide.

</details>

### Playlists

Support for [Rekordbox](https://rekordbox.com/) playlists is available since firmware version 1.2.0. Ensure your Devious Pocket is running [that version or later](#update).&#x20;

> *Note that this is an 'experimental' feature. If you encounter any issues, we recommend reverting back to an older version. Tested with Rekordbox version 7.2.18.0311.*

{% stepper %}
{% step %}

#### Export

Inside Rekordbox create and select a playlist; In the top menu click on:&#x20;

* `Playlist`  >  `Export Playlist`  > `USB`

For the Devious to read the playlist we also export it as a `.txt` file:

* `Playlist`  > `Export a playlist to a file`  > `Export a playlist to a file (.txt)`

Place the exported `.txt` file somewhere on the same `USB` drive and eject it.
{% endstep %}

{% step %}

#### Select & Play

Plug your `USB` drive into the Devious Pocket and click on the newly created `.txt` file. The system will automatically match the tracks in there to individual files in the `Contents` directory. Tracks in a playlist can be sorted like regular tracks, but they use data from Rekordbox (like BPM and Key) instead of the file's metadata.
{% endstep %}
{% endstepper %}

<details>

<summary>How does it work?</summary>

When you open a playlist the Devious will try to match each track on screen to a file on your drive. When the file is found, the title turns from grey to white. If the file can't be found the track is darkened out. This allows you to inspect your export before heading off the club.&#x20;

Note that finding a match can take some time, depending on the speed of your drive, selected USB port and size of your content. However, you can still select and load a track while the matching is in progress.

</details>

### Update

Only update the device if you need new features that improve your workflow. Don't update the device if you're happy using it - changes might change or interrupt your current flow.

{% stepper %}
{% step %}

#### Check current version

Open the `Settings` page and tap `</>` to check the current version on the first line.
{% endstep %}

{% step %}

#### Download update

Go to the [download](https://download.nap-labs.tech/devious/releases) page and download the latest version. If your current version is higher or equal to the online version don't update, unless you want to roll back to a previous one.
{% endstep %}

{% step %}

#### Write update to USB

* [ ] Plug-in your USB stick.
* [ ] Create a directory called `devious-pocket` in the root.
  * [ ] Make sure it's empty; remove all content including previous updates.
* [ ] Copy the `tar.bz2` file into it.
* [ ] *Before removal;* eject the disk and ensure all data is synced.
  {% endstep %}

{% step %}

#### Flash update

Turn the Devious Pocket off, plug the USB stick with the update into it and turn it on.&#x20;

The system will detect the update and run it on initialization, just before launching into the application. Wait for the screen to turn from <mark style="color:$warning;">**orange**</mark> (in progress) to <mark style="color:blue;">**blue**</mark>. If the screen turns <mark style="color:blue;">**blue**</mark> the update succeeded, if the screen turns <mark style="color:$danger;">**red**</mark> the update failed. Wait a few seconds then power off the unit.&#x20;

> *Wait for it to complete!* *Never interrupt the update process, as it might corrupt your device.*
> {% endstep %}

{% step %}

#### Validate

Remove the USB stick with the update and turn the device back on to confirm everything works as expected. If the updated failed the system should revert back to it's current version.  If the unit fails to boot after the update send a mail to [support](#support).
{% endstep %}
{% endstepper %}

### Recovery

In the unfortunate event something goes wrong during [update](#update) or internal storage fails, you can flash a new image to a micro SD card to restore the firmware. This isn't as hard as it sounds, so don't despair! It's a good thing you can do this yourself, because it prolongs the lifespan of your device and you don't have to return it to us for repair.&#x20;

> *This doesn't fix hardware issues, such as a broken screen. In that case you have to contact* [*support*](#support) *and / or follow the hardware repair guide (coming soon).*&#x20;

{% stepper %}
{% step %}

#### Download and unzip the .img

Download the [latest image](https://download.nap-labs.tech/devious/img/) and unzip it using your favorite tool.
{% endstep %}

{% step %}

#### Write the .img to micro SD card

Insert a (new) micro SD card of at least **16 GB** card into your reader and install the official [Raspberry Pi Imager](https://www.raspberrypi.com/software/).

After installation; select `Raspberry Pi 4`, click on `Use Custom` and open the unzipped `.img` file. Next select your SD card and proceed with writing the downloaded `.img` to the device. Wait for `validation` to succeed and remove the SD card from the reader.

> [<sub>Win32 Disk Imager</sub>](https://sourceforge.net/app/win32-disk-imager/) <sub>also works. Other imaging tools might work but have not been tested and are not supported. All existing data on that card will be lost after writing the devious pocket</sub> <sub></sub><sub>`.img`</sub> <sub></sub><sub>to that card.</sub>&#x20;
> {% endstep %}

{% step %}

#### Remove bottom plate

* [ ] Remove the 4 screws at the bottom of the unit using a `phillips` screw driver.
* [ ] Separate the bottom from the top, by pressing the bottom *away* from the top.
  * [ ] With your thumbs putting pressure on the bottom, whilst your middle and index finger hold back the top.
    {% endstep %}

{% step %}

#### Remove top plate

* [ ] Gently press the sides of the top away from the unit to free the USB & Ethernet ports.
  * [ ] **Don't apply excessive force, this could break the enclosure.**
* [ ] Lift the unit up at the front and gently lift it out of the enclosure.
  * [ ] With an upward motion, away from the *extrusions* that keep the screen in place.
    {% endstep %}

{% step %}

#### Replace micro SD card

Replace the existing micro SD card with the new one. Destroy the old one (seriously!)
{% endstep %}

{% step %}

#### Assemble the unit

* [ ] Gently press the sides of the top away from the unit to free the USB & Ethernet ports.&#x20;
* [ ] Slide the hardware into the top of the enclosure.&#x20;
  * [ ] Start by placing the screen under the extrusions that keep it in place.
* [ ] Slide the back plate into the top of the enclosure.&#x20;
* [ ] Attach the bottom to the top using the 4 screws.
  * [ ] A bit of friction is enough to keep the plates in place. **Don't apply excessive rotary force to tighten screws, this could damage the unit.**
    {% endstep %}

{% step %}

#### Request a license

Power it on and wait for the device to boot. Instead of the regular user interface you should see a `code`. Take a clear picture of this code and send it to `support@nap.works`. We use this code - which is unique to your machine - to generate a new license.

<details>

<summary>Why?</summary>

Because the Devious Pocket is protected against unauthorized copy & theft. This license allows us to distribute the `.img` without the (immediate) risk of people stealing our firmware and re-distributing and / or selling it without our consent.

</details>
{% endstep %}

{% step %}

#### Install license

After receiving the license files from support:&#x20;

* [ ] Plug-in your USB stick.
* [ ] Create a directory called `devious-pocket` in the root.
  * [ ] Make sure it's empty; remove all content including updates.
* [ ] Copy the `.key` and `.license` file into it.
* [ ] *Before removal;* eject the disk and ensure all data is synced.

Turn the Devious Pocket off, plug the USB stick with the license into it and turn it on.&#x20;

Before launching the app, the system looks for a license in the `devious-pocket` folder and installs it if found. Upon success operation should be back to normal, if not send a mail to [support](#support).
{% endstep %}
{% endstepper %}

### Support

If you have any issues or questions, please send a mail to <support@nap.works>
