... twenty five years ago, I had to prepare an analog circuit to make a kind of "kitchen oven" as school project, a closed loop device you would probably make with an MPU and a thermocouple (1..300 C) combined with a dedicated chip that does all the sampling and filtering work and presents the data as a digital stream, but I had to use analog parts, so I made a classic operating circuit, with transducer followed by filter integrator, followed by a PID stage with the classic Gloop along the branchwith feedback and forward block, that also able to quickly reacts to maintain the temperature at the front of the door opening.
And that was fine as both fully working and fully covered by the theorical lessons.
Then I wanted to convert the continuous equations written according to the Laplace transform (therefore according to the classic second order differential equations that describe how a body heats up and cools down, all then followed by classic PID equations, with the integrative part at saturation), into discrete equations written according to the Z transform, which are *THE* form you have to use with MPUs and DSPs.
We are talking about the late 90s, in those days there was no Arduino, there were no cheap evaluation boards, everything cost in the order of ~1000 euros, too much for a student's budget! and CAD was also something I couldn't afford!
EagleCAD wasn't available at the time, and even if it was, I didn't have any internet connection to download it.
The only option was OrCAD for DOS, which ran on crappy computers in the school laboratory (386 with a shitty video card), and it was not possible to install it on the home PC (a 486 with a second hand ET4000 graphics card) because it needed a hw key.
So, ... I had two options: either let it go, I had already got a good mark with the analog circuit that I had delivered, or ... try to create an MPU-eval-board in the laboratory but using the free hours in the afternoon.
looking at the timetables, I discovered that the laboratory was practically always in the afternoons, and there were no teachers in on { Tuesday, Thursday, Friday }.
Boooom, free laboratory for +2+2+2=6 hours/week!!! and that's why I decomposed the project into sub-modules! with an approach that today is very reminiscent of the various "breakboard modules" that can be bought on AdaFruit.
A module for the LCD, a module for the ADC, a module for the DAC, ... in my case a module for the CPU, one for the RAM, one for the ROM, one for the serial, one for the motherboard into which to plug all the modules.
There were no cheap "PCB services", and I was only able to make 1-side PCB, a nighware when you have 8Mhz clock and 8bit data/16bit address (64Kbyte addressable) parallel bus as rooting is very complex without vias and you cannot place the proper "ground" and "Vcc" planes; anyway, making small PCB in modern "breakout" way was a successful solution as this way if a PCB was defected or bugged, or had bugs, I could only redo that and not all a BIG PCB over again!
Since I didn't have the faintest idea of how to implement such a digital system from the know/how on a circuit made entirely with op amps (I was reading the intel 8031 evb guides, cloning their schematics), nor of how the Z transform works, nor of what repercussions it has on the hw and on the sw, in my case ... the total lack of an FPU, and the possibility ' calculation only at 24bit fixed-point through software support, I was also evaluating whether or not to add an external FPU... always as a floating-point "module".
In the end I just reduced the constraints to much more relaxed response times, and sampled the S-transform through a two-sided transform, so I implemented everything with fixed-point.
I don't know how, but it worked! but I wasn't rewarded with some praise, on the contrary when they discovered that I was using the laboratory in the afternoon without any authorization, they gave me a punishment. I still remember fivty five minutes in the school principal office and her long scolding - "if you had hurt yourself, since you were alone in the laboratory, with drill presses and PCB cutters, as well as an acid tank to produce PCBs, you would have gotten me in serious trouble!" - mainly she said.
Very severe woman, not very understanding, worse than a schoolmarm!
* * *
Since then I've always bought ready-made development boards, or hacked existing stuff, and I've never built anything from scratch to test particular algorithms or features of chip samples.
But one thing is certain: if I start working with a development board as a hobby, I never leave it unused for more than six months. So I choose well what to work on.