TIL: for some unexplained reason, if you ask circuitpython to write in a location that is not on the SD card, it won't be able to write on the SD card.
also, after weeks of ignoring the issue because I didn't know how to debug it, I now have a device that can log GPS data on an SD card.
additionally, if in the function write_sentence(sentence) you use fp.write(sentence) instead of fp.write(gps.nmea_sentence) you can even write *other* things on the same log! such as, I don't know, sensor data!
now I guess I have to write something for the PC that can extract sensor data from a NMEA log and show it in a nice way? meh, maybe, at some point :D