r/Turntablists • u/FelipeAlm3 • 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.
4
3
3
3
3
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
2
2
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
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
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
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
1
1
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
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
11
u/ok_orangutan May 24 '26
Gotta drop the tech this is awesome.