2 * Copyright © 2010 Keith Packard <keithp@keithp.com>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 2 of the License.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
22 #define DISABLE_LOG_SPACE 1
24 #define HAS_WIDE_GPS 0
26 #if defined(TELEMETRUM_V_1_0)
27 /* Discontinued and was never built with CC1111 chips needing this */
28 #define NEEDS_CC1111_CLOCK_HACK 0
32 #define HAS_BEEP_CONFIG 0
34 #define HAS_SERIAL_1 1
38 #define USE_INTERNAL_FLASH 0
42 #define IGNITE_ON_P2 1
43 #define IGNITE_ON_P0 0
44 #define PACKET_HAS_MASTER 0
45 #define PACKET_HAS_SLAVE 1
48 #define HAS_COMPANION 1
49 #define COMPANION_CS_ON_P1 1
50 #define AO_COMPANION_CS_PORT P1
51 #define AO_COMPANION_CS_PIN 2
52 #define AO_COMPANION_CS P1_2
55 #define LEDS_AVAILABLE (AO_LED_RED)
56 #define HAS_EXTERNAL_TEMP 0
57 #define HAS_ACCEL_REF 0
61 #define HAS_TELEMETRY 1
62 #define HAS_RADIO_RATE 0 /* not enough space for this */
63 #define HAS_MUTEX_TRY 0
64 #define HAS_TASK_INFO 0 /* not enough space for this either */
67 #if defined(TELEMETRUM_V_1_1)
68 /* Discontinued and was never built with CC1111 chips needing this */
69 #define NEEDS_CC1111_CLOCK_HACK 0
73 #define HAS_BEEP_CONFIG 0
74 #define HAS_BATTERY_REPORT 1
76 #define HAS_SERIAL_1 1
80 #define USE_INTERNAL_FLASH 0
84 #define IGNITE_ON_P2 1
85 #define IGNITE_ON_P0 0
86 #define PACKET_HAS_MASTER 0
87 #define PACKET_HAS_SLAVE 1
89 #define HAS_COMPANION 1
90 #define AO_COMPANION_CS_PORT P1
91 #define AO_COMPANION_CS_PIN 2
92 #define AO_COMPANION_CS P1_2
95 #define LEDS_AVAILABLE (AO_LED_RED)
96 #define HAS_EXTERNAL_TEMP 0
97 #define HAS_ACCEL_REF 1
98 #define SPI_CS_ON_P1 1
99 #define SPI_CS_ON_P0 0
100 #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
101 #define M25_MAX_CHIPS 1
104 #define HAS_MONITOR 0
105 #define HAS_TELEMETRY 1
106 #define HAS_RADIO_RATE 0 /* not enough space for this */
107 #define HAS_MUTEX_TRY 0
110 #if defined(TELEMETRUM_V_1_2)
111 /* Discontinued and was never built with CC1111 chips needing this */
112 #define NEEDS_CC1111_CLOCK_HACK 0
116 #define HAS_BEEP_CONFIG 0
117 #define HAS_BATTERY_REPORT 1
119 #define HAS_SERIAL_1 1
123 #define USE_INTERNAL_FLASH 0
127 #define IGNITE_ON_P2 1
128 #define IGNITE_ON_P0 0
129 #define PACKET_HAS_MASTER 0
130 #define PACKET_HAS_SLAVE 1
132 #define HAS_COMPANION 1
133 #define AO_COMPANION_CS_PORT P1
134 #define AO_COMPANION_CS_PIN 2
135 #define AO_COMPANION_CS P1_2
138 #define LEDS_AVAILABLE (AO_LED_RED)
139 #define HAS_EXTERNAL_TEMP 0
140 #define HAS_ACCEL_REF 1
141 #define SPI_CS_ON_P1 1
142 #define SPI_CS_ON_P0 0
143 #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
144 #define M25_MAX_CHIPS 1
147 #define HAS_MONITOR 0
148 #define HAS_TELEMETRY 1
149 #define HAS_RADIO_RATE 0 /* not enough space for this */
150 #define HAS_MUTEX_TRY 0
153 #if defined(TELEDONGLE_V_0_2)
157 #define HAS_SERIAL_1 0
164 #define IGNITE_ON_P2 0
165 #define IGNITE_ON_P0 0
166 #define PACKET_HAS_MASTER 1
167 #define PACKET_HAS_SLAVE 0
169 #define AO_LED_GREEN 2
170 #define AO_MONITOR_LED AO_LED_GREEN
171 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
172 #define SPI_CS_ON_P1 1
173 #define SPI_CS_ON_P0 0
175 #define HAS_MONITOR 1
176 #define LEGACY_MONITOR 1
179 #define HAS_TELEMETRY 0
180 #define AO_RADIO_REG_TEST 1
183 #if defined(TELEMINI_V_1_0)
184 /* Discontinued and was never built with CC1111 chips needing this */
185 #define NEEDS_CC1111_CLOCK_HACK 0
190 #define HAS_SERIAL_1 0
194 #define HAS_FORCE_FREQ 1
195 #define USE_INTERNAL_FLASH 1
197 #define IGNITE_ON_P2 0
198 #define IGNITE_ON_P0 1
199 #define PACKET_HAS_MASTER 0
200 #define PACKET_HAS_SLAVE 1
201 #define USE_FAST_ASCENT_LOG 1
203 #define AO_LED_GREEN 1
205 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
206 #define HAS_EXTERNAL_TEMP 0
209 #define HAS_MONITOR 0
210 #define HAS_TELEMETRY 1
211 #define HAS_RADIO_RATE 0 /* not enough space for this */
214 #if defined(TELENANO_V_0_1)
215 /* Discontinued and was never built with CC1111 chips needing this */
216 #define NEEDS_CC1111_CLOCK_HACK 0
221 #define HAS_SERIAL_1 0
225 #define USE_INTERNAL_FLASH 1
227 #define IGNITE_ON_P2 0
228 #define IGNITE_ON_P0 1
229 #define PACKET_HAS_MASTER 0
230 #define PACKET_HAS_SLAVE 1
232 #define AO_LED_GREEN 1
234 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
235 #define HAS_EXTERNAL_TEMP 0
238 #define HAS_MONITOR 0
239 #define HAS_TELEMETRY 1
240 #define HAS_RADIO_RATE 0 /* not enough space for this */
243 #if defined(TELEMETRUM_V_0_1)
244 /* Discontinued and was never built with CC1111 chips needing this */
245 #define NEEDS_CC1111_CLOCK_HACK 0
249 #define HAS_BEEP_CONFIG 0
251 #define HAS_SERIAL_1 1
256 #define USE_INTERNAL_FLASH 0
259 #define IGNITE_ON_P2 1
260 #define IGNITE_ON_P0 0
261 #define PACKET_HAS_MASTER 0
262 #define PACKET_HAS_SLAVE 1
264 #define AO_LED_GREEN 1
265 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
266 #define HAS_EXTERNAL_TEMP 1
267 #define HAS_ACCEL_REF 0
268 #define SPI_CS_ON_P1 1
269 #define SPI_CS_ON_P0 0
272 #define HAS_MONITOR 0
273 #define HAS_TELEMETRY 1
274 #define HAS_RADIO_RATE 0 /* not enough space for this */
275 #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX ((uint32_t) 127 * (uint32_t) 1024)
278 #if defined(TELEDONGLE_V_0_1)
279 /* Discontinued and was never built with CC1111 chips needing this */
280 #define NEEDS_CC1111_CLOCK_HACK 0
284 #define HAS_SERIAL_1 0
291 #define IGNITE_ON_P2 0
292 #define IGNITE_ON_P0 0
293 #define PACKET_HAS_MASTER 1
294 #define PACKET_HAS_SLAVE 0
296 #define AO_LED_GREEN 1
297 #define AO_MONITOR_LED AO_LED_GREEN
298 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
299 #define SPI_CS_ON_P1 0
300 #define SPI_CS_ON_P0 1
302 #define HAS_MONITOR 1
303 #define LEGACY_MONITOR 1
306 #define HAS_TELEMETRY 0
309 #if defined(TIDONGLE)
310 /* Discontinued and was never built with CC1111 chips needing this */
311 #define NEEDS_CC1111_CLOCK_HACK 0
315 #define HAS_SERIAL_1 0
322 #define IGNITE_ON_P2 0
323 #define IGNITE_ON_P0 0
324 #define PACKET_HAS_MASTER 1
325 #define PACKET_HAS_SLAVE 0
327 #define AO_MONITOR_LED AO_LED_RED
328 #define LEDS_AVAILABLE (AO_LED_RED)
329 #define SPI_CS_ON_P1 0
330 #define SPI_CS_ON_P0 1
332 #define HAS_MONITOR 1
333 #define LEGACY_MONITOR 1
336 #define HAS_TELEMETRY 0
339 #if defined(TELEBT_V_0_0)
340 /* Discontinued and was never built with CC1111 chips needing this */
341 #define NEEDS_CC1111_CLOCK_HACK 0
345 #define HAS_SERIAL_1 1
346 #define USE_SERIAL_1_STDIN 1
347 #define DELAY_SERIAL_1_STDIN 1
355 #define IGNITE_ON_P2 0
356 #define IGNITE_ON_P0 0
357 #define PACKET_HAS_MASTER 1
358 #define PACKET_HAS_SLAVE 0
360 #define AO_LED_GREEN 1
361 #define AO_MONITOR_LED AO_LED_RED
362 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
363 #define SPI_CS_ON_P1 1
364 #define SPI_CS_ON_P0 0
366 #define HAS_IGNITE_REPORT 1
367 #define BT_LINK_ON_P2 1
368 #define BT_LINK_ON_P1 0
369 #define BT_LINK_PIN_INDEX 7
370 #define BT_LINK_PIN P2_1
371 #define HAS_MONITOR 1
372 #define LEGACY_MONITOR 1
375 #define HAS_TELEMETRY 0
376 #define AO_RADIO_REG_TEST 1
379 #if defined(TELEBT_V_0_1)
380 /* Discontinued and was never built with CC1111 chips needing this */
381 #define NEEDS_CC1111_CLOCK_HACK 0
385 #define HAS_BEEP_CONFIG 0
386 #define HAS_SERIAL_1 1
387 #define HAS_SERIAL_1_ALT_1 1
388 #define HAS_SERIAL_1_ALT_2 0
389 #define HAS_SERIAL_1_HW_FLOW 1
390 #define USE_SERIAL_1_STDIN 1
391 #define DELAY_SERIAL_1_STDIN 1
396 #define USE_INTERNAL_FLASH 0
400 #define IGNITE_ON_P2 0
401 #define IGNITE_ON_P0 0
402 #define PACKET_HAS_MASTER 1
403 #define PACKET_HAS_SLAVE 0
405 #define AO_LED_GREEN 2
406 #define AO_MONITOR_LED AO_LED_RED
407 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
408 #define SPI_CS_ON_P1 1
409 #define SPI_CS_ON_P0 0
410 #define AO_M25_SPI_CS_MASK 0x04 /* CS0 is P1_2 */
411 #define M25_MAX_CHIPS 1
414 #define HAS_IGNITE_REPORT 1
415 #define BT_LINK_ON_P2 0
416 #define BT_LINK_ON_P1 1
417 #define BT_LINK_PIN_INDEX 7
418 #define BT_LINK_PIN P1_7
419 #define HAS_MONITOR 1
420 #define LEGACY_MONITOR 1
423 #define HAS_TELEMETRY 0
424 #define AO_RADIO_REG_TEST 1
427 #if defined(TELELAUNCH_V_0_1)
428 /* Discontinued and was never built with CC1111 chips needing this */
429 #define NEEDS_CC1111_CLOCK_HACK 0
434 #define HAS_SERIAL_1 1
439 #define USE_INTERNAL_FLASH 1
442 #define IGNITE_ON_P2 1
443 #define IGNITE_ON_P0 0
444 #define PACKET_HAS_MASTER 0
445 #define PACKET_HAS_SLAVE 0
447 #define AO_LED_GREEN 1
448 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
449 #define HAS_EXTERNAL_TEMP 1
450 #define HAS_ACCEL_REF 0
451 #define SPI_CS_ON_P1 1
452 #define SPI_CS_ON_P0 0
455 #define HAS_MONITOR 0
457 #define HAS_TELEMETRY 0
462 #define DBG_CLOCK (1 << 4) /* mi0 */
463 #define DBG_DATA (1 << 5) /* mo0 */
464 #define DBG_RESET_N (1 << 3) /* c0 */
466 #define DBG_CLOCK_PIN (P1_4)
467 #define DBG_DATA_PIN (P1_5)
468 #define DBG_RESET_N_PIN (P1_3)
470 #define DBG_PORT_NUM 1
472 #define DBG_PORT_SEL P1SEL
473 #define DBG_PORT_INP P1INP
474 #define DBG_PORT_DIR P1DIR
476 #endif /* DBG_ON_P1 */
480 #define DBG_CLOCK (1 << 3)
481 #define DBG_DATA (1 << 4)
482 #define DBG_RESET_N (1 << 5)
484 #define DBG_CLOCK_PIN (P0_3)
485 #define DBG_DATA_PIN (P0_4)
486 #define DBG_RESET_N_PIN (P0_5)
488 #define DBG_PORT_NUM 0
490 #define DBG_PORT_SEL P0SEL
491 #define DBG_PORT_INP P0INP
492 #define DBG_PORT_DIR P0DIR
494 #endif /* DBG_ON_P0 */
496 #if COMPANION_CS_ON_P1
497 #define COMPANION_CS_PORT P1
498 #define COMPANION_CS_SEL P1SEL
499 #define COMPANION_CS_DIR P1DIR
503 #define SPI_CS_PORT P1
504 #define SPI_CS_SEL P1SEL
505 #define SPI_CS_DIR P1DIR
509 #define SPI_CS_PORT P0
510 #define SPI_CS_SEL P0SEL
511 #define SPI_CS_DIR P0DIR
514 #define AO_M25_SPI_CS_PORT SPI_CS_PORT
517 #error Please define IGNITE_ON_P2
521 #error Please define IGNITE_ON_P0
525 #error Please define HAS_ADC
529 #error Please define HAS_EEPROM
533 #error Please define HAS_LOG
537 #ifndef USE_INTERNAL_FLASH
538 #error Please define USE_INTERNAL_FLASH
543 #error Please define HAS_DBG
547 #error Please define HAS_IGNITE
551 #define HAS_IGNITE_REPORT 1
554 #ifndef PACKET_HAS_MASTER
555 #error Please define PACKET_HAS_MASTER
558 #ifndef PACKET_HAS_SLAVE
559 #error Please define PACKET_HAS_SLAVE
563 #error Please define HAS_MONITOR
568 #error Please define HAS_RSSI
573 #error Please define HAS_ADC
579 #ifndef HAS_ACCEL_REF
580 #error Please define HAS_ACCEL_REF
583 #define HAS_ACCEL_REF 0
589 #define AO_IGNITER_PORT P2
590 #define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
591 #define AO_IGNITER_DROGUE P2_3
592 #define AO_IGNITER_MAIN P2_4
593 #define AO_IGNITER_DIR P2DIR
594 #define AO_IGNITER_DROGUE_BIT (1 << 3)
595 #define AO_IGNITER_MAIN_BIT (1 << 4)
596 #define AO_IGNITER_DROGUE_PIN 3
597 #define AO_IGNITER_MAIN_PIN 4
601 #define AO_IGNITER_PORT P0
602 #define AO_IGNITER_DROGUE P0_5
603 #define AO_IGNITER_MAIN P0_4
604 #define AO_IGNITER_DIR P0DIR
605 #define AO_IGNITER_DROGUE_BIT (1 << 5)
606 #define AO_IGNITER_MAIN_BIT (1 << 4)
607 #define AO_IGNITER_DROGUE_PIN 5
608 #define AO_IGNITER_MAIN_PIN 4
611 #define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
612 #define AO_IGNITER_MAIN_PORT AO_IGNITER_PORT
614 /* test these values with real igniters */
615 #define AO_IGNITER_OPEN 1000
616 #define AO_IGNITER_CLOSED 7000
617 #define AO_IGNITER_FIRE_TIME AO_MS_TO_TICKS(50)
618 #define AO_IGNITER_CHARGE_TIME AO_MS_TO_TICKS(2000)
621 int16_t accel; /* accelerometer */
622 int16_t pres; /* pressure sensor */
623 int16_t temp; /* temperature sensor */
624 int16_t v_batt; /* battery voltage */
625 int16_t sense_d; /* drogue continuity sense */
626 int16_t sense_m; /* main continuity sense */
628 uint16_t accel_ref; /* acceleration reference */
633 * Voltage divider on ADC battery sampler
635 #define AO_BATTERY_DIV_PLUS 5 /* 5k */
636 #define AO_BATTERY_DIV_MINUS 10 /* 10k */
639 * Voltage divider on ADC igniter samplers
641 #define AO_IGNITE_DIV_PLUS 100 /* 100k */
642 #define AO_IGNITE_DIV_MINUS 27 /* 27k */
645 * ADC reference in decivolts
647 #define AO_ADC_REFERENCE_DV 33
649 #endif /* _AO_PINS_H_ */