Тёмный

Three Body Hardware Design and Why I Used an FPGA 

SCHLAPPI ENGINEERING
Подписаться 1,8 тыс.
Просмотров 9 тыс.
50% 1

Опубликовано:

 

6 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 62   
@RedMeansRecording
@RedMeansRecording Год назад
fascinating and awesome to watch. thanks for the info.
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING Год назад
Thank you so much!
@ryanriley8173
@ryanriley8173 3 месяца назад
Thanks for the informative explanation! I messed with FPGAs during my undergrad and was curious about their usage in synthesizers. Your video explained what I wanted to know.
@lfheller
@lfheller 2 месяца назад
Thanks very much, an excellent presentation! I'm getting back into FPGAs after a few years playing with MCUs.
@reheller
@reheller 2 года назад
Thanks for this FPGA session, Eric! It’s an honor to be taken along when you explain your design decisions and workflow. This will add to the appreciation for my Three Body.
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 2 года назад
Thanks so much!
@julians7785
@julians7785 2 года назад
Hey, im currently getting an EE degree and am working with FPGAs. Please make more content about fpgas and their applications in synthesis/audio. Keep up the good work 👏👌🙌
@synchromesh
@synchromesh 7 месяцев назад
Thanks for this Eric, I found it very interesting and I'd definitely like to see more videos about your experiences designing with FPGAs. I have a Red Pitaya board with a Xilinx Zynq 7010 FPGA and I'd like to use it to process the 8 signals from the CycFi Nu Multi pickups on my guitar, but I haven't done any digital design since university, so I'd love to hear about how you got on with the Three Body design.
@sonicspecter
@sonicspecter 2 года назад
Really cool use of the FPGA. For me it resembles analog circuit sound better than programming a cpu.
@zackfravel4820
@zackfravel4820 2 года назад
Definitely make more videos! Love the deep dives, don't know how interesting it is for others but would love to see a low level block you designed, how you tested it at the block level, and integrating at the full design level. Super cool hearing how deep you went with this project!
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 2 года назад
Thanks Zack! Yeah, I think there are a few blocks I would like to do that with!
@joshbassett
@joshbassett 2 года назад
I've been working in Chisel for the past couple of years on the MiSTer FPGA project (recreating retro arcade machine hardware). Like you said, for system-level hardware design it really shines as you are able to manage things more easily at a higher level. It also gives you the ability to write unit tests for your hardware designs, which saves wasting a lot of time debugging on an actual device.
@BenWard29
@BenWard29 2 года назад
I love the work you've done on the MiSTer- I follow your GitHub. Curious about your workflow- do you write HDL in Chisel and then output to Quartus to do the final compile for the hardware?
@joshbassett
@joshbassett Год назад
@@BenWard29Sorry only just saw your question. Thanks! Yes the workflow is chisel -> verilog -> bitstream. But the whole pipeline is automated with a make task, so there is no extra effort on my part.
@corticallarvae
@corticallarvae 2 года назад
This is why I think Eric so very different than most modular engineers... he's so intensely though full about his approach.. this Is why I literally buy two of whatever I can.. to keep his business alive regardless. And the extreme diversity of function is phenomenal.
@chrisburns984
@chrisburns984 2 года назад
Eric/Schlappi is the fever dream of an engineer adding another route to some shitty crud app
@reheller
@reheller 2 года назад
Yes, I second that anytime! He’s taking roads that are rarely traveled and creates modules that are very unique and add new flavors to known functions
@wyattr7982
@wyattr7982 2 года назад
This is so cool! I just finished my Comp Eng masters and my final project was an FPGA based guitar speaker simulator, its still rough around the edges but it works. Once the FPGA shortage cools off id love to design a custom board to fit in pedal enclosure
@calfkillerriver
@calfkillerriver 10 месяцев назад
i'm really glad you made this video, because i have been on the fence about several fpga modules and thought they were an outdated technology (largely because of the complexity of updating them), without understanding anything about them. this really cleared that up, thank you
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 10 месяцев назад
I'm glad this helped, definitely not outdated! Just a little specific in the use cases.
@derrickdaugherty3445
@derrickdaugherty3445 2 года назад
What a wonderful unexpected treat. Thanks for taking the time to go into this, I enjoy understanding the thought process behind the decisions. I think you're just scratching the surface and can't wait to see where it leads you!
@bodoelsel
@bodoelsel Год назад
Very interesting video and module as well. Thank you.
@CinematicLaboratory
@CinematicLaboratory 4 месяца назад
It should be in every rack, probably one of the most powerful complex VCO's out there, but I don't care about the tech too much because I don't understand any of it.
@a-swimming-antelope
@a-swimming-antelope 10 месяцев назад
super interesting, thanks for this video!
@RoastLambShanks
@RoastLambShanks Год назад
Fantastic, yes I'd like more tech talks please.
@cursortoxyz
@cursortoxyz 8 месяцев назад
Please keep these coming, it was super informative!
@navicore
@navicore 2 года назад
Thanks for this - such a clear explanation of the things to consider in FPGA vs microcontroller / CPU decisions. Looking forward to where you go with this...
@TerekkiTerekki
@TerekkiTerekki Год назад
Thank you for the insights
@vidret
@vidret 2 года назад
This is great. Please do a video like this on the angle grinder as well!
@klavismodular
@klavismodular Год назад
Very nice explanations. Well done !
@BrianFedirko
@BrianFedirko 2 года назад
came across the video on using the FPGA on your Three Body. I've invented and programmed for years, now just lazy and programming for a Japanese rock star... but I've got some ideas of using FPGA along with outdated match co processors AND GPU as the massive calc using Cuda Core. It would be extreme, and a step up from bedroom... but it would be something synthesis has lacked since the Synclavier/Fairlight days (which I also used to program) I'm based in a $20 million studio here in LA, and can't travel due to physical inability. love brian
@anastasia0zardonova
@anastasia0zardonova 2 года назад
Im looking to write my bachelors essay about an fpga Project early next year and to me it is so exciting that youve done this. Maybe ill Experiment with audio oscillation as a fun preperation for that in my spare time. Huge Respect for your Work and looking Forward to more Videos (even more technical would be great but i understand you probably want to keep some Secrets :)
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 2 года назад
Originally I thought an audio oscillator would be a great first project on an fpga because it's so basic 😅 Actually I still think it was the right choice and I did get the first prototype working in a few months, it's just a long road to something that is polished and done. I will do more videos for sure. I can't open source the files themselves because of the cloning situation in the audio world but I don't think there are (or should be) any secrets here, it's all based on papers and data sheets from twenty or thirty years ago or other peoples open source work so I will share as much as I have time for 😁
@anastasia0zardonova
@anastasia0zardonova 2 года назад
@@SCHLAPPIENGINEERING thanks for the quick Response. I originally thought to make a Trigger sequencer because those wouldnt even need adcs if its Just about making Something for the Sake of making something. I even have a Great Idea for one but i already Made it on a Microcontroller and when its already done it feels a little boring to do ist again but differently. Looking Forward to the Videos and maybe ill try and save Up for a three Body Allround a cool Module!
@joshbassett
@joshbassett 2 года назад
Great video, look forward to seeing more on how you implemented the synth engine in the FPGA 👍 I would love to see a product like the Electrosmith Patch.Init(), but with an FPGA instead of a CPU, for learning synth design at the hardware level.
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 2 года назад
Awesome! I've though about this a bit. It's certainly doable but would either require a library of verilog modules as examples or one of the higher level languages. Verilog has a lot more footguns than any other method of digital design I have seen so far (barring assembly I guess).
@MatKelcey0
@MatKelcey0 Год назад
Super interesting stuff! Would love to see a from scratch explanation of something fundamental like building a simple oscillator with V/oct control, I think you explain things well!
@skra_
@skra_ Год назад
Thaank you!
@BenWard29
@BenWard29 2 года назад
Loved your video Eric! It was very thoughtful and detailed. I would love to see more videos and will be looking out for them! As a hardware designer myself (only analog oscillators and filters thus far- and just for "personal use"), what was the thought process about specifically having digital oscillators and going that direction instead of analog? Was it just a good bit of synchronicity that you could design a great little digital oscillator as well as use it for a learning experience (as you said later in the video), or is it something sonically that you really wanted from a digital oscillator that you couldn't/didn't want to do in analog? Besides Mutable's Plaits, I haven't really found many digital oscillators that have struck my fancy (and I like Plaits mainly because it is a swiss army knife that has so many sounds and uses very little space). I was looking at Make Noise's DPO but your design looks interesting- I'm going to check out the overview video. Thanks Eric!
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 2 года назад
HI Ben, thanks for your comments! The big things that led me to a digital design were: wanting to explore Chowning style ratio FM, arbitrary phase modulation, and through zero FM. These things are not impossible in the analog realm but generally involve quite a bit of logic (and trimmers) to implement and always feel very hacky to me. I've tried to do frequency division and multiplication for ratios in the analog realm before using PLLs and never achieved anything very stable. I do think I go a bit deeper into my reasoning into the video.
@bennguyen1313
@bennguyen1313 3 месяца назад
Would love to see a course on how you used the Lattice FPGA to implement some of the features. The little that I've seen, it seems FPGAs are so much more complicated than microcontrollers.. things like crossing clock domains, setting up timing timing constraints, and just thinking in terms of parallel execution (blocking vs non-blocking), etc. Also any thoughts on python tools that can help build fpga systems? For example, I understand migen->nMigen has become Amaranth HDL.. but there's also Chisel or Spinal HDL. Or for building SoCs.. LambdaSoc (Amaranth HDL) vs LiteX (m-labs or whitequark's Migen/MiSoc)?
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 3 месяца назад
I have a talk coming up at Crowd Supply Teardown where I will probably talk about some of this. I think I might be trying to transition away from the Lattice FPGAs since the prices tripled during the pandemic. I think it all depends on your background and learning style. As a hardware guy I rather like using FPGAs and writing in verilog. I have not had much luck with the python tools but if your background is software YMMV.
@james_44
@james_44 2 года назад
Fascinating. Thanks for this!!
@buriedintime
@buriedintime 2 года назад
so rad. also, big hugs from portland.
@pugix
@pugix 3 месяца назад
I'll have to get one of these. Question: Has the initial release programming for the FPGA ever been updated? It's hard to imagine there are no bugs. Is there any way to update? I would love to see the schematic diagram for the programmed gate array, even just one of the oscillators. My entry into computing came by way of logic chips. I studied binary adder, multiplier circuits ages ago.
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 3 месяца назад
No updates, no known bugs in the default configuration (not sure how many people are digging into the header options). Updating is certainly possible using the open source tools and usb jack on the brain board to replace the bitstream but there has been no need so far for any user to do this. More videos on the internal structure and verilog may happen eventually but generally designing new things takes precedence.
@sharpiedory
@sharpiedory 7 месяцев назад
Thank you for this. Is it cheaper to implement your own del sig adc/dac than use ICs? Also, have you looked at lower level alternative HDLs like pipelineC, Silice, and Clash? I suspect they provide the right level of abstraction.
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 7 месяцев назад
It depends! The amount of FPGA fabric taken for a second order delta sigma is trivial (around 100 LUTs) but the differential output filter requires a pretty decent op amp and a significant number of passives which should all be thin film 0.1% resistors or 1% np0 capacitors so it may actually be about the same price as some cheaper off the shelf ICs like the AKM line, especially if the output level and drive capability of the DAC matches your needs. As for HDLs I've seen some Silice stuff (which looks nice) but not the others. I'll take a look at pipelineC and Clash, would be nice to have pipelining taken care of! I'm really a hardware guy though and a lot of these higher level solutions assume skills in setting up convoluted toolchains or learning new syntax that a software dev or embedded engineer would take for granted but I find a lot more difficult than just writing verilog. I used C and C++ for work about a decade ago but have no knowledge of haskell/rust/etc and very little python. I like things that can be represented as schematics and logic diagrams.
@corticallarvae
@corticallarvae 2 года назад
Yes this is awesome
@savagemessiah.
@savagemessiah. 9 месяцев назад
So how many FPGA euro oscillators are out there now? Three body, shapeshifter, odessa?
@karakal4486
@karakal4486 8 месяцев назад
what does this have to do with the three body problem? it's just 3 FM oscillators ???
@beatrute2677
@beatrute2677 2 года назад
Thanks man.
@annanh1307
@annanh1307 2 года назад
hi Eric, thanks so much for putting this video together, and I look forward to future videos on this topic. i took some notes, so i have a bunch of questions. how complicated was setting up the clocking between all of the external ADCs and the FPGA? did you need to do any optimization to get the code to fit in the 12k LUTs? (ok i heard the bit about you used all of them) pinout/layout challenges - did you have any, with all of the ADC/DAC io? for the DACs, did you need to get into the source code at all to figure out strangenesses, or are things mature enough in open-source FPGA-land that things worked as described? 'a coprocessor of some sort' - like a risc-v kind of thing, running some kind of low-level firmware, or would you do linux? ok i heard the bit about just picking an fpga+microprocessor soc, that's a great tip i would love to see some kind of video on how you wired the different parallel blocks together, like at a high-level 'here's the layout, and here's how i set up the buses and yes i had to write my own intercommunication logic' i'd love a bit more detail on why audio rate cross modulation/aliasing requires such a high sample rate (i have a basic understanding, from the normal nyquist frequency discussions in standard dsp books, but this sounds like a corner case i have no clue about) and huge thanks again; i've been looking forward to seeing these videos almost as much as i've been looking forward to getting my hands on the 3 body itself. your learning process sounds fairly similar to mine (i need to understand the low level before i feel like i actually understand something), so i can appreciate the journey you've made, especially since you've been using OSS toolchains the whole time. I imagine you've seen a lot of change on that front too!
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING 2 года назад
Hi Annan! That is a lot to respond to! The clocking with the ADCs wasn't too bad, it's just SPI and there are many examples out there for that. No real optimization is needed for just three oscillators, it is totally possible to do tens or hundreds of oscillators on this sort of chip depending on how you want to do it. Pinout/layout challenges weren't too bad, by having the BGA for the FPGA on a seperate board from the control board I was able to keep each PCB to only 4 layers, and no external signal was running faster than 25MHz which isn't too bad, I did need to put some resistance in series with the clock signals to reduce reflections or I got some very strange errors. That was not at all the first sigma delta implementation I tried, there were a few non-working ones I found and when I tried to do it from scratch I was able to do a first order but not second order. It's one of those things that's only a couple lines of code but still pretty tricky to get right (even after I read a textbook on the subject), so I was very thankful when I did find a working implementation. One subtlety is that you need to keep the input below about 80% of full scale or it distorts pretty badly. Open source FPGA land is a bit confusing, the fully open toolchain is new but obviously not verilog. There are lots of decade old code snippets floating around. There are some very cool riscv soft cores, I plan to do more experimenting with NeoRV32 and have had good luck with PicoRV32. Any microcontroller you like should work as well, and yes, the chips with both FPGA and CPU tied together are awesome, just a bit expensive. A video on interconnection and bus logic would be cool! The cross modulation is tricky (specifically phase modulation) because it generates harmonics and those harmonics generate harmonics and those harmonics and so on, and if it does start to alias then it gets worse because the aliasing then piles on top of itself... I'm so glad you enjoyed the video and got something out of it! It's been a really interesting journey for me, a lot of puzzles to solve. I do think the OSS toolchain is a good place to start, but for people interested in meeting deadlines it may be worth using some of the higher level tools out there (either in the OSS world or out of it).
@annanh1307
@annanh1307 2 года назад
@@SCHLAPPIENGINEERING no need to reply in depth, Eric, it is a lot for sure. I appreciate any info though, and I'm sure some of this will be covered in later videos!
@maxpatzelt8314
@maxpatzelt8314 2 года назад
Very cool
@corticallarvae
@corticallarvae Год назад
What's the expander for if I might ask Eric??
@SCHLAPPIENGINEERING
@SCHLAPPIENGINEERING Год назад
Something that might happen, or might not. I have made a few prototypes but so far nothing is so good that it has stayed in my live case for very long. The Three Body already does so much adding to it may, or may not, make any sense.
@friendlynoise
@friendlynoise 2 года назад
What are we? Where do we com from? When will I be save enough to order this oscillator? 😍😍
@BrianFedirko
@BrianFedirko 2 года назад
i believe we lost a lot of creativity w/o going up higher in sample rates. Imagine sweeping 512 octaves for a sample and hold matrix mod on a totally different wavetable? there are thousands of creative paths that we've been cutoff by the adults in the room saying "you don't need/or can't hear above this sample rate/bit depth. Gr8 start man... keep on going.
@corticallarvae
@corticallarvae 2 года назад
Ah I'm in intermedia I use video with my modular video synthesizers
@adb012
@adb012 2 года назад
What does this device do, again? And why is it called "3 body"?
Далее
Three Body Overview
15:33
Просмотров 9 тыс.
The History of the FPGA: The Ultimate Flex
18:08
Просмотров 342 тыс.
Прохожу маску ЭМОЦИИ🙀 #юмор
00:59
Open Source Analog ASIC design: Entire Process
40:11
Просмотров 42 тыс.
EEVblog #496 - What Is An FPGA?
37:44
Просмотров 762 тыс.
Generative Patching: Krell and Benjolin
14:37
Просмотров 6 тыс.
How a Clever 1960s Memory Trick Changed Computing
20:05
Exploring the 1st Buchla 100 Modular Synthesizer
46:03
Designing a simple analog kick drum from scratch
39:11
Просмотров 602 тыс.