+#if AO_LOG_FORMAT == AO_LOG_FORMAT_TELEFIRETWO
+typedef struct ao_log_firetwo ao_log_type;
+#endif
+
+#if AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMINI1 || AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMINI2 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMINI2 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMINI3
+typedef struct ao_log_mini ao_log_type;
+#endif
+
+#if AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMOTOR
+typedef struct ao_log_motor ao_log_type;
+#endif
+
+#if AO_LOG_FORMAT == AO_LOG_FORMAT_TELEGPS
+typedef struct ao_log_gps ao_log_type;
+#endif
+
+#if AO_LOG_FORMAT == AO_LOG_FORMAT_FULL
+typedef struct ao_log_record ao_log_type;
+#endif
+
+#if AO_LOG_FORMAT == AO_LOG_FORMAT_TINY
+#define AO_LOG_UNCOMMON 1
+#endif
+
+#if AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMETRY
+#define AO_LOG_UNCOMMON 1
+#endif
+
+#if AO_LOG_FORMAT == AO_LOG_FORMAT_TELESCIENCE
+#define AO_LOG_UNCOMMON 1
+#endif
+
+#if AO_LOG_FORMAT == AO_LOG_FORMAT_MICROPEAK2
+#define AO_LOG_UNCOMMON 1
+#endif
+
+#ifndef AO_LOG_UNCOMMON
+extern ao_log_type ao_log_data;
+
+#define AO_LOG_SIZE sizeof(ao_log_type)
+
+/* Write a record to the eeprom log */