Gerber files are actually really cool! At one of my software jobs, I wrote code to convert Gerber Files (usually just the ones that had the information for the traces), and converted them to STL files for 3D printing. And boom, 3D printable circuit. I've since left that job, so I don't have access to the C# code I wrote. I may revisit the project and rewrite it in C++, with larger files speed can be an issue so porting it to C++ would be a fun project.
very interesting! Im a ex- electronics technician for industrial engineering (this is translated with google, bcs i dont know the correct name in english), but i dont have the confidence to design a PCB 😒 I did all the math, soldering and board-building many years ago and none of it was designed by me. It was just building by blueprint. PS: There is not enough C-Content out there (compared to other languages). Its mostly basic crash-courses. You are the only one (that i know) that goes deeper in C. You're my favorite C-Channel and you deserve much more Viewers^^ Harvards CS50 ignited my love for C and you helped me a lot on understanding some details!
Thanks. I'm glad I could help. You should really design a simple board. I think you'll find that it's not as daunting as it seems once you are done with it.
There are a few nuances about schematics worth keeping in mind. Yes, the primary goal of the schematic is to capture and communicate the logical relations of the components, but a well-crafted schematic also conveys a lot of more subtle design information to the person who is actually performing the layout. Physical proximity on the schematic can convey which decoupling capacitors belong with which ICs, which side of a trace to place the dampening resistors on, and other important nuances. I know that when I am laying out my PCBs, I really tend to appreciate when I take care to encode those design features into the schematic, and I end up with correctly operating prototypes much more quickly and with fewer iterations or botch wires. It probably also helps that it's also another opportunity to review decisions and make sure that they actually make sense. If you sweat the small things when designing your circuit and creating your schematic, you won't have to deal with nearly as many hardware bugs during prototyping.
Next semester I am taking Analogue electronics, embedded systems and operating systems courses so it seems like a fun semester, after that semester I will take some advanced embedded system classes where you do hardware and software
Yeah, even now a lot of students don't actually get to fabricate boards as students. I've started doing it in one of my embedded systems courses. I figure printing boards and buying a few components now costs less than a textbook. So, why not.
In my case I describe every component I need in VHDL and then connect it to the a soft professor system. It's basically the same, you are describing Hardware. Definitely much harder to grasp for software engineers
Yeah but that vhdl code has to go in some kind of device like a fpga and the fpga requires its own board and external components, the thing is start making hardware outside of development boards
Im a complete noob on circuit boards and custom software for them. Where should I start learning? Im a game programmer/designer. But ive been interested in custom hardware. For real world applications
This still leaves a lot of questions. How do I find correct chips meeting my purpose (search by params)? How to connect things together? For example processor, RAM, ROM, Ethernet chip?
I'm curious, How do you actually load a code into that board? Let's say you wrote some C code, how do you actually compile your code for that handmade board and actually load and run it?
Depends on the microprocessor/microcontroller you are using, every microprocessor has its own set of tools, usually you compile the code with the processor specific compiler in your computer and then load the program to the chip via serial communication
what a great moment to see your chanelll!😍 i have one question and interested one thing about what is look like to uploud or take a code into/from microcontroller after it assembled and created on board. and how avr isp work,what is it...? and also what you advising for production this is also very good i think for content, for example which microcontrollers are you recommend? really which ?
@@JacobSorber I love watches. Been curious about Orient. Thank you for reply and thank you for spreading the knowledge! Looking forward to the network programming sequels to handle multiple clients! 😉
Hey guys! I'm a tech enthusiast looking for learning everything about hardware. I wanted to create my own laptop, and I ask you: is it possible, by designing/contracting someone to design the motherboard and assembly the other stuff like CPU, RAM... make a laptop? I know this will be expensive, but my goal is learn with the process and know if it is possible😊
Great video as always. I've ordered PCBs with other people's designs (pcbtrain are a good outfit in the UK), but wouldn't know where to start designing my own. I'm sure you've answered this many times before, but do you have any electronics learning resources you'd particularly recommend to someone with a software background?
how know wich components i need for exemple i want build my own lvds hdmi controler board but how i know that i need each component (i'am engineer student grade 3 in france)
Hi, I’m doing some research and would love some guidance. I’m not handy however I’m looking to have a one of a kind primarily circuit built. Can you recommend a starting point ?
hi Jacob if i don't want them to assemble the parts on the pcb can they the send me the parts with the pcb so i don't have to go out and buy them thank you.
You do need to have a microcontroller component (not necessarily the whole development board, just the chip with some peripherals) on your PCB for it to be programmable!
If you want to get in PCB design in KiCAD I reccommend the Phil's Lab RU-vid Channel. He has really godd videos in which he explain a lot of stuff in detail.
Hey, I want to write a simple graphics library in C for multiple ebedded systems that can drive 1 bit screens like an led matrix for example. The thing I struggle with is how to store frame/pixel information. How would I go about implementing a framebuffer in this case? One uint8_t for every pixel is such a waste of memory, as i only need on bit per pixel. Using 2d arrays in C is also not very practical, IMO. Storing multiple pixels in one 8 16 or 32 bit number is also a pain, as it requires relativly "complex" transformation from screen space to buffer space, when the width of the screen is not a multiple of the word size. Is there maybe a way to just store a long line of bits without a format that is width*height long or something like that? Any ideas are appreciated
@@JacobSorber that's the thing, the plan is to write a universal library for 1 bit displays. My problem is just how to store a one bit image to be easily moddifiable in code. The code to interface the hardware is gonna change from project to project. My question is, how would you store pixel information at an arbitrary size so you can acess it in x y coordinates without much processing needed?
@@hansdietrich83 I would capture the set of display parameters in a struct (in C++ I probably would've made a class with some suitable methods instead), such a how many pixels wide/high and how many of your uint8_t you use in each direction. Upon initialization you could decide to use only a whole number of uint8_t in the minor indexing direction (say x), which possibly means adding an extra element and waisting max 7 bits per y-coordinate. [nh = y; nw = x / 8; if (x % 8) ++nw; buf = malloc(nh * nw);] You can then make a couple of functions to convert to & from x,y and the corresponding array index and bit offset, which use the struct members to do the calculations. The formulas should be relatively simple using integer div/mult/shift/mod. [idx = y * nw + (x >> 3); bit = x % 8;] All library functions receive a pointer to that struct as one of its arguments, and even the buffer pointer could be stored there so the client code only needs to keep track of that single struct to represent the display.
Somewhere in your system, you probably have one or more microcontrollers (typically a component on your board). The programming interface will vary by processor, but, you typically have to expose some pins on the board for programming.
If you could teach us the new C++, a complete C++ tutorials, that would be awesome professor. C++ is very challenging 😰 and hard, we don’t find any good tutorials. Please do C++ tutorials with C++ data structures and algorithms??????????????????
Hello Sir , Few days ago i decide to make my own Operating System, I can't figure out how i start or right path to design OS. can you suggest me how I start or where I start ,
I had this at 2x speed and it still felt like you were talking too slow. I'm not a damn baby, and I've got better shıt to do than listen to someone talk like they got dropped as one.