約9か月ぶりの「ARDUINO CW KEYER」ネタです。
スケッチを更新せずに、
こんなにも長く放置したままだったなんて・・・
ハムへの情熱が薄れてしまったようで、これはいただけません。
気にはしていたのですが。。。
目の前に無線機がないと・・・こんなもんです。Hi
ということで、久方ぶりに ATmega1284P にスケッチを書き込むわけですが、
果たしてエラーを吐くことなく素直にコンパイルは通ってくれるのでしょうか。
最新のスケッチをダウンロードして試してみました。
スケッチファイルのダウンロード先
github から ZIP ファイル(一括)をダウンロードします。
コンパイル前処理
ダウンロードした ZIP 内の libraries ファイルを、
Arduino IDE フォルダの libraries フォルダにコピーします。
Arduino IDE の各バージョンでコンパイル
まずは最新バージョンの 1.6.8 から。
エラーでコンパイルは通りません。
(エラーの原因は追究しませんでした。)
続いて 1.6.7 です。
コンパイルエラーです。
続いて 1.6.5 です。
このバージョンもエラー。
続いて 1.6.4 です。
コンパイルが通りました。
ここまでバージョンを遡らないとコンパイルは通らないみたいです。
ということで、Arduino IDE のバージョンは新しければ良いってもんじゃないので、
各バージョンの IDE が使えるように環境は整えておいた方が良いと思います。
(Arduino IDE のバージョンによって、型の扱い等が微妙に違っているようです。)
今回の「keyer_features_and_options.h」の設定は以下のとおりです。
#define FEATURE_COMMAND_BUTTONS
#define FEATURE_COMMAND_LINE_INTERFACE
#define FEATURE_MEMORIES
#define FEATURE_MEMORY_MACROS
#define FEATURE_WINKEY_EMULATION
// #define FEATURE_BEACON
// #define FEATURE_CALLSIGN_RECEIVE_PRACTICE
#define FEATURE_POTENTIOMETER
#define FEATURE_SERIAL_HELP
// #define FEATURE_HELL
#define FEATURE_PS2_KEYBOARD
// #define FEATURE_USB_KEYBOARD
// #define FEATURE_CW_COMPUTER_KEYBOARD
// #define FEATURE_DEAD_OP_WATCHDOG
// #define FEATURE_AUTOSPACE
// #define FEATURE_FARNSWORTH
// #define FEATURE_DL2SBA_BANKSWITCH
// #define FEATURE_LCD_4BIT
// #define FEATURE_LCD_ADAFRUIT_I2C
// #define FEATURE_LCD_ADAFRUIT_BACKPACK
#define FEATURE_LCD_YDv1
// #define FEATURE_LCD1602_N07DH
// #define FEATURE_LCD_SAINSMART_I2C
// #define FEATURE_CW_DECODER
// #define FEATURE_SLEEP
// #define FEATURE_ROTARY_ENCODER
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
// #define FEATURE_DIT_DAH_BUFFER_CONTROL
// #define FEATURE_HI_PRECISION_LOOP_TIMING
// #define FEATURE_USB_MOUSE
// #define FEATURE_CAPACITIVE_PADDLE_PINS
// #define FEATURE_LED_RING
// #define FEATURE_ALPHABET_SEND_PRACTICE
// #define FEATURE_PTT_INTERLOCK
// #define FEATURE_QLF
// #define FEATURE_EEPROM_E24C1024
// #define FEATURE_STRAIGHT_KEY
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
// #define FEATURE_PADDLE_ECHO
// #define FEATURE_STRAIGHT_KEY_ECHO
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
#define OPTION_WINKEY_STRICT_HOST_OPEN
#define OPTION_WINKEY_2_SUPPORT
// #define OPTION_WINKEY_EXTENDED_COMMANDS
#define OPTION_WINKEY_SEND_BREAKIN_STATUS_BYTE
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
// #define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT
#define OPTION_WINKEY_IGNORE_LOWERCASE
// #define OPTION_REVERSE_BUTTON_ORDER
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT
// #define OPTION_MORE_DISPLAY_MSGS
// #define OPTION_N1MM_WINKEY_TAB_BUG_WORKAROUND
// #define OPTION_WATCHDOG_TIMER
// #define OPTION_MOUSE_MOVEMENT_PADDLE
// #define OPTION_NON_ENGLISH_EXTENSIONS
// #define OPTION_KEEP_PTT_KEYED_WHEN_CHARS_BUFFERED
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
// #define OPTION_DO_NOT_SAY_HI
// #define OPTION_USE_ORIGINAL_VERSION_2_1_PS2KEYBOARD_LIB
// #define OPTION_PS2_NON_ENGLISH_CHAR_LCD_DISPLAY_SUPPORT
// #define OPTION_PS2_KEYBOARD_RESET
// #define OPTION_SAVE_MEMORY_NANOKEYER
#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
// #define OPTION_CW_KEYBOARD_ITALIAN
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
// #define OPTION_DIT_DAH_BUFFERS_OFF_BY_DEFAULT_FOR_FEATURE_DIT_DAH_BUFFER_CONTROL
// #define OPTION_ADVANCED_SPEED_DISPLAY
// #define OPTION_PROSIGN_SUPPORT
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
※見やすくするためにスケッチ内のコメントは全て削除しています。
こうして設定ファイルを見てみると、
まだ一度も試したことない機能が沢山あるし。。。
このままコメントアウトのままじゃもったいないので、
少しづつ試すことにします。。。
もう少し実験を重ねて盛り込みたい機能が固まったら、
ハムへの情熱が冷めぬよう基板化することでも考えてみたいと思います。