Onboarding v2
Started on June 11. This is my (Alex's) attempt for starting a second attempt at onboarding, primarily based on the feedback from the 2023-2024 onboarding session. In particular, the onboarding was great for helping people build a robot from scratch, but really did not help people with gaining experience working on what is needed to work on Qubo. Therefore, I am trying to develop a new curriculum for embedded software, which is my "area of expertise". This is developed in tandem with me learning a bunch of stuff to get CAN Bus working on a couple STM32 boards for competition Summer 2024.
Take note that I am writing this from the perspective of a computer science student, so my assumptions are based on what is covered in the usual computer science introductory courses and what I knew when I started doing embedded work (which was only knowledge of C and a light amount of computer systems experience). I have no clue if this stuff is obvious to (say) electrical/computer engineering students who have completed the same amount of introductory coursework.
The goals of these tasks/lessons are so that you know the following by the end:
- How to read the documentation for your microcontroller (gaining an intuition to know what information belongs in which manuals, and where to look)
- How to debug a microcontroller
- How to read and understand other standards so that you can utilize the hardware on the your microcontroller which implements that standard
As of right now, I am assuming the following:
- You know how to program in C (you can learn most of this along the way, but you an avoid a lot of pitfalls the more you know here)
- Heap vs. Stack
- Pointers
- Bitwise Operations
- C standard library vs. C programming language
- Declaration vs. Definition
- You know what registers are and how they differ from RAM