├── .codespellrc ├── .github ├── dependabot.yml └── workflows │ ├── check-arduino.yml │ ├── compile-platform-examples.yml │ ├── report-size-deltas.yml │ └── spell-check.yml ├── README.md ├── boards.txt ├── bootloaders ├── atmega │ ├── ATmegaBOOT_168.c │ ├── ATmegaBOOT_168_atmega1280.hex │ ├── ATmegaBOOT_168_atmega328.hex │ ├── ATmegaBOOT_168_atmega328_pro_8MHz.hex │ ├── ATmegaBOOT_168_diecimila.hex │ ├── ATmegaBOOT_168_ng.hex │ ├── ATmegaBOOT_168_pro_8MHz.hex │ └── Makefile ├── atmega8 │ ├── ATmegaBOOT-prod-firmware-2009-11-07.hex │ ├── ATmegaBOOT.c │ ├── ATmegaBOOT.hex │ ├── ATmegaBOOT.txt │ └── Makefile ├── bt │ ├── ATmegaBOOT_168.c │ ├── ATmegaBOOT_168.hex │ ├── ATmegaBOOT_168_atmega328_bt.hex │ └── Makefile ├── caterina-Arduino_Robot │ ├── Caterina-Robot-Control.hex │ ├── Caterina-Robot-Motor.hex │ ├── Caterina-Robot.txt │ ├── Caterina.c │ ├── Caterina.h │ ├── Descriptors.c │ ├── Descriptors.h │ ├── Makefile │ └── README.md ├── caterina-LilyPadUSB │ ├── Caterina-LilyPadUSB.hex │ ├── Caterina.c │ ├── Caterina.h │ ├── Descriptors.c │ ├── Descriptors.h │ ├── Makefile │ └── Readme.txt ├── caterina │ ├── Caterina-Circuitplay32u4.hex │ ├── Caterina-Esplora.hex │ ├── Caterina-Esplora.txt │ ├── Caterina-Industrial101.hex │ ├── Caterina-Leonardo.hex │ ├── Caterina-Leonardo.txt │ ├── Caterina-LeonardoEthernet.hex │ ├── Caterina-LininoOne.hex │ ├── Caterina-Micro.hex │ ├── Caterina-Micro.txt │ ├── Caterina-Yun-noblink.hex │ ├── Caterina-Yun.hex │ ├── Caterina-YunMini.hex │ ├── Caterina.c │ ├── Caterina.h │ ├── Descriptors.c │ ├── Descriptors.h │ ├── Esplora-prod-firmware-2012-12-10.hex │ ├── Esplora-prod-firmware-2012-12-10.txt │ ├── Leonardo-prod-firmware-2012-04-26.hex │ ├── Leonardo-prod-firmware-2012-04-26.txt │ ├── Leonardo-prod-firmware-2012-12-10.hex │ ├── Leonardo-prod-firmware-2012-12-10.txt │ ├── Makefile │ ├── Micro-prod-firmware-2012-11-23.hex │ ├── Micro-prod-firmware-2012-11-23.txt │ ├── Micro-prod-firmware-2012-12-10.hex │ └── Micro-prod-firmware-2012-12-10.txt ├── gemma │ ├── README.md │ ├── avrdude.conf │ ├── gemma_v1.hex │ ├── usbconfig.h │ └── usbconfig.patch ├── lilypad │ ├── LilyPadBOOT_168.hex │ └── src │ │ ├── ATmegaBOOT.c │ │ └── Makefile ├── optiboot │ ├── Makefile │ ├── README.TXT │ ├── boot.h │ ├── makeall │ ├── omake │ ├── omake.bat │ ├── optiboot.c │ ├── optiboot_atmega168.hex │ ├── optiboot_atmega168.lst │ ├── optiboot_atmega328-Mini.hex │ ├── optiboot_atmega328.hex │ ├── optiboot_atmega328.lst │ ├── optiboot_atmega8.hex │ ├── optiboot_atmega8.lst │ ├── pin_defs.h │ └── stk500.h └── stk500v2 │ ├── License.txt │ ├── Makefile │ ├── Mega2560-prod-firmware-2011-06-29.hex │ ├── STK500V2.pnproj │ ├── STK500V2.pnps │ ├── avr_cpunames.h │ ├── avrinterruptnames.h │ ├── command.h │ ├── stk500boot.c │ ├── stk500boot.ppg │ └── stk500boot_v2_mega2560.hex ├── cores └── arduino │ ├── Arduino.h │ ├── CDC.cpp │ ├── Client.h │ ├── HardwareSerial.cpp │ ├── HardwareSerial.h │ ├── HardwareSerial0.cpp │ ├── HardwareSerial1.cpp │ ├── HardwareSerial2.cpp │ ├── HardwareSerial3.cpp │ ├── HardwareSerial_private.h │ ├── IPAddress.cpp │ ├── IPAddress.h │ ├── PluggableUSB.cpp │ ├── PluggableUSB.h │ ├── Print.cpp │ ├── Print.h │ ├── Printable.h │ ├── Server.h │ ├── Stream.cpp │ ├── Stream.h │ ├── Tone.cpp │ ├── USBAPI.h │ ├── USBCore.cpp │ ├── USBCore.h │ ├── USBDesc.h │ ├── Udp.h │ ├── WCharacter.h │ ├── WInterrupts.c │ ├── WMath.cpp │ ├── WString.cpp │ ├── WString.h │ ├── abi.cpp │ ├── binary.h │ ├── hooks.c │ ├── main.cpp │ ├── new │ ├── new.cpp │ ├── new.h │ ├── wiring.c │ ├── wiring_analog.c │ ├── wiring_digital.c │ ├── wiring_private.h │ ├── wiring_pulse.S │ ├── wiring_pulse.c │ └── wiring_shift.c ├── drivers ├── AdafruitCircuitPlayground.cat ├── AdafruitCircuitPlayground.inf ├── FTDI USB Drivers │ ├── Static │ │ ├── amd64 │ │ │ └── ftd2xx.lib │ │ └── i386 │ │ │ └── ftd2xx.lib │ ├── amd64 │ │ ├── ftbusui.dll │ │ ├── ftcserco.dll │ │ ├── ftd2xx.lib │ │ ├── ftd2xx64.dll │ │ ├── ftdibus.sys │ │ ├── ftlang.dll │ │ ├── ftser2k.sys │ │ └── ftserui2.dll │ ├── ftd2xx.h │ ├── ftdibus.cat │ ├── ftdibus.inf │ ├── ftdiport.cat │ ├── ftdiport.inf │ └── i386 │ │ ├── ftbusui.dll │ │ ├── ftcserco.dll │ │ ├── ftd2xx.dll │ │ ├── ftd2xx.lib │ │ ├── ftdibus.sys │ │ ├── ftlang.dll │ │ ├── ftser2k.sys │ │ └── ftserui2.dll ├── arduino-org.cat ├── arduino-org.inf ├── arduino.cat ├── arduino.inf ├── dpinst-amd64.exe ├── dpinst-x86.exe ├── gemma │ ├── amd64 │ │ ├── libusb0.dll │ │ └── libusb0.sys │ ├── arduino_gemma.cat │ ├── arduino_gemma.inf │ ├── ia64 │ │ ├── libusb0.dll │ │ └── libusb0.sys │ ├── license │ │ └── libusb0 │ │ │ └── installer_license.txt │ └── x86 │ │ ├── libusb0.sys │ │ └── libusb0_x86.dll ├── genuino.cat ├── genuino.inf ├── linino-boards_amd64.cat ├── linino-boards_x86.cat └── linino.inf ├── extras ├── pack.hourlybuild.bash ├── pack.pullrequest.bash ├── pack.release.bash ├── package_index.json.Hourly.template └── package_index.json.PR.template ├── firmwares ├── arduinoISP │ └── readme.txt ├── atmegaxxu2 │ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex │ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex │ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex │ ├── Genuino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-R3.hex │ ├── Genuino-COMBINED-dfu-usbserial-atmega16u2-Uno-R3.hex │ ├── MEGA-dfu_and_usbserial_combined.hex │ ├── README.txt │ ├── UNO-dfu_and_usbserial_combined.hex │ ├── arduino-usbdfu │ │ ├── Arduino-usbdfu.c │ │ ├── Arduino-usbdfu.h │ │ ├── Board │ │ │ └── LEDs.h │ │ ├── Descriptors.c │ │ ├── Descriptors.h │ │ ├── makefile │ │ └── readme.txt │ └── arduino-usbserial │ │ ├── Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex │ │ ├── Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex │ │ ├── Arduino-usbserial-atmega16u2-Uno-Rev3.hex │ │ ├── Arduino-usbserial-mega.hex │ │ ├── Arduino-usbserial-uno.hex │ │ ├── Arduino-usbserial.c │ │ ├── Arduino-usbserial.h │ │ ├── Board │ │ └── LEDs.h │ │ ├── Descriptors.c │ │ ├── Descriptors.h │ │ ├── Genuino-usbserial-atmega16u2-Mega2560-R3.hex │ │ ├── Genuino-usbserial-atmega16u2-Uno-R3.hex │ │ ├── Lib │ │ └── LightweightRingBuff.h │ │ ├── makefile │ │ └── readme.txt └── wifishield │ ├── binary │ ├── wifiHD.elf │ ├── wifiHD.hex │ ├── wifiHD_2_1.elf │ ├── wifi_dnld.elf │ ├── wifi_dnld.hex │ └── wifi_dnld_2_1.elf │ ├── scripts │ ├── ArduinoWifiShield_upgrade.sh │ └── ArduinoWifiShield_upgrade_mac.sh │ ├── wifiHD │ ├── .cproject │ ├── .project │ ├── Release │ │ ├── wifiHD.elf │ │ └── wifiHD.hex │ ├── src │ │ ├── CONFIG │ │ │ ├── conf_access.h │ │ │ ├── conf_at45dbx.h │ │ │ ├── conf_ebi.h │ │ │ └── conf_sd_mmc_spi.h │ │ ├── SOFTWARE_FRAMEWORK │ │ │ ├── ASM │ │ │ │ └── trampoline.x │ │ │ ├── BOARDS │ │ │ │ ├── ARDUINO │ │ │ │ │ ├── arduino.h │ │ │ │ │ ├── led.c │ │ │ │ │ └── led.h │ │ │ │ ├── EVK1105 │ │ │ │ │ ├── evk1105.h │ │ │ │ │ ├── led.c │ │ │ │ │ └── led.h │ │ │ │ ├── board.h │ │ │ │ └── board.h.my │ │ │ ├── COMPONENTS │ │ │ │ ├── MEMORY │ │ │ │ │ └── DATA_FLASH │ │ │ │ │ │ └── AT45DBX │ │ │ │ │ │ ├── at45dbx.c │ │ │ │ │ │ ├── at45dbx.h │ │ │ │ │ │ ├── at45dbx_mem.c │ │ │ │ │ │ └── at45dbx_mem.h │ │ │ │ └── WIFI │ │ │ │ │ └── HD │ │ │ │ │ ├── v2.7.0 │ │ │ │ │ ├── UCR1 │ │ │ │ │ │ └── GCC │ │ │ │ │ │ │ ├── lib_ucr1_hd_sdio_v2.7.0.a │ │ │ │ │ │ │ ├── lib_ucr1_hd_spi_v2.7.0.a │ │ │ │ │ │ │ └── lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a │ │ │ │ │ ├── UCR2 │ │ │ │ │ │ └── GCC │ │ │ │ │ │ │ ├── lib_ucr2_hd_sdio_v2.7.0.a │ │ │ │ │ │ │ ├── lib_ucr2_hd_spi_v2.7.0.a │ │ │ │ │ │ │ └── lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a │ │ │ │ │ └── revision.txt │ │ │ │ │ ├── wl_api.h │ │ │ │ │ ├── wl_fw.h │ │ │ │ │ ├── wl_os.h │ │ │ │ │ ├── wl_sdio.h │ │ │ │ │ ├── wl_spi.h │ │ │ │ │ └── wlap_api.h │ │ │ ├── DRIVERS │ │ │ │ ├── CPU │ │ │ │ │ └── CYCLE_COUNTER │ │ │ │ │ │ └── cycle_counter.h │ │ │ │ ├── EBI │ │ │ │ │ └── SMC │ │ │ │ │ │ ├── smc.c │ │ │ │ │ │ └── smc.h │ │ │ │ ├── EIC │ │ │ │ │ ├── eic.c │ │ │ │ │ └── eic.h │ │ │ │ ├── FLASHC │ │ │ │ │ ├── flashc.c │ │ │ │ │ └── flashc.h │ │ │ │ ├── GPIO │ │ │ │ │ ├── gpio.c │ │ │ │ │ └── gpio.h │ │ │ │ ├── INTC │ │ │ │ │ ├── exception.x │ │ │ │ │ ├── intc.c │ │ │ │ │ └── intc.h │ │ │ │ ├── PDCA │ │ │ │ │ ├── pdca.c │ │ │ │ │ └── pdca.h │ │ │ │ ├── PM │ │ │ │ │ ├── pm.c │ │ │ │ │ ├── pm.h │ │ │ │ │ ├── pm_conf_clocks.c │ │ │ │ │ ├── power_clocks_lib.c │ │ │ │ │ └── power_clocks_lib.h │ │ │ │ ├── RTC │ │ │ │ │ ├── rtc.c │ │ │ │ │ └── rtc.h │ │ │ │ ├── SPI │ │ │ │ │ ├── spi.c │ │ │ │ │ └── spi.h │ │ │ │ ├── TC │ │ │ │ │ ├── tc.c │ │ │ │ │ └── tc.h │ │ │ │ └── USART │ │ │ │ │ ├── usart.c │ │ │ │ │ └── usart.h │ │ │ ├── SERVICES │ │ │ │ ├── DELAY │ │ │ │ │ ├── delay.c │ │ │ │ │ └── delay.h │ │ │ │ ├── LWIP │ │ │ │ │ ├── lwip-1.3.2 │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── core │ │ │ │ │ │ │ ├── dhcp.c │ │ │ │ │ │ │ ├── dns.c │ │ │ │ │ │ │ ├── init.c │ │ │ │ │ │ │ ├── ipv4 │ │ │ │ │ │ │ │ ├── autoip.c │ │ │ │ │ │ │ │ ├── icmp.c │ │ │ │ │ │ │ │ ├── igmp.c │ │ │ │ │ │ │ │ ├── inet.c │ │ │ │ │ │ │ │ ├── inet_chksum.c │ │ │ │ │ │ │ │ ├── ip.c │ │ │ │ │ │ │ │ ├── ip_addr.c │ │ │ │ │ │ │ │ └── ip_frag.c │ │ │ │ │ │ │ ├── mem.c │ │ │ │ │ │ │ ├── memp.c │ │ │ │ │ │ │ ├── netif.c │ │ │ │ │ │ │ ├── pbuf.c │ │ │ │ │ │ │ ├── raw.c │ │ │ │ │ │ │ ├── stats.c │ │ │ │ │ │ │ ├── tcp.c │ │ │ │ │ │ │ ├── tcp_in.c │ │ │ │ │ │ │ ├── tcp_out.c │ │ │ │ │ │ │ └── udp.c │ │ │ │ │ │ │ ├── include │ │ │ │ │ │ │ ├── ipv4 │ │ │ │ │ │ │ │ └── lwip │ │ │ │ │ │ │ │ │ ├── autoip.h │ │ │ │ │ │ │ │ │ ├── icmp.h │ │ │ │ │ │ │ │ │ ├── igmp.h │ │ │ │ │ │ │ │ │ ├── inet.h │ │ │ │ │ │ │ │ │ ├── inet_chksum.h │ │ │ │ │ │ │ │ │ ├── ip.h │ │ │ │ │ │ │ │ │ ├── ip_addr.h │ │ │ │ │ │ │ │ │ └── ip_frag.h │ │ │ │ │ │ │ ├── lwip │ │ │ │ │ │ │ │ ├── api.h │ │ │ │ │ │ │ │ ├── api_msg.h │ │ │ │ │ │ │ │ ├── arch.h │ │ │ │ │ │ │ │ ├── debug.h │ │ │ │ │ │ │ │ ├── def.h │ │ │ │ │ │ │ │ ├── dhcp.h │ │ │ │ │ │ │ │ ├── dns.h │ │ │ │ │ │ │ │ ├── err.h │ │ │ │ │ │ │ │ ├── init.h │ │ │ │ │ │ │ │ ├── mem.h │ │ │ │ │ │ │ │ ├── memp.h │ │ │ │ │ │ │ │ ├── memp_std.h │ │ │ │ │ │ │ │ ├── netbuf.h │ │ │ │ │ │ │ │ ├── netdb.h │ │ │ │ │ │ │ │ ├── netif.h │ │ │ │ │ │ │ │ ├── netifapi.h │ │ │ │ │ │ │ │ ├── opt.h │ │ │ │ │ │ │ │ ├── pbuf.h │ │ │ │ │ │ │ │ ├── raw.h │ │ │ │ │ │ │ │ ├── sio.h │ │ │ │ │ │ │ │ ├── snmp.h │ │ │ │ │ │ │ │ ├── snmp_asn1.h │ │ │ │ │ │ │ │ ├── snmp_msg.h │ │ │ │ │ │ │ │ ├── snmp_structs.h │ │ │ │ │ │ │ │ ├── sockets.h │ │ │ │ │ │ │ │ ├── stats.h │ │ │ │ │ │ │ │ ├── sys.h │ │ │ │ │ │ │ │ ├── tcp.h │ │ │ │ │ │ │ │ ├── tcpip.h │ │ │ │ │ │ │ │ └── udp.h │ │ │ │ │ │ │ └── netif │ │ │ │ │ │ │ │ ├── etharp.h │ │ │ │ │ │ │ │ ├── loopif.h │ │ │ │ │ │ │ │ ├── ppp_oe.h │ │ │ │ │ │ │ │ └── slipif.h │ │ │ │ │ │ │ └── netif │ │ │ │ │ │ │ ├── etharp.c │ │ │ │ │ │ │ └── loopif.c │ │ │ │ │ └── lwip-port-1.3.2 │ │ │ │ │ │ └── HD │ │ │ │ │ │ ├── if │ │ │ │ │ │ ├── include │ │ │ │ │ │ │ ├── arch │ │ │ │ │ │ │ │ ├── cc.h │ │ │ │ │ │ │ │ └── perf.h │ │ │ │ │ │ │ ├── lwipopts.h │ │ │ │ │ │ │ └── netif │ │ │ │ │ │ │ │ └── wlif.h │ │ │ │ │ │ └── netif │ │ │ │ │ │ │ └── wlif.c │ │ │ │ │ │ └── readme.txt │ │ │ │ └── MEMORY │ │ │ │ │ └── CTRL_ACCESS │ │ │ │ │ ├── ctrl_access.c │ │ │ │ │ └── ctrl_access.h │ │ │ └── UTILS │ │ │ │ ├── DEBUG │ │ │ │ ├── debug.c │ │ │ │ ├── debug.h │ │ │ │ ├── print_funcs.c │ │ │ │ └── print_funcs.h │ │ │ │ ├── LIBS │ │ │ │ └── NEWLIB_ADDONS │ │ │ │ │ ├── INCLUDE │ │ │ │ │ ├── nlao_cpu.h │ │ │ │ │ ├── nlao_exceptions.h │ │ │ │ │ ├── nlao_interrupts.h │ │ │ │ │ ├── nlao_io.h │ │ │ │ │ └── nlao_usart.h │ │ │ │ │ └── libnewlib_addons-at32ucr2-speed_opt.a │ │ │ │ ├── LINKER_SCRIPTS │ │ │ │ └── AT32UC3A │ │ │ │ │ ├── 1256 │ │ │ │ │ └── GCC │ │ │ │ │ │ └── link_uc3a1256.lds │ │ │ │ │ └── 0512 │ │ │ │ │ └── GCC │ │ │ │ │ └── link_uc3a0512.lds │ │ │ │ ├── PREPROCESSOR │ │ │ │ ├── mrepeat.h │ │ │ │ ├── preprocessor.h │ │ │ │ ├── stringz.h │ │ │ │ └── tpaste.h │ │ │ │ ├── STARTUP_FILES │ │ │ │ └── GCC │ │ │ │ │ └── crt0.x │ │ │ │ ├── compiler.h │ │ │ │ ├── conf_isp.h │ │ │ │ └── parts.h │ │ ├── ard_spi.c │ │ ├── ard_spi.h │ │ ├── ard_tcp.c │ │ ├── ard_tcp.h │ │ ├── ard_utils.c │ │ ├── ard_utils.h │ │ ├── avr32_spi.c │ │ ├── board_init.c │ │ ├── board_init.h │ │ ├── cmd_wl.c │ │ ├── cmd_wl.h │ │ ├── console.c │ │ ├── console.h │ │ ├── debug.h │ │ ├── fw_download.h │ │ ├── fw_download_extflash.c │ │ ├── license.txt │ │ ├── lwip_setup.c │ │ ├── lwip_setup.h │ │ ├── lwipopts.h │ │ ├── main.c │ │ ├── nvram.c │ │ ├── nvram.h │ │ ├── owl_os.c │ │ ├── ping.c │ │ ├── ping.h │ │ ├── printf-stdarg.c │ │ ├── printf-stdarg.h │ │ ├── timer.c │ │ ├── timer.h │ │ ├── top_defs.h │ │ ├── trace.h │ │ ├── util.c │ │ ├── util.h │ │ ├── wifi_spi.h │ │ ├── wl_cm.c │ │ ├── wl_cm.h │ │ └── wl_definitions.h │ └── wifiHD.cproj │ ├── wifi_dnld │ ├── .cproject │ ├── .project │ ├── Release │ │ └── wifi_dnld.elf │ ├── src │ │ ├── CONFIG │ │ │ ├── conf_access.h │ │ │ └── conf_at45dbx.h │ │ ├── Doc │ │ │ ├── SPB104 product brief.pdf │ │ │ └── gettingstarted.pdf │ │ ├── SOFTWARE_FRAMEWORK │ │ │ ├── ASM │ │ │ │ └── trampoline.x │ │ │ ├── BOARDS │ │ │ │ ├── ARDUINO │ │ │ │ │ ├── arduino.h │ │ │ │ │ ├── led.c │ │ │ │ │ └── led.h │ │ │ │ ├── EVK1105 │ │ │ │ │ ├── evk1105.h │ │ │ │ │ ├── led.c │ │ │ │ │ └── led.h │ │ │ │ ├── board.h │ │ │ │ └── board.h.ori │ │ │ ├── COMPONENTS │ │ │ │ └── MEMORY │ │ │ │ │ └── DATA_FLASH │ │ │ │ │ └── AT45DBX │ │ │ │ │ ├── at45dbx.c │ │ │ │ │ ├── at45dbx.h │ │ │ │ │ ├── at45dbx_mem.c │ │ │ │ │ └── at45dbx_mem.h │ │ │ ├── DRIVERS │ │ │ │ ├── FLASHC │ │ │ │ │ ├── flashc.c │ │ │ │ │ └── flashc.h │ │ │ │ ├── GPIO │ │ │ │ │ ├── gpio.c │ │ │ │ │ └── gpio.h │ │ │ │ ├── INTC │ │ │ │ │ ├── exception.x │ │ │ │ │ ├── intc.c │ │ │ │ │ └── intc.h │ │ │ │ ├── PM │ │ │ │ │ ├── pm.c │ │ │ │ │ ├── pm.h │ │ │ │ │ ├── pm_conf_clocks.c │ │ │ │ │ ├── power_clocks_lib.c │ │ │ │ │ └── power_clocks_lib.h │ │ │ │ ├── SPI │ │ │ │ │ ├── spi.c │ │ │ │ │ └── spi.h │ │ │ │ └── USART │ │ │ │ │ ├── usart.c │ │ │ │ │ └── usart.h │ │ │ ├── SERVICES │ │ │ │ └── MEMORY │ │ │ │ │ └── CTRL_ACCESS │ │ │ │ │ ├── ctrl_access.c │ │ │ │ │ └── ctrl_access.h │ │ │ └── UTILS │ │ │ │ ├── DEBUG │ │ │ │ ├── debug.c │ │ │ │ ├── debug.h │ │ │ │ ├── print_funcs.c │ │ │ │ └── print_funcs.h │ │ │ │ ├── LIBS │ │ │ │ └── NEWLIB_ADDONS │ │ │ │ │ ├── INCLUDE │ │ │ │ │ ├── nlao_cpu.h │ │ │ │ │ ├── nlao_exceptions.h │ │ │ │ │ ├── nlao_interrupts.h │ │ │ │ │ ├── nlao_io.h │ │ │ │ │ └── nlao_usart.h │ │ │ │ │ └── libnewlib_addons-at32ucr2-speed_opt.a │ │ │ │ ├── LINKER_SCRIPTS │ │ │ │ └── AT32UC3A │ │ │ │ │ ├── 1256 │ │ │ │ │ └── GCC │ │ │ │ │ │ └── link_uc3a1256.lds │ │ │ │ │ └── 0512 │ │ │ │ │ └── GCC │ │ │ │ │ └── link_uc3a0512.lds │ │ │ │ ├── PREPROCESSOR │ │ │ │ ├── mrepeat.h │ │ │ │ ├── preprocessor.h │ │ │ │ ├── stringz.h │ │ │ │ └── tpaste.h │ │ │ │ ├── STARTUP_FILES │ │ │ │ └── GCC │ │ │ │ │ └── crt0.x │ │ │ │ ├── compiler.h │ │ │ │ ├── conf_isp.h │ │ │ │ └── parts.h │ │ ├── clocks.c │ │ ├── clocks.h │ │ ├── flash_fw.c │ │ ├── license.txt │ │ ├── nor_flash.c │ │ ├── nor_flash.h │ │ ├── printf-stdarg.c │ │ ├── printf-stdarg.h │ │ ├── startup.c │ │ ├── startup.h │ │ └── wl_fw.h │ └── wifi_dnld.cproj │ └── wifishield.atsln ├── libraries ├── EEPROM │ ├── README.md │ ├── examples │ │ ├── eeprom_clear │ │ │ └── eeprom_clear.ino │ │ ├── eeprom_crc │ │ │ └── eeprom_crc.ino │ │ ├── eeprom_get │ │ │ └── eeprom_get.ino │ │ ├── eeprom_iteration │ │ │ └── eeprom_iteration.ino │ │ ├── eeprom_put │ │ │ └── eeprom_put.ino │ │ ├── eeprom_read │ │ │ └── eeprom_read.ino │ │ ├── eeprom_update │ │ │ └── eeprom_update.ino │ │ └── eeprom_write │ │ │ └── eeprom_write.ino │ ├── keywords.txt │ ├── library.properties │ └── src │ │ └── EEPROM.h ├── HID │ ├── keywords.txt │ ├── library.properties │ └── src │ │ ├── HID.cpp │ │ └── HID.h ├── SPI │ ├── examples │ │ ├── BarometricPressureSensor │ │ │ └── BarometricPressureSensor.ino │ │ └── DigitalPotControl │ │ │ └── DigitalPotControl.ino │ ├── keywords.txt │ ├── library.properties │ └── src │ │ ├── SPI.cpp │ │ └── SPI.h ├── SoftwareSerial │ ├── examples │ │ ├── SoftwareSerialExample │ │ │ └── SoftwareSerialExample.ino │ │ └── TwoPortReceive │ │ │ └── TwoPortReceive.ino │ ├── keywords.txt │ ├── library.properties │ └── src │ │ ├── SoftwareSerial.cpp │ │ └── SoftwareSerial.h └── Wire │ ├── examples │ ├── SFRRanger_reader │ │ └── SFRRanger_reader.ino │ ├── digital_potentiometer │ │ └── digital_potentiometer.ino │ ├── i2c_scanner │ │ └── i2c_scanner.ino │ ├── master_reader │ │ └── master_reader.ino │ ├── master_writer │ │ └── master_writer.ino │ ├── slave_receiver │ │ └── slave_receiver.ino │ └── slave_sender │ │ └── slave_sender.ino │ ├── keywords.txt │ ├── library.properties │ └── src │ ├── Wire.cpp │ ├── Wire.h │ └── utility │ ├── twi.c │ └── twi.h ├── platform.txt ├── post_install.bat ├── programmers.txt └── variants ├── circuitplay32u4 └── pins_arduino.h ├── eightanaloginputs └── pins_arduino.h ├── ethernet └── pins_arduino.h ├── gemma └── pins_arduino.h ├── leonardo └── pins_arduino.h ├── mega └── pins_arduino.h ├── micro └── pins_arduino.h ├── robot_control └── pins_arduino.h ├── robot_motor └── pins_arduino.h ├── standard └── pins_arduino.h └── yun └── pins_arduino.h /.codespellrc: -------------------------------------------------------------------------------- 1 | # See: https://github.com/codespell-project/codespell#using-a-config-file 2 | [codespell] 3 | # In the event of a false positive, add the problematic word, in all lowercase, to a comma-separated list here: 4 | ignore-words-list = clearin,clen,hart,pullrequest,shiftin,waitin 5 | builtin = clear 6 | check-filenames = 7 | check-hidden = 8 | skip = ./.git,./firmwares/arduinoISP,./firmwares/wifishield,./bootloaders 9 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # See: https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates#about-the-dependabotyml-file 2 | version: 2 3 | 4 | updates: 5 | # Configure check for outdated GitHub Actions actions in workflows. 6 | # See: https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-dependabot 7 | - package-ecosystem: github-actions 8 | directory: / # Check the repository's workflows under /.github/workflows/ 9 | schedule: 10 | interval: daily 11 | -------------------------------------------------------------------------------- /.github/workflows/check-arduino.yml: -------------------------------------------------------------------------------- 1 | name: Check Arduino 2 | 3 | # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows 4 | on: 5 | push: 6 | pull_request: 7 | schedule: 8 | # Run every Tuesday at 8 AM UTC to catch breakage caused by new rules added to Arduino Lint. 9 | - cron: "0 8 * * TUE" 10 | workflow_dispatch: 11 | repository_dispatch: 12 | 13 | jobs: 14 | lint: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - name: Checkout repository 19 | uses: actions/checkout@v4 20 | 21 | - name: Arduino Lint 22 | uses: arduino/arduino-lint-action@v2 23 | with: 24 | compliance: specification 25 | # Always use this setting for official repositories. Remove for 3rd party projects. 26 | official: true 27 | project-type: platform 28 | -------------------------------------------------------------------------------- /.github/workflows/report-size-deltas.yml: -------------------------------------------------------------------------------- 1 | name: Report Size Deltas 2 | 3 | # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows 4 | on: 5 | push: 6 | paths: 7 | - ".github/workflows/report-size-deltas.yml" 8 | schedule: 9 | # Run at the minimum interval allowed by GitHub Actions. 10 | # Note: GitHub Actions periodically has outages which result in workflow failures. 11 | # In this event, the workflows will start passing again once the service recovers. 12 | - cron: "*/5 * * * *" 13 | workflow_dispatch: 14 | repository_dispatch: 15 | 16 | jobs: 17 | report: 18 | runs-on: ubuntu-latest 19 | steps: 20 | - name: Comment size deltas reports to PRs 21 | uses: arduino/report-size-deltas@v1 22 | with: 23 | # Regex matching the names of the workflow artifacts created by the "Compile Examples" workflow 24 | sketches-reports-source: ^sketches-report-.+ 25 | -------------------------------------------------------------------------------- /.github/workflows/spell-check.yml: -------------------------------------------------------------------------------- 1 | name: Spell Check 2 | 3 | # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows 4 | on: 5 | push: 6 | pull_request: 7 | schedule: 8 | # Run every Tuesday at 8 AM UTC to catch new misspelling detections resulting from dictionary updates. 9 | - cron: "0 8 * * TUE" 10 | workflow_dispatch: 11 | repository_dispatch: 12 | 13 | jobs: 14 | spellcheck: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - name: Checkout repository 19 | uses: actions/checkout@v4 20 | 21 | - name: Spell check 22 | uses: codespell-project/actions-codespell@master 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Arduino AVR Boards 2 | 3 | [![Check Arduino status](https://github.com/arduino/ArduinoCore-avr/actions/workflows/check-arduino.yml/badge.svg)](https://github.com/arduino/ArduinoCore-avr/actions/workflows/check-arduino.yml) 4 | [![Compile Examples status](https://github.com/arduino/ArduinoCore-avr/actions/workflows/compile-platform-examples.yml/badge.svg)](https://github.com/arduino/ArduinoCore-avr/actions/workflows/compile-platform-examples.yml) 5 | [![Spell Check status](https://github.com/arduino/ArduinoCore-avr/actions/workflows/spell-check.yml/badge.svg)](https://github.com/arduino/ArduinoCore-avr/actions/workflows/spell-check.yml) 6 | 7 | This repository contains the source code and configuration files of the Arduino AVR Boards 8 | [platform](https://arduino.github.io/arduino-cli/latest/platform-specification/). 9 | -------------------------------------------------------------------------------- /bootloaders/atmega8/ATmegaBOOT.hex: -------------------------------------------------------------------------------- 1 | :101C000012C02CC02BC02AC029C028C027C026C0A3 2 | :101C100025C024C023C022C021C020C01FC01EC0B8 3 | :101C20001DC01CC01BC011241FBECFE5D4E0DEBF09 4 | :101C3000CDBF10E0A0E6B0E0E6EAFFE102C005900B 5 | :101C40000D92A236B107D9F711E0A2E6B0E001C0CB 6 | :101C50001D92AA36B107E1F72BD0A3C1D1CF5D9B6E 7 | :101C6000FECF8CB908955F9BFECF8CB108950F9382 8 | :101C70001F93082F10E002C0F6DF1F5F1017E0F37C 9 | :101C80001F910F9108951F93182FEDDF803231F4CB 10 | :101C900084E1E5DF812FE3DF80E1E1DF1F9108953B 11 | :101CA000E2DF803221F484E1DADF80E1D8DF0895D9 12 | :101CB0000F931F93CF93DF93000010BC83E389B988 13 | :101CC00088E18AB986E880BDBD9A1092680120E05B 14 | :101CD00030E240E050E007C088B3832788BBCA01E8 15 | :101CE0000197F1F72F5F2031B8F320936801BBDF34 16 | :101CF000803381F1813399F4B6DF8032C1F784E11A 17 | :101D0000AEDF81E4ACDF86E5AADF82E5A8DF80E212 18 | :101D1000A6DF89E4A4DF83E5A2DF80E523C1803468 19 | :101D200029F4A1DF8638B0F09EDF14C0813471F44D 20 | :101D30009ADF803811F482E01DC1813811F481E00E 21 | :101D400019C1823809F015C182E114C1823421F42D 22 | :101D500084E18DDFA5DFCBCF853411F485E0F9CFA9 23 | :101D60008035C1F38135B1F38235A1F3853539F47E 24 | :101D70007ADF8093640077DF80936500EBCF863550 25 | :101D800019F484E074DFF5C0843609F090C06BDF8D 26 | :101D90008093670168DF80936601809169018E7F7F 27 | :101DA0008093690160DF853429F480916901816045 28 | :101DB0008093690100E010E007C055DFF801EA599F 29 | :101DC000FF4F80830F5F1F4F8091660190916701E5 30 | :101DD0000817190790F347DF803209F088CF809108 31 | :101DE000690180FF1FC000E010E014C0F801EA594B 32 | :101DF000FF4F80916400909165006081C5D0809113 33 | :101E00006400909165000196909365008093640052 34 | :101E10000F5F1F4F809166019091670108171907A6 35 | :101E200028F343C0F894E199FECF1127E0916400B4 36 | :101E3000F0916500EE0FFF1FC6E6D0E080916601CD 37 | :101E40009091670180FF01C00196103051F422D0BB 38 | :101E500003E000935700E8951DD001E1009357007F 39 | :101E6000E8950990199016D001E000935700E89585 40 | :101E70001395103258F011270DD005E0009357004C 41 | :101E8000E89508D001E100935700E8953296029753 42 | :101E900039F0DBCF0091570001700130D9F308957C 43 | :101EA000103011F00296E7CF112484E15BC0843733 44 | :101EB00009F04BC0D8DE80936701D5DE80936601C0 45 | :101EC000D2DE90916901853421F49160909369018B 46 | :101ED0000DC09E7F90936901809164009091650090 47 | :101EE000880F991F9093650080936400BCDE803258 48 | :101EF00009F0FDCE84E1B3DE00E010E01EC0809169 49 | :101F0000690180FF06C0809164009091650034D023 50 | :101F100008C081FD07C0E0916400F0916500E49184 51 | :101F20008E2F9DDE809164009091650001969093C4 52 | :101F30006500809364000F5F1F4F80916601909150 53 | :101F4000670108171907D8F20EC0853779F48BDEC0 54 | :101F5000803209F0CCCE84E182DE8EE180DE83E93E 55 | :101F60007EDE87E07CDE80E17ADEC1CE863709F056 56 | :101F7000BECE80E088DEBBCEE199FECF9FBB8EBB9C 57 | :101F8000E09A99278DB30895262FE199FECF9FBB44 58 | :101F90008EBB2DBB0FB6F894E29AE19A0FBE019664 59 | :061FA0000895F894FFCF44 60 | :021FA6008000B9 61 | :0400000300001C00DD 62 | :00000001FF 63 | -------------------------------------------------------------------------------- /bootloaders/atmega8/ATmegaBOOT.txt: -------------------------------------------------------------------------------- 1 | Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=i686-linux-gnu --host=i686-linux-gnu --target=avr 2 | Thread model: single 3 | gcc version 4.3.5 (GCC) 4 | 5 | -------------------------------------------------------------------------------- /bootloaders/atmega8/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for ATmegaBOOT 2 | # E.Lins, 2004-10-14 3 | 4 | # program name should not be changed... 5 | PROGRAM = ATmegaBOOT 6 | 7 | PRODUCT=atmega8 8 | 9 | # enter the parameters for the UISP isp tool 10 | ISPPARAMS = -dprog=stk500 -dserial=$(SERIAL) -dspeed=115200 11 | 12 | 13 | #DIRAVR = /usr/local/avr 14 | DIRAVRBIN = $(DIRAVR)/bin 15 | DIRAVRUTILS = $(DIRAVR)/utils/bin 16 | DIRINC = $(DIRAVR)/include 17 | DIRLIB = $(DIRAVR)/avr/lib 18 | 19 | 20 | MCU_TARGET = atmega8 21 | LDSECTION = --section-start=.text=0x1c00 22 | FUSE_L = 0xdf 23 | FUSE_H = 0xca 24 | ISPFUSES = $(DIRAVRBIN)/uisp -dpart=ATmega8 $(ISPPARAMS) --wr_fuse_l=$(FUSE_L) --wr_fuse_h=$(FUSE_H) 25 | ISPFLASH = $(DIRAVRBIN)/uisp -dpart=ATmega8 $(ISPPARAMS) --erase --upload if=$(PROGRAM).hex -v 26 | 27 | 28 | OBJ = $(PROGRAM).o 29 | OPTIMIZE = -Os -funsigned-char -funsigned-bitfields -fno-inline-small-functions 30 | 31 | DEFS = -DF_CPU=16000000 -DBAUD_RATE=19200 32 | LIBS = 33 | 34 | CC = $(DIRAVRBIN)/avr-gcc 35 | 36 | 37 | # Override is only needed by avr-lib build system. 38 | 39 | override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -D$(PRODUCT) $(DEFS) -I$(DIRINC) 40 | override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION) 41 | 42 | OBJCOPY = $(DIRAVRBIN)/avr-objcopy 43 | OBJDUMP = $(DIRAVRBIN)/avr-objdump 44 | SIZE = $(DIRAVRBIN)/avr-size 45 | 46 | all: $(PROGRAM).elf lst text asm size 47 | 48 | isp: $(PROGRAM).hex 49 | $(ISPFUSES) 50 | $(ISPFLASH) 51 | 52 | $(PROGRAM).elf: $(OBJ) 53 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) 54 | 55 | clean: 56 | rm -rf *.s 57 | rm -rf *.o *.elf 58 | rm -rf *.lst *.map 59 | 60 | asm: $(PROGRAM).s 61 | 62 | %.s: %.c 63 | $(CC) -S $(CFLAGS) -g1 $^ 64 | 65 | lst: $(PROGRAM).lst 66 | 67 | %.lst: %.elf 68 | $(OBJDUMP) -h -S $< > $@ 69 | 70 | size: $(PROGRAM).hex 71 | $(SIZE) $^ 72 | 73 | # Rules for building the .text rom images 74 | 75 | text: hex bin srec 76 | 77 | hex: $(PROGRAM).hex 78 | bin: $(PROGRAM).bin 79 | srec: $(PROGRAM).srec 80 | 81 | %.hex: %.elf 82 | $(OBJCOPY) -j .text -j .data -O ihex $< $@ 83 | 84 | %.srec: %.elf 85 | $(OBJCOPY) -j .text -j .data -O srec $< $@ 86 | 87 | %.bin: %.elf 88 | $(OBJCOPY) -j .text -j .data -O binary $< $@ 89 | -------------------------------------------------------------------------------- /bootloaders/caterina-Arduino_Robot/Caterina-Robot.txt: -------------------------------------------------------------------------------- 1 | Builds against LUFA version 111009 2 | make version 3.81 3 | avrdude version 5.11 4 | 5 | All AVR tools except avrdude were installed by CrossPack 20100115: 6 | avr-gcc version 4.3.3 (GCC) 7 | Thread model: single 8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2 9 | avr-libc version 1.6.7 10 | binutils version 2.19 11 | 12 | -------------------------------------------------------------------------------- /bootloaders/caterina-Arduino_Robot/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/bootloaders/caterina-Arduino_Robot/Makefile -------------------------------------------------------------------------------- /bootloaders/caterina-Arduino_Robot/README.md: -------------------------------------------------------------------------------- 1 | Building the bootloader for the Arduino Robot 2 | ============================================= 3 | 4 | The Arduino Robot has two boards featuring the atmega32U4 processor from Atmel. Each one of them is identified as a different board at the USB level and has a different bootloader. 5 | 6 | The Arduino Robot Control board has the USB identifier 0x0038. This is the value configured by default in the Makefile. 7 | 8 | The Arduino Robot Motor board has the USB identifier 0x0039. If you want to compile/upload this version of the bootloader, you will have to edit the Makefile, comment away the like dedicated to the PID and uncomment the one that configures such variable accordingly. 9 | 10 | The general conditions for using these bootloaders require downloading a specific version of LUFA as explained here: 11 | 12 | 1. Download the LUFA-111009 file (http://fourwalledcubicle.com/blog/2011/10/lufa-111009-released/). 13 | 2. Extract that file directly to the Caterina-Arduino_Robot bootloader directory. 14 | 3. Open a command prompt in the Caterina-Arduino_Robot bootloader directory. 15 | 4. Type 'make'. 16 | 5. Enjoy! 17 | 18 | Programming the bootloader for one of the Arduino Robot boards 19 | 1. Open a command prompt in the Caterina-Arduino_Robot folder. 20 | 2. Connect your programmer- use a 2x3 .1" header, pressed against the programming vias. 21 | 3. Edit the make file for it to include the right programmer (e.g. in my lab I have AVRMKII and USBTINY ISP) 22 | 4. Type 'make program' into the command prompt. 23 | 24 | Differences between this bootoloader and the standard one for Leonardo boards 25 | ============================================================================= 26 | 27 | This bootloader is different from the one on the standard Leonardo boards. To enter the bootloader, you need to double click the reset button. You need to click twice in less that 3/4 of a second (easy uh?). This bootloader, designed in the first place for the LilypadUSB, seems to be optimal for situations when users are e.g. using their robots in soccer competitions where they make direct manipulation of the board as it runs. 28 | -------------------------------------------------------------------------------- /bootloaders/caterina-LilyPadUSB/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/bootloaders/caterina-LilyPadUSB/Makefile -------------------------------------------------------------------------------- /bootloaders/caterina-LilyPadUSB/Readme.txt: -------------------------------------------------------------------------------- 1 | Building the bootloader for the LilyPadUSB 2 | 1. Download the LUFA-111009 file (http://fourwalledcubicle.com/blog/2011/10/lufa-111009-released/). 3 | 2. Extract that file directly to the Caterina-LilyPadUSB bootloader directory. 4 | 3. Open a command prompt in the Caterina-LilyPadUSB bootloader directory. 5 | 4. Type 'make'. 6 | 5. Enjoy! 7 | 8 | Programming the bootloader for the LilyPadUSB 9 | 1. Open a command prompt in the Caterina-LilyPadUSB folder. 10 | 2. Connect your programmer- use a 2x3 .1" header, pressed against the programming vias. 11 | 3. Type 'make program' into the command prompt. -------------------------------------------------------------------------------- /bootloaders/caterina/Caterina-Esplora.txt: -------------------------------------------------------------------------------- 1 | LUFA: 111009 2 | make: 3.81 3 | avrdude: 5.11.1 4 | avr-libc: 1.6.7 5 | binutils-avr: 2.19 6 | gcc-avr 4.3.3 7 | -------------------------------------------------------------------------------- /bootloaders/caterina/Caterina-Leonardo.txt: -------------------------------------------------------------------------------- 1 | Builds against LUFA version 111009 2 | make version 3.81 3 | avrdude version 5.11 4 | 5 | All AVR tools except avrdude were installed by CrossPack 20100115: 6 | avr-gcc version 4.3.3 (GCC) 7 | Thread model: single 8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2 9 | avr-libc version 1.6.7 10 | binutils version 2.19 11 | 12 | -------------------------------------------------------------------------------- /bootloaders/caterina/Caterina-Micro.txt: -------------------------------------------------------------------------------- 1 | Builds against LUFA version 111009 2 | make version 3.81 3 | avrdude version 5.11 4 | 5 | All AVR tools except avrdude were installed by CrossPack 20100115: 6 | avr-gcc version 4.3.3 (GCC) 7 | Thread model: single 8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2 9 | avr-libc version 1.6.7 10 | binutils version 2.19 11 | 12 | -------------------------------------------------------------------------------- /bootloaders/caterina/Esplora-prod-firmware-2012-12-10.txt: -------------------------------------------------------------------------------- 1 | LUFA: 111009 2 | make: 3.81 3 | avrdude: 5.11.1 4 | avr-libc: 1.6.7 5 | binutils-avr: 2.19 6 | gcc-avr 4.3.3 7 | -------------------------------------------------------------------------------- /bootloaders/caterina/Leonardo-prod-firmware-2012-04-26.txt: -------------------------------------------------------------------------------- 1 | Builds against LUFA version 111009 2 | make version 3.81 3 | avrdude version 5.11 4 | 5 | All AVR tools except avrdude were installed by CrossPack 20100115: 6 | avr-gcc version 4.3.3 (GCC) 7 | Thread model: single 8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2 9 | avr-libc version 1.6.7 10 | binutils version 2.19 11 | 12 | -------------------------------------------------------------------------------- /bootloaders/caterina/Leonardo-prod-firmware-2012-12-10.txt: -------------------------------------------------------------------------------- 1 | Builds against LUFA version 111009 2 | make version 3.81 3 | avrdude version 5.11 4 | 5 | All AVR tools except avrdude were installed by CrossPack 20100115: 6 | avr-gcc version 4.3.3 (GCC) 7 | Thread model: single 8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2 9 | avr-libc version 1.6.7 10 | binutils version 2.19 11 | 12 | -------------------------------------------------------------------------------- /bootloaders/caterina/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/bootloaders/caterina/Makefile -------------------------------------------------------------------------------- /bootloaders/caterina/Micro-prod-firmware-2012-11-23.txt: -------------------------------------------------------------------------------- 1 | Builds against LUFA version 111009 2 | make version 3.81 3 | avrdude version 5.11 4 | 5 | All AVR tools except avrdude were installed by CrossPack 20100115: 6 | avr-gcc version 4.3.3 (GCC) 7 | Thread model: single 8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2 9 | avr-libc version 1.6.7 10 | binutils version 2.19 11 | 12 | -------------------------------------------------------------------------------- /bootloaders/caterina/Micro-prod-firmware-2012-12-10.txt: -------------------------------------------------------------------------------- 1 | Builds against LUFA version 111009 2 | make version 3.81 3 | avrdude version 5.11 4 | 5 | All AVR tools except avrdude were installed by CrossPack 20100115: 6 | avr-gcc version 4.3.3 (GCC) 7 | Thread model: single 8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2 9 | avr-libc version 1.6.7 10 | binutils version 2.19 11 | 12 | -------------------------------------------------------------------------------- /bootloaders/gemma/README.md: -------------------------------------------------------------------------------- 1 | Arduino Gemma Bootloader 2 | ======================== 3 | 4 | The Arduino Gemma Bootloader is based on the Adafruit Trinket/Gemma Bootloader. In the Arduino Gemma bootloader the USB VID&PID, the Manufacturer name and the Device name parameters are changed. 5 | 6 | The source code of the bootloader of the version used at the compile time can be found at the following link: https://github.com/adafruit/Adafruit-Trinket-Gemma-Bootloader/tree/3bc1bb561273535d4d493518a233a3a1fccf6b76 7 | 8 | The *'usbconfig.h'* and the *'usbconfig.patch'* files are provided if you want to recompile the bootloader. 9 | You only need to replace the original *'usbconfig.h'* file with this one or patch it with the provided patch file. 10 | 11 | **Please note: you cannot use the Arduino USB VID/PID for your own non-Gemma products or projects. Purchase a USB VID for yourself at** http://www.usb.org/developers/vendor/ 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /bootloaders/gemma/usbconfig.patch: -------------------------------------------------------------------------------- 1 | 203c203 2 | < #define USB_CFG_VENDOR_ID 0x81, 0x17 /* = 0x16c0 = 5824 = voti.nl */ 3 | --- 4 | > #define USB_CFG_VENDOR_ID 0x41, 0x23 /* = 0x16c0 = 5824 = voti.nl */ 5 | 208c208 6 | < #define USB_CFG_DEVICE_ID 0x9F, 0x0C /* = 0x05dc = 1500 */ 7 | --- 8 | > #define USB_CFG_DEVICE_ID 0x9F, 0x0c /* = 0x05dc = 1500 */ 9 | 215c215 10 | < #define USB_CFG_DEVICE_VERSION 0x05, 0x01 11 | --- 12 | > #define USB_CFG_DEVICE_VERSION 0x00, 0x01 13 | 218,219c218,219 14 | < #define USB_CFG_VENDOR_NAME 'A','d','a','f','r','u','i','t' 15 | < #define USB_CFG_VENDOR_NAME_LEN 8 16 | --- 17 | > #define USB_CFG_VENDOR_NAME 'A','r','d','u','i','n','o','.','c','c' 18 | > #define USB_CFG_VENDOR_NAME_LEN 10 19 | 228,229c228,229 20 | < #define USB_CFG_DEVICE_NAME 'T','r','i','n','k','e','t' 21 | < #define USB_CFG_DEVICE_NAME_LEN 7 22 | --- 23 | > #define USB_CFG_DEVICE_NAME 'G','e','m','m','a' 24 | > #define USB_CFG_DEVICE_NAME_LEN 5 25 | -------------------------------------------------------------------------------- /bootloaders/lilypad/src/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for ATmegaBOOT 2 | # E.Lins, 18.7.2005 3 | 4 | # Instructions 5 | # 6 | # To build the bootloader for the LilyPad: 7 | # make lily 8 | 9 | 10 | # program name should not be changed... 11 | PROGRAM = ATmegaBOOT_168 12 | 13 | # enter the target CPU frequency 14 | AVR_FREQ = 8000000L 15 | 16 | # enter the parameters for the avrdude isp tool 17 | ISPTOOL = stk500v2 18 | ISPPORT = usb 19 | ISPSPEED = -b 115200 20 | 21 | MCU_TARGET = atmega168 22 | LDSECTION = --section-start=.text=0x3800 23 | 24 | # the efuse should really be 0xf8; since, however, only the lower 25 | # three bits of that byte are used on the atmega168, avrdude gets 26 | # confused if you specify 1's for the higher bits, see: 27 | # http://tinker.it/now/2007/02/24/the-tale-of-avrdude-atmega168-and-extended-bits-fuses/ 28 | # 29 | # similarly, the lock bits should be 0xff instead of 0x3f (to 30 | # unlock the bootloader section) and 0xcf instead of 0x0f (to 31 | # lock it), but since the high two bits of the lock byte are 32 | # unused, avrdude would get confused. 33 | ISPFUSES = avrdude -c $(ISPTOOL) -p m168 -P $(ISPPORT) $(ISPSPEED) -e -u -U lock:w:0x3f:m -U efuse:w:0x00:m -U hfuse:w:0xdd:m -U lfuse:w:0xff:m 34 | ISPFLASH = avrdude -c $(ISPTOOL) -p m168 -P $(ISPPORT) $(ISPSPEED) -U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x0f:m 35 | 36 | 37 | OBJ = $(PROGRAM).o 38 | OPTIMIZE = -O2 39 | 40 | DEFS = 41 | LIBS = 42 | 43 | CC = avr-gcc 44 | 45 | 46 | # Override is only needed by avr-lib build system. 47 | 48 | override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) 49 | override LDFLAGS = -Wl,$(LDSECTION) 50 | #override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION) 51 | 52 | OBJCOPY = avr-objcopy 53 | OBJDUMP = avr-objdump 54 | 55 | all: 56 | 57 | lily: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' 58 | lily: $(PROGRAM).hex 59 | 60 | $(PROGRAM).hex: $(PROGRAM).elf 61 | $(OBJCOPY) -j .text -j .data -O ihex $< $@ 62 | 63 | $(PROGRAM).elf: $(OBJ) 64 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) 65 | 66 | $(OBJ): 67 | avr-gcc $(CFLAGS) $(LDFLAGS) -c -g -O2 -Wall -mmcu=atmega168 ATmegaBOOT.c -o ATmegaBOOT_168.o 68 | 69 | %.lst: %.elf 70 | $(OBJDUMP) -h -S $< > $@ 71 | 72 | %.srec: %.elf 73 | $(OBJCOPY) -j .text -j .data -O srec $< $@ 74 | 75 | %.bin: %.elf 76 | $(OBJCOPY) -j .text -j .data -O binary $< $@ 77 | 78 | clean: 79 | rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex 80 | 81 | install: 82 | avrdude -p m168 -c stk500v2 -P /dev/cu.USA19H1b1P1.1 -e -u -U lock:w:0x3f:m -U efuse:w:0x00:m -U hfuse:w:0xdd:m -U lfuse:w:0xe2:m 83 | avrdude -p m168 -c stk500v2 -P /dev/cu.USA19H1b1P1.1 -e -u -U flash:w:ATmegaBOOT_168.hex -U lock:w:0x0f:m 84 | -------------------------------------------------------------------------------- /bootloaders/optiboot/makeall: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | make clean 3 | # 4 | # The "big three" standard bootloaders. 5 | make atmega8 6 | make atmega168 7 | make atmega328 8 | # 9 | # additional buildable platforms of 10 | # somewhat questionable support level 11 | make lilypad 12 | make lilypad_resonator 13 | make pro8 14 | make pro16 15 | make pro20 16 | make atmega328_pro8 17 | make sanguino 18 | make mega 19 | make atmega88 20 | make luminet 21 | -------------------------------------------------------------------------------- /bootloaders/optiboot/omake: -------------------------------------------------------------------------------- 1 | echo ../../../tools/avr/bin/make OS=macosx ENV=arduino $* 2 | ../../../tools/avr/bin/make OS=macosx ENV=arduino $* 3 | -------------------------------------------------------------------------------- /bootloaders/optiboot/omake.bat: -------------------------------------------------------------------------------- 1 | ..\..\..\tools\avr\utils\bin\make OS=windows ENV=arduino %* 2 | -------------------------------------------------------------------------------- /bootloaders/optiboot/optiboot_atmega168.hex: -------------------------------------------------------------------------------- 1 | :103E0000112484B714BE81FFF0D085E08093810037 2 | :103E100082E08093C00088E18093C10086E08093B7 3 | :103E2000C20080E18093C4008EE0C9D0259A86E06C 4 | :103E300020E33CEF91E0309385002093840096BB13 5 | :103E4000B09BFECF1D9AA8958150A9F7CC24DD2404 6 | :103E500088248394B5E0AB2EA1E19A2EF3E0BF2E27 7 | :103E6000A2D0813461F49FD0082FAFD0023811F076 8 | :103E7000013811F484E001C083E08DD089C0823420 9 | :103E800011F484E103C0853419F485E0A6D080C024 10 | :103E9000853579F488D0E82EFF2485D0082F10E0EE 11 | :103EA000102F00270E291F29000F111F8ED0680127 12 | :103EB0006FC0863521F484E090D080E0DECF843678 13 | :103EC00009F040C070D06FD0082F6DD080E0C816C8 14 | :103ED00088E3D80618F4F601B7BEE895C0E0D1E053 15 | :103EE00062D089930C17E1F7F0E0CF16F8E3DF0614 16 | :103EF00018F0F601B7BEE89568D007B600FCFDCF14 17 | :103F0000A601A0E0B1E02C9130E011968C911197C0 18 | :103F100090E0982F8827822B932B1296FA010C01A0 19 | :103F200087BEE89511244E5F5F4FF1E0A038BF07D0 20 | :103F300051F7F601A7BEE89507B600FCFDCF97BE86 21 | :103F4000E89526C08437B1F42ED02DD0F82E2BD092 22 | :103F50003CD0F601EF2C8F010F5F1F4F84911BD0D7 23 | :103F6000EA94F801C1F70894C11CD11CFA94CF0C53 24 | :103F7000D11C0EC0853739F428D08EE10CD084E9ED 25 | :103F80000AD086E07ACF813511F488E018D01DD0B0 26 | :103F900080E101D065CF982F8091C00085FFFCCFD4 27 | :103FA0009093C60008958091C00087FFFCCF809158 28 | :103FB000C00084FD01C0A8958091C6000895E0E688 29 | :103FC000F0E098E1908380830895EDDF803219F06E 30 | :103FD00088E0F5DFFFCF84E1DECF1F93182FE3DF0A 31 | :103FE0001150E9F7F2DF1F91089580E0E8DFEE2736 32 | :043FF000FF2709940A 33 | :023FFE000404B9 34 | :0400000300003E00BB 35 | :00000001FF 36 | -------------------------------------------------------------------------------- /bootloaders/optiboot/optiboot_atmega328-Mini.hex: -------------------------------------------------------------------------------- 1 | :107E000085E08093810082E08093C00088E18093C8 2 | :107E1000C10086E08093C20080E18093C40084B7F3 3 | :107E200014BE81FFD0D089E2C8D0259A86E020E335 4 | :107E30003CEF91E0309385002093840096BBB09B8B 5 | :107E4000FECF1D9AA8958150A9F7DD24D394A5E013 6 | :107E5000EA2EF1E1FF2EA4D0813421F481E0BED0DE 7 | :107E600083E024C0823411F484E103C0853419F422 8 | :107E700085E0B4D08AC08535A1F492D0082F10E0F7 9 | :107E800010930102009300028BD090E0982F882776 10 | :107E9000802B912B880F991F9093010280930002F1 11 | :107EA00073C0863529F484E099D080E071D06DC02C 12 | :107EB000843609F043C07CD0E0910002F0910102C9 13 | :107EC00083E080935700E895C0E0D1E069D08993C2 14 | :107ED000809102028150809302028823B9F778D002 15 | :107EE00007B600FCFDCF4091000250910102A0E0D6 16 | :107EF000B1E02C9130E011968C91119790E0982F81 17 | :107F00008827822B932B1296FA010C01D0925700EE 18 | :107F1000E89511244E5F5F4FF1E0A038BF0749F7A5 19 | :107F2000E0910002F0910102E0925700E89507B657 20 | :107F300000FCFDCFF0925700E89527C08437B9F4D4 21 | :107F400037D046D0E0910002F09101023196F093D3 22 | :107F50000102E09300023197E4918E2F19D08091B5 23 | :107F60000202815080930202882361F70EC0853798 24 | :107F700039F42ED08EE10CD085E90AD08FE096CF6F 25 | :107F8000813511F488E019D023D080E101D063CF8E 26 | :107F9000982F8091C00085FFFCCF9093C600089574 27 | :107FA000A8958091C00087FFFCCF8091C6000895FE 28 | :107FB000F7DFF6DF80930202F3CFE0E6F0E098E12E 29 | :107FC00090838083089580E0F8DFEE27FF270994EF 30 | :107FD000E7DF803209F0F7DF84E1DACF1F93182F53 31 | :0C7FE000DFDF1150E9F7F4DF1F91089576 32 | :0400000300007E007B 33 | :00000001FF 34 | -------------------------------------------------------------------------------- /bootloaders/optiboot/optiboot_atmega328.hex: -------------------------------------------------------------------------------- 1 | :107E0000112484B714BE81FFF0D085E080938100F7 2 | :107E100082E08093C00088E18093C10086E0809377 3 | :107E2000C20080E18093C4008EE0C9D0259A86E02C 4 | :107E300020E33CEF91E0309385002093840096BBD3 5 | :107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4 6 | :107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7 7 | :107E6000A2D0813461F49FD0082FAFD0023811F036 8 | :107E7000013811F484E001C083E08DD089C08234E0 9 | :107E800011F484E103C0853419F485E0A6D080C0E4 10 | :107E9000853579F488D0E82EFF2485D0082F10E0AE 11 | :107EA000102F00270E291F29000F111F8ED06801E7 12 | :107EB0006FC0863521F484E090D080E0DECF843638 13 | :107EC00009F040C070D06FD0082F6DD080E0C81688 14 | :107ED00080E7D80618F4F601B7BEE895C0E0D1E017 15 | :107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8 16 | :107EF00018F0F601B7BEE89568D007B600FCFDCFD4 17 | :107F0000A601A0E0B1E02C9130E011968C91119780 18 | :107F100090E0982F8827822B932B1296FA010C0160 19 | :107F200087BEE89511244E5F5F4FF1E0A038BF0790 20 | :107F300051F7F601A7BEE89507B600FCFDCF97BE46 21 | :107F4000E89526C08437B1F42ED02DD0F82E2BD052 22 | :107F50003CD0F601EF2C8F010F5F1F4F84911BD097 23 | :107F6000EA94F801C1F70894C11CD11CFA94CF0C13 24 | :107F7000D11C0EC0853739F428D08EE10CD085E9AC 25 | :107F80000AD08FE07ACF813511F488E018D01DD067 26 | :107F900080E101D065CF982F8091C00085FFFCCF94 27 | :107FA0009093C60008958091C00087FFFCCF809118 28 | :107FB000C00084FD01C0A8958091C6000895E0E648 29 | :107FC000F0E098E1908380830895EDDF803219F02E 30 | :107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA 31 | :107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6 32 | :047FF000FF270994CA 33 | :027FFE00040479 34 | :0400000300007E007B 35 | :00000001FF 36 | -------------------------------------------------------------------------------- /bootloaders/optiboot/optiboot_atmega8.hex: -------------------------------------------------------------------------------- 1 | :101E000011248FE594E09EBF8DBF84B714BE81FF7F 2 | :101E1000E2D085E08EBD82E08BB988E18AB986E8A0 3 | :101E200080BD80E189B98EE0C2D0BD9A96E020E302 4 | :101E30003CEF54E040E23DBD2CBD58BF08B602FE69 5 | :101E4000FDCF88B3842788BBA8959150A1F7CC24F7 6 | :101E5000DD2488248394B5E0AB2EA1E19A2EF3E033 7 | :101E6000BF2E9ED0813461F49BD0082FA4D00238BD 8 | :101E700011F0013811F484E001C083E08DD089C0F5 9 | :101E8000823411F484E103C0853419F485E09BD0D9 10 | :101E900080C0853579F484D0E82EFF2481D0082FC6 11 | :101EA00010E0102F00270E291F29000F111F83D0CB 12 | :101EB00068016FC0863521F484E085D080E0DECFF4 13 | :101EC000843609F040C06CD06BD0082F69D080E018 14 | :101ED000C81688E1D80618F4F601B7BEE895C0E048 15 | :101EE000D1E05ED089930C17E1F7F0E0CF16F8E16E 16 | :101EF000DF0618F0F601B7BEE8955DD007B600FC26 17 | :101F0000FDCFA601A0E0B1E02C9130E011968C91BC 18 | :101F1000119790E0982F8827822B932B1296FA0125 19 | :101F20000C0187BEE89511244E5F5F4FF1E0A034AD 20 | :101F3000BF0751F7F601A7BEE89507B600FCFDCF35 21 | :101F400097BEE89526C08437B1F42AD029D0F82E60 22 | :101F500027D031D0F601EF2C8F010F5F1F4F8491F6 23 | :101F60001BD0EA94F801C1F70894C11CD11CFA9463 24 | :101F7000CF0CD11C0EC0853739F41DD08EE10CD0AA 25 | :101F800083E90AD087E07ACF813511F488E00FD059 26 | :101F900012D080E101D065CF5D9BFECF8CB9089552 27 | :101FA0005F9BFECF5C9901C0A8958CB1089598E124 28 | :101FB00091BD81BD0895F4DF803219F088E0F7DF2C 29 | :101FC000FFCF84E1E9CF1F93182FEADF1150E9F723 30 | :101FD000F2DF1F91089580E0EADFEE27FF270994E2 31 | :021FFE000404D9 32 | :0400000300001E00DB 33 | :00000001FF 34 | -------------------------------------------------------------------------------- /bootloaders/optiboot/pin_defs.h: -------------------------------------------------------------------------------- 1 | #if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega88) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__) 2 | /* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duemilanove */ 3 | #define LED_DDR DDRB 4 | #define LED_PORT PORTB 5 | #define LED_PIN PINB 6 | #define LED PINB5 7 | 8 | /* Ports for soft UART */ 9 | #ifdef SOFT_UART 10 | #define UART_PORT PORTD 11 | #define UART_PIN PIND 12 | #define UART_DDR DDRD 13 | #define UART_TX_BIT 1 14 | #define UART_RX_BIT 0 15 | #endif 16 | #endif 17 | 18 | #if defined(__AVR_ATmega8__) 19 | //Name conversion R.Wiersma 20 | #define UCSR0A UCSRA 21 | #define UDR0 UDR 22 | #define UDRE0 UDRE 23 | #define RXC0 RXC 24 | #define FE0 FE 25 | #define TIFR1 TIFR 26 | #define WDTCSR WDTCR 27 | #endif 28 | 29 | /* Luminet support */ 30 | #if defined(__AVR_ATtiny84__) 31 | /* Red LED is connected to pin PA4 */ 32 | #define LED_DDR DDRA 33 | #define LED_PORT PORTA 34 | #define LED_PIN PINA 35 | #define LED PINA4 36 | /* Ports for soft UART - left port only for now. TX/RX on PA2/PA3 */ 37 | #ifdef SOFT_UART 38 | #define UART_PORT PORTA 39 | #define UART_PIN PINA 40 | #define UART_DDR DDRA 41 | #define UART_TX_BIT 2 42 | #define UART_RX_BIT 3 43 | #endif 44 | #endif 45 | 46 | /* Sanguino support */ 47 | #if defined(__AVR_ATmega644P__) 48 | /* Onboard LED is connected to pin PB0 on Sanguino */ 49 | #define LED_DDR DDRB 50 | #define LED_PORT PORTB 51 | #define LED_PIN PINB 52 | #define LED PINB0 53 | 54 | /* Ports for soft UART */ 55 | #ifdef SOFT_UART 56 | #define UART_PORT PORTD 57 | #define UART_PIN PIND 58 | #define UART_DDR DDRD 59 | #define UART_TX_BIT 1 60 | #define UART_RX_BIT 0 61 | #endif 62 | #endif 63 | 64 | /* Mega support */ 65 | #if defined(__AVR_ATmega1280__) 66 | /* Onboard LED is connected to pin PB7 on Arduino Mega */ 67 | #define LED_DDR DDRB 68 | #define LED_PORT PORTB 69 | #define LED_PIN PINB 70 | #define LED PINB7 71 | 72 | /* Ports for soft UART */ 73 | #ifdef SOFT_UART 74 | #define UART_PORT PORTE 75 | #define UART_PIN PINE 76 | #define UART_DDR DDRE 77 | #define UART_TX_BIT 1 78 | #define UART_RX_BIT 0 79 | #endif 80 | #endif 81 | -------------------------------------------------------------------------------- /bootloaders/optiboot/stk500.h: -------------------------------------------------------------------------------- 1 | /* STK500 constants list, from AVRDUDE */ 2 | #define STK_OK 0x10 3 | #define STK_FAILED 0x11 // Not used 4 | #define STK_UNKNOWN 0x12 // Not used 5 | #define STK_NODEVICE 0x13 // Not used 6 | #define STK_INSYNC 0x14 // ' ' 7 | #define STK_NOSYNC 0x15 // Not used 8 | #define ADC_CHANNEL_ERROR 0x16 // Not used 9 | #define ADC_MEASURE_OK 0x17 // Not used 10 | #define PWM_CHANNEL_ERROR 0x18 // Not used 11 | #define PWM_ADJUST_OK 0x19 // Not used 12 | #define CRC_EOP 0x20 // 'SPACE' 13 | #define STK_GET_SYNC 0x30 // '0' 14 | #define STK_GET_SIGN_ON 0x31 // '1' 15 | #define STK_SET_PARAMETER 0x40 // '@' 16 | #define STK_GET_PARAMETER 0x41 // 'A' 17 | #define STK_SET_DEVICE 0x42 // 'B' 18 | #define STK_SET_DEVICE_EXT 0x45 // 'E' 19 | #define STK_ENTER_PROGMODE 0x50 // 'P' 20 | #define STK_LEAVE_PROGMODE 0x51 // 'Q' 21 | #define STK_CHIP_ERASE 0x52 // 'R' 22 | #define STK_CHECK_AUTOINC 0x53 // 'S' 23 | #define STK_LOAD_ADDRESS 0x55 // 'U' 24 | #define STK_UNIVERSAL 0x56 // 'V' 25 | #define STK_PROG_FLASH 0x60 // '`' 26 | #define STK_PROG_DATA 0x61 // 'a' 27 | #define STK_PROG_FUSE 0x62 // 'b' 28 | #define STK_PROG_LOCK 0x63 // 'c' 29 | #define STK_PROG_PAGE 0x64 // 'd' 30 | #define STK_PROG_FUSE_EXT 0x65 // 'e' 31 | #define STK_READ_FLASH 0x70 // 'p' 32 | #define STK_READ_DATA 0x71 // 'q' 33 | #define STK_READ_FUSE 0x72 // 'r' 34 | #define STK_READ_LOCK 0x73 // 's' 35 | #define STK_READ_PAGE 0x74 // 't' 36 | #define STK_READ_SIGN 0x75 // 'u' 37 | #define STK_READ_OSCCAL 0x76 // 'v' 38 | #define STK_READ_FUSE_EXT 0x77 // 'w' 39 | #define STK_READ_OSCCAL_EXT 0x78 // 'x' 40 | -------------------------------------------------------------------------------- /bootloaders/stk500v2/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/bootloaders/stk500v2/Makefile -------------------------------------------------------------------------------- /bootloaders/stk500v2/STK500V2.pnproj: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bootloaders/stk500v2/STK500V2.pnps: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bootloaders/stk500v2/stk500boot.ppg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cores/arduino/Client.h: -------------------------------------------------------------------------------- 1 | /* 2 | Client.h - Base class that provides Client 3 | Copyright (c) 2011 Adrian McEwen. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef client_h 21 | #define client_h 22 | #include "Print.h" 23 | #include "Stream.h" 24 | #include "IPAddress.h" 25 | 26 | class Client : public Stream { 27 | 28 | public: 29 | virtual int connect(IPAddress ip, uint16_t port) =0; 30 | virtual int connect(const char *host, uint16_t port) =0; 31 | virtual size_t write(uint8_t) =0; 32 | virtual size_t write(const uint8_t *buf, size_t size) =0; 33 | virtual int available() = 0; 34 | virtual int read() = 0; 35 | virtual int read(uint8_t *buf, size_t size) = 0; 36 | virtual int peek() = 0; 37 | virtual void flush() = 0; 38 | virtual void stop() = 0; 39 | virtual uint8_t connected() = 0; 40 | virtual operator bool() = 0; 41 | protected: 42 | uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; 43 | }; 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /cores/arduino/HardwareSerial0.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | HardwareSerial0.cpp - Hardware serial library for Wiring 3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Modified 23 November 2006 by David A. Mellis 20 | Modified 28 September 2010 by Mark Sproul 21 | Modified 14 August 2012 by Alarus 22 | Modified 3 December 2013 by Matthijs Kooijman 23 | */ 24 | 25 | #include "Arduino.h" 26 | #include "HardwareSerial.h" 27 | #include "HardwareSerial_private.h" 28 | 29 | // Each HardwareSerial is defined in its own file, since the linker pulls 30 | // in the entire file when any element inside is used. --gc-sections can 31 | // additionally cause unused symbols to be dropped, but ISRs have the 32 | // "used" attribute so are never dropped and they keep the 33 | // HardwareSerial instance in as well. Putting each instance in its own 34 | // file prevents the linker from pulling in any unused instances in the 35 | // first place. 36 | 37 | #if defined(HAVE_HWSERIAL0) 38 | 39 | #if defined(USART_RX_vect) 40 | ISR(USART_RX_vect) 41 | #elif defined(USART0_RX_vect) 42 | ISR(USART0_RX_vect) 43 | #elif defined(USART_RXC_vect) 44 | ISR(USART_RXC_vect) // ATmega8 45 | #else 46 | #error "Don't know what the Data Received vector is called for Serial" 47 | #endif 48 | { 49 | Serial._rx_complete_irq(); 50 | } 51 | 52 | #if defined(UART0_UDRE_vect) 53 | ISR(UART0_UDRE_vect) 54 | #elif defined(UART_UDRE_vect) 55 | ISR(UART_UDRE_vect) 56 | #elif defined(USART0_UDRE_vect) 57 | ISR(USART0_UDRE_vect) 58 | #elif defined(USART_UDRE_vect) 59 | ISR(USART_UDRE_vect) 60 | #else 61 | #error "Don't know what the Data Register Empty vector is called for Serial" 62 | #endif 63 | { 64 | Serial._tx_udr_empty_irq(); 65 | } 66 | 67 | #if defined(UBRRH) && defined(UBRRL) 68 | HardwareSerial Serial(&UBRRH, &UBRRL, &UCSRA, &UCSRB, &UCSRC, &UDR); 69 | #else 70 | HardwareSerial Serial(&UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UCSR0C, &UDR0); 71 | #endif 72 | 73 | // Function that can be weakly referenced by serialEventRun to prevent 74 | // pulling in this file if it's not otherwise used. 75 | bool Serial0_available() { 76 | return Serial.available(); 77 | } 78 | 79 | #endif // HAVE_HWSERIAL0 80 | -------------------------------------------------------------------------------- /cores/arduino/HardwareSerial1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | HardwareSerial1.cpp - Hardware serial library for Wiring 3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Modified 23 November 2006 by David A. Mellis 20 | Modified 28 September 2010 by Mark Sproul 21 | Modified 14 August 2012 by Alarus 22 | Modified 3 December 2013 by Matthijs Kooijman 23 | */ 24 | 25 | #include "Arduino.h" 26 | #include "HardwareSerial.h" 27 | #include "HardwareSerial_private.h" 28 | 29 | // Each HardwareSerial is defined in its own file, since the linker pulls 30 | // in the entire file when any element inside is used. --gc-sections can 31 | // additionally cause unused symbols to be dropped, but ISRs have the 32 | // "used" attribute so are never dropped and they keep the 33 | // HardwareSerial instance in as well. Putting each instance in its own 34 | // file prevents the linker from pulling in any unused instances in the 35 | // first place. 36 | 37 | #if defined(HAVE_HWSERIAL1) 38 | 39 | #if defined(UART1_RX_vect) 40 | ISR(UART1_RX_vect) 41 | #elif defined(USART1_RX_vect) 42 | ISR(USART1_RX_vect) 43 | #else 44 | #error "Don't know what the Data Register Empty vector is called for Serial1" 45 | #endif 46 | { 47 | Serial1._rx_complete_irq(); 48 | } 49 | 50 | #if defined(UART1_UDRE_vect) 51 | ISR(UART1_UDRE_vect) 52 | #elif defined(USART1_UDRE_vect) 53 | ISR(USART1_UDRE_vect) 54 | #else 55 | #error "Don't know what the Data Register Empty vector is called for Serial1" 56 | #endif 57 | { 58 | Serial1._tx_udr_empty_irq(); 59 | } 60 | 61 | HardwareSerial Serial1(&UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UCSR1C, &UDR1); 62 | 63 | // Function that can be weakly referenced by serialEventRun to prevent 64 | // pulling in this file if it's not otherwise used. 65 | bool Serial1_available() { 66 | return Serial1.available(); 67 | } 68 | 69 | #endif // HAVE_HWSERIAL1 70 | -------------------------------------------------------------------------------- /cores/arduino/HardwareSerial2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | HardwareSerial2.cpp - Hardware serial library for Wiring 3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Modified 23 November 2006 by David A. Mellis 20 | Modified 28 September 2010 by Mark Sproul 21 | Modified 14 August 2012 by Alarus 22 | Modified 3 December 2013 by Matthijs Kooijman 23 | */ 24 | 25 | #include "Arduino.h" 26 | #include "HardwareSerial.h" 27 | #include "HardwareSerial_private.h" 28 | 29 | // Each HardwareSerial is defined in its own file, since the linker pulls 30 | // in the entire file when any element inside is used. --gc-sections can 31 | // additionally cause unused symbols to be dropped, but ISRs have the 32 | // "used" attribute so are never dropped and they keep the 33 | // HardwareSerial instance in as well. Putting each instance in its own 34 | // file prevents the linker from pulling in any unused instances in the 35 | // first place. 36 | 37 | #if defined(HAVE_HWSERIAL2) 38 | 39 | ISR(USART2_RX_vect) 40 | { 41 | Serial2._rx_complete_irq(); 42 | } 43 | 44 | ISR(USART2_UDRE_vect) 45 | { 46 | Serial2._tx_udr_empty_irq(); 47 | } 48 | 49 | HardwareSerial Serial2(&UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UCSR2C, &UDR2); 50 | 51 | // Function that can be weakly referenced by serialEventRun to prevent 52 | // pulling in this file if it's not otherwise used. 53 | bool Serial2_available() { 54 | return Serial2.available(); 55 | } 56 | 57 | #endif // HAVE_HWSERIAL2 58 | -------------------------------------------------------------------------------- /cores/arduino/HardwareSerial3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | HardwareSerial3.cpp - Hardware serial library for Wiring 3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Modified 23 November 2006 by David A. Mellis 20 | Modified 28 September 2010 by Mark Sproul 21 | Modified 14 August 2012 by Alarus 22 | Modified 3 December 2013 by Matthijs Kooijman 23 | */ 24 | 25 | #include "Arduino.h" 26 | #include "HardwareSerial.h" 27 | #include "HardwareSerial_private.h" 28 | 29 | // Each HardwareSerial is defined in its own file, since the linker pulls 30 | // in the entire file when any element inside is used. --gc-sections can 31 | // additionally cause unused symbols to be dropped, but ISRs have the 32 | // "used" attribute so are never dropped and they keep the 33 | // HardwareSerial instance in as well. Putting each instance in its own 34 | // file prevents the linker from pulling in any unused instances in the 35 | // first place. 36 | 37 | #if defined(HAVE_HWSERIAL3) 38 | 39 | ISR(USART3_RX_vect) 40 | { 41 | Serial3._rx_complete_irq(); 42 | } 43 | 44 | ISR(USART3_UDRE_vect) 45 | { 46 | Serial3._tx_udr_empty_irq(); 47 | } 48 | 49 | HardwareSerial Serial3(&UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UCSR3C, &UDR3); 50 | 51 | // Function that can be weakly referenced by serialEventRun to prevent 52 | // pulling in this file if it's not otherwise used. 53 | bool Serial3_available() { 54 | return Serial3.available(); 55 | } 56 | 57 | #endif // HAVE_HWSERIAL3 58 | -------------------------------------------------------------------------------- /cores/arduino/PluggableUSB.h: -------------------------------------------------------------------------------- 1 | /* 2 | PluggableUSB.h 3 | Copyright (c) 2015 Arduino LLC 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef PUSB_h 21 | #define PUSB_h 22 | 23 | #include "USBAPI.h" 24 | #include 25 | 26 | #if defined(USBCON) 27 | 28 | class PluggableUSBModule { 29 | public: 30 | PluggableUSBModule(uint8_t numEps, uint8_t numIfs, uint8_t *epType) : 31 | numEndpoints(numEps), numInterfaces(numIfs), endpointType(epType) 32 | { } 33 | 34 | protected: 35 | virtual bool setup(USBSetup& setup) = 0; 36 | virtual int getInterface(uint8_t* interfaceCount) = 0; 37 | virtual int getDescriptor(USBSetup& setup) = 0; 38 | virtual uint8_t getShortName(char *name) { name[0] = 'A'+pluggedInterface; return 1; } 39 | 40 | uint8_t pluggedInterface; 41 | uint8_t pluggedEndpoint; 42 | 43 | const uint8_t numEndpoints; 44 | const uint8_t numInterfaces; 45 | const uint8_t *endpointType; 46 | 47 | PluggableUSBModule *next = NULL; 48 | 49 | friend class PluggableUSB_; 50 | }; 51 | 52 | class PluggableUSB_ { 53 | public: 54 | PluggableUSB_(); 55 | bool plug(PluggableUSBModule *node); 56 | int getInterface(uint8_t* interfaceCount); 57 | int getDescriptor(USBSetup& setup); 58 | bool setup(USBSetup& setup); 59 | void getShortName(char *iSerialNum); 60 | 61 | private: 62 | uint8_t lastIf; 63 | uint8_t lastEp; 64 | PluggableUSBModule* rootNode; 65 | }; 66 | 67 | // Replacement for global singleton. 68 | // This function prevents static-initialization-order-fiasco 69 | // https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use 70 | PluggableUSB_& PluggableUSB(); 71 | 72 | #endif 73 | 74 | #endif 75 | -------------------------------------------------------------------------------- /cores/arduino/Printable.h: -------------------------------------------------------------------------------- 1 | /* 2 | Printable.h - Interface class that allows printing of complex types 3 | Copyright (c) 2011 Adrian McEwen. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef Printable_h 21 | #define Printable_h 22 | 23 | #include 24 | 25 | class Print; 26 | 27 | /** The Printable class provides a way for new classes to allow themselves to be printed. 28 | By deriving from Printable and implementing the printTo method, it will then be possible 29 | for users to print out instances of this class by passing them into the usual 30 | Print::print and Print::println methods. 31 | */ 32 | 33 | class Printable 34 | { 35 | public: 36 | virtual size_t printTo(Print& p) const = 0; 37 | }; 38 | 39 | #endif 40 | 41 | -------------------------------------------------------------------------------- /cores/arduino/Server.h: -------------------------------------------------------------------------------- 1 | /* 2 | Server.h - Base class that provides Server 3 | Copyright (c) 2011 Adrian McEwen. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef server_h 21 | #define server_h 22 | 23 | #include "Print.h" 24 | 25 | class Server : public Print { 26 | public: 27 | virtual void begin() =0; 28 | }; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /cores/arduino/USBDesc.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2011, Peter Barrett 3 | Copyright (c) 2015, Arduino LLC 4 | 5 | Permission to use, copy, modify, and/or distribute this software for 6 | any purpose with or without fee is hereby granted, provided that the 7 | above copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 | WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 | WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR 12 | BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES 13 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 14 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 15 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 16 | SOFTWARE. 17 | */ 18 | 19 | #define PLUGGABLE_USB_ENABLED 20 | 21 | #if defined(EPRST6) 22 | #define USB_ENDPOINTS 7 // AtMegaxxU4 23 | #else 24 | #define USB_ENDPOINTS 5 // AtMegaxxU2 25 | #endif 26 | 27 | #define ISERIAL_MAX_LEN 20 28 | 29 | // Uncomment the following line or pass -DCDC_DISABLED to the compiler 30 | // to disable CDC (serial console via USB). 31 | // That's useful if you want to create an USB device (like an USB Boot Keyboard) 32 | // that works even with problematic devices (like KVM switches). 33 | // Keep in mind that with this change you'll have to use the Arduino's 34 | // reset button to be able to flash it. 35 | //#define CDC_DISABLED 36 | 37 | #ifndef CDC_DISABLED 38 | #define CDC_ENABLED 39 | #endif 40 | 41 | #ifdef CDC_ENABLED 42 | #define CDC_INTERFACE_COUNT 2 43 | #define CDC_ENPOINT_COUNT 3 44 | #else // CDC_DISABLED 45 | #define CDC_INTERFACE_COUNT 0 46 | #define CDC_ENPOINT_COUNT 0 47 | #endif 48 | 49 | #define CDC_ACM_INTERFACE 0 // CDC ACM 50 | #define CDC_DATA_INTERFACE 1 // CDC Data 51 | #define CDC_FIRST_ENDPOINT 1 52 | #define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First 53 | #define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1) 54 | #define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2) 55 | 56 | #define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT) 57 | 58 | #define CDC_RX CDC_ENDPOINT_OUT 59 | #define CDC_TX CDC_ENDPOINT_IN 60 | 61 | #define IMANUFACTURER 1 62 | #define IPRODUCT 2 63 | #define ISERIAL 3 -------------------------------------------------------------------------------- /cores/arduino/WMath.cpp: -------------------------------------------------------------------------------- 1 | /* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ 2 | 3 | /* 4 | Part of the Wiring project - http://wiring.org.co 5 | Copyright (c) 2004-06 Hernando Barragan 6 | Modified 13 August 2006, David A. Mellis for Arduino - http://www.arduino.cc/ 7 | 8 | This library is free software; you can redistribute it and/or 9 | modify it under the terms of the GNU Lesser General Public 10 | License as published by the Free Software Foundation; either 11 | version 2.1 of the License, or (at your option) any later version. 12 | 13 | This library is distributed in the hope that it will be useful, 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | Lesser General Public License for more details. 17 | 18 | You should have received a copy of the GNU Lesser General 19 | Public License along with this library; if not, write to the 20 | Free Software Foundation, Inc., 59 Temple Place, Suite 330, 21 | Boston, MA 02111-1307 USA 22 | */ 23 | 24 | extern "C" { 25 | #include "stdlib.h" 26 | } 27 | 28 | void randomSeed(unsigned long seed) 29 | { 30 | if (seed != 0) { 31 | srandom(seed); 32 | } 33 | } 34 | 35 | long random(long howbig) 36 | { 37 | if (howbig == 0) { 38 | return 0; 39 | } 40 | return random() % howbig; 41 | } 42 | 43 | long random(long howsmall, long howbig) 44 | { 45 | if (howsmall >= howbig) { 46 | return howsmall; 47 | } 48 | long diff = howbig - howsmall; 49 | return random(diff) + howsmall; 50 | } 51 | 52 | long map(long x, long in_min, long in_max, long out_min, long out_max) 53 | { 54 | return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; 55 | } 56 | 57 | unsigned int makeWord(unsigned int w) { return w; } 58 | unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } 59 | -------------------------------------------------------------------------------- /cores/arduino/abi.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2014 Arduino. All right reserved. 3 | 4 | This library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | This library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | See the GNU Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with this library; if not, write to the Free Software 16 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #include 20 | 21 | extern "C" void __cxa_pure_virtual(void) __attribute__ ((__noreturn__)); 22 | extern "C" void __cxa_deleted_virtual(void) __attribute__ ((__noreturn__)); 23 | 24 | namespace std { 25 | [[gnu::weak, noreturn]] void terminate() { 26 | abort(); 27 | } 28 | } 29 | 30 | void __cxa_pure_virtual(void) { 31 | std::terminate(); 32 | } 33 | 34 | void __cxa_deleted_virtual(void) { 35 | std::terminate(); 36 | } 37 | -------------------------------------------------------------------------------- /cores/arduino/hooks.c: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012 Arduino. All right reserved. 3 | 4 | This library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | This library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | See the GNU Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with this library; if not, write to the Free Software 16 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | /** 20 | * Empty yield() hook. 21 | * 22 | * This function is intended to be used by library writers to build 23 | * libraries or sketches that supports cooperative threads. 24 | * 25 | * Its defined as a weak symbol and it can be redefined to implement a 26 | * real cooperative scheduler. 27 | */ 28 | static void __empty() { 29 | // Empty 30 | } 31 | void yield(void) __attribute__ ((weak, alias("__empty"))); 32 | -------------------------------------------------------------------------------- /cores/arduino/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | main.cpp - Main loop for Arduino sketches 3 | Copyright (c) 2005-2013 Arduino Team. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #include 21 | 22 | // Declared weak in Arduino.h to allow user redefinitions. 23 | int atexit(void (* /*func*/ )()) { return 0; } 24 | 25 | // Weak empty variant initialization function. 26 | // May be redefined by variant files. 27 | void initVariant() __attribute__((weak)); 28 | void initVariant() { } 29 | 30 | void setupUSB() __attribute__((weak)); 31 | void setupUSB() { } 32 | 33 | int main(void) 34 | { 35 | init(); 36 | 37 | initVariant(); 38 | 39 | #if defined(USBCON) 40 | USBDevice.attach(); 41 | #endif 42 | 43 | setup(); 44 | 45 | for (;;) { 46 | loop(); 47 | if (serialEventRun) serialEventRun(); 48 | } 49 | 50 | return 0; 51 | } 52 | 53 | -------------------------------------------------------------------------------- /cores/arduino/new: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2014 Arduino. All right reserved. 3 | 4 | This library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | This library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | See the GNU Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with this library; if not, write to the Free Software 16 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | 19 | #ifndef NEW_H 20 | #define NEW_H 21 | 22 | #include 23 | 24 | namespace std { 25 | struct nothrow_t {}; 26 | extern const nothrow_t nothrow; 27 | 28 | // These are not actually implemented, to prevent overhead and 29 | // complexity. They are still declared to allow implementing 30 | // them in user code if needed. 31 | typedef void (*new_handler)(); 32 | new_handler set_new_handler(new_handler new_p) noexcept; 33 | new_handler get_new_handler() noexcept; 34 | 35 | // This is normally declared in various headers that we do not have 36 | // available, so just define it here. We could also use ::size_t 37 | // below, but then anyone including can no longer assume 38 | // std::size_t is available. 39 | using size_t = ::size_t; 40 | } // namespace std 41 | 42 | [[gnu::weak]] void * operator new(std::size_t size); 43 | [[gnu::weak]] void * operator new[](std::size_t size); 44 | 45 | [[gnu::weak]] void * operator new(std::size_t size, const std::nothrow_t tag) noexcept; 46 | [[gnu::weak]] void * operator new[](std::size_t size, const std::nothrow_t& tag) noexcept; 47 | 48 | void * operator new(std::size_t size, void *place) noexcept; 49 | void * operator new[](std::size_t size, void *place) noexcept; 50 | 51 | [[gnu::weak]] void operator delete(void * ptr) noexcept; 52 | [[gnu::weak]] void operator delete[](void * ptr) noexcept; 53 | 54 | #if __cplusplus >= 201402L 55 | [[gnu::weak]] void operator delete(void* ptr, std::size_t size) noexcept; 56 | [[gnu::weak]] void operator delete[](void * ptr, std::size_t size) noexcept; 57 | #endif // __cplusplus >= 201402L 58 | 59 | [[gnu::weak]] void operator delete(void* ptr, const std::nothrow_t& tag) noexcept; 60 | [[gnu::weak]] void operator delete[](void* ptr, const std::nothrow_t& tag) noexcept; 61 | 62 | void operator delete(void* ptr, void* place) noexcept; 63 | void operator delete[](void* ptr, void* place) noexcept; 64 | 65 | #endif 66 | 67 | -------------------------------------------------------------------------------- /cores/arduino/new.h: -------------------------------------------------------------------------------- 1 | // This file originally used a non-standard name for this Arduino core 2 | // only, so still expose the old new.h name for compatibility. 3 | #include "new" 4 | -------------------------------------------------------------------------------- /cores/arduino/wiring_private.h: -------------------------------------------------------------------------------- 1 | /* 2 | wiring_private.h - Internal header file. 3 | Part of Arduino - http://www.arduino.cc/ 4 | 5 | Copyright (c) 2005-2006 David A. Mellis 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General 18 | Public License along with this library; if not, write to the 19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330, 20 | Boston, MA 02111-1307 USA 21 | */ 22 | 23 | #ifndef WiringPrivate_h 24 | #define WiringPrivate_h 25 | 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | #include "Arduino.h" 32 | 33 | #ifdef __cplusplus 34 | extern "C"{ 35 | #endif 36 | 37 | #ifndef cbi 38 | #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) 39 | #endif 40 | #ifndef sbi 41 | #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) 42 | #endif 43 | 44 | uint32_t countPulseASM(volatile uint8_t *port, uint8_t bit, uint8_t stateMask, unsigned long maxloops); 45 | 46 | #define EXTERNAL_INT_0 0 47 | #define EXTERNAL_INT_1 1 48 | #define EXTERNAL_INT_2 2 49 | #define EXTERNAL_INT_3 3 50 | #define EXTERNAL_INT_4 4 51 | #define EXTERNAL_INT_5 5 52 | #define EXTERNAL_INT_6 6 53 | #define EXTERNAL_INT_7 7 54 | 55 | #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega128RFA1__) || defined(__AVR_ATmega256RFR2__) || \ 56 | defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__) 57 | #define EXTERNAL_NUM_INTERRUPTS 8 58 | #elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) 59 | #define EXTERNAL_NUM_INTERRUPTS 3 60 | #elif defined(__AVR_ATmega32U4__) 61 | #define EXTERNAL_NUM_INTERRUPTS 5 62 | #else 63 | #define EXTERNAL_NUM_INTERRUPTS 2 64 | #endif 65 | 66 | typedef void (*voidFuncPtr)(void); 67 | 68 | #ifdef __cplusplus 69 | } // extern "C" 70 | #endif 71 | 72 | #endif 73 | -------------------------------------------------------------------------------- /cores/arduino/wiring_shift.c: -------------------------------------------------------------------------------- 1 | /* 2 | wiring_shift.c - shiftOut() function 3 | Part of Arduino - http://www.arduino.cc/ 4 | 5 | Copyright (c) 2005-2006 David A. Mellis 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General 18 | Public License along with this library; if not, write to the 19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330, 20 | Boston, MA 02111-1307 USA 21 | */ 22 | 23 | #include "wiring_private.h" 24 | 25 | uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { 26 | uint8_t value = 0; 27 | uint8_t i; 28 | 29 | for (i = 0; i < 8; ++i) { 30 | digitalWrite(clockPin, HIGH); 31 | if (bitOrder == LSBFIRST) 32 | value |= digitalRead(dataPin) << i; 33 | else 34 | value |= digitalRead(dataPin) << (7 - i); 35 | digitalWrite(clockPin, LOW); 36 | } 37 | return value; 38 | } 39 | 40 | void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) 41 | { 42 | uint8_t i; 43 | 44 | for (i = 0; i < 8; i++) { 45 | if (bitOrder == LSBFIRST) { 46 | digitalWrite(dataPin, val & 1); 47 | val >>= 1; 48 | } else { 49 | digitalWrite(dataPin, (val & 128) != 0); 50 | val <<= 1; 51 | } 52 | 53 | digitalWrite(clockPin, HIGH); 54 | digitalWrite(clockPin, LOW); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /drivers/AdafruitCircuitPlayground.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/AdafruitCircuitPlayground.cat -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/Static/amd64/ftd2xx.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/Static/amd64/ftd2xx.lib -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/Static/i386/ftd2xx.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/Static/i386/ftd2xx.lib -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/amd64/ftbusui.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftbusui.dll -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/amd64/ftcserco.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftcserco.dll -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/amd64/ftd2xx.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftd2xx.lib -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/amd64/ftd2xx64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftd2xx64.dll -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/amd64/ftdibus.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftdibus.sys -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/amd64/ftlang.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftlang.dll -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/amd64/ftser2k.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftser2k.sys -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/amd64/ftserui2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftserui2.dll -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/ftd2xx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftd2xx.h -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/ftdibus.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftdibus.cat -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/ftdibus.inf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftdibus.inf -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/ftdiport.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftdiport.cat -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/ftdiport.inf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftdiport.inf -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/i386/ftbusui.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftbusui.dll -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/i386/ftcserco.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftcserco.dll -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/i386/ftd2xx.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftd2xx.dll -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/i386/ftd2xx.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftd2xx.lib -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/i386/ftdibus.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftdibus.sys -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/i386/ftlang.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftlang.dll -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/i386/ftser2k.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftser2k.sys -------------------------------------------------------------------------------- /drivers/FTDI USB Drivers/i386/ftserui2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftserui2.dll -------------------------------------------------------------------------------- /drivers/arduino-org.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/arduino-org.cat -------------------------------------------------------------------------------- /drivers/arduino.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/arduino.cat -------------------------------------------------------------------------------- /drivers/dpinst-amd64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/dpinst-amd64.exe -------------------------------------------------------------------------------- /drivers/dpinst-x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/dpinst-x86.exe -------------------------------------------------------------------------------- /drivers/gemma/amd64/libusb0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/amd64/libusb0.dll -------------------------------------------------------------------------------- /drivers/gemma/amd64/libusb0.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/amd64/libusb0.sys -------------------------------------------------------------------------------- /drivers/gemma/arduino_gemma.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/arduino_gemma.cat -------------------------------------------------------------------------------- /drivers/gemma/arduino_gemma.inf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/arduino_gemma.inf -------------------------------------------------------------------------------- /drivers/gemma/ia64/libusb0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/ia64/libusb0.dll -------------------------------------------------------------------------------- /drivers/gemma/ia64/libusb0.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/ia64/libusb0.sys -------------------------------------------------------------------------------- /drivers/gemma/x86/libusb0.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/x86/libusb0.sys -------------------------------------------------------------------------------- /drivers/gemma/x86/libusb0_x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/x86/libusb0_x86.dll -------------------------------------------------------------------------------- /drivers/genuino.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/genuino.cat -------------------------------------------------------------------------------- /drivers/linino-boards_amd64.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/linino-boards_amd64.cat -------------------------------------------------------------------------------- /drivers/linino-boards_x86.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/linino-boards_x86.cat -------------------------------------------------------------------------------- /extras/pack.hourlybuild.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash -ex 2 | 3 | # pack.*.bash - Bash script to help packaging avr core releases. 4 | # Copyright (c) 2015 Arduino LLC. All right reserved. 5 | # 6 | # This library is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU Lesser General Public 8 | # License as published by the Free Software Foundation; either 9 | # version 2.1 of the License, or (at your option) any later version. 10 | # 11 | # This library is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | # Lesser General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU Lesser General Public 17 | # License along with this library; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | BUILD_NUMBER=$1 21 | CURR_TIME=`date "+%Y-%m-%d %H:%M"` 22 | CURR_TIME_SED=`date "+%Y\\-%m\\-%d %H:%M"` 23 | VERSION=9.9.9-Hourly 24 | 25 | PWD=`pwd` 26 | FOLDERNAME=`basename $PWD` 27 | THIS_SCRIPT_NAME=`basename $0` 28 | FILENAME=package_avr-hourly-b${BUILD_NUMBER}.tar.bz2 29 | 30 | rm -f $FILENAME 31 | 32 | # Change name in platform.txt 33 | sed -i "s/name=.*/name=SAMD Hourly Build ${BUILD_NUMBER} (${CURR_TIME})/" platform.txt 34 | 35 | cd .. 36 | tar --transform "s|$FOLDERNAME|avr-hourly_b${BUILD_NUMBER}|g" --exclude=extras/** --exclude=.git* --exclude=.idea -cjf $FILENAME $FOLDERNAME 37 | cd - 38 | 39 | mv ../$FILENAME . 40 | 41 | CHKSUM=`sha256sum $FILENAME | awk '{ print $1 }'` 42 | SIZE=`wc -c $FILENAME | awk '{ print $1 }'` 43 | 44 | cat extras/package_index.json.Hourly.template | 45 | sed "s/%%BUILD_NUMBER%%/${BUILD_NUMBER}/" | 46 | sed "s/%%CURR_TIME%%/${CURR_TIME_SED}/" | 47 | sed "s/%%VERSION%%/${VERSION}/" | 48 | sed "s/%%FILENAME%%/${FILENAME}/" | 49 | sed "s/%%CHECKSUM%%/${CHKSUM}/" | 50 | sed "s/%%SIZE%%/${SIZE}/" > package_avr-hourly-build_index.json 51 | 52 | -------------------------------------------------------------------------------- /extras/pack.pullrequest.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash -ex 2 | 3 | # pack.*.bash - Bash script to help packaging avr core releases. 4 | # Copyright (c) 2015 Arduino LLC. All right reserved. 5 | # 6 | # This library is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU Lesser General Public 8 | # License as published by the Free Software Foundation; either 9 | # version 2.1 of the License, or (at your option) any later version. 10 | # 11 | # This library is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | # Lesser General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU Lesser General Public 17 | # License along with this library; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | PR_NUMBER=$1 21 | BUILD_NUMBER=$2 22 | VERSION=`grep version= platform.txt | sed 's/version=//g'` 23 | 24 | PWD=`pwd` 25 | FOLDERNAME=`basename $PWD` 26 | THIS_SCRIPT_NAME=`basename $0` 27 | FILENAME=package_avr-b${BUILD_NUMBER}.tar.bz2 28 | 29 | rm -f $FILENAME 30 | 31 | # Change name in platform.txt 32 | sed -i "s/name=.*/name=SAMD Pull request #${PR_NUMBER} (Build ${BUILD_NUMBER})/" platform.txt 33 | 34 | cd .. 35 | tar --transform "s|$FOLDERNAME|avr-PR${PR_NUMBER}_b${BUILD_NUMBER}|g" --exclude=extras/** --exclude=.git* --exclude=.idea -cjf $FILENAME $FOLDERNAME 36 | cd - 37 | 38 | mv ../$FILENAME . 39 | 40 | CHKSUM=`sha256sum $FILENAME | awk '{ print $1 }'` 41 | SIZE=`wc -c $FILENAME | awk '{ print $1 }'` 42 | 43 | cat extras/package_index.json.PR.template | 44 | sed s/%%PR_NUMBER%%/${PR_NUMBER}/ | 45 | sed s/%%BUILD_NUMBER%%/${BUILD_NUMBER}/ | 46 | sed s/%%VERSION%%/${VERSION}-build-${BUILD_NUMBER}/ | 47 | sed s/%%FILENAME%%/${FILENAME}/ | 48 | sed s/%%CHECKSUM%%/${CHKSUM}/ | 49 | sed s/%%SIZE%%/${SIZE}/ > package_avr-b${BUILD_NUMBER}_index.json 50 | 51 | -------------------------------------------------------------------------------- /extras/pack.release.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash -ex 2 | 3 | # pack.*.bash - Bash script to help packaging avr core releases. 4 | # Copyright (c) 2015 Arduino LLC. All right reserved. 5 | # 6 | # This library is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU Lesser General Public 8 | # License as published by the Free Software Foundation; either 9 | # version 2.1 of the License, or (at your option) any later version. 10 | # 11 | # This library is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | # Lesser General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU Lesser General Public 17 | # License along with this library; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | VERSION=`grep version= platform.txt | sed 's/version=//g'` 21 | 22 | PWD=`pwd` 23 | FOLDERNAME=`basename $PWD` 24 | THIS_SCRIPT_NAME=`basename $0` 25 | 26 | rm -f avr-$VERSION.tar.bz2 27 | 28 | cd .. 29 | tar --transform "s|$FOLDERNAME|$FOLDERNAME-$VERSION|g" --exclude=extras/** --exclude=.git* --exclude=.idea -cjf avr-$VERSION.tar.bz2 $FOLDERNAME 30 | cd - 31 | 32 | mv ../avr-$VERSION.tar.bz2 . 33 | 34 | -------------------------------------------------------------------------------- /extras/package_index.json.Hourly.template: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | { 4 | "name": "arduino-beta", 5 | "maintainer": "Arduino Betatesting", 6 | "websiteURL": "http://www.arduino.cc/", 7 | "email": "packages@arduino.cc", 8 | "help": { 9 | "online": "http://www.arduino.cc/en/Reference/HomePage" 10 | }, 11 | "platforms": [ 12 | { 13 | "name": "Arduino AVR core - Hourly build", 14 | "architecture": "avr", 15 | "version": "%%VERSION%%", 16 | "category": "Arduino", 17 | "url": "http://downloads.arduino.cc/Hourly/avr/%%FILENAME%%", 18 | "archiveFileName": "%%FILENAME%%", 19 | "checksum": "SHA-256:%%CHECKSUM%%", 20 | "size": "%%SIZE%%", 21 | "boards": [ 22 | {"name": "Arduino Yún"}, 23 | {"name": "Arduino Uno"}, 24 | {"name": "Arduino Uno WiFi"}, 25 | {"name": "Arduino Diecimila"}, 26 | {"name": "Arduino Nano"}, 27 | {"name": "Arduino Mega"}, 28 | {"name": "Arduino MegaADK"}, 29 | {"name": "Arduino Leonardo"}, 30 | {"name": "Arduino Leonardo Ethernet"}, 31 | {"name": "Arduino Micro"}, 32 | {"name": "Arduino Esplora"}, 33 | {"name": "Arduino Mini"}, 34 | {"name": "Arduino Ethernet"}, 35 | {"name": "Arduino Fio"}, 36 | {"name": "Arduino BT"}, 37 | {"name": "Arduino LilyPadUSB"}, 38 | {"name": "Arduino Lilypad"}, 39 | {"name": "Arduino Pro"}, 40 | {"name": "Arduino ATMegaNG"}, 41 | {"name": "Arduino Robot Control"}, 42 | {"name": "Arduino Robot Motor"}, 43 | {"name": "Arduino Gemma"}, 44 | {"name": "Adafruit Circuit Playground"}, 45 | {"name": "Arduino Yún Mini"}, 46 | {"name": "Arduino Industrial 101"}, 47 | {"name": "Linino One"} 48 | ], 49 | "toolsDependencies": [ 50 | { 51 | "packager": "arduino", 52 | "name": "avr-gcc", 53 | "version": "4.9.2-atmel3.5.4-arduino2" 54 | }, 55 | { 56 | "packager": "arduino", 57 | "name": "avrdude", 58 | "version": "6.3.0-arduino9" 59 | }, 60 | { 61 | "packager": "arduino", 62 | "name": "arduinoOTA", 63 | "version": "1.1.1" 64 | } 65 | ] 66 | } 67 | ], 68 | "tools": [ 69 | ] 70 | } 71 | ] 72 | } 73 | -------------------------------------------------------------------------------- /extras/package_index.json.PR.template: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | { 4 | "name": "arduino-beta", 5 | "maintainer": "Arduino Betatesting", 6 | "websiteURL": "http://www.arduino.cc/", 7 | "email": "packages@arduino.cc", 8 | "help": { 9 | "online": "http://www.arduino.cc/en/Reference/HomePage" 10 | }, 11 | "platforms": [ 12 | { 13 | "name": "Arduino AVR core - Pull request #%%PR_NUMBER%% (build %%BUILD_NUMBER%%)", 14 | "architecture": "avr", 15 | "version": "%%VERSION%%", 16 | "category": "Arduino", 17 | "url": "http://downloads.arduino.cc/PR/a/%%FILENAME%%", 18 | "archiveFileName": "%%FILENAME%%", 19 | "checksum": "SHA-256:%%CHECKSUM%%", 20 | "size": "%%SIZE%%", 21 | "boards": [ 22 | {"name": "Arduino Yún"}, 23 | {"name": "Arduino Uno"}, 24 | {"name": "Arduino Uno WiFi"}, 25 | {"name": "Arduino Diecimila"}, 26 | {"name": "Arduino Nano"}, 27 | {"name": "Arduino Mega"}, 28 | {"name": "Arduino MegaADK"}, 29 | {"name": "Arduino Leonardo"}, 30 | {"name": "Arduino Leonardo Ethernet"}, 31 | {"name": "Arduino Micro"}, 32 | {"name": "Arduino Esplora"}, 33 | {"name": "Arduino Mini"}, 34 | {"name": "Arduino Ethernet"}, 35 | {"name": "Arduino Fio"}, 36 | {"name": "Arduino BT"}, 37 | {"name": "Arduino LilyPadUSB"}, 38 | {"name": "Arduino Lilypad"}, 39 | {"name": "Arduino Pro"}, 40 | {"name": "Arduino ATMegaNG"}, 41 | {"name": "Arduino Robot Control"}, 42 | {"name": "Arduino Robot Motor"}, 43 | {"name": "Arduino Gemma"}, 44 | {"name": "Adafruit Circuit Playground"}, 45 | {"name": "Arduino Yún Mini"}, 46 | {"name": "Arduino Industrial 101"}, 47 | {"name": "Linino One"} 48 | ], 49 | "toolsDependencies": [ 50 | { 51 | "packager": "arduino", 52 | "name": "avr-gcc", 53 | "version": "4.9.2-atmel3.5.4-arduino2" 54 | }, 55 | { 56 | "packager": "arduino", 57 | "name": "avrdude", 58 | "version": "6.3.0-arduino9" 59 | }, 60 | { 61 | "packager": "arduino", 62 | "name": "arduinoOTA", 63 | "version": "1.1.1" 64 | } 65 | ] 66 | } 67 | ], 68 | "tools": [ 69 | ] 70 | } 71 | ] 72 | } 73 | -------------------------------------------------------------------------------- /firmwares/arduinoISP/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | You can download the ArduinoISP firmware source files from: 3 | 4 | https://github.com/arduino/ArduinoISP 5 | 6 | -------------------------------------------------------------------------------- /firmwares/atmegaxxu2/README.txt: -------------------------------------------------------------------------------- 1 | Arduino Uno and Mega 2560 Firmwares for the ATmega8U2 2 | 3 | This directory contains the firmwares used on the ATmega8U2 on the Arduino 4 | Uno and Arduino Mega 2560. The arduino-usbdfu directory contains the DFU 5 | bootloader on the 8U2; the arduino-usbserial directory contains the actual 6 | usb to serial firmware. Both should be compiled against LUFA 100807. The 7 | two .hex files in this directory combine the dfu and serial firmwares into 8 | a single file to burn onto the 8U2. 9 | 10 | To burn (Uno): 11 | avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:UNO-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m 12 | 13 | To burn (Mega 2560): 14 | avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:MEGA-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m 15 | 16 | 17 | Note on USB Vendor IDs (VID) and Product IDs (PID): The arduino-usbdfu 18 | project uses Atmel's VID and MCU-specific PIDs to maintain compatibility 19 | with their FLIP software. The source code to the arduino-usbserial 20 | project includes Atmel's VID and a PID donated by them to LUFA. This 21 | PID is used in LUFA's USBtoSerial project, which forms the basis for 22 | arduino-usbserial. According to the LUFA documentation, this VID/PID 23 | combination is: 24 | 25 | "For use in testing of LUFA powered devices during development only, 26 | by non-commercial entities. All devices must accept collisions on this 27 | VID/PID range (from other in-development LUFA devices) to be resolved 28 | by using a unique release number in the Device Descriptor. No devices 29 | using this VID/PID combination may be released to the general public." 30 | 31 | The production version of the arduino-usbserial firmware uses the 32 | Arduino VID. This is only for use with official Arduino hardware and 33 | should not be used on other products. -------------------------------------------------------------------------------- /firmwares/atmegaxxu2/arduino-usbdfu/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/atmegaxxu2/arduino-usbdfu/makefile -------------------------------------------------------------------------------- /firmwares/atmegaxxu2/arduino-usbdfu/readme.txt: -------------------------------------------------------------------------------- 1 | To setup the project and program an ATMEG8U2 with the Arduino USB DFU bootloader: 2 | 1. unpack the source into LUFA's Bootloader directory 3 | 2. set ARDUINO_MODEL_PID in the makefile as appropriate 4 | 3. do "make clean; make; make program" 5 | 6 | Check that the board enumerates as either "Arduino Uno DFU" or "Arduino Mega 2560 DFU". Test by uploading the Arduino-usbserial application firmware (see instructions in Arduino-usbserial directory) 7 | 8 | -------------------------------------------------------------------------------- /firmwares/atmegaxxu2/arduino-usbserial/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/atmegaxxu2/arduino-usbserial/makefile -------------------------------------------------------------------------------- /firmwares/atmegaxxu2/arduino-usbserial/readme.txt: -------------------------------------------------------------------------------- 1 | To setup the project and upload the Arduino usbserial application firmware to an ATMEGA8U2 using the Arduino USB DFU bootloader: 2 | 1. unpack the source into LUFA's Projects directory 3 | 2. set ARDUINO_MODEL_PID in the makefile as appropriate 4 | 3. do "make clean; make" 5 | 4. put the 8U2 into USB DFU mode: 6 | 4.a. assert and hold the 8U2's RESET line 7 | 4.b. assert and hold the 8U2's HWB line 8 | 4.c. release the 8U2's RESET line 9 | 4.d. release the 8U2's HWB line 10 | 5. confirm that the board enumerates as either "Arduino Uno DFU" or "Arduino Mega 2560 DFU" 11 | 6. do "make dfu" (OS X or Linux - dfu-programmer must be installed first) or "make flip" (Windows - Flip must be installed first) 12 | 13 | Check that the board enumerates as either "Arduino Uno" or "Arduino Mega 2560". Test by uploading a new Arduino sketch from the Arduino IDE. 14 | -------------------------------------------------------------------------------- /firmwares/wifishield/binary/wifiHD.elf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/binary/wifiHD.elf -------------------------------------------------------------------------------- /firmwares/wifishield/binary/wifiHD_2_1.elf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/binary/wifiHD_2_1.elf -------------------------------------------------------------------------------- /firmwares/wifishield/binary/wifi_dnld.elf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/binary/wifi_dnld.elf -------------------------------------------------------------------------------- /firmwares/wifishield/binary/wifi_dnld_2_1.elf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/binary/wifi_dnld_2_1.elf -------------------------------------------------------------------------------- /firmwares/wifishield/scripts/ArduinoWifiShield_upgrade_mac.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | WIFI_FW_PATH="/hardware/arduino/avr/firmwares/wifishield/binary" 4 | AVR_TOOLS_PATH="/hardware/tools/avr/bin" 5 | 6 | progname=$0 7 | 8 | usage () { 9 | cat <&2 83 | usage 84 | exit 1 85 | ;; 86 | :) 87 | echo "Option -$OPTARG requires an argument." >&2 88 | exit 1 89 | ;; 90 | esac 91 | done 92 | else 93 | echo "You are not root!\n" 94 | fi 95 | 96 | shift $(($OPTIND - 1)) 97 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | wifiHD 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | ?name? 14 | 15 | 16 | 17 | org.eclipse.cdt.make.core.append_environment 18 | true 19 | 20 | 21 | org.eclipse.cdt.make.core.buildArguments 22 | 23 | 24 | 25 | org.eclipse.cdt.make.core.buildCommand 26 | make 27 | 28 | 29 | org.eclipse.cdt.make.core.buildLocation 30 | ${workspace_loc:/wifiHD/Debug} 31 | 32 | 33 | org.eclipse.cdt.make.core.contents 34 | org.eclipse.cdt.make.core.activeConfigSettings 35 | 36 | 37 | org.eclipse.cdt.make.core.enableAutoBuild 38 | false 39 | 40 | 41 | org.eclipse.cdt.make.core.enableCleanBuild 42 | true 43 | 44 | 45 | org.eclipse.cdt.make.core.enableFullBuild 46 | true 47 | 48 | 49 | org.eclipse.cdt.make.core.stopOnError 50 | true 51 | 52 | 53 | org.eclipse.cdt.make.core.useDefaultBuildCmd 54 | true 55 | 56 | 57 | 58 | 59 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 60 | 61 | 62 | 63 | 64 | 65 | com.atmel.avr32.core.nature 66 | org.eclipse.cdt.core.cnature 67 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 68 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 69 | 70 | 71 | 72 | UC3 Software Framework 73 | 2 74 | framework:/com.atmel.avr32.sf.uc3 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/Release/wifiHD.elf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/Release/wifiHD.elf -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_sdio_v2.7.0.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_sdio_v2.7.0.a -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_spi_v2.7.0.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_spi_v2.7.0.a -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_sdio_v2.7.0.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_sdio_v2.7.0.a -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_spi_v2.7.0.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_spi_v2.7.0.a -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/revision.txt: -------------------------------------------------------------------------------- 1 | Revision: 2491 2 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_os.h: -------------------------------------------------------------------------------- 1 | #ifndef WL_OS_H 2 | #define WL_OS_H 3 | 4 | #include 5 | #include 6 | 7 | void *owl_os_alloc(size_t size); 8 | void *owl_os_realloc(void *ptr, size_t size); 9 | void owl_os_free(void *p); 10 | void *owl_os_memcpy(void *dst, const void *src, size_t n); 11 | void *owl_os_memset(void *s, int c, size_t n); 12 | void *owl_os_memmove(void *dst, const void *src, size_t n); 13 | size_t owl_os_strlen(char *s); 14 | char *owl_os_strncpy(char *dst, const char *src, size_t n); 15 | int owl_os_strncmp(const char *s1, const char *s2, size_t n); 16 | int owl_os_strcmp(const char *s1, const char *s2); 17 | char *owl_os_strcpy(char *dst, const char *src); 18 | char *owl_os_strdup(const char *s); 19 | char *owl_os_strndup(const char *s, size_t n); 20 | int owl_os_memcmp(const void *s1, const void *s2, size_t n); 21 | long int owl_os_strtol(const char *nptr, char **endptr, int base); 22 | char *owl_os_strchr(const char *s, int c); 23 | char *owl_os_strrchr(const char *s, int c); 24 | int owl_os_strcasecmp(const char *s1, const char *s2); 25 | char *owl_os_strstr(const char *haystack, const char *needle); 26 | 27 | int owl_os_snprintf(char *str, size_t size, const char *format, ...) 28 | __attribute__((format(printf, 3, 4))); 29 | 30 | int owl_os_vprintf(const char *format, va_list arg); /* debug only */ 31 | int owl_os_printf(const char *format, ...) /* debug only */ 32 | __attribute__((format(printf, 1, 2))); 33 | 34 | #endif /* WL_OS_H */ 35 | 36 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet_chksum.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /* 4 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without modification, 8 | * are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, 11 | * this list of conditions and the following disclaimer. 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 3. The name of the author may not be used to endorse or promote products 16 | * derived from this software without specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 27 | * OF SUCH DAMAGE. 28 | * 29 | * This file is part of the lwIP TCP/IP stack. 30 | * 31 | * Author: Adam Dunkels 32 | * 33 | */ 34 | #ifndef __LWIP_INET_CHKSUM_H__ 35 | #define __LWIP_INET_CHKSUM_H__ 36 | 37 | #include "lwip/opt.h" 38 | 39 | #include "lwip/pbuf.h" 40 | #include "lwip/ip_addr.h" 41 | 42 | #ifdef __cplusplus 43 | extern "C" { 44 | #endif 45 | 46 | u16_t inet_chksum(void *dataptr, u16_t len); 47 | u16_t inet_chksum_pbuf(struct pbuf *p); 48 | u16_t inet_chksum_pseudo(struct pbuf *p, 49 | struct ip_addr *src, struct ip_addr *dest, 50 | u8_t proto, u16_t proto_len); 51 | #if LWIP_UDPLITE 52 | u16_t inet_chksum_pseudo_partial(struct pbuf *p, 53 | struct ip_addr *src, struct ip_addr *dest, 54 | u8_t proto, u16_t proto_len, u16_t chksum_len); 55 | #endif 56 | 57 | #ifdef __cplusplus 58 | } 59 | #endif 60 | 61 | #endif /* __LWIP_INET_H__ */ 62 | 63 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_frag.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /* 4 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without modification, 8 | * are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, 11 | * this list of conditions and the following disclaimer. 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 3. The name of the author may not be used to endorse or promote products 16 | * derived from this software without specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 27 | * OF SUCH DAMAGE. 28 | * 29 | * This file is part of the lwIP TCP/IP stack. 30 | * 31 | * Author: Jani Monoses 32 | * 33 | */ 34 | 35 | #ifndef __LWIP_IP_FRAG_H__ 36 | #define __LWIP_IP_FRAG_H__ 37 | 38 | #include "lwip/opt.h" 39 | #include "lwip/err.h" 40 | #include "lwip/pbuf.h" 41 | #include "lwip/netif.h" 42 | #include "lwip/ip_addr.h" 43 | #include "lwip/ip.h" 44 | 45 | #ifdef __cplusplus 46 | extern "C" { 47 | #endif 48 | 49 | #if IP_REASSEMBLY 50 | /* The IP reassembly timer interval in milliseconds. */ 51 | #define IP_TMR_INTERVAL 1000 52 | 53 | /* IP reassembly helper struct. 54 | * This is exported because memp needs to know the size. 55 | */ 56 | struct ip_reassdata { 57 | struct ip_reassdata *next; 58 | struct pbuf *p; 59 | struct ip_hdr iphdr; 60 | u16_t datagram_len; 61 | u8_t flags; 62 | u8_t timer; 63 | }; 64 | 65 | void ip_reass_init(void); 66 | void ip_reass_tmr(void); 67 | struct pbuf * ip_reass(struct pbuf *p); 68 | #endif /* IP_REASSEMBLY */ 69 | 70 | #if IP_FRAG 71 | err_t ip_frag(struct pbuf *p, struct netif *netif, struct ip_addr *dest); 72 | #endif /* IP_FRAG */ 73 | 74 | #ifdef __cplusplus 75 | } 76 | #endif 77 | 78 | #endif /* __LWIP_IP_FRAG_H__ */ 79 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/def.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /* 4 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without modification, 8 | * are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, 11 | * this list of conditions and the following disclaimer. 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 3. The name of the author may not be used to endorse or promote products 16 | * derived from this software without specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 27 | * OF SUCH DAMAGE. 28 | * 29 | * This file is part of the lwIP TCP/IP stack. 30 | * 31 | * Author: Adam Dunkels 32 | * 33 | */ 34 | #ifndef __LWIP_DEF_H__ 35 | #define __LWIP_DEF_H__ 36 | 37 | /* this might define NULL already */ 38 | #include "lwip/arch.h" 39 | 40 | #define LWIP_MAX(x , y) (((x) > (y)) ? (x) : (y)) 41 | #define LWIP_MIN(x , y) (((x) < (y)) ? (x) : (y)) 42 | 43 | #ifndef NULL 44 | #define NULL ((void *)0) 45 | #endif 46 | 47 | 48 | #endif /* __LWIP_DEF_H__ */ 49 | 50 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/loopif.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /* 4 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without modification, 8 | * are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, 11 | * this list of conditions and the following disclaimer. 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 3. The name of the author may not be used to endorse or promote products 16 | * derived from this software without specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 27 | * OF SUCH DAMAGE. 28 | * 29 | * This file is part of the lwIP TCP/IP stack. 30 | * 31 | * Author: Adam Dunkels 32 | * 33 | */ 34 | #ifndef __NETIF_LOOPIF_H__ 35 | #define __NETIF_LOOPIF_H__ 36 | 37 | #include "lwip/opt.h" 38 | #include "lwip/netif.h" 39 | #include "lwip/err.h" 40 | 41 | #ifdef __cplusplus 42 | extern "C" { 43 | #endif 44 | 45 | #if !LWIP_NETIF_LOOPBACK_MULTITHREADING 46 | #define loopif_poll netif_poll 47 | #endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */ 48 | 49 | err_t loopif_init(struct netif *netif); 50 | 51 | #ifdef __cplusplus 52 | } 53 | #endif 54 | 55 | #endif /* __NETIF_LOOPIF_H__ */ 56 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/slipif.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /* 4 | * Copyright (c) 2001, Swedish Institute of Computer Science. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions 9 | * are met: 10 | * 1. Redistributions of source code must retain the above copyright 11 | * notice, this list of conditions and the following disclaimer. 12 | * 2. Redistributions in binary form must reproduce the above copyright 13 | * notice, this list of conditions and the following disclaimer in the 14 | * documentation and/or other materials provided with the distribution. 15 | * 3. Neither the name of the Institute nor the names of its contributors 16 | * may be used to endorse or promote products derived from this software 17 | * without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 20 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 23 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 | * SUCH DAMAGE. 30 | * 31 | * This file is part of the lwIP TCP/IP stack. 32 | * 33 | * Author: Adam Dunkels 34 | * 35 | */ 36 | #ifndef __NETIF_SLIPIF_H__ 37 | #define __NETIF_SLIPIF_H__ 38 | 39 | #include "lwip/netif.h" 40 | 41 | #ifdef __cplusplus 42 | extern "C" { 43 | #endif 44 | 45 | err_t slipif_init(struct netif * netif); 46 | void slipif_poll(struct netif *netif); 47 | 48 | #ifdef __cplusplus 49 | } 50 | #endif 51 | 52 | #endif 53 | 54 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/loopif.c: -------------------------------------------------------------------------------- 1 | /* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /** 4 | * @file 5 | * Loop Interface 6 | * 7 | */ 8 | 9 | /* 10 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science. 11 | * All rights reserved. 12 | * 13 | * Redistribution and use in source and binary forms, with or without modification, 14 | * are permitted provided that the following conditions are met: 15 | * 16 | * 1. Redistributions of source code must retain the above copyright notice, 17 | * this list of conditions and the following disclaimer. 18 | * 2. Redistributions in binary form must reproduce the above copyright notice, 19 | * this list of conditions and the following disclaimer in the documentation 20 | * and/or other materials provided with the distribution. 21 | * 3. The name of the author may not be used to endorse or promote products 22 | * derived from this software without specific prior written permission. 23 | * 24 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 25 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 27 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 28 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 29 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 30 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 31 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 32 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 33 | * OF SUCH DAMAGE. 34 | * 35 | * This file is part of the lwIP TCP/IP stack. 36 | * 37 | * Author: Adam Dunkels 38 | * 39 | */ 40 | #include "lwip/opt.h" 41 | 42 | #if LWIP_HAVE_LOOPIF 43 | 44 | #include "netif/loopif.h" 45 | #include "lwip/snmp.h" 46 | 47 | /** 48 | * Initialize a lwip network interface structure for a loopback interface 49 | * 50 | * @param netif the lwip network interface structure for this loopif 51 | * @return ERR_OK if the loopif is initialized 52 | * ERR_MEM if private data couldn't be allocated 53 | */ 54 | err_t 55 | loopif_init(struct netif *netif) 56 | { 57 | /* initialize the snmp variables and counters inside the struct netif 58 | * ifSpeed: no assumption can be made! 59 | */ 60 | NETIF_INIT_SNMP(netif, snmp_ifType_softwareLoopback, 0); 61 | 62 | netif->name[0] = 'l'; 63 | netif->name[1] = 'o'; 64 | netif->output = netif_loop_output; 65 | return ERR_OK; 66 | } 67 | 68 | #endif /* LWIP_HAVE_LOOPIF */ 69 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/perf.h: -------------------------------------------------------------------------------- 1 | #ifndef __PERF_H__ 2 | #define __PERF_H__ 3 | 4 | #define PERF_START /* null definition */ 5 | #define PERF_STOP(x) /* null definition */ 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/netif/wlif.h: -------------------------------------------------------------------------------- 1 | #ifndef __NETIF_NRWLANIF_H__ 2 | #define __NETIF_NRWLANIF_H__ 3 | 4 | #include "lwip/netif.h" 5 | #include "lwip/err.h" 6 | 7 | err_t wlif_init(struct netif *netif); 8 | void wlif_poll(struct netif *netif); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/readme.txt: -------------------------------------------------------------------------------- 1 | This directory is specific to the WIFI H&D SPB104 components (\COMPONENTS\WIFI\HD_SPB104). 2 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_cpu.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*This file is prepared for Doxygen automatic documentation generation.*/ 4 | /*! \file ********************************************************************* 5 | * 6 | * \brief NEWLIB_ADDONS CPU include file for AVR32. 7 | * 8 | * - Compiler: GNU GCC for AVR32 9 | * - Supported devices: All AVR32 devices can be used. 10 | * - AppNote: 11 | * 12 | * \author Atmel Corporation: http://www.atmel.com \n 13 | * Support and FAQ: http://support.atmel.no/ 14 | * 15 | ******************************************************************************/ 16 | 17 | /* Copyright (c) 2009 Atmel Corporation. All rights reserved. 18 | * 19 | * Redistribution and use in source and binary forms, with or without 20 | * modification, are permitted provided that the following conditions are met: 21 | * 22 | * 1. Redistributions of source code must retain the above copyright notice, this 23 | * list of conditions and the following disclaimer. 24 | * 25 | * 2. Redistributions in binary form must reproduce the above copyright notice, 26 | * this list of conditions and the following disclaimer in the documentation 27 | * and/or other materials provided with the distribution. 28 | * 29 | * 3. The name of Atmel may not be used to endorse or promote products derived 30 | * from this software without specific prior written permission. 31 | * 32 | * 4. This software may only be redistributed and used in connection with an Atmel 33 | * AVR product. 34 | * 35 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED 36 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 37 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE 38 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR 39 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 40 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 41 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 42 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 43 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 44 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 45 | * 46 | */ 47 | 48 | #ifndef __AVR32_NEWLIB_ADDONS_CPU_H__ 49 | #define __AVR32_NEWLIB_ADDONS_CPU_H__ 50 | 51 | #include <_ansi.h> 52 | 53 | _BEGIN_STD_C 54 | 55 | #define CPU_HZ get_cpu_hz() 56 | 57 | void udelay(unsigned long usec); 58 | void set_cpu_hz(unsigned int clk_hz); 59 | unsigned int get_cpu_hz(); 60 | 61 | _END_STD_C 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*This file is prepared for Doxygen automatic documentation generation.*/ 4 | /*! \file ********************************************************************* 5 | * 6 | * \brief Preprocessor utils. 7 | * 8 | * - Compiler: IAR EWAVR32 and GNU GCC for AVR32 9 | * - Supported devices: All AVR32 devices can be used. 10 | * 11 | * \author Atmel Corporation: http://www.atmel.com \n 12 | * Support and FAQ: http://support.atmel.no/ 13 | * 14 | ******************************************************************************/ 15 | 16 | /* Copyright (c) 2009 Atmel Corporation. All rights reserved. 17 | * 18 | * Redistribution and use in source and binary forms, with or without 19 | * modification, are permitted provided that the following conditions are met: 20 | * 21 | * 1. Redistributions of source code must retain the above copyright notice, this 22 | * list of conditions and the following disclaimer. 23 | * 24 | * 2. Redistributions in binary form must reproduce the above copyright notice, 25 | * this list of conditions and the following disclaimer in the documentation 26 | * and/or other materials provided with the distribution. 27 | * 28 | * 3. The name of Atmel may not be used to endorse or promote products derived 29 | * from this software without specific prior written permission. 30 | * 31 | * 4. This software may only be redistributed and used in connection with an Atmel 32 | * AVR product. 33 | * 34 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED 35 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 36 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE 37 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR 38 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 39 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 40 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 41 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 42 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 43 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 44 | * 45 | */ 46 | 47 | #ifndef _PREPROCESSOR_H_ 48 | #define _PREPROCESSOR_H_ 49 | 50 | #include "tpaste.h" 51 | #include "stringz.h" 52 | #include "mrepeat.h" 53 | 54 | 55 | #endif // _PREPROCESSOR_H_ 56 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/ard_spi.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ard_spi.h 3 | * 4 | * Created on: May 27, 2010 5 | * Author: mlf by Metodo2 srl 6 | */ 7 | 8 | #ifndef ARD_SPI_H_ 9 | #define ARD_SPI_H_ 10 | 11 | #include "lwip/netif.h" 12 | #include "console.h" 13 | #include "wl_definitions.h" 14 | 15 | 16 | typedef enum { 17 | SPI_CMD_IDLE, 18 | SPI_CMD_INPUT, 19 | SPI_CMD_DONE, 20 | SPI_CMD_INPROGRESS, 21 | SPI_CMD_REPLING, 22 | SPI_CMD_FAIL, 23 | } cmd_spi_state_t; 24 | 25 | typedef enum { 26 | REPLY_ERR_GET, 27 | REPLY_ERR_SET, 28 | REPLY_ERR_CMD, 29 | REPLY_ERR_MSG, 30 | REPLY_NO_ERR, 31 | } reply_err_t; 32 | 33 | 34 | typedef enum { 35 | CMD_GET_FLAG = 0x01, 36 | CMD_SET_FLAG = 0x02, 37 | CMD_IMM_SET_FLAG = 0x04, 38 | }cmd_flags; 39 | 40 | typedef enum eProtMode {TCP_MODE, UDP_MODE}tProtMode; 41 | 42 | #define TIMEOUT_SPI 200 43 | #define SPI_ALIGN_ERROR 0xF0 44 | #define SPI_OVERRIDE_ERROR 0xF1 45 | #define SPI_TIMEOUT_ERROR 0xF2 46 | #define DUMMY_DATA 0xFF 47 | 48 | typedef int (*cmd_spi_cb_t)(int numParam, char* buf, void* ctx); 49 | typedef cmd_spi_state_t (*cmd_spi_rcb_t)(char* recv, char* reply, void* ctx, uint16_t* _count); 50 | 51 | typedef struct eRemoteClient{ 52 | uint32_t ipaddr; 53 | uint16_t port; 54 | }tRemoteClient; 55 | 56 | void set_result_cmd(int err) ; 57 | 58 | void set_result(wl_status_t _status); 59 | 60 | int initSpi(void* ctx); 61 | 62 | void initExtInt(); 63 | 64 | void spi_poll(struct netif* netif); 65 | 66 | int spi_slaveReceive(volatile avr32_spi_t *spi); 67 | 68 | void showTTCPstatus(); 69 | 70 | int getSock(void * _ttcp); 71 | 72 | void* getTTCP(uint8_t sock, uint8_t mode); 73 | 74 | void setMapSockMode(uint8_t sock, void* _ttcp, uint8_t _tcp_mode); 75 | 76 | void clearMapSockTcp(uint8_t sock, uint8_t mode); 77 | 78 | int start_server_tcp(uint16_t port, uint8_t sock, uint8_t protMode); 79 | 80 | int start_client_tcp(uint32_t _addr, uint16_t port, uint8_t sock, uint8_t protMode); 81 | 82 | void setRemoteClient(uint16_t sock, uint32_t _ipaddr, uint16_t _port); 83 | 84 | tRemoteClient* getRemoteClient(uint16_t sock); 85 | 86 | void getRemoteData(uint8_t sock, uint8_t mode, tRemoteClient* remoteData); 87 | 88 | #endif /* ARD_SPI_H_ */ 89 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/console.h: -------------------------------------------------------------------------------- 1 | /*! \page License 2 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 15 | * from this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 18 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 20 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | #ifndef CONSOLE_H 29 | #define CONSOLE_H 30 | 31 | 32 | typedef enum { 33 | CMD_DONE, 34 | CMD_INPROGRESS 35 | } cmd_state_t; 36 | 37 | typedef cmd_state_t (*cmd_cb_t)(int argc, char* argv[], void* ctx); 38 | 39 | void console_init(void); 40 | void console_init_silent(void); 41 | char* console_gets(void); 42 | int console_add_cmd(const char* str, cmd_cb_t cb, void* ctx); 43 | int console_schedule_cmd(char *cmd, int interactive); 44 | void console_poll(void); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/fw_download.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*! \page License 4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright notice, 10 | * this list of conditions and the following disclaimer. 11 | * 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 17 | * from this software without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | */ 30 | #ifndef FW_DOWNLOAD_H 31 | #define FW_DOWNLOAD_H 32 | 33 | #include 34 | #include 35 | 36 | int fw_download_init(void); 37 | size_t fw_read_cb(void *ctx, const uint8_t** buf, size_t offset, size_t len); 38 | #endif 39 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) 2009, H&D Wireless AB All rights reserved. 2 | 3 | The license to use this software in whole and in part and to 4 | redistribute it in any form follows with the WiFi HW module from H&D 5 | Wireless and is granted under the following restrictions: 6 | 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | 3. The name of H&D Wireless AB may not be used to endorse or promote 15 | products derived from this software without specific prior written 16 | permission. 17 | 18 | 4. The software may only be used together with hardware from H&D 19 | Wireless all other use is prohibited. 20 | 21 | 5. The license to use and redistribute the software is granted 22 | together with the purchase of a hardware platform on a one to one 23 | basis 24 | 25 | 6. The binary code may not be reversed engineered or by other means 26 | copied to circumvent this license. 27 | 28 | THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY 29 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 31 | PURPOSE ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT 32 | SHALL HD WIRELESS AB BE LIABLE FOR ANY DIRECT, INDIRECT, 33 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 34 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 35 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 37 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 38 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 39 | OF THE POSSIBILITY OF SUCH DAMAGE. 40 | 41 | For more information regarding this software license Contact H&D 42 | Wireless AB (support@hd-wireless.se). 43 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/lwip_setup.h: -------------------------------------------------------------------------------- 1 | #ifndef _LWIP_SETUP_H 2 | #define _LWIP_SETUP_H 3 | 4 | #define INIT_IP_CONFIG 0xff 5 | #define STATIC_IP_CONFIG 0 6 | #define DYNAMIC_IP_CONFIG 1 7 | 8 | struct net_cfg { 9 | struct netif *netif; /* lwip network interface */ 10 | uint8_t dhcp_enabled; 11 | uint8_t dhcp_running; 12 | }; 13 | 14 | struct ctx_server { 15 | struct net_cfg net_cfg; 16 | uint8_t wl_init_complete; 17 | }; 18 | 19 | /*! Start the IP stack. 20 | * If cfg->netif must have been allocated and lwip_init() 21 | * must have been called before this function is called 22 | * (since the IP stack may have to be polled before this 23 | * function can be called). 24 | */ 25 | int start_ip_stack(struct net_cfg *cfg, 26 | struct ip_addr ipaddr, 27 | struct ip_addr netmask, 28 | struct ip_addr gw); 29 | 30 | #endif /* _LWIP_SETUP_H */ 31 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/nvram.h: -------------------------------------------------------------------------------- 1 | #ifndef NVRAM_H 2 | #define NVRAM_H 3 | 4 | #include 5 | 6 | int nvram_init(void); 7 | int nvram_read(uint32_t addr, void *data, uint32_t len); 8 | int nvram_write(uint32_t addr, const void *data, uint32_t len); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/ping.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /* 4 | * Copyright (c) 2001-2003 Swedish Institute of Computer Science. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without modification, 8 | * are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, 11 | * this list of conditions and the following disclaimer. 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 3. The name of the author may not be used to endorse or promote products 16 | * derived from this software without specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 27 | * OF SUCH DAMAGE. 28 | * 29 | * This file is derived from a part of the lwIP TCP/IP stack. 30 | * 31 | */ 32 | #ifndef PING_H 33 | #define PING_H 34 | 35 | #include "console.h" 36 | 37 | typedef void (*ping_complete_cb_t)(uint32_t tx_pkt_cnt, uint32_t rx_pkt_cnt, void *ctx); 38 | 39 | void ping_set_callback(ping_complete_cb_t cb, void *ctx); 40 | 41 | void ping_stop(uint32_t *tx_cnt, uint32_t *rx_cnt); 42 | 43 | cmd_state_t cmd_ping(int argc, char* argv[], void* ctx); 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/printf-stdarg.h: -------------------------------------------------------------------------------- 1 | /*! \page License 2 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 15 | * from this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 18 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 20 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | #ifndef PRINTF_STDARG_H 29 | #define PRINTF_STDARG_H 30 | #include 31 | 32 | int printk(const char *format, ...); 33 | int printk_va(char **out, const char *format, va_list args ); 34 | #endif 35 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/timer.h: -------------------------------------------------------------------------------- 1 | /*! \page License 2 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 15 | * from this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 18 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 20 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | #ifndef TIMER_H 29 | #define TIMER_H 30 | #include 31 | 32 | enum { 33 | TIMEOUT_ONESHOT, 34 | TIMEOUT_PERIODIC 35 | }; 36 | 37 | #define INVALID_TIMER_ID 0xFFFFFFFF 38 | 39 | /* Handle timer overflows. Return 1 if the interval has passed. */ 40 | int timer_interval_passed(uint32_t old, uint32_t new, uint32_t diff); 41 | 42 | void timer_tick(); 43 | void timer_init(void (*tick_isr) (void* ctx), void* ctx); 44 | void timer_poll(void); 45 | void timer_delay(uint32_t ms); 46 | uint32_t timer_sched_timeout_cb(uint32_t ms, uint8_t type, void (*cb)(void *ctx), void* ctx); 47 | uint32_t timer_mod(uint32_t id, uint32_t ms, uint8_t type, void (*cb)(void *ctx), void* ctx); 48 | void timer_cancel_timeout(uint32_t id); 49 | uint32_t timer_get_ms(void); 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/trace.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*! \page License 4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright notice, 10 | * this list of conditions and the following disclaimer. 11 | * 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 17 | * from this software without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | */ 30 | #ifndef TRACE_H 31 | #define TRACE_H 32 | 33 | #include 34 | #include "printf-stdarg.h" 35 | 36 | #define ASSERT(cond, str) do { \ 37 | if (!(cond)) { \ 38 | printk("%s\n", str); \ 39 | Assert(0); \ 40 | } \ 41 | } while(0) 42 | 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/util.h: -------------------------------------------------------------------------------- 1 | /*! \page License 2 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 15 | * from this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 18 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 20 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | #ifndef _UTIL_H 29 | #define _UTIL_H 30 | #include 31 | #include 32 | #include 33 | #include "lwip/ip.h" 34 | #include 35 | 36 | const char* ip2str(struct ip_addr addr); 37 | 38 | struct ip_addr str2ip(const char* str); 39 | 40 | uint8_t ascii_to_key(char *outp, const char *inp); 41 | 42 | void print_network(struct wl_network_t* wl_network); 43 | 44 | void print_network_list(void); 45 | 46 | int join_argv(char *dst, size_t dst_len, int argc, char* argv[]); 47 | 48 | void printbuf(const char *prefix, const void *data, size_t len); 49 | 50 | const char* ssid2str(struct wl_ssid_t *ssid); 51 | 52 | const char* mac2str(uint8_t mac[6]); 53 | 54 | char* enc_type2str(enum wl_enc_type enc_type); 55 | 56 | int equal_ssid(const struct wl_ssid_t* ssid1, 57 | const struct wl_ssid_t* ssid2); 58 | 59 | int equal_bssid(const struct wl_mac_addr_t* bssid1, 60 | const struct wl_mac_addr_t* bssid2); 61 | 62 | #define NET_SET_SSID(net, xssid, ssid_len) do { \ 63 | DE_MEMCPY((net)->ssid.ssid, (xssid), (ssid_len)); \ 64 | (net)->ssid.len = (ssid_len); \ 65 | } while (0) 66 | 67 | #define NET_SET_BSSID(net, xbssid) do { \ 68 | DE_MEMCPY(&(net)->bssid, &(xbssid), sizeof (xbssid)); \ 69 | } while (0) 70 | 71 | #endif /* _UTIL_H */ 72 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/wl_cm.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*! \page License 4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright notice, 10 | * this list of conditions and the following disclaimer. 11 | * 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 17 | * from this software without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | */ 30 | #ifndef WL_CM_H 31 | #define WL_CM_H 32 | 33 | #include 34 | #include 35 | #include 36 | 37 | typedef void (cm_scan_cb_t)(void* ctx); 38 | typedef void (cm_conn_cb_t)(struct wl_network_t *net, void* ctx); 39 | typedef void (cm_disconn_cb_t)(void* ctx); 40 | 41 | wl_err_t wl_cm_set_network(struct wl_ssid_t *ssid, struct wl_mac_addr_t *bssid); 42 | 43 | wl_err_t wl_cm_init(cm_scan_cb_t scan_cb, 44 | cm_conn_cb_t conn_cb, 45 | cm_disconn_cb_t disconn_cb, 46 | void* ctx); 47 | 48 | wl_err_t wl_cm_start(void); 49 | wl_err_t wl_cm_stop(void); 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifiHD/src/wl_definitions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * wl_definitions.h 3 | * 4 | * Created on: Mar 6, 2011 5 | * Author: mlf by Metodo2 srl 6 | */ 7 | 8 | #ifndef WL_DEFINITIONS_H_ 9 | #define WL_DEFINITIONS_H_ 10 | 11 | // Maximum size of a SSID 12 | #define WL_SSID_MAX_LENGTH 32 13 | // Length of passphrase. Valid lengths are 8-63. 14 | #define WL_WPA_KEY_MAX_LENGTH 63 15 | // Length of key in bytes. Valid values are 5 and 13. 16 | #define WL_WEP_KEY_MAX_LENGTH 13 17 | // Size of a MAC-address or BSSID 18 | #define WL_MAC_ADDR_LENGTH 6 19 | // Size of a MAC-address or BSSID 20 | #define WL_IPV4_LENGTH 4 21 | // Maximum size of a SSID list 22 | #define WL_NETWORKS_LIST_MAXNUM 10 23 | // Maxmium number of socket 24 | #define MAX_SOCK_NUM 4 25 | //Maximum number of attempts to establish wifi connection 26 | #define WL_MAX_ATTEMPT_CONNECTION 10 27 | 28 | typedef enum { 29 | WL_IDLE_STATUS, 30 | WL_NO_SSID_AVAIL, 31 | WL_SCAN_COMPLETED, 32 | WL_CONNECTED, 33 | WL_CONNECT_FAILED, 34 | WL_CONNECTION_LOST, 35 | WL_DISCONNECTED 36 | } wl_status_t; 37 | 38 | 39 | #endif /* WL_DEFINITIONS_H_ */ 40 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | wifi_dnld 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | ?name? 14 | 15 | 16 | 17 | org.eclipse.cdt.make.core.append_environment 18 | true 19 | 20 | 21 | org.eclipse.cdt.make.core.buildArguments 22 | 23 | 24 | 25 | org.eclipse.cdt.make.core.buildCommand 26 | make 27 | 28 | 29 | org.eclipse.cdt.make.core.buildLocation 30 | ${workspace_loc:/wifi_dnld/Debug} 31 | 32 | 33 | org.eclipse.cdt.make.core.contents 34 | org.eclipse.cdt.make.core.activeConfigSettings 35 | 36 | 37 | org.eclipse.cdt.make.core.enableAutoBuild 38 | false 39 | 40 | 41 | org.eclipse.cdt.make.core.enableCleanBuild 42 | true 43 | 44 | 45 | org.eclipse.cdt.make.core.enableFullBuild 46 | true 47 | 48 | 49 | org.eclipse.cdt.make.core.stopOnError 50 | true 51 | 52 | 53 | org.eclipse.cdt.make.core.useDefaultBuildCmd 54 | true 55 | 56 | 57 | 58 | 59 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 60 | 61 | 62 | 63 | 64 | 65 | com.atmel.avr32.core.nature 66 | org.eclipse.cdt.core.cnature 67 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 68 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 69 | 70 | 71 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/Release/wifi_dnld.elf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifi_dnld/Release/wifi_dnld.elf -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/Doc/SPB104 product brief.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifi_dnld/src/Doc/SPB104 product brief.pdf -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/Doc/gettingstarted.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifi_dnld/src/Doc/gettingstarted.pdf -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_cpu.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*This file is prepared for Doxygen automatic documentation generation.*/ 4 | /*! \file ********************************************************************* 5 | * 6 | * \brief NEWLIB_ADDONS CPU include file for AVR32. 7 | * 8 | * - Compiler: GNU GCC for AVR32 9 | * - Supported devices: All AVR32 devices can be used. 10 | * - AppNote: 11 | * 12 | * \author Atmel Corporation: http://www.atmel.com \n 13 | * Support and FAQ: http://support.atmel.no/ 14 | * 15 | ******************************************************************************/ 16 | 17 | /* Copyright (c) 2009 Atmel Corporation. All rights reserved. 18 | * 19 | * Redistribution and use in source and binary forms, with or without 20 | * modification, are permitted provided that the following conditions are met: 21 | * 22 | * 1. Redistributions of source code must retain the above copyright notice, this 23 | * list of conditions and the following disclaimer. 24 | * 25 | * 2. Redistributions in binary form must reproduce the above copyright notice, 26 | * this list of conditions and the following disclaimer in the documentation 27 | * and/or other materials provided with the distribution. 28 | * 29 | * 3. The name of Atmel may not be used to endorse or promote products derived 30 | * from this software without specific prior written permission. 31 | * 32 | * 4. This software may only be redistributed and used in connection with an Atmel 33 | * AVR product. 34 | * 35 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED 36 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 37 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE 38 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR 39 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 40 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 41 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 42 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 43 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 44 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 45 | * 46 | */ 47 | 48 | #ifndef __AVR32_NEWLIB_ADDONS_CPU_H__ 49 | #define __AVR32_NEWLIB_ADDONS_CPU_H__ 50 | 51 | #include <_ansi.h> 52 | 53 | _BEGIN_STD_C 54 | 55 | #define CPU_HZ get_cpu_hz() 56 | 57 | void udelay(unsigned long usec); 58 | void set_cpu_hz(unsigned int clk_hz); 59 | unsigned int get_cpu_hz(); 60 | 61 | _END_STD_C 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*This file is prepared for Doxygen automatic documentation generation.*/ 4 | /*! \file ********************************************************************* 5 | * 6 | * \brief Preprocessor utils. 7 | * 8 | * - Compiler: IAR EWAVR32 and GNU GCC for AVR32 9 | * - Supported devices: All AVR32 devices can be used. 10 | * 11 | * \author Atmel Corporation: http://www.atmel.com \n 12 | * Support and FAQ: http://support.atmel.no/ 13 | * 14 | ******************************************************************************/ 15 | 16 | /* Copyright (c) 2009 Atmel Corporation. All rights reserved. 17 | * 18 | * Redistribution and use in source and binary forms, with or without 19 | * modification, are permitted provided that the following conditions are met: 20 | * 21 | * 1. Redistributions of source code must retain the above copyright notice, this 22 | * list of conditions and the following disclaimer. 23 | * 24 | * 2. Redistributions in binary form must reproduce the above copyright notice, 25 | * this list of conditions and the following disclaimer in the documentation 26 | * and/or other materials provided with the distribution. 27 | * 28 | * 3. The name of Atmel may not be used to endorse or promote products derived 29 | * from this software without specific prior written permission. 30 | * 31 | * 4. This software may only be redistributed and used in connection with an Atmel 32 | * AVR product. 33 | * 34 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED 35 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 36 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE 37 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR 38 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 39 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 40 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 41 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 42 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 43 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 44 | * 45 | */ 46 | 47 | #ifndef _PREPROCESSOR_H_ 48 | #define _PREPROCESSOR_H_ 49 | 50 | #include "tpaste.h" 51 | #include "stringz.h" 52 | #include "mrepeat.h" 53 | 54 | 55 | #endif // _PREPROCESSOR_H_ 56 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/clocks.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*! \page License 4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright notice, 10 | * this list of conditions and the following disclaimer. 11 | * 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 17 | * from this software without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | */ 30 | 31 | #ifndef CLOCKS_H 32 | #define CLOCKS_H 33 | 34 | #include "board.h" 35 | 36 | 37 | #if BOARD == EVK1100 38 | # define USE_PLL 39 | # define OSC 0 40 | # define PLL_MUL 10 41 | #elif BOARD == EVK1101 42 | # define USE_PLL 43 | # define OSC 0 44 | # define PLL_MUL 9 45 | #elif BOARD == EVK1104 46 | # define USE_PLL 47 | # define OSC 0 48 | # define PLL_MUL 9 /* for some reason we cant use 66 MHz */ 49 | #elif BOARD == EVK1105 50 | # define USE_PLL 51 | # define OSC 1 52 | # define PLL_MUL 10 53 | #elif BOARD == ARDUINO 54 | # define USE_PLL 55 | # define OSC 0 56 | # define PLL_MUL 8 57 | #endif 58 | 59 | #if OSC == 0 60 | # define FOSC FOSC0 /* 12 MHz */ 61 | #else 62 | # define FOSC FOSC1 /* 11.2896 MHz */ 63 | #endif 64 | 65 | #ifdef USE_PLL 66 | # define FMCK_HZ ((FOSC * (PLL_MUL + 1)) / 2) 67 | #else 68 | # define FMCK_HZ FOSC 69 | #endif 70 | 71 | #define FCPU_HZ FMCK_HZ 72 | #define FHSB_HZ FCPU_HZ 73 | #define FPBB_HZ FMCK_HZ 74 | #define FPBA_HZ FMCK_HZ 75 | 76 | void init_sys_clocks(void); 77 | 78 | #endif 79 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) 2009, H&D Wireless AB All rights reserved. 2 | 3 | The license to use this software in whole and in part and to 4 | redistribute it in any form follows with the WiFi HW module from H&D 5 | Wireless and is granted under the following restrictions: 6 | 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | 3. The name of H&D Wireless AB may not be used to endorse or promote 15 | products derived from this software without specific prior written 16 | permission. 17 | 18 | 4. The software may only be used together with hardware from H&D 19 | Wireless all other use is prohibited. 20 | 21 | 5. The license to use and redistribute the software is granted 22 | together with the purchase of a hardware platform on a one to one 23 | basis 24 | 25 | 6. The binary code may not be reversed engineered or by other means 26 | copied to circumvent this license. 27 | 28 | THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY 29 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 31 | PURPOSE ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT 32 | SHALL HD WIRELESS AB BE LIABLE FOR ANY DIRECT, INDIRECT, 33 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 34 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 35 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 37 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 38 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 39 | OF THE POSSIBILITY OF SUCH DAMAGE. 40 | 41 | For more information regarding this software license Contact H&D 42 | Wireless AB (support@hd-wireless.se). 43 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/nor_flash.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*! \page License 4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright notice, 10 | * this list of conditions and the following disclaimer. 11 | * 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 17 | * from this software without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | */ 30 | #ifndef NOR_FLASH_H 31 | #define NOR_FLASH_H 32 | 33 | #include "at45dbx.h" 34 | 35 | #define SECTOR_SIZE AT45DBX_SECTOR_SIZE 36 | 37 | void flash_init(void); 38 | void flash_write(U32 addr, const U8* buf, U32 len); 39 | void flash_read(U32 addr, U8* buf, U32 len); 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/printf-stdarg.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*! \page License 4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright notice, 10 | * this list of conditions and the following disclaimer. 11 | * 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 17 | * from this software without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | */ 30 | #ifndef PRINTF_STDARG_H 31 | #define PRINTF_STDARG_H 32 | #include 33 | 34 | int printk(const char *format, ...); 35 | int printk_va(char **out, const char *format, va_list args ); 36 | #endif 37 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/startup.c: -------------------------------------------------------------------------------- 1 | /* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*! \page License 4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright notice, 10 | * this list of conditions and the following disclaimer. 11 | * 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 17 | * from this software without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | */ 30 | #include "startup.h" 31 | #include "pm.h" 32 | #include "intc.h" 33 | #include "board.h" 34 | #include "print_funcs.h" 35 | #include "clocks.h" 36 | 37 | 38 | static void init_exceptions(void) 39 | { 40 | extern void _evba; 41 | Set_system_register(AVR32_EVBA, (int)&_evba); 42 | Enable_global_exception(); 43 | } 44 | 45 | static void init_hmatrix(void) 46 | { 47 | union { 48 | unsigned long scfg; 49 | avr32_hmatrix_scfg_t SCFG; 50 | } u_avr32_hmatrix_scfg = { 51 | AVR32_HMATRIX.scfg[AVR32_HMATRIX_SLAVE_FLASH] 52 | }; 53 | u_avr32_hmatrix_scfg.SCFG.defmstr_type = 54 | AVR32_HMATRIX_DEFMSTR_TYPE_LAST_DEFAULT; 55 | AVR32_HMATRIX.scfg[AVR32_HMATRIX_SLAVE_FLASH] = 56 | u_avr32_hmatrix_scfg.scfg; 57 | } 58 | 59 | static void init_interrupts(void) 60 | { 61 | INTC_init_interrupts(); 62 | 63 | //initExtInt(); 64 | 65 | Enable_global_interrupt(); 66 | } 67 | 68 | void startup_init(void) 69 | { 70 | init_exceptions(); 71 | init_hmatrix(); 72 | init_sys_clocks(); 73 | init_interrupts(); 74 | init_dbg_rs232(FPBA_HZ); 75 | } 76 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifi_dnld/src/startup.h: -------------------------------------------------------------------------------- 1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ 2 | 3 | /*! \page License 4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright notice, 10 | * this list of conditions and the following disclaimer. 11 | * 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, 13 | * this list of conditions and the following disclaimer in the documentation 14 | * and/or other materials provided with the distribution. 15 | * 16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived 17 | * from this software without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | */ 30 | #ifndef STARTUP_H 31 | #define STARTUP_H 32 | 33 | void startup_init(void); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /firmwares/wifishield/wifishield.atsln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Atmel Studio Solution File, Format Version 11.00 4 | Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "wifi_dnld", "wifi_dnld\wifi_dnld.cproj", "{EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}" 5 | EndProject 6 | Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "wifiHD", "wifiHD\wifiHD.cproj", "{417E15DB-488A-4B56-8D4E-FBE832B2B649}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug_512|AVR = Debug_512|AVR 11 | Debug|AVR = Debug|AVR 12 | Release_512|AVR = Release_512|AVR 13 | Release|AVR = Release|AVR 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Debug_512|AVR.ActiveCfg = Debug|AVR 17 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Debug_512|AVR.Build.0 = Debug|AVR 18 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Debug|AVR.ActiveCfg = Debug|AVR 19 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Debug|AVR.Build.0 = Debug|AVR 20 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Release_512|AVR.ActiveCfg = Release|AVR 21 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Release_512|AVR.Build.0 = Release|AVR 22 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Release|AVR.ActiveCfg = Release|AVR 23 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Release|AVR.Build.0 = Release|AVR 24 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Debug_512|AVR.ActiveCfg = Debug_512|AVR 25 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Debug_512|AVR.Build.0 = Debug_512|AVR 26 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Debug|AVR.ActiveCfg = Debug|AVR 27 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Debug|AVR.Build.0 = Debug|AVR 28 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Release_512|AVR.ActiveCfg = Release_512|AVR 29 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Release_512|AVR.Build.0 = Release_512|AVR 30 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Release|AVR.ActiveCfg = Release|AVR 31 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Release|AVR.Build.0 = Release|AVR 32 | EndGlobalSection 33 | GlobalSection(SolutionProperties) = preSolution 34 | HideSolutionNode = FALSE 35 | EndGlobalSection 36 | EndGlobal 37 | -------------------------------------------------------------------------------- /libraries/EEPROM/examples/eeprom_clear/eeprom_clear.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * EEPROM Clear 3 | * 4 | * Sets all of the bytes of the EEPROM to 0. 5 | * Please see eeprom_iteration for a more in depth 6 | * look at how to traverse the EEPROM. 7 | * 8 | * This example code is in the public domain. 9 | */ 10 | 11 | #include 12 | 13 | void setup() { 14 | // initialize the LED pin as an output. 15 | pinMode(13, OUTPUT); 16 | 17 | /*** 18 | Iterate through each byte of the EEPROM storage. 19 | 20 | Larger AVR processors have larger EEPROM sizes, E.g: 21 | - Arduino Duemilanove: 512 B EEPROM storage. 22 | - Arduino Uno: 1 kB EEPROM storage. 23 | - Arduino Mega: 4 kB EEPROM storage. 24 | 25 | Rather than hard-coding the length, you should use the pre-provided length function. 26 | This will make your code portable to all AVR processors. 27 | ***/ 28 | 29 | for (int i = 0 ; i < EEPROM.length() ; i++) { 30 | EEPROM.write(i, 0); 31 | } 32 | 33 | // turn the LED on when we're done 34 | digitalWrite(13, HIGH); 35 | } 36 | 37 | void loop() { 38 | /** Empty loop. **/ 39 | } 40 | -------------------------------------------------------------------------------- /libraries/EEPROM/examples/eeprom_crc/eeprom_crc.ino: -------------------------------------------------------------------------------- 1 | /*** 2 | Written by Christopher Andrews. 3 | CRC algorithm generated by pycrc, MIT licence ( https://github.com/tpircher/pycrc ). 4 | 5 | A CRC is a simple way of checking whether data has changed or become corrupted. 6 | This example calculates a CRC value directly on the EEPROM values. 7 | The purpose of this example is to highlight how the EEPROM object can be used just like an array. 8 | ***/ 9 | 10 | #include 11 | #include 12 | 13 | void setup() { 14 | 15 | //Start serial 16 | Serial.begin(9600); 17 | while (!Serial) { 18 | ; // wait for serial port to connect. Needed for native USB port only 19 | } 20 | 21 | //Print length of data to run CRC on. 22 | Serial.print("EEPROM length: "); 23 | Serial.println(EEPROM.length()); 24 | 25 | //Print the result of calling eeprom_crc() 26 | Serial.print("CRC32 of EEPROM data: 0x"); 27 | Serial.println(eeprom_crc(), HEX); 28 | Serial.print("\n\nDone!"); 29 | } 30 | 31 | void loop() { 32 | /* Empty loop */ 33 | } 34 | 35 | unsigned long eeprom_crc(void) { 36 | 37 | const unsigned long crc_table[16] = { 38 | 0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 39 | 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, 40 | 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 41 | 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c 42 | }; 43 | 44 | unsigned long crc = ~0L; 45 | 46 | for (int index = 0 ; index < EEPROM.length() ; ++index) { 47 | crc = crc_table[(crc ^ EEPROM[index]) & 0x0f] ^ (crc >> 4); 48 | crc = crc_table[(crc ^ (EEPROM[index] >> 4)) & 0x0f] ^ (crc >> 4); 49 | crc = ~crc; 50 | } 51 | return crc; 52 | } 53 | -------------------------------------------------------------------------------- /libraries/EEPROM/examples/eeprom_get/eeprom_get.ino: -------------------------------------------------------------------------------- 1 | /*** 2 | eeprom_get example. 3 | 4 | This shows how to use the EEPROM.get() method. 5 | 6 | To pre-set the EEPROM data, run the example sketch eeprom_put. 7 | This sketch will run without it, however, the values shown 8 | will be shown from what ever is already on the EEPROM. 9 | 10 | This may cause the serial object to print out a large string 11 | of garbage if there is no null character inside one of the strings 12 | loaded. 13 | 14 | Written by Christopher Andrews 2015 15 | Released under MIT licence. 16 | ***/ 17 | 18 | #include 19 | 20 | void setup() { 21 | 22 | float f = 0.00f; //Variable to store data read from EEPROM. 23 | int eeAddress = 0; //EEPROM address to start reading from 24 | 25 | Serial.begin(9600); 26 | while (!Serial) { 27 | ; // wait for serial port to connect. Needed for native USB port only 28 | } 29 | Serial.print("Read float from EEPROM: "); 30 | 31 | //Get the float data from the EEPROM at position 'eeAddress' 32 | EEPROM.get(eeAddress, f); 33 | Serial.println(f, 3); //This may print 'ovf, nan' if the data inside the EEPROM is not a valid float. 34 | 35 | /*** 36 | As get also returns a reference to 'f', you can use it inline. 37 | E.g: Serial.print( EEPROM.get( eeAddress, f ) ); 38 | ***/ 39 | 40 | /*** 41 | Get can be used with custom structures too. 42 | I have separated this into an extra function. 43 | ***/ 44 | 45 | secondTest(); //Run the next test. 46 | } 47 | 48 | struct MyObject { 49 | float field1; 50 | byte field2; 51 | char name[10]; 52 | }; 53 | 54 | void secondTest() { 55 | int eeAddress = sizeof(float); //Move address to the next byte after float 'f'. 56 | 57 | MyObject customVar; //Variable to store custom object read from EEPROM. 58 | EEPROM.get(eeAddress, customVar); 59 | 60 | Serial.println("Read custom object from EEPROM: "); 61 | Serial.println(customVar.field1); 62 | Serial.println(customVar.field2); 63 | Serial.println(customVar.name); 64 | } 65 | 66 | void loop() { 67 | /* Empty loop */ 68 | } 69 | -------------------------------------------------------------------------------- /libraries/EEPROM/examples/eeprom_iteration/eeprom_iteration.ino: -------------------------------------------------------------------------------- 1 | /*** 2 | eeprom_iteration example. 3 | 4 | A set of example snippets highlighting the 5 | simplest methods for traversing the EEPROM. 6 | 7 | Running this sketch is not necessary, this is 8 | simply highlighting certain programming methods. 9 | 10 | Written by Christopher Andrews 2015 11 | Released under MIT licence. 12 | ***/ 13 | 14 | #include 15 | 16 | void setup() { 17 | 18 | /*** 19 | Iterate the EEPROM using a for loop. 20 | ***/ 21 | 22 | for (int index = 0 ; index < EEPROM.length() ; index++) { 23 | 24 | //Add one to each cell in the EEPROM 25 | EEPROM[ index ] += 1; 26 | } 27 | 28 | /*** 29 | Iterate the EEPROM using a while loop. 30 | ***/ 31 | 32 | int index = 0; 33 | 34 | while (index < EEPROM.length()) { 35 | 36 | //Add one to each cell in the EEPROM 37 | EEPROM[ index ] += 1; 38 | index++; 39 | } 40 | 41 | /*** 42 | Iterate the EEPROM using a do-while loop. 43 | ***/ 44 | 45 | int idx = 0; //Used 'idx' to avoid name conflict with 'index' above. 46 | 47 | do { 48 | 49 | //Add one to each cell in the EEPROM 50 | EEPROM[ idx ] += 1; 51 | idx++; 52 | } while (idx < EEPROM.length()); 53 | 54 | 55 | } //End of setup function. 56 | 57 | void loop() {} 58 | -------------------------------------------------------------------------------- /libraries/EEPROM/examples/eeprom_put/eeprom_put.ino: -------------------------------------------------------------------------------- 1 | /*** 2 | eeprom_put example. 3 | 4 | This shows how to use the EEPROM.put() method. 5 | Also, this sketch will pre-set the EEPROM data for the 6 | example sketch eeprom_get. 7 | 8 | Note, unlike the single byte version EEPROM.write(), 9 | the put method will use update semantics. As in a byte 10 | will only be written to the EEPROM if the data is actually 11 | different. 12 | 13 | Written by Christopher Andrews 2015 14 | Released under MIT licence. 15 | ***/ 16 | 17 | #include 18 | 19 | struct MyObject { 20 | float field1; 21 | byte field2; 22 | char name[10]; 23 | }; 24 | 25 | void setup() { 26 | 27 | Serial.begin(9600); 28 | while (!Serial) { 29 | ; // wait for serial port to connect. Needed for native USB port only 30 | } 31 | 32 | float f = 123.456f; //Variable to store in EEPROM. 33 | int eeAddress = 0; //Location we want the data to be put. 34 | 35 | 36 | //One simple call, with the address first and the object second. 37 | EEPROM.put(eeAddress, f); 38 | 39 | Serial.println("Written float data type!"); 40 | 41 | /** Put is designed for use with custom structures also. **/ 42 | 43 | //Data to store. 44 | MyObject customVar = { 45 | 3.14f, 46 | 65, 47 | "Working!" 48 | }; 49 | 50 | eeAddress += sizeof(float); //Move address to the next byte after float 'f'. 51 | 52 | EEPROM.put(eeAddress, customVar); 53 | Serial.print("Written custom data type! \n\nView the example sketch eeprom_get to see how you can retrieve the values!"); 54 | } 55 | 56 | void loop() { 57 | /* Empty loop */ 58 | } 59 | -------------------------------------------------------------------------------- /libraries/EEPROM/examples/eeprom_read/eeprom_read.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * EEPROM Read 3 | * 4 | * Reads the value of each byte of the EEPROM and prints it 5 | * to the computer. 6 | * This example code is in the public domain. 7 | */ 8 | 9 | #include 10 | 11 | // start reading from the first byte (address 0) of the EEPROM 12 | int address = 0; 13 | byte value; 14 | 15 | void setup() { 16 | // initialize serial and wait for port to open: 17 | Serial.begin(9600); 18 | while (!Serial) { 19 | ; // wait for serial port to connect. Needed for native USB port only 20 | } 21 | } 22 | 23 | void loop() { 24 | // read a byte from the current address of the EEPROM 25 | value = EEPROM.read(address); 26 | 27 | Serial.print(address); 28 | Serial.print("\t"); 29 | Serial.print(value, DEC); 30 | Serial.println(); 31 | 32 | /*** 33 | Advance to the next address, when at the end restart at the beginning. 34 | 35 | Larger AVR processors have larger EEPROM sizes, E.g: 36 | - Arduino Duemilanove: 512 B EEPROM storage. 37 | - Arduino Uno: 1 kB EEPROM storage. 38 | - Arduino Mega: 4 kB EEPROM storage. 39 | 40 | Rather than hard-coding the length, you should use the pre-provided length function. 41 | This will make your code portable to all AVR processors. 42 | ***/ 43 | address = address + 1; 44 | if (address == EEPROM.length()) { 45 | address = 0; 46 | } 47 | 48 | /*** 49 | As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an 50 | EEPROM address is also doable by a bitwise and of the length - 1. 51 | 52 | ++address &= EEPROM.length() - 1; 53 | ***/ 54 | 55 | delay(500); 56 | } 57 | -------------------------------------------------------------------------------- /libraries/EEPROM/examples/eeprom_update/eeprom_update.ino: -------------------------------------------------------------------------------- 1 | /*** 2 | EEPROM Update method 3 | 4 | Stores values read from analog input 0 into the EEPROM. 5 | These values will stay in the EEPROM when the board is 6 | turned off and may be retrieved later by another sketch. 7 | 8 | If a value has not changed in the EEPROM, it is not overwritten 9 | which would reduce the life span of the EEPROM unnecessarily. 10 | 11 | Released using MIT licence. 12 | ***/ 13 | 14 | #include 15 | 16 | /** the current address in the EEPROM (i.e. which byte we're going to write to next) **/ 17 | int address = 0; 18 | 19 | void setup() { 20 | /** Empty setup **/ 21 | } 22 | 23 | void loop() { 24 | /*** 25 | need to divide by 4 because analog inputs range from 26 | 0 to 1023 and each byte of the EEPROM can only hold a 27 | value from 0 to 255. 28 | ***/ 29 | int val = analogRead(0) / 4; 30 | 31 | /*** 32 | Update the particular EEPROM cell. 33 | these values will remain there when the board is 34 | turned off. 35 | ***/ 36 | EEPROM.update(address, val); 37 | 38 | /*** 39 | The function EEPROM.update(address, val) is equivalent to the following: 40 | 41 | if( EEPROM.read(address) != val ){ 42 | EEPROM.write(address, val); 43 | } 44 | ***/ 45 | 46 | 47 | /*** 48 | Advance to the next address, when at the end restart at the beginning. 49 | 50 | Larger AVR processors have larger EEPROM sizes, E.g: 51 | - Arduino Duemilanove: 512 B EEPROM storage. 52 | - Arduino Uno: 1 kB EEPROM storage. 53 | - Arduino Mega: 4 kB EEPROM storage. 54 | 55 | Rather than hard-coding the length, you should use the pre-provided length function. 56 | This will make your code portable to all AVR processors. 57 | ***/ 58 | address = address + 1; 59 | if (address == EEPROM.length()) { 60 | address = 0; 61 | } 62 | 63 | /*** 64 | As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an 65 | EEPROM address is also doable by a bitwise and of the length - 1. 66 | 67 | ++address &= EEPROM.length() - 1; 68 | ***/ 69 | 70 | delay(100); 71 | } 72 | -------------------------------------------------------------------------------- /libraries/EEPROM/examples/eeprom_write/eeprom_write.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * EEPROM Write 3 | * 4 | * Stores values read from analog input 0 into the EEPROM. 5 | * These values will stay in the EEPROM when the board is 6 | * turned off and may be retrieved later by another sketch. 7 | */ 8 | 9 | #include 10 | 11 | /** the current address in the EEPROM (i.e. which byte we're going to write to next) **/ 12 | int addr = 0; 13 | 14 | void setup() { 15 | /** Empty setup. **/ 16 | } 17 | 18 | void loop() { 19 | /*** 20 | Need to divide by 4 because analog inputs range from 21 | 0 to 1023 and each byte of the EEPROM can only hold a 22 | value from 0 to 255. 23 | ***/ 24 | 25 | int val = analogRead(0) / 4; 26 | 27 | /*** 28 | Write the value to the appropriate byte of the EEPROM. 29 | these values will remain there when the board is 30 | turned off. 31 | ***/ 32 | 33 | EEPROM.write(addr, val); 34 | 35 | /*** 36 | Advance to the next address, when at the end restart at the beginning. 37 | 38 | Larger AVR processors have larger EEPROM sizes, E.g: 39 | - Arduino Duemilanove: 512 B EEPROM storage. 40 | - Arduino Uno: 1 kB EEPROM storage. 41 | - Arduino Mega: 4 kB EEPROM storage. 42 | 43 | Rather than hard-coding the length, you should use the pre-provided length function. 44 | This will make your code portable to all AVR processors. 45 | ***/ 46 | addr = addr + 1; 47 | if (addr == EEPROM.length()) { 48 | addr = 0; 49 | } 50 | 51 | /*** 52 | As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an 53 | EEPROM address is also doable by a bitwise and of the length - 1. 54 | 55 | ++addr &= EEPROM.length() - 1; 56 | ***/ 57 | 58 | 59 | delay(100); 60 | } 61 | -------------------------------------------------------------------------------- /libraries/EEPROM/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For EEPROM 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | EEPROM KEYWORD1 10 | EERef KEYWORD1 11 | EEPtr KEYWORD2 12 | 13 | ####################################### 14 | # Methods and Functions (KEYWORD2) 15 | ####################################### 16 | 17 | update KEYWORD2 18 | 19 | ####################################### 20 | # Constants (LITERAL1) 21 | ####################################### 22 | 23 | -------------------------------------------------------------------------------- /libraries/EEPROM/library.properties: -------------------------------------------------------------------------------- 1 | name=EEPROM 2 | version=2.0 3 | author=Arduino, Christopher Andrews 4 | maintainer=Arduino 5 | sentence=Enables reading and writing to the permanent board storage. 6 | paragraph=This library allows to read and write data in a memory type, the EEPROM, that keeps its content also when the board is powered off. The amount of EEPROM available depends on the microcontroller type. 7 | category=Data Storage 8 | url=http://www.arduino.cc/en/Reference/EEPROM 9 | architectures=avr 10 | 11 | -------------------------------------------------------------------------------- /libraries/HID/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For HID 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | HID KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | begin KEYWORD2 15 | SendReport KEYWORD2 16 | AppendDescriptor KEYWORD2 17 | 18 | ####################################### 19 | # Constants (LITERAL1) 20 | ####################################### 21 | HID_TX LITERAL1 -------------------------------------------------------------------------------- /libraries/HID/library.properties: -------------------------------------------------------------------------------- 1 | name=HID 2 | version=1.0 3 | author=Arduino 4 | maintainer=Arduino 5 | sentence=Module for PluggableUSB infrastructure. Exposes an API for devices like Keyboards, Mice and Gamepads. 6 | paragraph= 7 | category=Communication 8 | url=http://www.arduino.cc/en/Reference/HID 9 | architectures=avr 10 | -------------------------------------------------------------------------------- /libraries/SPI/examples/DigitalPotControl/DigitalPotControl.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Digital Pot Control 3 | 4 | This example controls an Analog Devices AD5206 digital potentiometer. 5 | The AD5206 has 6 potentiometer channels. Each channel's pins are labeled 6 | A - connect this to voltage 7 | W - this is the pot's wiper, which changes when you set it 8 | B - connect this to ground. 9 | 10 | The AD5206 is SPI-compatible,and to command it, you send two bytes, 11 | one with the channel number (0 - 5) and one with the resistance value for the 12 | channel (0 - 255). 13 | 14 | The circuit: 15 | * All A pins of AD5206 connected to +5V 16 | * All B pins of AD5206 connected to ground 17 | * An LED and a 220-ohm resistor in series connected from each W pin to ground 18 | * CS - to digital pin 10 (SS pin) 19 | * SDI - to digital pin 11 (MOSI pin) 20 | * CLK - to digital pin 13 (SCK pin) 21 | 22 | created 10 Aug 2010 23 | by Tom Igoe 24 | 25 | Thanks to Heather Dewey-Hagborg for the original tutorial, 2005 26 | 27 | */ 28 | 29 | 30 | // include the SPI library: 31 | #include 32 | 33 | 34 | // set pin 10 as the slave select for the digital pot: 35 | const int slaveSelectPin = 10; 36 | 37 | void setup() { 38 | // set the slaveSelectPin as an output: 39 | pinMode(slaveSelectPin, OUTPUT); 40 | // initialize SPI: 41 | SPI.begin(); 42 | } 43 | 44 | void loop() { 45 | // go through the six channels of the digital pot: 46 | for (int channel = 0; channel < 6; channel++) { 47 | // change the resistance on this channel from min to max: 48 | for (int level = 0; level < 255; level++) { 49 | digitalPotWrite(channel, level); 50 | delay(10); 51 | } 52 | // wait a second at the top: 53 | delay(100); 54 | // change the resistance on this channel from max to min: 55 | for (int level = 0; level < 255; level++) { 56 | digitalPotWrite(channel, 255 - level); 57 | delay(10); 58 | } 59 | } 60 | 61 | } 62 | 63 | void digitalPotWrite(int address, int value) { 64 | // take the SS pin low to select the chip: 65 | digitalWrite(slaveSelectPin, LOW); 66 | delay(100); 67 | // send in the address and value via SPI: 68 | SPI.transfer(address); 69 | SPI.transfer(value); 70 | delay(100); 71 | // take the SS pin high to de-select the chip: 72 | digitalWrite(slaveSelectPin, HIGH); 73 | } 74 | -------------------------------------------------------------------------------- /libraries/SPI/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For SPI 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | SPI KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | begin KEYWORD2 15 | end KEYWORD2 16 | transfer KEYWORD2 17 | setBitOrder KEYWORD2 18 | setDataMode KEYWORD2 19 | setClockDivider KEYWORD2 20 | 21 | 22 | ####################################### 23 | # Constants (LITERAL1) 24 | ####################################### 25 | SPI_CLOCK_DIV4 LITERAL1 26 | SPI_CLOCK_DIV16 LITERAL1 27 | SPI_CLOCK_DIV64 LITERAL1 28 | SPI_CLOCK_DIV128 LITERAL1 29 | SPI_CLOCK_DIV2 LITERAL1 30 | SPI_CLOCK_DIV8 LITERAL1 31 | SPI_CLOCK_DIV32 LITERAL1 32 | SPI_CLOCK_DIV64 LITERAL1 33 | SPI_MODE0 LITERAL1 34 | SPI_MODE1 LITERAL1 35 | SPI_MODE2 LITERAL1 36 | SPI_MODE3 LITERAL1 -------------------------------------------------------------------------------- /libraries/SPI/library.properties: -------------------------------------------------------------------------------- 1 | name=SPI 2 | version=1.0 3 | author=Arduino 4 | maintainer=Arduino 5 | sentence=Enables the communication with devices that use the Serial Peripheral Interface (SPI) Bus. 6 | paragraph=SPI is a synchronous serial data protocol used by microcontrollers for communicating with one or more peripheral devices quickly over short distances. It uses three lines common to all devices (MISO, MOSI and SCK) and one specific for each device. 7 | category=Communication 8 | url=http://www.arduino.cc/en/Reference/SPI 9 | architectures=avr 10 | 11 | -------------------------------------------------------------------------------- /libraries/SoftwareSerial/examples/SoftwareSerialExample/SoftwareSerialExample.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Software serial multiple serial test 3 | 4 | Receives from the hardware serial, sends to software serial. 5 | Receives from software serial, sends to hardware serial. 6 | 7 | The circuit: 8 | * RX is digital pin 10 (connect to TX of other device) 9 | * TX is digital pin 11 (connect to RX of other device) 10 | 11 | Note: 12 | Not all pins on the Mega and Mega 2560 support change interrupts, 13 | so only the following can be used for RX: 14 | 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 15 | 16 | Not all pins on the Leonardo and Micro support change interrupts, 17 | so only the following can be used for RX: 18 | 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). 19 | 20 | created back in the mists of time 21 | modified 25 May 2012 22 | by Tom Igoe 23 | based on Mikal Hart's example 24 | 25 | This example code is in the public domain. 26 | 27 | */ 28 | #include 29 | 30 | SoftwareSerial mySerial(10, 11); // RX, TX 31 | 32 | void setup() { 33 | // Open serial communications and wait for port to open: 34 | Serial.begin(57600); 35 | while (!Serial) { 36 | ; // wait for serial port to connect. Needed for native USB port only 37 | } 38 | 39 | 40 | Serial.println("Goodnight moon!"); 41 | 42 | // set the data rate for the SoftwareSerial port 43 | mySerial.begin(4800); 44 | mySerial.println("Hello, world?"); 45 | } 46 | 47 | void loop() { // run over and over 48 | if (mySerial.available()) { 49 | Serial.write(mySerial.read()); 50 | } 51 | if (Serial.available()) { 52 | mySerial.write(Serial.read()); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Software serial multiple serial test 3 | 4 | Receives from the two software serial ports, 5 | sends to the hardware serial port. 6 | 7 | In order to listen on a software port, you call port.listen(). 8 | When using two software serial ports, you have to switch ports 9 | by listen()ing on each one in turn. Pick a logical time to switch 10 | ports, like the end of an expected transmission, or when the 11 | buffer is empty. This example switches ports when there is nothing 12 | more to read from a port 13 | 14 | The circuit: 15 | Two devices which communicate serially are needed. 16 | * First serial device's TX attached to digital pin 10(RX), RX to pin 11(TX) 17 | * Second serial device's TX attached to digital pin 8(RX), RX to pin 9(TX) 18 | 19 | Note: 20 | Not all pins on the Mega and Mega 2560 support change interrupts, 21 | so only the following can be used for RX: 22 | 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 23 | 24 | Not all pins on the Leonardo support change interrupts, 25 | so only the following can be used for RX: 26 | 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). 27 | 28 | created 18 Apr. 2011 29 | modified 19 March 2016 30 | by Tom Igoe 31 | based on Mikal Hart's twoPortRXExample 32 | 33 | This example code is in the public domain. 34 | 35 | */ 36 | 37 | #include 38 | // software serial #1: RX = digital pin 10, TX = digital pin 11 39 | SoftwareSerial portOne(10, 11); 40 | 41 | // software serial #2: RX = digital pin 8, TX = digital pin 9 42 | // on the Mega, use other pins instead, since 8 and 9 don't work on the Mega 43 | SoftwareSerial portTwo(8, 9); 44 | 45 | void setup() { 46 | // Open serial communications and wait for port to open: 47 | Serial.begin(9600); 48 | while (!Serial) { 49 | ; // wait for serial port to connect. Needed for native USB port only 50 | } 51 | 52 | 53 | // Start each software serial port 54 | portOne.begin(9600); 55 | portTwo.begin(9600); 56 | } 57 | 58 | void loop() { 59 | // By default, the last initialized port is listening. 60 | // when you want to listen on a port, explicitly select it: 61 | portOne.listen(); 62 | Serial.println("Data from port one:"); 63 | // while there is data coming in, read it 64 | // and send to the hardware serial port: 65 | while (portOne.available() > 0) { 66 | char inByte = portOne.read(); 67 | Serial.write(inByte); 68 | } 69 | 70 | // blank line to separate data from the two ports: 71 | Serial.println(); 72 | 73 | // Now listen on the second port 74 | portTwo.listen(); 75 | // while there is data coming in, read it 76 | // and send to the hardware serial port: 77 | Serial.println("Data from port two:"); 78 | while (portTwo.available() > 0) { 79 | char inByte = portTwo.read(); 80 | Serial.write(inByte); 81 | } 82 | 83 | // blank line to separate data from the two ports: 84 | Serial.println(); 85 | } 86 | -------------------------------------------------------------------------------- /libraries/SoftwareSerial/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map for SoftwareSerial 3 | # (formerly NewSoftSerial) 4 | ####################################### 5 | 6 | ####################################### 7 | # Datatypes (KEYWORD1) 8 | ####################################### 9 | 10 | SoftwareSerial KEYWORD1 11 | 12 | ####################################### 13 | # Methods and Functions (KEYWORD2) 14 | ####################################### 15 | 16 | begin KEYWORD2 17 | end KEYWORD2 18 | read KEYWORD2 19 | write KEYWORD2 20 | available KEYWORD2 21 | isListening KEYWORD2 22 | overflow KEYWORD2 23 | flush KEYWORD2 24 | listen KEYWORD2 25 | peek KEYWORD2 26 | 27 | ####################################### 28 | # Constants (LITERAL1) 29 | ####################################### 30 | 31 | -------------------------------------------------------------------------------- /libraries/SoftwareSerial/library.properties: -------------------------------------------------------------------------------- 1 | name=SoftwareSerial 2 | version=1.0 3 | author=Arduino 4 | maintainer=Arduino 5 | sentence=Enables serial communication on any digital pin. 6 | paragraph=The SoftwareSerial library has been developed to allow serial communication on any digital pin of the board, using software to replicate the functionality of the hardware UART. It is possible to have multiple software serial ports with speeds up to 115200 bps. 7 | category=Communication 8 | url=http://www.arduino.cc/en/Reference/SoftwareSerial 9 | architectures=avr 10 | 11 | -------------------------------------------------------------------------------- /libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino: -------------------------------------------------------------------------------- 1 | // I2C Digital Potentiometer 2 | // by Nicholas Zambetti 3 | // and Shawn Bonkowski 4 | 5 | // Demonstrates use of the Wire library 6 | // Controls AD5171 digital potentiometer via I2C/TWI 7 | 8 | // Created 31 March 2006 9 | 10 | // This example code is in the public domain. 11 | 12 | 13 | #include 14 | 15 | void setup() { 16 | Wire.begin(); // join I2C bus (address optional for master) 17 | } 18 | 19 | byte val = 0; 20 | 21 | void loop() { 22 | Wire.beginTransmission(44); // transmit to device #44 (0x2c) 23 | // device address is specified in datasheet 24 | Wire.write(byte(0x00)); // sends instruction byte 25 | Wire.write(val); // sends potentiometer value byte 26 | Wire.endTransmission(); // stop transmitting 27 | 28 | val++; // increment value 29 | if (val == 64) { // if reached 64th position (max) 30 | val = 0; // start over from lowest value 31 | } 32 | delay(500); 33 | } 34 | -------------------------------------------------------------------------------- /libraries/Wire/examples/i2c_scanner/i2c_scanner.ino: -------------------------------------------------------------------------------- 1 | // -------------------------------------- 2 | // i2c_scanner 3 | // 4 | // Version 1 5 | // This program (or code that looks like it) 6 | // can be found in many places. 7 | // For example on the Arduino.cc forum. 8 | // The original author is not known. 9 | // Version 2, June 2012, Using Arduino 1.0.1 10 | // Adapted to be as simple as possible by Arduino.cc user Krodal 11 | // Version 3, Feb 26 2013 12 | // V3 by louarnold 13 | // Version 4, March 3, 2013, Using Arduino 1.0.3 14 | // by Arduino.cc user Krodal. 15 | // Changes by louarnold removed. 16 | // Scanning addresses changed from 0...127 to 1...119, 17 | // according to the i2c scanner by Nick Gammon 18 | // https://www.gammon.com.au/forum/?id=10896 19 | // Version 5, March 28, 2013 20 | // As version 4, but address scans now to 127. 21 | // A sensor seems to use address 120. 22 | // Version 6, November 27, 2015. 23 | // Added waiting for the Leonardo serial communication. 24 | // 25 | // 26 | // This sketch tests the standard 7-bit addresses 27 | // Devices with higher bit address might not be seen properly. 28 | // 29 | 30 | #include 31 | 32 | void setup() { 33 | Wire.begin(); 34 | 35 | Serial.begin(9600); 36 | while (!Serial); // Leonardo: wait for Serial Monitor 37 | Serial.println("\nI2C Scanner"); 38 | } 39 | 40 | void loop() { 41 | int nDevices = 0; 42 | 43 | Serial.println("Scanning..."); 44 | 45 | for (byte address = 1; address < 127; ++address) { 46 | // The i2c_scanner uses the return value of 47 | // the Wire.endTransmission to see if 48 | // a device did acknowledge to the address. 49 | Wire.beginTransmission(address); 50 | byte error = Wire.endTransmission(); 51 | 52 | if (error == 0) { 53 | Serial.print("I2C device found at address 0x"); 54 | if (address < 16) { 55 | Serial.print("0"); 56 | } 57 | Serial.print(address, HEX); 58 | Serial.println(" !"); 59 | 60 | ++nDevices; 61 | } else if (error == 4) { 62 | Serial.print("Unknown error at address 0x"); 63 | if (address < 16) { 64 | Serial.print("0"); 65 | } 66 | Serial.println(address, HEX); 67 | } 68 | } 69 | if (nDevices == 0) { 70 | Serial.println("No I2C devices found\n"); 71 | } else { 72 | Serial.println("done\n"); 73 | } 74 | delay(5000); // Wait 5 seconds for next scan 75 | } 76 | -------------------------------------------------------------------------------- /libraries/Wire/examples/master_reader/master_reader.ino: -------------------------------------------------------------------------------- 1 | // Wire Master Reader 2 | // by Nicholas Zambetti 3 | 4 | // Demonstrates use of the Wire library 5 | // Reads data from an I2C/TWI slave device 6 | // Refer to the "Wire Slave Sender" example for use with this 7 | 8 | // Created 29 March 2006 9 | 10 | // This example code is in the public domain. 11 | 12 | 13 | #include 14 | 15 | void setup() { 16 | Wire.begin(); // join I2C bus (address optional for master) 17 | Serial.begin(9600); // start serial for output 18 | } 19 | 20 | void loop() { 21 | Wire.requestFrom(8, 6); // request 6 bytes from slave device #8 22 | 23 | while (Wire.available()) { // slave may send less than requested 24 | char c = Wire.read(); // receive a byte as character 25 | Serial.print(c); // print the character 26 | } 27 | 28 | delay(500); 29 | } 30 | -------------------------------------------------------------------------------- /libraries/Wire/examples/master_writer/master_writer.ino: -------------------------------------------------------------------------------- 1 | // Wire Master Writer 2 | // by Nicholas Zambetti 3 | 4 | // Demonstrates use of the Wire library 5 | // Writes data to an I2C/TWI slave device 6 | // Refer to the "Wire Slave Receiver" example for use with this 7 | 8 | // Created 29 March 2006 9 | 10 | // This example code is in the public domain. 11 | 12 | 13 | #include 14 | 15 | void setup() { 16 | Wire.begin(); // join I2C bus (address optional for master) 17 | } 18 | 19 | byte x = 0; 20 | 21 | void loop() { 22 | Wire.beginTransmission(8); // transmit to device #8 23 | Wire.write("x is "); // sends five bytes 24 | Wire.write(x); // sends one byte 25 | Wire.endTransmission(); // stop transmitting 26 | 27 | x++; 28 | delay(500); 29 | } 30 | -------------------------------------------------------------------------------- /libraries/Wire/examples/slave_receiver/slave_receiver.ino: -------------------------------------------------------------------------------- 1 | // Wire Slave Receiver 2 | // by Nicholas Zambetti 3 | 4 | // Demonstrates use of the Wire library 5 | // Receives data as an I2C/TWI slave device 6 | // Refer to the "Wire Master Writer" example for use with this 7 | 8 | // Created 29 March 2006 9 | 10 | // This example code is in the public domain. 11 | 12 | 13 | #include 14 | 15 | void setup() { 16 | Wire.begin(8); // join I2C bus with address #8 17 | Wire.onReceive(receiveEvent); // register event 18 | Serial.begin(9600); // start serial for output 19 | } 20 | 21 | void loop() { 22 | delay(100); 23 | } 24 | 25 | // function that executes whenever data is received from master 26 | // this function is registered as an event, see setup() 27 | void receiveEvent(int howMany) { 28 | while (1 < Wire.available()) { // loop through all but the last 29 | char c = Wire.read(); // receive byte as a character 30 | Serial.print(c); // print the character 31 | } 32 | int x = Wire.read(); // receive byte as an integer 33 | Serial.println(x); // print the integer 34 | } 35 | -------------------------------------------------------------------------------- /libraries/Wire/examples/slave_sender/slave_sender.ino: -------------------------------------------------------------------------------- 1 | // Wire Slave Sender 2 | // by Nicholas Zambetti 3 | 4 | // Demonstrates use of the Wire library 5 | // Sends data as an I2C/TWI slave device 6 | // Refer to the "Wire Master Reader" example for use with this 7 | 8 | // Created 29 March 2006 9 | 10 | // This example code is in the public domain. 11 | 12 | 13 | #include 14 | 15 | void setup() { 16 | Wire.begin(8); // join I2C bus with address #8 17 | Wire.onRequest(requestEvent); // register event 18 | } 19 | 20 | void loop() { 21 | delay(100); 22 | } 23 | 24 | // function that executes whenever data is requested by master 25 | // this function is registered as an event, see setup() 26 | void requestEvent() { 27 | Wire.write("hello "); // respond with message of 6 bytes 28 | // as expected by master 29 | } 30 | -------------------------------------------------------------------------------- /libraries/Wire/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For Wire 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | Wire KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | begin KEYWORD2 16 | setClock KEYWORD2 17 | beginTransmission KEYWORD2 18 | endTransmission KEYWORD2 19 | requestFrom KEYWORD2 20 | onReceive KEYWORD2 21 | onRequest KEYWORD2 22 | 23 | ####################################### 24 | # Constants (LITERAL1) 25 | ####################################### 26 | 27 | -------------------------------------------------------------------------------- /libraries/Wire/library.properties: -------------------------------------------------------------------------------- 1 | name=Wire 2 | version=1.0 3 | author=Arduino 4 | maintainer=Arduino 5 | sentence=This library allows you to communicate with I2C and Two Wire Interface devices. 6 | paragraph=It allows the communication with I2C devices like temperature sensors, realtime clocks and many others using SDA (Data Line) and SCL (Clock Line). 7 | category=Communication 8 | url=http://www.arduino.cc/en/Reference/Wire 9 | architectures=avr 10 | 11 | -------------------------------------------------------------------------------- /libraries/Wire/src/utility/twi.h: -------------------------------------------------------------------------------- 1 | /* 2 | twi.h - TWI/I2C library for Wiring & Arduino 3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | 19 | Modified 2020 by Greyson Christoforo (grey@christoforo.net) to implement timeouts 20 | */ 21 | 22 | #ifndef twi_h 23 | #define twi_h 24 | 25 | #include 26 | 27 | //#define ATMEGA8 28 | 29 | #ifndef TWI_FREQ 30 | #define TWI_FREQ 100000L 31 | #endif 32 | 33 | #ifndef TWI_BUFFER_LENGTH 34 | #define TWI_BUFFER_LENGTH 32 35 | #endif 36 | 37 | #define TWI_READY 0 38 | #define TWI_MRX 1 39 | #define TWI_MTX 2 40 | #define TWI_SRX 3 41 | #define TWI_STX 4 42 | 43 | void twi_init(void); 44 | void twi_disable(void); 45 | void twi_setAddress(uint8_t); 46 | void twi_setFrequency(uint32_t); 47 | uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t, uint8_t); 48 | uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t, uint8_t); 49 | uint8_t twi_transmit(const uint8_t*, uint8_t); 50 | void twi_attachSlaveRxEvent( void (*)(uint8_t*, int) ); 51 | void twi_attachSlaveTxEvent( void (*)(void) ); 52 | void twi_reply(uint8_t); 53 | void twi_stop(void); 54 | void twi_releaseBus(void); 55 | void twi_setTimeoutInMicros(uint32_t, bool); 56 | void twi_handleTimeout(bool); 57 | bool twi_manageTimeoutFlag(bool); 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /post_install.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | set ARGS=/LM /SW /SA 3 | if "%PROCESSOR_ARCHITECTURE%" == "AMD64" ( 4 | drivers\dpinst-amd64.exe %ARGS% 5 | ) ELSE IF "%PROCESSOR_ARCHITEW6432%" == "AMD64" ( 6 | drivers\dpinst-amd64.exe %ARGS% 7 | ) ELSE ( 8 | drivers\dpinst-x86.exe %ARGS% 9 | ) 10 | 11 | REM dpinst /PATH has problems with relative paths, so use absolute path. 12 | if "%PROCESSOR_ARCHITECTURE%" == "AMD64" ( 13 | drivers\dpinst-amd64.exe /PATH "%cd%\drivers\gemma" %ARGS% 14 | ) ELSE IF "%PROCESSOR_ARCHITEW6432%" == "AMD64" ( 15 | drivers\dpinst-amd64.exe /PATH "%cd%\drivers\gemma" %ARGS% 16 | ) ELSE ( 17 | drivers\dpinst-x86.exe /PATH "%cd%\drivers\gemma" %ARGS% 18 | ) 19 | 20 | exit /b 0 21 | -------------------------------------------------------------------------------- /variants/eightanaloginputs/pins_arduino.h: -------------------------------------------------------------------------------- 1 | /* 2 | pins_arduino.h - Pin definition functions for Arduino 3 | Part of Arduino - http://www.arduino.cc/ 4 | 5 | Copyright (c) 2007 David A. Mellis 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General 18 | Public License along with this library; if not, write to the 19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330, 20 | Boston, MA 02111-1307 USA 21 | */ 22 | 23 | #include "../standard/pins_arduino.h" 24 | #undef NUM_ANALOG_INPUTS 25 | #define NUM_ANALOG_INPUTS 8 26 | -------------------------------------------------------------------------------- /variants/micro/pins_arduino.h: -------------------------------------------------------------------------------- 1 | /* 2 | pins_arduino.h - Pin definition functions for Arduino 3 | Part of Arduino - http://www.arduino.cc/ 4 | 5 | Copyright (c) 2007 David A. Mellis 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General 18 | Public License along with this library; if not, write to the 19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330, 20 | Boston, MA 02111-1307 USA 21 | */ 22 | 23 | #include "../leonardo/pins_arduino.h" 24 | 25 | #undef TXLED0 26 | #undef TXLED1 27 | #undef RXLED0 28 | #undef RXLED1 29 | #undef TX_RX_LED_INIT 30 | 31 | #define TXLED0 PORTD &= ~(1<<5) 32 | #define TXLED1 PORTD |= (1<<5) 33 | #define RXLED0 PORTB &= ~(1<<0) 34 | #define RXLED1 PORTB |= (1<<0) 35 | #define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0), TXLED0, RXLED0 36 | -------------------------------------------------------------------------------- /variants/yun/pins_arduino.h: -------------------------------------------------------------------------------- 1 | /* 2 | pins_arduino.h - Pin definition functions for Arduino 3 | Part of Arduino - http://www.arduino.cc/ 4 | 5 | Copyright (c) 2013 Arduino LLC 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General 18 | Public License along with this library; if not, write to the 19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330, 20 | Boston, MA 02111-1307 USA 21 | */ 22 | 23 | #include "../leonardo/pins_arduino.h" 24 | 25 | // These serial port names are intended to allow libraries and architecture-neutral 26 | // sketches to automatically default to the correct port name for a particular type 27 | // of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, 28 | // the first hardware serial port whose RX/TX pins are not dedicated to another use. 29 | // 30 | // SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor 31 | // 32 | // SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial 33 | // 34 | // SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library 35 | // 36 | // SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. 37 | // 38 | // SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX 39 | // pins are NOT connected to anything by default. 40 | #define SERIAL_PORT_LINUXBRIDGE Serial1 41 | 42 | // defined in the Leonardo variant 43 | #undef SERIAL_PORT_HARDWARE_OPEN 44 | 45 | --------------------------------------------------------------------------------