hmm embedded. Beautifuly memories from uni. One lab my team forgot to remove a register whose supposed purpose was only enabling a communications bus (documentation didn’t mention it doing anything else). Turns out that same register disables the dac which we needed for the new excersise. You learn to love the hardware datasheets real quick.
And when the data sheet is wrong that gets fun. You start parsing I2S for each bit and record the result until you see a pattern. Or when your program crashes the USB and you can’t reupload without hitting boot or reset but they are inside the box.
MY PEOPLE!!! My code recently decided to not erase the flash when writing new firmware, bricking the device. Good times. (Old code || new code does not make for a working system)
I’m dealing with this right now. Making the largest embedded project for me (self taught) RP2040 in Cpp with a TFT touch screen, an IMU with fusion, a strip of “neopixels”, a 12v battery voltage reader, some Lemo connectors and custom cables, all in a 3D printed case in 3 parts. I’m so close to the end but still facing some code issues.
Start playing with a pixel, then get a board with WLED set up, then start running xlights on a beaglebone to synchronize several instances, for holiday lighting. Suddenly there’s several hundred leds in the front yard
On small computers like Arduino there is a very small memory called eeprom that stays when powered off. It saves ultra low level data (at the bit and byte level) if you don’t “format” after changing what is being saved where it then tries to read gibberish and things go bonk.
I had that happen with embedded programming when you forget to flush the eeprom after changing your saved values.
hmm embedded. Beautifuly memories from uni. One lab my team forgot to remove a register whose supposed purpose was only enabling a communications bus (documentation didn’t mention it doing anything else). Turns out that same register disables the dac which we needed for the new excersise. You learn to love the hardware datasheets real quick.
And when the data sheet is wrong that gets fun. You start parsing I2S for each bit and record the result until you see a pattern. Or when your program crashes the USB and you can’t reupload without hitting boot or reset but they are inside the box.
MY PEOPLE!!! My code recently decided to not erase the flash when writing new firmware, bricking the device. Good times. (Old code || new code does not make for a working system)
I’m dealing with this right now. Making the largest embedded project for me (self taught) RP2040 in Cpp with a TFT touch screen, an IMU with fusion, a strip of “neopixels”, a 12v battery voltage reader, some Lemo connectors and custom cables, all in a 3D printed case in 3 parts. I’m so close to the end but still facing some code issues.
Pixels are wonderful, but such a perilous path…
Start playing with a pixel, then get a board with WLED set up, then start running xlights on a beaglebone to synchronize several instances, for holiday lighting. Suddenly there’s several hundred leds in the front yard
Haha! I feel you. Luckily my project only involves about 20 pixels on a high density strip (332pixels/m) to be used as a small 1D display.
This is the project I’m working on: CyberLevel. A gyro digital level for Steadicam. video
I know some of these words
On small computers like Arduino there is a very small memory called eeprom that stays when powered off. It saves ultra low level data (at the bit and byte level) if you don’t “format” after changing what is being saved where it then tries to read gibberish and things go bonk.