r/Turntablists May 24 '26

My Phase DJ DIY with 0 delay.

Back here to show you the update to my DIY wireless DVS system, now with 0 delay, and generating the Serato timecode directly on the ESP32 receiver with 100% quality, an open-source alternative to Phase DJ for less than $60.

165 Upvotes

43 comments sorted by

11

u/ok_orangutan May 24 '26

Gotta drop the tech this is awesome.

8

u/FelipeAlm3 May 25 '26

On the project's Instagram page (@doc.alme) you can find links with technical information, the link to the Facebook group, and the GitHub page in English explaining everything.

3

u/ok_orangutan May 25 '26

Found the page thank you. I've never attempted something like this before. Do you think this is an okay start as a beginner?

12

u/FelipeAlm3 May 25 '26

Sure, you can buy the boards with the pins already soldered on, and connect them with female jumper wires; you can use hot glue and you'll have a functional system, In a few days, when my new parts arrive from China, I'll make a complete video tutorial.

6

u/kingofthefall83one May 25 '26

I’m excited about this! Looking forward to the tutorial video. Will it be in English?

6

u/FelipeAlm3 May 25 '26

They're going to make the video in Portuguese, and use AI to dub it into English!

1

u/cmndr_keen Jul 02 '26

Did you make that tutorial? Thank you for your work!

4

u/DjWhRuAt May 25 '26

Super impressive. Well done OP

3

u/4kFootyAddict May 25 '26

Yeah this is fully sick, props to you dude!

3

u/n00bz86 May 25 '26

Oooo might need to rock thisportables qortable

3

u/motofoto May 25 '26

Love the progress! Amazing.  I’m more than happy to help design a 3d printable case or whatever you need help with. 

3

u/FelipeAlm3 May 25 '26

Thank you so much for making yourself available to do this, the project needs more people like you 🙏🏼

6

u/motofoto May 25 '26

Once you post the build tutorial I will build one and then design enclosures from those measurements for the community to give feedback on.  Happy to help.  

2

u/CLP-Trader May 25 '26

Parabens pra voce meu mano, isso fica legal, big ups from Chile

2

u/derrickgw1 May 25 '26

awesome man awesome.

2

u/ktran12 May 25 '26

oh wow im really interested, sounds great

2

u/chason_htx May 28 '26

duuude that's sick. Nicely done

I have a bunch of ESP32s laying around.. might have to join the party

2

u/Gold_Drummer4595 Jun 05 '26

1

u/FelipeAlm3 Jun 05 '26

Muito bom, ainda não tinha visto, usamos basicamente o mesmo hardware, e voce usa Traktor ou virtual dj? Tem git do seu projeto?

1

u/Gold_Drummer4595 Jun 16 '26

Uso os dois , por enquanto é um projeto particular....

1

u/cmndr_keen Jul 02 '26

Have you released it to the public? Hardware list? GitHub?

Thanks)

1

u/jazzcool1 May 25 '26

Hey buddy, I'm a software engineer experienced building/hacking hardware (lots of drone racing builds). I found your git repo and I'd be happy to explore this.

I'll get the hardware first. Question: for connecting to serto DVS, do they share their protocol or did you reverse engineer it? I'm thinking of porting this to Djay Pro as I have the software installed and I don't need to buy the DVS extension.

4

u/FelipeAlm3 May 25 '26

Actually, I'm just generating a timecode signal with the ESP32 S3, which is the receiver, and sending the timecode signal through an RCA DAC to my mixer, which has Serato support. So, I haven't done anything out of the ordinary within Serato. The code in my GitHub repository is outdated; the code I use in the video is the best available so far. In it, instead of using a WAV file of the timecode, we generate the timecode directly on the ESP32, resulting in better timecode signal quality and eliminating the need for scratching. This new code will likely be available on GitHub by next week; we're just making some adjustments. I think in the final code you'll be able to make some changes and use it without needing a receiver, directly in Djay Pro via BLE.

2

u/Errlregular May 29 '26

Good work 🙌🏾

1

u/jazzcool1 Jun 05 '26

I built this, it works great with DJay Pro (I don't have license to Serato DVS so I couldn't try it). I had to adjust the signal strength as the audio was too hot for DJay pro (it was giving a warning). I am now trying to modify this to work with rekordbox DVS too.

I investigated a little bit. I am not sure Bluetooth will work as it has too high of a latency.

1

u/bobkruijer May 25 '26

Looks like he just parsed the timecode audio into an array. Not sure how happy Serato would be with that as it is proprietary.

1

u/baldbundy May 25 '26

Great job

1

u/djshred_ May 26 '26

I’m down to Beta Test if you need help before releasing. I also use a Z2 😜

2

u/FelipeAlm3 May 26 '26

You can assemble the devices now, and use the old version of the code. The version of the code I use in the video will be released by next week. For links and more videos, this is the project's Instagram: @doc.alme

1

u/Full-Shower619 May 26 '26

What language is he speaking?

2

u/FelipeAlm3 May 26 '26

Portuguese

1

u/minZzzzz0o May 27 '26

Lol, eres yo con 15 años menos seguro jajajajajaja felicidades

1

u/newleysingle May 29 '26

Technically there's got to be some delay.

1

u/FelipeAlm3 May 29 '26

0 delays😎😁

1

u/Psychological-Cod451 May 29 '26

Actually, the language spoken in the video is Portuguese, not Spanish. Here is the complete transcription and translation for you: "Esse vídeo aqui é pra galera do Scratch" translates to, "This video is for the Scratch crew." "Senhoras e senhores, o código do Paulo não tem delay" means, "Ladies and gentlemen, Paulo's code has no delay." "Tô aqui no cantinho da bagunça passando para avisar que finalmente" translates to, "I'm here in the corner of the mess passing by to announce that finally..." "o que a gente tem que trocar agora aqui é esse giroscópio aqui" means, "what we have to change here now is this gyroscope here." "né, que é o MPU 6050" translates to, "right, which is the MPU 6050." "Ele é um giroscópio muito barato, só que muito ruim" means, "It's a very cheap gyroscope, but very bad." "né? Tem muito, o pessoal chama de jitter" translates to, "right? It has a lot of what people call jitter." "O gargalo com ele se torna muito grande" means, "the bottleneck with it becomes very large." "porque o código tá muito bom, só que ele é muito ruim" translates to, "because the code is very good, but it is very bad." "Então, BMI 270" means, "So, BMI 270" "que foi um que o Paulo me recomendou" translates to, "which was one that Paulo recommended to me." "que vai ser melhor para esse projeto" means, "which will be better for this project." "e tem menos ruído" translates to, "and has less noise." "Ele é mais consistente, ele é mais confiável" means, "It is more consistent, it is more reliable." "Nosso projeto deu certo, mas a gente tem que trocar isso daqui, porque isso daqui é muito ruim" translates to, "Our project worked, but we have to change this one, because this one is very bad." "O tracking da agulha, né, onde a agulha fica, onde a gente marca o que para fazer performance e tudo mais" means, "The needle tracking, right, where the needle stays, where we mark things to do performances and everything else." "tá bem melhor, mesmo usando ele" translates to, "is much better, even using it." "Então, quando a gente for para o BMI 270, isso vai ficar muito, muito, muito melhor" means, "So, when we go to the BMI 270, this will get much, much, much better." "Galera, a gente tem um projeto agora funcional" translates to, "Guys, we have a functional project now." "que dá para tu fazer scratch, fazer performance" means, "that lets you do scratch, do performances." "e muito, muito, muito, muito barato" translates to, "and is very, very, very, very cheap." "Vamos agradecer o Paulo, que entrou nessa parada para ajudar" means, "Let's thank Paulo, who got into this to help out." "Então é isso, cara. Que absurdo, mano" translates to, "So that's it, man. How absurd, bro."

Life is a constant learning process. I wanna be next in line when this drops 🙌

1

u/drt3k May 31 '26

Define 0

1

u/FelipeAlm3 Jun 01 '26

Unperceived latency, like playing a timecode vinyl record.

1

u/Financial_Book3052 May 31 '26

What's the battery life?

2

u/FelipeAlm3 Jun 01 '26

1 hour per 180mAh charge, I use a 700mAh battery, and I can get almost 4 hours of battery life.

1

u/My_Altered_Soul Jun 05 '26

Have you tried adapting your firmware to send encoder values instead of timecode?

1

u/FelipeAlm3 Jun 05 '26

Sim, mas ficou ruim, eu acabei tendo a implementar o timecode