Usage of ATTinyCore pin numbering scheme e.g. PIN_PB2. #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://github.com/Arduino-IRremote/Arduino-IRremote/blob/master/.github/workflows/LibraryBuild.yml | |
# Github workflow script to test compile all examples of an Arduino library repository. | |
# | |
# Copyright (C) 2020 Armin Joachimsmeyer | |
# https://github.com/ArminJo/Github-Actions | |
# | |
# Before being able to push to my .github\workflows directories, | |
# I had to create a new personal token with workflow enabled at https://github.com/settings/tokens | |
# This is the name of the workflow, visible on GitHub UI. | |
name: LibraryBuild | |
on: | |
workflow_dispatch: # To run it manually | |
description: 'manual build check' | |
push: # see: https://help.github.com/en/actions/reference/events-that-trigger-workflows#pull-request-event-pull_request | |
paths: | |
- '**.ino' | |
- '**.cpp' | |
- '**.hpp' | |
- '**.h' | |
- '**LibraryBuild.yml' | |
pull_request: | |
paths: | |
- '**.ino' | |
- '**.cpp' | |
- '**.hpp' | |
- '**.h' | |
- '**LibraryBuild.yml' | |
jobs: | |
build: | |
name: ${{ matrix.arduino-boards-fqbn }} - test compiling examples | |
runs-on: ubuntu-22.04 # I picked Ubuntu to use shell scripts. | |
strategy: | |
matrix: | |
# The matrix will produce one job for each configuration parameter of type `arduino-boards-fqbn` | |
# In the Arduino IDE, the fqbn is printed in the first line of the verbose output for compilation as parameter -fqbn=... for the "arduino-builder -dump-prefs" command | |
# | |
# Examples: arduino:avr:uno, arduino:avr:leonardo, arduino:avr:nano, arduino:avr:mega | |
# arduino:sam:arduino_due_x, arduino:samd:arduino_zero_native" | |
# ATTinyCore:avr:attinyx5:chip=85,clock=1internal | |
# STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 | |
# esp8266:esp8266:huzzah:eesz=4M3M,xtal=80, esp32:esp32:featheresp32:FlashFreq=80 | |
# You may add a suffix behind the fqbn with "|" to specify one board for e.g. different compile options like arduino:avr:uno|trace | |
############################################################################################################# | |
arduino-boards-fqbn: | |
- arduino:avr:uno | |
- arduino:avr:uno|DEBUG | |
- arduino:avr:uno|USE_NO_SEND_PWM | |
- arduino:avr:uno|SEND_PWM_BY_TIMER | |
- arduino:avr:uno|USE_OPEN_DRAIN_OUTPUT_FOR_SEND_PIN | |
- arduino:avr:mega:cpu=atmega2560 | |
- arduino:avr:leonardo | |
- arduino:megaavr:nona4809:mode=off | |
- arduino:samd:arduino_zero_native | |
- adafruit:samd:adafruit_metro_m4:cache=on,speed=120,opt=small,maxqspi=50,usbstack=arduino,debug=off | |
- arduino:mbed:nano33ble | |
- arduino:mbed_rp2040:pico | |
- rp2040:rp2040:arduino_nano_connect | |
- ATTinyCore:avr:attinyx5micr:LTO=enable,sketchclock=16pll | |
- ATTinyCore:avr:attinyx7micr:LTO=enable,sketchclock=16external,pinmapping=new,millis=enabled | |
- ATTinyCore:avr:attinyx8micr:LTO=enable,sketchclock=16external,pinmapping=mhtiny,millis=enabled # ATtiny88 China clone board @16 MHz | |
- MegaCore:avr:128:bootloader=no_bootloader,eeprom=keep,BOD=2v7,LTO=Os_flto,clock=8MHz_internal # ATmega128 | |
- SparkFun:avr:promicro | |
# - megaTinyCore:megaavr:atxy4:chip=1604,clock=16internal # https://github.com/SpenceKonde/megaTinyCore/issues/935 | |
# - megaTinyCore:megaavr:atxy7:chip=3217,clock=16internal # https://github.com/SpenceKonde/megaTinyCore/issues/935 | |
- esp8266:esp8266:d1_mini:eesz=4M3M,xtal=80 | |
- esp32:esp32:featheresp32:FlashFreq=80 | |
- STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 | |
- STMicroelectronics:stm32:GenL0:pnum=THUNDERPACK_L072 | |
- stm32duino:STM32F1:genericSTM32F103C | |
- sandeepmistry:nRF5:BBCmicrobit | |
- Seeeduino:samd:seeed_XIAO_m0:usbstack=arduino,debug=off,sercom4=include | |
# Specify parameters for each board. | |
# With sketches-exclude you may exclude specific examples for a board. Use a comma separated list. | |
############################################################################################################# | |
include: | |
- arduino-boards-fqbn: arduino:avr:uno | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 -DIR_SEND_PIN=3 | |
- arduino-boards-fqbn: arduino:avr:uno|DEBUG | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 -DIR_SEND_PIN=3 | |
All: -DEBUG | |
- arduino-boards-fqbn: arduino:avr:uno|USE_NO_SEND_PWM | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 -DIR_SEND_PIN=3 | |
TinyReceiver: -DUSE_FAST_PROTOCOL | |
TinySender: -DUSE_FAST_PROTOCOL | |
All: -DUSE_NO_SEND_PWM | |
- arduino-boards-fqbn: arduino:avr:uno|SEND_PWM_BY_TIMER | |
sketches-exclude: UnitTest | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 -DIR_SEND_PIN=3 -DSEND_PWM_BY_TIMER | |
ReceiveDemo: -DDECODE_ONKYO | |
TinyReceiver: -DUSE_ONKYO_PROTOCOL | |
TinySender: -DUSE_ONKYO_PROTOCOL | |
All: -DSEND_PWM_BY_TIMER | |
- arduino-boards-fqbn: arduino:avr:uno|USE_OPEN_DRAIN_OUTPUT_FOR_SEND_PIN | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 -DIR_SEND_PIN=3 -DUSE_OPEN_DRAIN_OUTPUT_FOR_SEND_PIN | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
TinyReceiver: -DENABLE_NEC2_REPEATS | |
TinySender: -DENABLE_NEC2_REPEATS | |
All: -DUSE_OPEN_DRAIN_OUTPUT_FOR_SEND_PIN | |
- arduino-boards-fqbn: arduino:avr:mega:cpu=atmega2560 | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=700 | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
TinyReceiver: -DDISABLE_PARITY_CHECKS | |
TinySender: -DDISABLE_PARITY_CHECKS | |
- arduino-boards-fqbn: arduino:avr:leonardo | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 | |
TinyReceiver: -DNO_LED_FEEDBACK_CODE | |
TinySender: -DNO_LED_FEEDBACK_CODE | |
# sketches-exclude: ReceiveAndSend # Not enough RAM for default RAW_BUFFER_LENGTH | |
- arduino-boards-fqbn: arduino:megaavr:nona4809:mode=off | |
sketches-exclude: TinyReceiver,IRDispatcherDemo | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
TinyReceiver: -DUSE_ONKYO_PROTOCOL -DENABLE_NEC2_REPEATS -DNO_LED_FEEDBACK_CODE | |
TinySender: -DUSE_ONKYO_PROTOCOL -DENABLE_NEC2_REPEATS -DNO_LED_FEEDBACK_CODE | |
- arduino-boards-fqbn: arduino:samd:arduino_zero_native | |
sketches-exclude: TinyReceiver,IRDispatcherDemo | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 | |
- arduino-boards-fqbn: adafruit:samd:adafruit_metro_m4:cache=on,speed=120,opt=small,maxqspi=50,usbstack=arduino,debug=off | |
platform-url: https://adafruit.github.io/arduino-board-index/package_adafruit_index.json | |
sketches-exclude: TinyReceiver,IRDispatcherDemo | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 | |
- arduino-boards-fqbn: arduino:mbed:nano33ble | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
- arduino-boards-fqbn: arduino:mbed_rp2040:pico | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
- arduino-boards-fqbn: rp2040:rp2040:arduino_nano_connect | |
platform-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 -DSEND_PWM_BY_TIMER | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
All: -DRAW_BUFFER_LENGTH=700 | |
# https://github.com/SpenceKonde/megaTinyCore/issues/935 | |
# - arduino-boards-fqbn: megaTinyCore:megaavr:atxy4:chip=1604,clock=16internal | |
# arduino-platform: megaTinyCore:megaavr | |
# platform-url: http://drazzy.com/package_drazzy.com_index.json | |
# sketches-exclude: AllProtocolsOnLCD | |
# build-properties: # the flags were put in compiler.cpp.extra_flags | |
# IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 | |
# https://github.com/SpenceKonde/megaTinyCore/issues/935 | |
# - arduino-boards-fqbn: megaTinyCore:megaavr:atxy7:chip=3217,clock=16internal | |
# arduino-platform: megaTinyCore:megaavr | |
# platform-url: http://drazzy.com/package_drazzy.com_index.json | |
# sketches-exclude: AllProtocolsOnLCD | |
# build-properties: # the flags were put in compiler.cpp.extra_flags | |
# IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=100 | |
- arduino-boards-fqbn: ATTinyCore:avr:attinyx5micr:LTO=enable,sketchclock=16pll | |
platform-url: http://drazzy.com/package_drazzy.com_index.json | |
required-libraries: ATtinySerialOut | |
sketch-names: TinyReceiver.ino,IRremoteInfo.ino,SimpleReceiver.ino,ReceiveDemo.ino,ControlRelay.ino,SimpleSender.ino,SendDemo.ino,SendRawDemo.ino,SendAndReceive.ino | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
- arduino-boards-fqbn: ATTinyCore:avr:attinyx7micr:LTO=enable,sketchclock=16external,pinmapping=new,millis=enabled | |
platform-url: http://drazzy.com/package_drazzy.com_index.json | |
required-libraries: ATtinySerialOut | |
sketch-names: TinyReceiver.ino,IRremoteInfo.ino,SimpleReceiver.ino,ReceiveDemo.ino,ControlRelay.ino,SimpleSender.ino,SendDemo.ino,SendRawDemo.ino,SendAndReceive.ino | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
- arduino-boards-fqbn: ATTinyCore:avr:attinyx8micr:LTO=enable,sketchclock=16external,pinmapping=mhtiny,millis=enabled # ATtiny88 China clone board @16 MHz | |
platform-url: http://drazzy.com/package_drazzy.com_index.json | |
required-libraries: ATtinySerialOut | |
sketch-names: TinyReceiver.ino,IRremoteInfo.ino,SimpleReceiver.ino,ReceiveDemo.ino,ControlRelay.ino,SimpleSender.ino,SendDemo.ino,SendRawDemo.ino,SendAndReceive.ino | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
- arduino-boards-fqbn: MegaCore:avr:128:bootloader=no_bootloader,eeprom=keep,BOD=2v7,LTO=Os_flto,clock=8MHz_internal | |
platform-url: https://mcudude.github.io/MegaCore/package_MCUdude_MegaCore_index.json | |
arduino-platform: arduino:avr,MegaCore:avr # gcc is taken from arduino:avr | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=300 | |
SimpleSender: -DSEND_PWM_BY_TIMER | |
All: -DRAW_BUFFER_LENGTH=700 | |
- arduino-boards-fqbn: esp8266:esp8266:d1_mini:eesz=4M3M,xtal=80 | |
platform-url: https://arduino.esp8266.com/stable/package_esp8266com_index.json | |
sketches-exclude: TinyReceiver | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=200 | |
All: -DRAW_BUFFER_LENGTH=300 | |
- arduino-boards-fqbn: esp32:esp32:featheresp32:FlashFreq=80 | |
platform-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json | |
sketches-exclude: TinyReceiver # undefined reference to `TwoWire::onReceive(void (*)(int))' | |
build-properties: # the flags were put in compiler.cpp.extra_flags. SEND_PWM_BY_TIMER is always enabled! | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=500 -Wno-error=maybe-uninitialized | |
All: -DRAW_BUFFER_LENGTH=300 -Wno-error=maybe-uninitialized # https://github.com/espressif/arduino-esp32/issues/7024 | |
- arduino-boards-fqbn: STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 # ST version | |
platform-url: https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/main/package_stmicroelectronics_index.json | |
sketches-exclude: TinyReceiver | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=700 | |
All: -DRAW_BUFFER_LENGTH=300 | |
- arduino-boards-fqbn: STMicroelectronics:stm32:GenL0:pnum=THUNDERPACK_L072 # ST version | |
platform-url: https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/main/package_stmicroelectronics_index.json | |
sketches-exclude: TinyReceiver,IRDispatcherDemo | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=700 | |
All: -DRAW_BUFFER_LENGTH=300 | |
- arduino-boards-fqbn: stm32duino:STM32F1:genericSTM32F103C # Roger Clark version | |
platform-url: http://dan.drown.org/stm32duino/package_STM32duino_index.json | |
sketches-exclude: TinyReceiver | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=700 | |
All: -DRAW_BUFFER_LENGTH=300 | |
- arduino-boards-fqbn: SparkFun:avr:promicro | |
arduino-platform: arduino:avr,SparkFun:avr | |
platform-url: https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json # Arduino URL is not required here | |
build-properties: # the flags were put in compiler.cpp.extra_flags. SEND_PWM_BY_TIMER is always enabled! | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=700 | |
All: -DRAW_BUFFER_LENGTH=300 | |
- arduino-boards-fqbn: sandeepmistry:nRF5:BBCmicrobit | |
platform-url: https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json | |
sketches-exclude: IRDispatcherDemo,MicroGirs,TinyReceiver | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=700 | |
All: -DRAW_BUFFER_LENGTH=300 | |
- arduino-boards-fqbn: Seeeduino:samd:seeed_XIAO_m0:usbstack=arduino,debug=off,sercom4=include | |
platform-url: https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json | |
sketches-exclude: AllProtocolsOnLCD,UnitTest,ReceiveAndSendDistanceWidth # No print(uint64_t,.) available | |
build-properties: # the flags were put in compiler.cpp.extra_flags | |
IRremoteExtensionTest: -DRAW_BUFFER_LENGTH=700 | |
All: -DRAW_BUFFER_LENGTH=300 | |
# fail-fast: false # false -> do not cancel all jobs / architectures if one job fails | |
steps: | |
- name: Checkout | |
uses: actions/checkout@master | |
- name: Compile all examples using the arduino-test-compile action | |
uses: ArminJo/arduino-test-compile@master | |
with: | |
arduino-board-fqbn: ${{ matrix.arduino-boards-fqbn }} | |
arduino-platform: ${{ matrix.arduino-platform }} | |
platform-url: ${{ matrix.platform-url }} | |
required-libraries: ${{ matrix.required-libraries }} | |
sketch-names: ${{ matrix.sketch-names }} | |
sketches-exclude: ${{ matrix.sketches-exclude }} | |
build-properties: ${{ toJson(matrix.build-properties) }} |