# Hardware debugging ## Microcontroller programming ### FabAcademy controller families * Atiny * SAMD * RP2050 * ESP32 ### Atiny * Programming: UPDI * Sandbox board: Adrianino * 20Mhz ### SAMD * programming: JTAG ### RP2040 dual core ARM controller. hardcoded bootloader. ### ESP32 S3,C3,C6 * Wifi bluetooth * RISC-V 160MHz ### choosing a programming language * MicroPython, Not power efficient * C/C++, Runs anywhere most power efficient * Circuitpython, less efficient than micropython but easier * Rust, Can work but its difficult. Same as C/C++ ### First steps when using microcontroller Make a LED blink logic analyzer to see signal (wokwi) (similar to oscilloscope) define your problem into smaller pieces (same goes for coding) don't jump to conclusion. Most of the cases of hardware design fails is in the user. Write down everything you did. rubber ducky method Use a microscope Don't panic when something doesn't work Check the * Traces * Soldering * Chips * Connections Tools: * Multimeter * * Parallel measurement (check the cables) * * Continuity * * Diodes * Logic analyzer * Oscilloscope Step -> svg file