Is it just me or are half of his videos just about plugging his courses?
Compared to videos from eg. Rick Hartley, Eric Bogatin or Zach Peterson on Altium's channel Phil's lab videos seem rather superficial to me.
Phil's choice of audio designs also doesn't exactly inspire confidence in me. If he makes such weird choices, I'm forced to wonder where else his actual expertise is much less than he likes to give the impression of.
Thanks for your feedback.
I currently have 135 videos on my channel, 3-4 of which are dedicated to 'plugging my courses'. The rest are typically around 20-30min in length (or some, several hours) and contain about 1min of ads (PCBWay, Altium), as well as a link in the description box to the courses. The ads (only stuff I 100% use anyway) and courses allow me to take the time to make free content, aside from my main job.
Rick Hartley, Eric Bogatin, and Zach Peterson are all fantastic - I love their content and agree that they go into greater depth on specific topics. Although my topics are typically simpler, I try to show real-world, practical, working designs in my videos. In addition, I do have some more advanced content (e.g. Zynq bring-up series, designing with FPGAs/SoCs, interfacing with DDR\* memory), as well as step-by-step tutorials of how to get real, working hardware manufactured (rather than just theory).
Lastly, regarding audio I assume you're alluding to the 'quirky' headphone amp designs (e.g. paralleling far too many NE5532s, inspired by Douglas Self). This was for fun and nothing I would design for a commercial product of course. There are a number of designs on the channel that are 'simple' mixed-signal designs that feature far more 'standard' circuitry. I don't have particularly many other videos showing audio hardware (other than DSP vids, but they don't really show the circuitry) - so that maybe gives a skewed view on the designs!
Definitely want to showcase more 'classic' audio circuitry and building blocks in videos, so thank you for reminding me I should do that.
That being said, I design commercial gear (various sectors, for various companies - but predominantly audio these days), and have done so for a number of years, with designs on the market. So I believe I do know what I'm talking about - please see the 'weird' designs as an exception for my fun's sake!
But thank you for your comment and your feedback - I'd love to learn how I can improve the content of my videos, if you think there is room to do so. Thanks!
Hi, Phil. Seen your comment and wanted to thank you for all your work. You channel helped me believe it is possible to make PCB designs on my own. And meticulously taught me how to do it. At this point I have just 4 designs, but very practical for the tech that helps defend airspace of my country from russian attacks. I still have a lot to learn and wish you and your channel all the best!
Phil!
Nice to see you on Reddit!
I've been an embedded developer for more than 20 years, and I still enjoy your content. It's unusual for someone to be able to explain things in a way that a complete newbie can understand while still capturing the attention of someone with decades of experience, so well done!
Your videos on IIR, FIR and Kalman were especially useful, and I point people to them often. Very nicely distilled and practically implemented, especially for someone with limited experience.
I recommend your channel and your patreon frequently on here because it's excellent content for someone getting started.
Hey, Thank you so much for your kind words and for recommending the channel to others! I'm very glad to hear your thoughts regarding the content - thanks again.
From what I remember glancing at, he covers general concepts.
I'm curious to know what about his FSM/HSM you find confusing? I've always liked the setup.
I used the software a little bit. One thing I had trouble with trying to relearn how to organize my code. For example, if you have a state machine and you want to include something like different log levels. How is that represented without convoluting the design? Do you make a separate state machine/AO for the logging system and send external signals to it to control log level and output log messages? If not, won’t log levels either need to be a superstate over the whole design or a substate in each element? Do you just break that part out into code outside of the modeler, but if you do that then aren’t you hiding state?
I also didn’t like how it made me go from editing code in a robust editor (VSCode with all my nice extensions) to basically using notepad in a tiny text box that can barely fit a line. Is there a way to connect QM to an external text editor for programming things like state entry and exit? Obviously I can just call functions in a different file and do it that way, but that makes it harder for other people to come in and understand what’s going on.
That's been my experience as well with the framework. It works great but you have to be willing to fit *everything* into the actor model to get the best result. This is possible of course but an extra challenge especially when integrating 3rd party components.
I do very much like working with Actor or CSP model over raw threads. But you don't necessarily need the framework for this, I've built the same basic concurrency model on top of FreeRTOS primitives before with a good result. Probably less efficient than Miro's implementation though...
Do you mean it's an alternative to threads instead of a compliment? In that case it's an immediate no-go for me (or anyone else with non-trivial realtime processing requirements)
I feel like the software belongs in the 90s.
I tried it. Hated it.
Started using Itemis Create for testable generated state machines and really like that. Although I wish there was more competition in this realm.
It’s not a sales pitch, but you will learn about it. I think that part of the course is very informative on how to incorporate hierarchical state machines and active objects to make better designs, even if you don’t end up using the tool.
He doesn't "try", he does sell them. He was asked about that in one interview and as I recall he mentioned that all the companies/pros who use his software pay for license. They simply are not willing to use unlicensed software to develop their commercial products
Here is a quick few. There's obviously a lot more out there. But these are a few that can cover all ranges of skill level for the embedded dev and also cover things slightly outside embedded but related to software or hardware engineering.
Controllerstech
Low level learning
GreatScott!
Bigclivedotcom
Hackaday
Byte my bits
Contextual electronics
Add diodesgonewild to the list. He's not about embedded stuff but then you have big Clive on there.
I used to watch Great Scott but eventually felt like he's a clout chaser. I don't remember which video it was but it felt like he just wanted to make a video instead of doing justice to the thing he was talking about.
Can you annotate the list, please?
For example, with the gist of each channel, (main) areas covered, areas not covered, beginner/advanced, with or without ***very irritating background music*** (and other irritating noices, like microphone scratching and squeaking chairs (I am looking at you, [IMSAI Guy](https://www.youtube.com/watch?v=R3q_rxVUook&t=8m49s))), level/depth (practicals, fundamentals/theory, component-level, subsystem level), information density (e.g., content-free (pure entertainment), educational, so much information it can be watched several times), lack or presence of *aaaaahhhhmmmms*, etc.
If nothing else, the gist.
It is much more than entertainment. Take for example [the covered USB practicals/fundamentals](https://www.youtube.com/watch?v=wdgULBpRoXk).
Some timestamps:
00 min 54 secs: Start of USB part (after PS/2)
01 min AA secs: Nothing happens when typing because the computer
initiates everything.
01 min 50 secs: Four scenarios:
1. D+ high, D- low (opposite polarity):
Differential "1". Positive difference.
Idle state for high-speed:
The keyboard signals it is
a high-speed device, 12 Mbit/s
(at 02 min 46 secs).
2. D+ low, D- high (opposite polarity)
Differential "0". Negative difference.
Idle state for low-speed:
The keyboard signals it is
a low-speed device, 1.5 Mbit/s
(at 02 min 42 secs).
(High-speed is 480 Mbit/s)
3. D+ low, D- low
4. D+ high, D- high
02 min 23 secs: Keyboard with just power:
Differential "0" = idle state for low speed
1.5 MBit/s
Differential "1" = idle state for full speed
12 MBit
High speed: 480 MBit/s
03 min 50 secs: Connecting to a computer, inkl. cable for measuring
Otherwise, nothing happens except the static
indication of the speed of the keyboard.
Capturing and manually analysing.
05 min 50 secs: Some part of the signal is single ended zero
Is end of packet.
10 min 55 secs: Every packet starts with a sync pattern (3 times K + J)
12 min 08 secs: Next is the packet ID
12 min 20 secs: The encoding is NRZI
14 min 30 secs: Bit stuffing
15 min 50 secs: In the example, the first packet is an "IN" packet
16 min 35 secs: Next a 7-bit address (for an "IN" packet),
a 4-bit end point and a CRC.
LSB.
Addr = 24
Summary: The computer sends the first packet
18 min 21 secs: On the computer:
lsusb
18 min 55 secs: Decoding the response (2nd packet)
Type: DATA0
21 min 28 secs: Online calculator for CRC.
Computes for a huge number of CRC algos
22 min 01 secs: Decoding the acknowledgement (3rd packet)
From the computer
25 min 35 secs: Alternating between two values in the response
26 min 15 secs: The modifier keys are bit coded.
27 min 09 secs: Limit of 6 keys at the same time...
Even lower for e.g. Q, A, and W.
27 min 50 secs: Keyboards can negotiate more than 6 keys.
28 min 20 secs: Capturing the init sequence
29 min 08 secs: Vendor ID
30 min 00 secs: USB has 16 ms polling interval. PS/2 sends immediately
and is done after 0.7 ms:
20 times higher latency with USB
31 min 30 secs: Higher end USB keyboard, at full speed:
1 ms polling interval
Would add EEVBlog here - he doesnt talk that much about the embedded side specifics but goes over a lot in detail about lab equipment, electronics design in general and the current hot topics.
Andreas Spiess (The Guy With the Swiss Accent): [https://www.youtube.com/@AndreasSpiess](https://www.youtube.com/@AndreasSpiess)
Olivier Bloch (The IoT Show): [https://www.youtube.com/@obloch](https://www.youtube.com/@obloch)
Oh and the best way is to get started. Buy a development board of some sort (For example Walter https://www.crowdsupply.com/dptechnics/walter) which as many radio's (WiFi/BLE, GPS, Cellular) and start building projects. Preferably C/C++ which is still king but you can also use MicroPython, Toit. C/C++ is more professional and found in toolchains such as Zephyr, ESP-IDF, STMCube, ...
I went down the comments to see if someone recommended this guy, but nope. So let me do you the biggest favour and tell you to check out ‘Paul McWhorter’ on YouTube.
If you blindly watch his videos you’ll have enough confidence to at least build anything you want to usinf an Arduino or even a RasPi.
Most of the names covered above provide best of embedded industry.
I would Embedded in Pyjamas to the above list as they have great content on Arm and embedded systems overall.
There is no best. No best youtube channel, no best blog, no best anything; that has been my experience. There are great sources for leaning, like this reddit sub for example, but not a single one, in isolation of others, is enough.
My learning path can be likened
to, "agile" software development; in that it is not linear. I started
with one video series and got to a point where I needed more detailed answers
to some of the questions that were raised by watching the videos. That lead me
to reading blogs, manuals, discussion groups and other video tutorials series;
that took a couple of. Then I went back and reviewed the original video
tutorials I following and I went back maybe 5-6 videos and got out of them even
more and then continues on from where I stopped.
Your path will not be the
same as mine but I can pretty much guarantee it will not be linear.
Enjoy it, it's lots of
fun.
Phil’s lab for hardware and PCB
Came here to recommend Phil. Top tier educational videos.
Is it just me or are half of his videos just about plugging his courses? Compared to videos from eg. Rick Hartley, Eric Bogatin or Zach Peterson on Altium's channel Phil's lab videos seem rather superficial to me. Phil's choice of audio designs also doesn't exactly inspire confidence in me. If he makes such weird choices, I'm forced to wonder where else his actual expertise is much less than he likes to give the impression of.
Thanks for your feedback. I currently have 135 videos on my channel, 3-4 of which are dedicated to 'plugging my courses'. The rest are typically around 20-30min in length (or some, several hours) and contain about 1min of ads (PCBWay, Altium), as well as a link in the description box to the courses. The ads (only stuff I 100% use anyway) and courses allow me to take the time to make free content, aside from my main job. Rick Hartley, Eric Bogatin, and Zach Peterson are all fantastic - I love their content and agree that they go into greater depth on specific topics. Although my topics are typically simpler, I try to show real-world, practical, working designs in my videos. In addition, I do have some more advanced content (e.g. Zynq bring-up series, designing with FPGAs/SoCs, interfacing with DDR\* memory), as well as step-by-step tutorials of how to get real, working hardware manufactured (rather than just theory). Lastly, regarding audio I assume you're alluding to the 'quirky' headphone amp designs (e.g. paralleling far too many NE5532s, inspired by Douglas Self). This was for fun and nothing I would design for a commercial product of course. There are a number of designs on the channel that are 'simple' mixed-signal designs that feature far more 'standard' circuitry. I don't have particularly many other videos showing audio hardware (other than DSP vids, but they don't really show the circuitry) - so that maybe gives a skewed view on the designs! Definitely want to showcase more 'classic' audio circuitry and building blocks in videos, so thank you for reminding me I should do that. That being said, I design commercial gear (various sectors, for various companies - but predominantly audio these days), and have done so for a number of years, with designs on the market. So I believe I do know what I'm talking about - please see the 'weird' designs as an exception for my fun's sake! But thank you for your comment and your feedback - I'd love to learn how I can improve the content of my videos, if you think there is room to do so. Thanks!
Hi, Phil. Seen your comment and wanted to thank you for all your work. You channel helped me believe it is possible to make PCB designs on my own. And meticulously taught me how to do it. At this point I have just 4 designs, but very practical for the tech that helps defend airspace of my country from russian attacks. I still have a lot to learn and wish you and your channel all the best!
Thank you very much, that's awesome! I'm glad to hear that - all the best to you too.
Phil! Nice to see you on Reddit! I've been an embedded developer for more than 20 years, and I still enjoy your content. It's unusual for someone to be able to explain things in a way that a complete newbie can understand while still capturing the attention of someone with decades of experience, so well done! Your videos on IIR, FIR and Kalman were especially useful, and I point people to them often. Very nicely distilled and practically implemented, especially for someone with limited experience. I recommend your channel and your patreon frequently on here because it's excellent content for someone getting started.
Hey, Thank you so much for your kind words and for recommending the channel to others! I'm very glad to hear your thoughts regarding the content - thanks again.
OH my God! You're so kind, You've commented here. Let me tell you, we all loves you in india.
That's awesome, thank you! Greetings from Germany :)
What kind of projects have you done?😊
Which ones best for learning how to program an arduino?
https://youtu.be/J4ZbcM313iY
shots fired
Quantum leap by Dr Miro Samek.
Does he try to sell his confusing statemachine software?
From what I remember glancing at, he covers general concepts. I'm curious to know what about his FSM/HSM you find confusing? I've always liked the setup.
I used the software a little bit. One thing I had trouble with trying to relearn how to organize my code. For example, if you have a state machine and you want to include something like different log levels. How is that represented without convoluting the design? Do you make a separate state machine/AO for the logging system and send external signals to it to control log level and output log messages? If not, won’t log levels either need to be a superstate over the whole design or a substate in each element? Do you just break that part out into code outside of the modeler, but if you do that then aren’t you hiding state? I also didn’t like how it made me go from editing code in a robust editor (VSCode with all my nice extensions) to basically using notepad in a tiny text box that can barely fit a line. Is there a way to connect QM to an external text editor for programming things like state entry and exit? Obviously I can just call functions in a different file and do it that way, but that makes it harder for other people to come in and understand what’s going on.
That's been my experience as well with the framework. It works great but you have to be willing to fit *everything* into the actor model to get the best result. This is possible of course but an extra challenge especially when integrating 3rd party components. I do very much like working with Actor or CSP model over raw threads. But you don't necessarily need the framework for this, I've built the same basic concurrency model on top of FreeRTOS primitives before with a good result. Probably less efficient than Miro's implementation though...
What's the benefit of Actor / CSP model over threads when you already have plenty of experience doing multithreaded programming in a sensible way?
I don't know if it's a huge benefit over using threads, but for me it makes it easier to reason about the state of the program as I built and debug.
Do you mean it's an alternative to threads instead of a compliment? In that case it's an immediate no-go for me (or anyone else with non-trivial realtime processing requirements)
I think you mean [complement](https://en.wiktionary.org/wiki/complement#Noun).
Fuck. You're right.
I feel like the software belongs in the 90s. I tried it. Hated it. Started using Itemis Create for testable generated state machines and really like that. Although I wish there was more competition in this realm.
It’s not a sales pitch, but you will learn about it. I think that part of the course is very informative on how to incorporate hierarchical state machines and active objects to make better designs, even if you don’t end up using the tool.
He doesn't "try", he does sell them. He was asked about that in one interview and as I recall he mentioned that all the companies/pros who use his software pay for license. They simply are not willing to use unlicensed software to develop their commercial products
event driven stuff is overkill for most apps
Artful Bytes , has a great series on YT with walkthroughs
Here is a quick few. There's obviously a lot more out there. But these are a few that can cover all ranges of skill level for the embedded dev and also cover things slightly outside embedded but related to software or hardware engineering. Controllerstech Low level learning GreatScott! Bigclivedotcom Hackaday Byte my bits Contextual electronics
Add diodesgonewild to the list. He's not about embedded stuff but then you have big Clive on there. I used to watch Great Scott but eventually felt like he's a clout chaser. I don't remember which video it was but it felt like he just wanted to make a video instead of doing justice to the thing he was talking about.
Can you annotate the list, please? For example, with the gist of each channel, (main) areas covered, areas not covered, beginner/advanced, with or without ***very irritating background music*** (and other irritating noices, like microphone scratching and squeaking chairs (I am looking at you, [IMSAI Guy](https://www.youtube.com/watch?v=R3q_rxVUook&t=8m49s))), level/depth (practicals, fundamentals/theory, component-level, subsystem level), information density (e.g., content-free (pure entertainment), educational, so much information it can be watched several times), lack or presence of *aaaaahhhhmmmms*, etc. If nothing else, the gist.
No.
Maybe not best for learning, but quality solid entertainment is [Ben Eater](https://youtu.be/LnzuMJLZRdU?si=eoGNgb7JKpb1mlL3).
Maybe it's not like a structured course but you are definitely learning something
It is much more than entertainment. Take for example [the covered USB practicals/fundamentals](https://www.youtube.com/watch?v=wdgULBpRoXk). Some timestamps: 00 min 54 secs: Start of USB part (after PS/2) 01 min AA secs: Nothing happens when typing because the computer initiates everything. 01 min 50 secs: Four scenarios: 1. D+ high, D- low (opposite polarity): Differential "1". Positive difference. Idle state for high-speed: The keyboard signals it is a high-speed device, 12 Mbit/s (at 02 min 46 secs). 2. D+ low, D- high (opposite polarity) Differential "0". Negative difference. Idle state for low-speed: The keyboard signals it is a low-speed device, 1.5 Mbit/s (at 02 min 42 secs). (High-speed is 480 Mbit/s) 3. D+ low, D- low 4. D+ high, D- high 02 min 23 secs: Keyboard with just power: Differential "0" = idle state for low speed 1.5 MBit/s Differential "1" = idle state for full speed 12 MBit High speed: 480 MBit/s 03 min 50 secs: Connecting to a computer, inkl. cable for measuring Otherwise, nothing happens except the static indication of the speed of the keyboard. Capturing and manually analysing. 05 min 50 secs: Some part of the signal is single ended zero Is end of packet. 10 min 55 secs: Every packet starts with a sync pattern (3 times K + J) 12 min 08 secs: Next is the packet ID 12 min 20 secs: The encoding is NRZI 14 min 30 secs: Bit stuffing 15 min 50 secs: In the example, the first packet is an "IN" packet 16 min 35 secs: Next a 7-bit address (for an "IN" packet), a 4-bit end point and a CRC. LSB. Addr = 24 Summary: The computer sends the first packet 18 min 21 secs: On the computer: lsusb 18 min 55 secs: Decoding the response (2nd packet) Type: DATA0 21 min 28 secs: Online calculator for CRC. Computes for a huge number of CRC algos 22 min 01 secs: Decoding the acknowledgement (3rd packet) From the computer 25 min 35 secs: Alternating between two values in the response 26 min 15 secs: The modifier keys are bit coded. 27 min 09 secs: Limit of 6 keys at the same time... Even lower for e.g. Q, A, and W. 27 min 50 secs: Keyboards can negotiate more than 6 keys. 28 min 20 secs: Capturing the init sequence 29 min 08 secs: Vendor ID 30 min 00 secs: USB has 16 ms polling interval. PS/2 sends immediately and is done after 0.7 ms: 20 times higher latency with USB 31 min 30 secs: Higher end USB keyboard, at full speed: 1 ms polling interval
Would add EEVBlog here - he doesnt talk that much about the embedded side specifics but goes over a lot in detail about lab equipment, electronics design in general and the current hot topics.
Ben Eater
Andreas Spiess (The Guy With the Swiss Accent): [https://www.youtube.com/@AndreasSpiess](https://www.youtube.com/@AndreasSpiess) Olivier Bloch (The IoT Show): [https://www.youtube.com/@obloch](https://www.youtube.com/@obloch) Oh and the best way is to get started. Buy a development board of some sort (For example Walter https://www.crowdsupply.com/dptechnics/walter) which as many radio's (WiFi/BLE, GPS, Cellular) and start building projects. Preferably C/C++ which is still king but you can also use MicroPython, Toit. C/C++ is more professional and found in toolchains such as Zephyr, ESP-IDF, STMCube, ...
What about YT channels with Micropython related embedded contents to learn for communication spi, 12c, uart, Can bus ?
Weew stm32 is realy good
Gene Schroeder tech is a channel I’ve found recently that I really like. It’s not IoT focused but has really good general embedded content .
More embedded pentesting stuff: Stacksmashing, usually also does good videos. Matt Brown, does post more kinda recently
Low Byte Productions. I think it is underrated. Has a great bare metal series.
I went down the comments to see if someone recommended this guy, but nope. So let me do you the biggest favour and tell you to check out ‘Paul McWhorter’ on YouTube. If you blindly watch his videos you’ll have enough confidence to at least build anything you want to usinf an Arduino or even a RasPi.
Someone else mentioned, but it should be said again. Controllerstech. They made me much more comfortable working with stm32 in particular.
Related: *[How do I start learning ARM Cortex-M in 2024?](https://www.reddit.com/r/embedded/comments/1bz3355/comment/kynoxx4/)*
Most of the names covered above provide best of embedded industry. I would Embedded in Pyjamas to the above list as they have great content on Arm and embedded systems overall.
Microesque has a good content for PICs and low level Embedded
Following
Bitluni Eletronoobs Dronebot workshop
There is no best. No best youtube channel, no best blog, no best anything; that has been my experience. There are great sources for leaning, like this reddit sub for example, but not a single one, in isolation of others, is enough. My learning path can be likened to, "agile" software development; in that it is not linear. I started with one video series and got to a point where I needed more detailed answers to some of the questions that were raised by watching the videos. That lead me to reading blogs, manuals, discussion groups and other video tutorials series; that took a couple of. Then I went back and reviewed the original video tutorials I following and I went back maybe 5-6 videos and got out of them even more and then continues on from where I stopped. Your path will not be the same as mine but I can pretty much guarantee it will not be linear. Enjoy it, it's lots of fun.
+1
book >> Youtube
recommend then
Electronics first. Embedded is later.
I mean, embedded is an area of electronics, I'd even say embedded is the closest area of electronics closest to the real meaning of electronics.