I like the "channel per column" approach where each line represents a particular sample time. As the data is captured, you can write it sequentially. I do a fair amount of logging of data to flash in fixed record sizes. The first 4 bytes are the Unix time stamp. Then various fields, some binary, some fixed length text, are defined. The record length is a multiple of 2 so you can easily calculate where record N starts and where each element in that record is. These are all translated directly to addresses in SPI flash. The log write is just a bunch of sequential writes. Log read is similarly a bunch of sequential reads. Harold --=20 FCC Rules Updated Daily at http://www.hallikainen.com Not sent from an iPhone. --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .