Arduino Install Mac

  • 1 Go to the Arduino downloads page and click the Mac OS X link to download a.zip file containing a copy of the Arduino application for Mac OS X. Currently, the file is 71.1MB. That’s quite a large file, so it may take a while to download. After you’ve finished downloading, double-click the file to the Arduino application and place it in.
  • Download the Arduino Software (IDE) Get the latest version from the download page. The file is in Zip format; if you use Safari it will be automatically expanded. If you use a different browser you may need to extract it manually.
  • Installing the ESP32 Board in Arduino IDE (Windows, Mac OS X, Linux) Cara Install Board ESP32 di Arduino IDE March 04, 2021 0 Comment Tutorial Arduino mengakses Sensor Ultrasonic Pingg July 27, 2016 10 Comment.

We will learn how to install the ESP32 board in Arduino IDE 2.0 whether you’re using Windows, Mac OS X or Linux. More ESP8266 projects you can find here. Tag: Basics Project 140a Installing the ESP32 Board in Arduino IDE 2.0 (Windows, Mac OS X, Linux). Download the Arduino Software (IDE) Get the latest version from the download page. You can choose between the Installer (.exe) and the Zip packages. We suggest you use the first one that installs directly everything you need to use the Arduino Software (IDE), including the drivers.

HomeProductsTeensyBlogForum

Install Arduino Library Mac Os

You are here:TeensyTeensyduinoDownload+Install
PJRC Store
Teensy 4.1, $26.85
Teensy 4.0, $19.95
Teensy 3.6, $29.25
Teensy 3.5, $24.25
Teensy 3.2, $19.80
Teensy LC, $11.65
Teensy 2.0, $16.00
Teensy++ 2.0, $24.00
Teensy
Main Page
Hardware
Getting Started
Tutorial
How-To Tips
Code Library
Projects
Teensyduino
Main
Download+Install
Basic Usage
Digital I/O
PWM & Tone
Timing
USB Serial
USB Keyboard
USB Mouse
USB Joystick
USB MIDI
USB Flight Sim
Serial
Libraries
Reference

Teensyduino is a software add-on for the Arduino software.

Teensyduino Files:Other Files:

Teensyduino 1.54 supports Arduino versions 1.8.5 and 1.8.9 and 1.8.12 and 1.8.13 and 1.8.14 and 1.8.15.
Future versions of Teensyduino will drop support for Arduino 1.8.14
On Windows, the Arduino installer and ZIP are supported, but the Windows store 'app' is not.
Windows 10 provides much better USB support than Windows 7, 8 & XP.
On Linux, PJRC tests X86 & AARCH64 on Ubuntu and ARM32 on Raspbian. Other distros may work, but are not supported.

Windows Installation

  1. Download and run Arduino's Windows Installer, for Windows 7 and up.
    Note: The Arduino 'Windows app' from the Microsoft Store is incompatible with Teensyduino.
  2. Download and run the Teensyduino installer.
  3. (optional) Check for anti-virus performance problems.

Macintosh Installation

  1. Download Teensyduino for MacOS 10.10 - 11.x.
    Note: This download is a complete copy of all software. No separate installer is used.
  2. On first use, you must allow access to your Documents folder.

Linux Installation

  1. Download the Linux udev rules (link at the top of this page) and copy the file to /etc/udev/rules.d.
  2. Download and extract one of Arduino's Linux packages.
    Note: Arduino from Linux distro packages is not supported.
  3. Download the corresponding Teensyduino installer.
  4. Run the installer by adding execute permission and then execute it.

Windows Non-Admin Installation

  1. Download Arduino's Windows ZIP file for non admin install.
  2. Extract the ZIP file, and remember the extracted location.
  3. Download the Teensyduino installer. Save the file, do not run.
  4. Rename TeensyduinoInstall.exe to Teensyduino.exe.
    Note: Removing 'Install' from the name causes Windows to treat the installer differently!
  5. Run the renamed Teensyduino installer. You will need to select the extracted Arduino location.
  6. (optional) Check for anti-virus performance problems.

Old Macintosh Installation

  1. Download Arduino 1.8.5 from Arduino's Previous IDE Releases Page.
  2. Move Arduino to Applications.
  3. Run Arduino and confirm running software downloaded from the internet.
    Note: This must be done before installing Teensyduino, to avoid a corrupted install.
  4. Download and run the Teensyduino Installer for MacOS 10.7 - 10.14.

Teensyduino Graphical Installer

The Teensyduino installer adds the necessary support files to Arduino.Your copy ofArduino must be one of the supported versionslisted on this first screen.On Windows, this driver allows to you access the serial device type.This step is not necessary and does not appear on Mac OS-X and Linux.Windows 10 has the proper driver, which is automatically detected.Select the location where you extracted the Arduino Software.On Windows, the location will default to the location whereArduino's installer places the software.

The Next button will only activate when a supported version of the Arduino Software is found.If the Next button will not activate, click the '?' button formore information.Teensyduino can automatically install many libraries that are testedand verified to work with Teensy. Usually it's best to allow theinstaller to add them all.The installer will copy all the necessary files into your ArduinoSoftware, when you click the 'Install' button.When installation is finished, you will see this final screen. Justclick Done to quit the installer.When using Arduino, be sure to select Teensy in the Tools > Boardsmenu. Arduino's File > Examples menu automatically changes toshow the libraries and examples for the selected board.

Command Line Install

The Teensyduino installer supports a non-graphical command line install,using '--dir=<directory>' to specify Arduino's location.

For example, the following commands can be used to install Arduino andTeensyduino on a Linux 64 bit x86 system, and compile usingthe sample makefile for Teensy 4.0.

Teensyduino History

Version 1.54

Support for MicroMod

Fix SPI with DMA to cached memory on Teensy 4.x

Support alternate Wire3 pins on Teensy 4.1

Improve map() function

Show Serial.printf format warnings

Fixes for HAB secure boot

Update imxrt.h comments for RT1060 Reference Manual, Rev 2

AsyncAudioInputSPDIF3 bugs fixed

synth_tonesweep update?

NativeEthernet & FNET update

Update ILI9341_t3

Update QuadEncoder

Update RadioHead

Update ST7735_t3

Update USBHost_t36

XPT2046_Touchscreen

Wait up to 6.2 seconds for Teensy to reboot (was 5 seconds)

Fix 1.54-beta1 startup problem on Teensy 4.1

EEPROM put/get handle String and warn for incompatible classes (luni64)

Add _extram_start & _extram_end for Teensy 4.1

Update Bounce2

Add File base class and FS.h header

Add SdFat-beta library

Replace SD library with wrapper which uses SdFat

SoftwareSerial improvements on Teensy 3.5, 3.6, 4.1

Update NativeEthernet

Audio: Improve simultaneous WAV playing & add SimultaneousPlay test

SD default to 16 MHz SPI clock

Serial Monitor fix double spaced lines copied to clipboard

Serial Monitor avoid auto horizontal scroll on very long lines

Serial Monitor fix memory leak on MacOS

File & FS classes improved - many changes!

Add LittleFS library - lots of new stuff here...

FS open() supports FILE_WRITE_BEGIN mode

SdFat-beta renamed to SdFat

Add delayNanoseconds() on Teensy 2.0, LC, 3.x

Print class support for 64 bit integers

DMAChannel attachInterrupt(isr, priority) (WMXZ)

Update NativeEthernet

SD listfiles example improved

Fix Audio PT8211 issue on Teensy 4.x

Improve Audio simultaneous WAV playing

Fix USB issue for MTP to run at 600 MHz

Fix double space on copy from serial monitor on Windows

Configurable MIDIx16 port names (vjmuzik)

Support for no USB (vjmuzik)

Fix multiple def with EEPROM put() & get()

Update FlexCAN_t4

Update NativeEthernet

Update RadioHead

Update ST7735_t3

Update SdFat to 2.0.5.beta1

Wire lib Scanner example updated

Audio waveform synth add bandwidth limited waveforms (Mark Tillotson)

Fix audio design tool conflict with DAC & PWM outputs (manicken)

Fix audio compile errors with Teensy LC (Frank B)

Add I2S output for Teensy LC (Frank B)

Add PT8211 output for Teensy LC (Frank B)

Add support for SGTL5000 in I2S master mode

Fix bug in SGTL5000 BiQaud filter calculation (Graham Whaley)

Fix minor bug in S/PDIF resampling (alex6679)

Add Play/Pause function to WAV player (standarddeviant)

Fix waveform synth discontinuities in phase modulation (Mark Tillotson)

Fix buzzing noise in FreeVerb due to numerical truncation (matt venn)

SGTL5000 support for switching headphones to input signal (Jurgen Beliën)

Add JavaScript version of wav2sketch (Matt Bradshaw)

Add LittleFS NAND & FRAM support (MJS513)

Add LittleFS LFSintegrity test program (Defragster)

Add OctoWS2811 RGBW LED support

Add OctoWS2811 VideoDisplay example for Teensy 4.x

USBHost_t36 add MassStorageDriver work-in-progress (wwatson)

USBHost_t36 Serial driver support for Teensy seremu (KurtE)

Update WS2812Serial for extra Teensy 4.1 pins

Improve serial emulation for non-serial USB types

Windows digital signature changed - old cert expired

Improved memory usage info for Teensy 4.0 & 4.1

Audio input PDM on Teensy 4.x (Mark T)

Audio ladder filter (Richard van Hoesel)

Audio fixes on Teensy LC (Frank B)

USBHost_t36 improve MIDI transmit speed

Fix Teensy Loader slow startup on Ubuntu 20.04

Update Linux udev rules - NOTE: filename changed!

Fix Teensy Loader excessive CPU use on Linux

SD typecast to SdFat reference, for libs like MD_MIDIFile

SdFat fix corrupted filename from getName()

Wire Scanner update known chips

Wire initializion code in flash memory only (Frank B)

Fix USB audio volume range (Frank B)

Improve individual audio object CPU usage info

Fix EEPROM on Teensy 4.x when compiled with -Os (Frank B)

Fix Arduino IDE Java IOException on quit

Support for Arduino 1.8.14

Fix MPU settings, solve mystery 1.7 sec stalls (FrankB)

Fix Ethernet W5100 on Teensy 4.0 running at > 150 MHz

Wire library names updated for MicroMod (mjs513)

Add Kurt's FlexIO_t4 library (KurtE)

Add missing FlexIO defs to imxrt.h

Fix IMXRT_GPIO_t ISR name on Teensy 4

Serial.begin() to wait up to 2 seconds for serial monitor

Audio add WaveFolder (Mark T)

Audio fix double promotion warnings (FrankB)

Audio improve ladder filter (Richard van Hoesel)

LittleFS updates to lowLevelFormat (Defragster, KurtE)

RA8875 updates

ST7735_t3 updates

USBHost_t36 update mass storage

USBHost_t36 undo zero interrupt latency change, breaks some drivers

Fix memory usage on MicroMod

Show ITCM actual memory usage & padding

Support for Arduino 1.8.15

Fix FreqMeasureMulti on Teensy 4 (joepasquariello)

Fix USB buffer bug on Teensy 3, remove old workaround (ryanrs)

Fix mempy crossing memory regions on Teensy 3.x

Fix EEPROM compile issue on Teensy 2.0

Align code & non-code boundaries to 1K on Teensy 4.x

Fix startup bug on Teensy 4

Fix emulated EEPROM corruption bug on Teensy LC

Fix typo in Audio TDM input documentation

Update FlexIO_t4 (from KurtE)

LittleFS persist ramdisk (Defragster)

Fault handler on Teensy 4 stores info, keeps USB active, reboots after 8 sec

Add CrashReport for printing or logging fault info

Fix NULL pointer read after String subString returning empty

Fix String operator ambiguous overload

Disable Arduino Sketch-Upload Using Programmer menu item

LittleFS minor updates (mjs513)

Update NativeEthernet

Add cmsis_gcc.h, for Arduino_TensorFlowLite library

Fix Serial2 vs Serial4 on MicroMod (KurtE)

Add SD library SdFat_Usage example

Reduce CrashReport memory usage

_VectorsRam change to volatile

Updated Linux udev rules

CrashReport placehold for Teensy 2.0, LC, 3.x

LittleFS Integrity exmaples cleanup (Defragster)

Fix TEMPMON register defs (ssilverman)

Delete wav2sketch.exe - triggers anti-virus false positives

Fix Audio compile error on Teensy LC

Improve USBhost_t36 examples arrangement

Version 1.53

Support for Arduino 1.8.13

Reduce EventResponder and yield() overhead (KurtE)

Audio design tool checks I/O compatibility (thanks to Frank's JavaScript work)

Update audio design tool documentation

Speed up ILI9341_t3 and add setClock (Larry Bank)

USBHost_t36 add Keyboard attachRawPress & attachRawRelease (David 'plugz')

Fix DmxSimple on Teensy 4.0 (Adam Demuri)

add pgmspace.h (not avr folder) compatability for Teensy 4.0

minor updates to SD and Wire examples

Improve C++ STL support

Fix compiler warnings in several library examples

Update libraries: FastLED, MIDI, RA8875, Adafruit_NeoPixel, FlexCAN, FlexCAN_T4, ILI9488_t3

Entropy library support for Teensy 4.x random number hardware

ILI9341_t3 proportional font rendering speedup (Larry Bank)

Audio: add rectifier effect and vocoder example by Bradley Sanders

Fix serialEventUSB1 & serialEventUSB2 on Teensy 4.x (KurtE)

Add MIDIUSB.h compatibility on Teensy 4.x

Check hardware serial FIFO in avalable and peek (KurtE)

Remove libraries: Adafruit_GFX, Adafruit_CC3000, Adafruit_RA8875, openGLCD, ST7565

Add SPI.end() on Teensy 4.x (KurtE)

Fix PT8211 output on Teensy 4.x

Fix USB BDT clear at startup on Teensy 3.x (Memotech-Bill)

Add digitalToggle(pin)

Fix numerical overflow in Audio CPU usage on Teensy 4.x

Remane addStorage to addMemory

Add Teensy 3.5/3.6 hardware random to Entropy (Manitou)

Fix ILI9341_r4 readcommand() & add readScanLine() on Teensy 4.x

Installer will delete old/stale libraries

Linux installer checks udev rules

Libraries updated: ADC, ILI9488_t3, RA8875

Fix audio library on Teensy LC

Fix ST7735_t3 spitftbitmap example (KurtE)

Version 1.52

Support for Teensy 4.1

USB Audio support for Teensy 4.0

OctoWS2811 ported to Teensy 4.0

WS2812Serial support for RGBW SK6812 LEDs

FreqMeasureMulti ported to Teensy 4.0 (KurtE)

Dual & Triple USB Serial (Geert Uytterhoeven)

Audio support for 4,6,8 channel I2S on Teensy 4.0

Audio support for SPDIF input on Teensy 4.0 (FrankB)

Audio DAC support for Teensy LC (Ben Kurtz)

Fix Serial.print() conflict with USB Touchscreen

Fix contact count on USB Touchscreen (purple-ben)

Defined FLASHMEM on Teensy 3.x, for compatibility with Teensy 4 code (FrankB)

Fix cache handling in I2S audio input on Teensy 4.0 (Frank B)

Fix numerous iMXRT register field defines

MTP USB descriptors on Teensy 4.0 - actual MTP support still experimental

Libraries updated: FlexCAN_t4, ST7735_t3, RA8875

Fix USB RawHID on Teensy 4.0 (KurtE)

Fix USB audio+midi+serial descriptor on Teensy 4.0 (widdly)

Add ADK to USBHost_t36 (Matt Bergman)

Fix USB Host MIDI transmit race condition (essej)

Optimize USB interrupt on Teensy 4.0 (Frank B)

Arduino compatibility of digitalWrite control pullups (FrankB)

Add missing MPU traps on Teensy 4.0 (FrankB)

Fix SGTL5000 clock ratio setting (FrankB)

Fix I2S slave on Teensy 4.0 (widdly)

Add DMAMEM & fix warnings in I2S on Teensy 4.0 (FrankB)

Improve SPI use by SD on Teensy LC (rutmarti)

Support alternate SPI pins on Teensy 4.1 (KurtE)

Support alternate Teensy 4.1 CS pins on ILI9341_t3 (KurtE)

Fix Teensy Loader on MacOS 10.13 with Catalina version

Fix teensy_serialmon 100% CPU on Linux if Arduino process killed

Workaround for rare Windows Defender flase positive when installing Java classes

Allow SD.begin() to be called more than once

Support hardware serial CTS pins on Teensy 4.1 (KurtE)

Fix double float promotion (Frank B)

Fix I2S input use of cache (Frank B)

Fix installer crash on Jetson Nano

Update libs: RA8875, ILI9844_t3, QuadEncoder, ST7735_t3

Fix RTC auto-set on Teensy 4.x with daylight savings time

Fix RTC set on Teensy 4.0 (Silverlock)

Audio ADC input on Teensy 4.0 - experimental

Hardware serial pin fixes for Teensy 4.1 (KurtE)

Add dummy Keyboard.h on Teensy 4, for Arduino compatibility

Use standard (not low power) ADC mode

Align DMA buffers to 32 bytes (Frank B)

Fix ADC_ETC defines

Use recommended analog bias current on Teensy 4.x (Frank B)

Update Snooze library

Fix Audio ADC input on Teensy 3.x

Initialize PSRAM chips at startup on Teensy 4.1

Increase PSRAM clock to 88 MHz & fix error in writing clock setting

Use strong drive & hysteresis for FlexSPI2 pins

Minor improvement in OctoWS2811 for Teensy 4.x

Workaround for USB memory bandwidth at very slow CPU speeds

Clean up compiler warnings in USBHost_t36 ADK driver

Fix import bug in Audio Design Tool (Frank B)

OctoWS2811 support for any group of pins on Teensy 4.x

OctoWS2811 fix memory use with fewer than 8 pins

Version 1.51

Support for Arduino 1.8.12

Add USB Flight Sim for Teensy 4.0 (Jorg Neves Bliesener)

fix panic temperature power off on Teensy 4.0 (FrankB)

SerialFlash support AT25SF128A (FrankB)

Wire lib minor updates

Fix analog comparator IRQ names (sgorsh)

Limit shiftOut to 10 MHz (FrankB)

Version 1.50

Support for Arduino 1.8.11

Fix soft reboot on Teensy 4.0

Fix 1 GHz in Tools > CPU Speed

Fix IntervalTimer minimum on Teensy 4.0 (KurtE)

Add defines for ethernet and PLLs

Add defines ARDUINO_TEENSY## for each board

Fix Printable.h with WiFiNANA lib on Teensy 4.0 (MichaelMeissner)

Minor fix to defines (Frank B)

Update ADC & ST7735_t3 libraries

Version 1.49

Support for MacOS Catalina

Optimize USB serial on Teensy 4.0

Add Teensy 4.0 USB MIDI, Keyboard, Mouse, Joystick

Port WS2812Serial to Teensy 4.0 (KurtE)

Move USB serial buffers from ITCM to OCRAM on Teensy 4.0

Fix stalled USB serial transmit if multiple of 64 bytes on Teensy 4.0

Support different USB descriptors for 12 vs 480 speed on Teensy 4.0

Add FLASHMEM keyword

Arduino memory usage for Teensy 4.0 shows only RAM1 (512K) bank usage

Fix Audio lib delay effect maximum (2.4 sec) on Teensy 4.0

Fix missing ITCM padding from Teensy 4.0 memory usage

Fix empty code on Teensy 3.x if yield() overridden and no core lib functions used

Reduce DTCM memory usage by USB descriptors on Teensy 4.0

Fix USB transfer complete callbacks on Teensy 4.0

Fix Audio lib memory limit on Teensy 4.0

WS2812Serial add functions for better compatibility with Adafruit_NeoPixel

Windows teensy_serialmon (hopefully) doesn't lock up (but still too much buffering!)

AVR register emulation on Teensy 4.0 (KurtE)

Fix serial DMA def on Teensy 4.0 (KurtE)

Improve ADC & XBAR defs on Teensy 4.0 (KurtE)

Improve quadrature encoder defs on Teensy 4.0 (mjs513)

Add Teensy 4.0 USB Touchscreen, not finished... work in progress

Remove serial monitor debug messages on Arduino 1.8.9

Fix delay() and micros() on Teensy 4.0 at 24 MHz

Fix USB touchscreen

Fix serial receive at very high baud rates on Teensy 4.0

Fix MIDI+Serial on Teensy 4.0

Fix USB Keyboard sending 'garbage' in long strings on Teensy 4.0

Fix analogWrite for values >= 2^res on certain Teensy 4.0 pins

Wire only clear FIFO with bus is idle on Teensy 4.0 (KurtE)

Wire use open drain pin config on Teensy 4.0

Update ST7735_t3 library

SPI optimize usingInterrupt() on Teensy 4.0 (FrankB)

SPI allow faster clock speeds on Teensy 4.0 (KurtE)

Fix daylight saving time issue with automatic RTC set on Teensy 4.0

Add Makefile for Teensy 4.0

Add main.cpp for Teensy 4.0 (KurtE)

Fix compiler warnings on Teensy 2.0

Audio fix simultaneous input & output on I2S2

Audio allow larger queue & delay effect on Teensy 4.0

FastLED updated to allow WS2812Serial driver on Teensy 4.0 (KurtE)

PulsePosition support for Teensy 4.0 (mjs513)

TimerOne & TimerThree updates & fixes for Teensy 4.0 timers

Update ADC library (pedvide)

Update RA8875 for Teensy 4.0 (mjs513)

Add QuadTimer library (mjs513)

Add FlexCAN_T4 (tonton81)

Add ILI9488_t3 (mjs513)

Port ssd1351 to Teensy 4.0 (KurtE)

Port SoftPWM to Teensy 4.0

Add ADC_ETC definitions to imxrt.h (KurtE)

Adjust Wire library pin drive strenth on Teensy 4.0

Optimize Ethernet CS on Teensy 4.0 (Remo Jongeneelen)

Include stdbool.h - needed by Temboo library

Fix micros() non-monotonic output on Teensy 4.0 with slow CPU speeds

Optimize micros() on Teensy 4.0

ST7735_t3 & WS2812Serial minor cleanup

Improve Wire library FIFO handling for Teensy 4.0

ADC library updated for Teensy 4.0 (Pedvide)

Fix priority on 3rd & 4th IntervalTimer on Teensy 4.0 (KurtE)

Audio library I2S slave mode support on Teensy 4.0

Fix unused USB interface string descriptors

Version 1.48

Support for Arduino 1.8.10

Drop support for old Arduino versions 1.0.6, 1.6.5 and 1.8.1

Improve Serial Monitor efficiency, Arduino 1.8.9 & 1.8.10 only

Update FastLED to 3.3.1, fixes compile error on Teensy LC (Daniel Garcia)

Fix more than 2 IntervalTimer instances on Teensy 4.0

Fix Teensy 4.0 low power mode for 24 MHz (Defragster)

Teensy 4.0 SPI signal drive strength changed on Teensy 4.0 (KurtE)

Fix I2S output on Teensy 3.0

Fix non-transaction SPI use on Teensy 4.0 (KurtE)

Fix Arduino 1.8.10 disabled serial monitor selection & copy of text

Init Teensy 4.0 PIT timers after CPU clock set

USB RawHID on Teensy 4.0, still experimental

Update FastCRC (Frank B)

Add CPU Speed menu for Teensy 4.0

Fix SoftwareSerial on Teensy 4.0 (KurtE)

Fix Wire on Teensy 4.0 when I2C device prior NAK (KurtE)

Add startup hooks on Teensy 4.0 (Defragster)

Fix Audio TDM & I2C2 on Teensy 4.0

Improve Audio I/O on overclocked Teensy 3.6

Fix ST7735_t3 DMA (KurtE)

Update TeensyThreads

Version 1.47

First support for Teensy 4.0

Version 1.46

Support for Arduino 1.8.9

Improve startup behavior on Teensy 3.6 with external slowly rising power

Fix blank Arduino window issue after Teensyduino install

USBHost_t36 add MIDIDevice_BigBuffer

USBHost_t36 support some not fully MIDI class compliant Yahama & Roland devices

USBHost_t36 improve CP210X serial support (Kurt E)

Better error checking in Arduino Stream functions (Frank B)

Update libs: Adafruit_NeoPixel, Adafruit_GFX, Talkie, Time

Remove outdated libs: Adafruit_ILI9340, Adafruit_ILI9341, Adafruit_SSD1306, Adafruit_ST7735

Audio: Workaround for WM8731's poor I2C communication

Encoder: add atomic readAndReset() function (humanoid2050)

Use '-fpermissive' to treat some C++ errors as only warnings, as Arduino Uno does

Version 1.45

Support for Arduino 1.8.8

Updated libraries: i2c_t3, Snooze

Teensy 3.6 overclock to 256 MHz (Frank B) - need to uncomment lines in boards.txt

Fix serial begin() lockup if framing error received in FIFO when end() called

Audio add AudioControlTLV320AIC3206 (Chip Audette)

Teensy Loader icon added for Gnome desktop on Linux

Fix asm in delayMicroseconds on Teensy LC (Frank B)

Audio: Fix ADAT output with 168 MHz (Frank B)

Version 1.44

Support for Arduino 1.8.7

Add Linux AARCH64 (64 bit ARM, Jetson TX2) support
Download Arduino 1.8.7 for AARCH64

Improve Tools > Ports menu refresh speed

Support Tools > Get Board Info

teensy_ports now sends JSON on stdout

Audio: add wavetable synthesis (thanks PSU Student Team)

Version 1.43

A detailed explanation of new features was written on the blog.

Support for Arduino 1.8.6

Ethernet updated to 2.0.0

Fix default Ethernet CS pins on Teensy 2.0 & Teensy++ 2.0

Fix USB Keyboard '#' for UK & Irish layouts

Generic UDP class support beginMulticast

Fix USB MIDI hogging transmit buffers

Fix FreqCount for use at high frequencies

Installer automated install, use --dir=

Fix for Arduino 1.8.6 startup (Arduino issue #7917)

Fix SerialPlotter for Ports(Teensy)

USBHost_t36 fix for Gigabyte keyboard (thanks KurtE)

OctoWS2811 update movie2serial.pde

Remove BYTE define, previously for pre-1.0 Arduino compatibility

Update WS2812Serial documentation

Improve installer help dialog on Windows (advise 'app' incompatible)

Workaround a USB buffering issue

Add Arduino's fix for slow 1.8.6 menus on Mac

Version 1.42

A detailed explanation of new features was written on the blog.

Add teensy_ports program and Tools > Ports 'Teensy' section

Add teensy_serialmon - used for Serial Monitor when a 'Teensy' Port selected

Fix USB Touchscreen

Add USB Touchscreen examples

Fix FlightSimFloat on Teensy 3.5

Fix USB bcdUSB number

Fix KEY_MEDIA_RANDOM_PLAY

Update OneWire, PS2Keyboard, SerialFlash, Time, PS2Keyboard

Unified logging in Teensy Loader's Verbose Info window

Fix teensy_ports crash when/if Teensy Loader closes

major USB device detection code cleanup....

teensy_reboot now uses device location info from Ports menu

teensy_ports quits automatically when Arduino no longer running

Optimize memory usage in Teensy Loader PNG image handling

Fix Teensy Loader Verbose Info menu Log > Clear

Improve elapsed time in teensy_ports, use native monotonic time

Drop support for Arduino 1.8.2 and 1.8.3 and 1.8.4

Fix incorrect serial monitor title bar on Windows

Workaround for 1 second lag when Teensy Loader not running

Fix non-serial reconnect on Windows XP (workaround missing DBT_DEVNODES_CHANGED)

fix teensy_ports and teensy_serialmon on Mac High Sierra

fix serial monitor title bar & online/offline status parsing from teensy_serialmon

fix teensy_serialmon verbose info in serial monitor, now prints to Arduino console

Fix Teensy Loader Help > About stalling verbose info log from other programs

Fix Teensy Loader File error dialog stalling verbose info log from other programs

fix blank lines appears in verbose info log on Windows

teensy_port better handling for large number of devinst on Windows (eg, MIDIx16)

Better messages when retrying serial open on Windows (eg, with USB 'Everything')

show teensy_reboot output on Windows as it occurs, fixed wait until teensy_reboot exits

fixed sending reboot request to some com ports

fix teensy_ports incorrect append to devinst list on Windows

fix logging of windows device change events

prevent teensy_serialmon from interfering with HID bootloader access in Teensy Loader

remove #include from wiring.h, allowing faster compile for most C++ code

precompile Arduino.h, allows some speedup of rebuild all

update core library, Wire, Audio, Bounce to use precompile Arduino.h

Reduce startup delay from 400 ms to 300 ms

fix teensy_serialmon asser of DTR on Windows, fixes (bool)Serial

(bool)Serial to use DTR only, fixes Serail remaining true after serial monitor close

fix truncated usbmodem names in Ports menu on Macintosh

Verbose info log now uses high res time on Windows 8 & 10

Verbose info log users 1ms res time on Windows XP & 7 (was 16 ms & 10 ms)

Fix Verbose info random order for same timestamp events - now always chronological

Add numbering of non-loader verbose logging instances

Trim excessive verbose logging of status communication

Updates to audio library documentation

Add Teensy Loader about dialog icon (was generic info icon)

Teensy 3.5 now supports use of 256K RAM

EthernetClient fix for forced connection close

Small speedup to analogWrite for DAC pins

Fix DMAChannel transferSize() on Teensy LC

Fix FTM_CONF register bitfield defs

Update ADC library (Pedro Villanueva)

Audio: Add freeverb mono & stereo

Audio: Granular pitch shift & freeze effects (Bleep Labs)

Audio: envelope status functions

Audio: Fixes to waveform object

Audio: Add variable triangle waveform

Audio: Add modulated waveform, support for freq & phase modulation

Audio: Add simple amp/switch object

Audio: Add PDM input

PS2Keyboard: add UK & Spanish layouts

TimeAlarms: minor fixes

USBHost_t36: Joystick fixes (KurtE)

Macintosh build now uses 64 bits

Fix Teensy 3.5 stack address (thanks Frank)

Better detection of Teensy model in Ports menu

Audio: fix WM8731 input select

Improve multiple instance check in teensy_ports

Add -L option to teensy_ports (intended for PlatformIO)

Treat 'narrowing conversion' as compiler warnings, not errors

Fix product ID for Flightsim+Joystick USB type

Audio: allow WAV files with extra/junk sections before 'fmt' info

Ethernet: document Ethernet.init(cspin) in all examples

OctoWS2811: Fix timing problem on Teensy 3.5

USBHost_t36: Fix clobbering of pipe config on endpoint size change

USBHost_t36: Improve enumeration of Multi-TT hubs

Handle attempt to reopen serial port, clicking button while Arduino compiles

Windows: teensy_serialmon detect orphaned from Arduino IDE condition

Avoid unnecessary delays when upload can't find any board

Print more informative messages about selecting board in Tools > Ports

Added ARM 64 bit experimental installer

Version 1.41

Add IntervalTimer update()

Ethernet fix socket receive state caching bug

Ethernet improve handling of unexpected remote server disconnect

SD fix timeouts

SPI pin changes kept in sync with AVR SPI emulation

SPI avoid interfere with pin 45

Wire force recovery from stuck slave devices

Wire improve detection of arbitration loss to other bus masters

Add AudioConnection disconnect() (thanks b0rg3rt)

Update platform.txt for compatibility with Arduino 1.9 beta

Fix serial stall if higher than maximum baud rate configured

Improve delayMicroseconds on Teensy 2.0 (Graham)

Fix SERIAL_8N2 mode on Teensy LC

Update sample Makefile

Add abort() function, needed for Pozyx library

Update keywords for Serial formats & USB Keyboard special keys

Improve AVR SPI register emulation, speed bits

Fix tone() issue when 0 Hz requested, minimum is 1 Hz

Fix Teensy LC DMAChannel bug (thanks kbob)

Audio add ADAT output (thanks Ernstjan Freriks)

Audio fix RMS analysis when no data

Audio ToneSweep improvements (thanks Pio)

Audio design tool custom name bug fixed (thanks neurofun)

Audio modulated sine amplitude when no mod signal fix (thanks neurofun)

Audio library documentation updated, several minor errors fixed

FastLED updated to support WS2812Serial

Time library minor updates & fixes

i2c_t3 library updated

OctoWS2811 fix on Teensy 3.5

OctoWS2811 remove unnecessary delay

OctoWS2811 improve setPixel speed (thanks sgorsh)

USBHost_t36 support for CDC-ACM, PL2303 & CH341 serial (thanks KurtE)

USBHost_t36 support for RawHID (thanks KurtE)

USBHost_t36 support for Xbox One controller (thanks KurtE)

USBHost_t36 improve keyboard & joystick support (thanks KurtE)

USBHost_t36 fix USB MIDI fast data input

USBHost_t36 Ant+ wireless adaptor support (adapted from Michael McElligott)

USBHost_t36 access to device ID and name (thanks KurtE)

XPT2046_Touchscreen detect touch by interrupts (thanks Donziboy2 & Defragster)

Accept String in Stream find() and findUntil()

Update LedDisplay library

USBHost_t36 Fix device status functions usage in polling loops

USBHost_t36 Clean up bandwidth usage info when deleting a pipe

USB MIDI support for virtual cables (select from Tools > USB Type menu)

USB MIDI updated with most functions of Arduino MIDI lib 4.3.1

USB MIDI getType() now returns same as MIDI 4.3.1 -- NOT BACKWARDS COMPATIBLE

Support for compatibility with Arduino's MIDIUSB.h

Added more examples in File > Examples > Teensy > USB_MIDI

USBHost_t36 MIDI support for virtual cables

USBHost_t36 MIDI updated with most functions of Arduino MIDI lib 4.3.1

USBHost_t36 MIDI returns same as MIDI 4.3.1 -- NOT BACKWARDS COMPATIBLE

USBHost_t36 MIDI fix for devices using interrupt endpoints

USBHost_t36 MIDI workaround for devices sending improperly coded sysex message

XPT2046_Touchscreen add setRotation()

FreqMeasureMulti fixed on Teensy LC (thanks Manitou)

USB MIDI & USBHost_t36 MIDI pitch bend using signed integer -- NOT BACKWARDS COMPATIBLE

USB MIDI & USBHost_t36 Fix receiving some MIDI sysex messages

USB MIDI add Interface_3x3 example

USBHost_t36 fix MIDI getType for note off messages

USBHost_t36 add MIDI Interface_16x16 example

Adafruit_SSD1306 uses 400 kHz in I2C mode

USBHost_t36 Joystick improvements, More Axis, Rumble, LEDs (KurtE)

Libs updated: FastLED, Adafruit_NeoPixel, Adafruit_GFX

Libs removed: NewPing

Add USB MIDI Many_Knobs_Buttons example (oddson)

Version 1.40

Support for Arduino 1.8.5

USBHost_t36: HID parsing, improved Mouse driver, new Joystick driver, hub driver fixes, idVendor() & idProduct() functions, keyboard improvements (Kurt)

Audio: fix stereo DAC right channel bug, fix DAC clipping overflow issue, fix FFT256 with LTO optimize (Frank)

Updated: Snooze, FastCRC, i2c_t3, TinyGPS, TeensyThreads

Fix systick hang when yield() overridden

Show warning for certain counterfeit boards, but still allow upload

Linux Teensy Loader now uses udev to find USB devices

Fix delay when uploading on Linux

Fix missing upload error messages in newer Arduino

Fix race condition causing 'Teensy Loader is unable to read your compiled sketch (r)'

Version 1.39

Fix IntervalTimer compile error on Teensy LC

Use gnu++11 on Teensy 2.0 (was c++11)

Stream find functions now take const pointers on Teensy 2.0

Update Print class for Teensy 2.0

Don't redefined BYTE (for ancient Arduino compatibility) if already defined

Add pgmspace.h (no avr prefix) for ESP2866 compatibility

Support AVR pgm_read_ptr() on Teensy LC & 3.x

Fix srandom conflict

Updated libs: Adafruit_NeoPixel, openGLCD, Snooze, TFT_ILI9163C

Fix compiler warnings & improved error messages: EEPROM, Adafruit_CC3000, Adafruit_GFX, Adafruit_ILI9340, Adafruit_ILI9341, Adafruit_RA8875, ADC, FastCRC, FrequencyTimer2, i2c_t3, ILI9341_t3, IRremote, Keypad, ks0108, LowPower, OctoWS2811, OneWire, openGLCD, OSC, PulsePosition, RA8875, SerialFlash, SoftPWM, ssd1351, ST7565, Talkie, Time, TimerOne, TinyGPS, Tlc5940, x10

Raspberry Pi builds with 2017-07-05-jessie (previous builds were on 2014-12-24-wheezy)

Version 1.38

Support for Arduino 1.8.4

Use C++14 on 32 bit Teensy boards

Fix Wire lib with fastest optimize and >120 MHz CPU speed

Wire emulate AVR twi_writeTo - for Adafruit compatibility

Wire1 support pins on Teensy 3.5 & 3.6 SD socket (if not using SD card)

Fix install problem on Arduino 1.0.6

Fix analogReadAveraging with ADC1

Allow more memory for audio library on Teensy 3.5 & 3.6

Fix audio library delay effect on Teensy 3.5 & 3.6

Audio I2S uses 64 bit frame, improve compatibility with I2S mics

Fix OctoWS2811 seldom-used color conversion options

Add pure code choices in Tools > Optimization

USBHost_t36 improved handling of error & pipe stall

fix for disable of SD on Teensy 3.5 & 3.6 (Frank)

SPI.transfer(readbuf, writebuf, size) (KurtE)

Added TeensyThreads library (Fernando Trias)

Fixed Adafruit_CC3000 on Teensy 3.x

Audio envelope graceful handling of noteOn while gain > 0

Improved FreqMeasureMulti countToNanoseconds

[Experimental] EventResponder

[Experimental] MillisTimer

[Experimental] SPI async using DMA & EventResponder (KurtE)

Remove 2.5 second wait in Serial.begin

USBHost_t36 mouser driver (wwatson)

Update Adafruit_CC3000, AccelStepper, Adafruit_GFX, Adafruit_SSD1306, FastLED, IRremote, Keypad, MFRC522, SoftPWM, SPIFlash

Symbol table and disassembly listing are placed in temp build folder

Fix audio memory usage stats when more than 255 blocks allocated

Fix USB audio transmit with null data

Audio library support for external delay with CY15B104 (FrankB)

Version 1.37

Support for Arduino 1.8.3

Drop Arduino 1.6.12 & 1.6.13 support

Fix SD library larger than 64K read/write

SPI lib - unified SPIClass, constexpr

Wire lib - constexpr

Use gnu++11 for 32 bit Teensy

MTP fixes

add MTP Disk to USB Type menu

Print, Stream, Serial, Serial# use constexpr

analogWriteResolution returns prior setting

add missing kinetis.h register defines

availableForWrite & flush in Print class

map() improvements - now works with float & double

fix exp10 and stricmp

Audio: improved envelope, added TDM, Waveshaper, PWM Synth, CS42448, fix I2S slave

FastLED fixes

Update MIDI to latest version

Fix PS2Keyboard

Tlc5940 fixes

XPT2046_Touchscreen interrupt fix on non-Teensy boards

Fix auto-reboot on Windows 10 rev 1703 (Creator's Update)

Fix FastLED with OctoWS2811 on Teensy 3.6

Improve min() max() for C++ compatibility (tni)

Fix analogWrite to DAC with LTO (tni)

Fix DMAChannel repeated transferCount (KurtE)

Fix DMAChannel alignment on Teensy LC (tni)

Fixes to OctoWS2811, solve 'first pixel' issue on Teensy 3.2

Fix SPI SCK (pin 13) drive strength (KurtE)

Increase USB Serial.begin() wait for serial monitor

Fix Audio SD WAV play status with LTO optimization

Teensy Loader window movable by clicking in center area

Support 'Clear output' button in Arduino 1.8.3 serial monitor

Version 1.36

Support for Arduino 1.8.2

Update ARM toolchain to gcc 5.4

Add more optimization choices (including LTO) to Tools > Optimize

Ethernet socketBeginMulticast (manitou)

Fix IntervalTimer on Teensy 3.5

Wire library supports Wire1, Wire2

Wire library timeouts for error conditions

Libraries updated: AccelStepper, ADC, Audio, FastLED, LedDisplay, RadioHead, ShiftPWM, Snooze, SPI, TouchScreen, Wire

Libraries added: USBHost_t36

Minor improvements to AVR emulation

Hardware serial write() compatibility fix

Fix pin config on Serial6

Add extreme joystick, disabled by default, edit usb_desc.h

Fix String test as boolean

Faster installation, especially on Mac

Optimize SPI.transfer(buffer, length) (KurtE)

Fix USB audio on Macs & improve PassThroughUSB example

Start USB sooner

Add volume() function to AudioInputUSB

Fix rare memcpy issue (Frank B)

Fix 9 bit mode on Serial1 & Serial2 on Teensy LC (gecko)

Fix to dtostrf for small numbers (LAtimes2)

Serial.begin() waits up to 1 second for serial monitor open

analogWriteFrequency minimum on Teensy LC

Fixes in ADC library (KurtE)

Fixes in RadioHead library (KurtE)

Version 1.35

Support for Arduino 1.8.1

Improve buildin SD card startup on Teensy 3.5 & 3.6 after uploading

Fix SD card clock speed on Teensy 3.5 & 3.6

Fixes to Serial5 and Serial6 on Teensy 3.5 & 3.6

Fix string length check on readString() and readStringUntil()

Libraries update: Audio, FlexCAN, OctoWS2811,

Fix compiler warnings in USB Disk with Teensy 2.0

Version 1.34

Support for Arduino 1.8.0

Add Tools > Optimize menu, add 'Faster' (-O2)

Fix driver install/update on Windows 7 & 8

Prevent 'might not have installed correctly' message on Windows

Fix Teensy Loader 'Illegal Instruction' on Windows 10 restart

Anti-alias font fix for Arduino 1.8.0 on Windows

Fixes for compiler warnings

Libraries updated: Adafruit_RA8875, Adafruit_ST7735, Adafruit_STMPE610, Artnet, Bounce2, FastCRC, FlexCAN, NewPing, OSC, ShiftPWM, UTFT

Version 1.33

Fix first-use communication error between Arduino & Teensy Loader

Teensy Loader Verbose Info now logs time with milliseconds

More logging in (tempdir)/teensy_reboot_log.txt

Teensy Loader GUI toolkit updated (now using wxWidgets 3.1.0)

Mac version now requires OSX 10.7 (Lion) or later

Libraries updated: Audio, Tlc5940, SPIFlash

Version 1.32

Add support for Arduino 1.6.13

Serial monitor shows status in title bar, Arduino 1.6.13 only

Ethernet library now supports W5500 chip

Fix SD library with old SD cards on Teensy 3.5 & 3.6

Fix IntervalTimer start/stop bug

Fix Audio library SPI hogging with Teensy 3.5/3.6 build in SD card (Frank B)

Libraries updated: Snooze, Time, TimerThree, Audio, UTFT

Libraries added: EasyTransfer, ResponsiveAnalogRead

Improved sync between Arduino IDE and Teensy Loader

Arduino IDE Tools > Ports menu labels ports as 'Teensy'

Fix Arduino Verify starting upload when Teensy already in bootloader mode

Teensy Loader wrong chip dialog is now nonblocking.

pinMode supports INPUT_DISABLE on 32 bit Teensy boards

attachInterrupt supports uninitialized pins

Serial RTS watermarks scale with buffer size (Frank B)

Optimized Adafruit_ST7735 improved & renamed to ST7735_t3

Ethernet library optimizations & Ethernet.init(CS_PIN)

Improve audio library usage with smaller block sizes

Version 1.31

Add support for Arduino 1.6.12

Arduino SD library support 4 bit SDIO on Teensy 3.5 & 3.6 (special thanks WMXZ)

Fix EEPROM on Teensy 3.6 with CPU speed > 120 MHz (special thanks Defragster)

Update FlexCAN library for CAN1 on Teensy 3.6 (Pawelsky)

Update OctoWS2811 to support Teensy 3.5 & 3.6

Fix USB serial number on Teensy 3.6 with CPU speed > 120 MHz

Fix audio I2S output on Teensy 3.6 with CPU speed > 120 MHz when also using I2S input

Support Teensy 3.5 & 3.6 on older versons of Arduino

Fix SPI1 default SCK1 pin (KurtE)

Optimize attachInterrupt (tni)

Improve USB stability on Teensy 3.6 with CPU 180 or 216 MHz

Add USB MIDI custom name example

Fix Adafruit_ST7735 on Teensy 3.5 & 3.6 (MichaelMeissner)

Many library metadata files updated for PlatformIO

Fix Ethernet library socket receive bug (thanks ElOtroMateo)

Fix compiler warnings, eg: kinetis_hsrun_enable unused

Serial buffer sizes override from command line (Frank B)

Stream find functions use const for pointers

Add AudioOutputAnalogStereo and AudioInputAnalogStereo

Add Audio reverb effect (Joao Rossi Filho)

Add Audio waterfall spectrum example (Nathaniel Quillin)

Fix USB Audio on Windows when used with USB Serial

Fix auto-reboot for newer USB types

Fix serial monitor for newer non-serial USB types

Many ILI9341_t3 improvements (Frank B, Kurt E, Softegg)

SerialFlash allows other SPI ports (Martino Facchin)

Teensy Loader shows correct images for Teensy 3.5 & 3.6

Improved handling of float INF & NAN (Frank B)

Bundle libpng12 & libusb10 libraries, missing from some Linux distros.

Version 1.30

Add support for Arduino 1.6.10 and 1.6.11

Add support for Teensy 3.5 and 3.6 (still beta)

Improve USB audio - optional Mac workaround

Libraries updated: Audio, OctoWS2811, ADC, i2c_t3, IRremote, SPI, FastLED

Optimize analogRead

Version 1.29

Add support for Arduino 1.6.9

Add support for running on Raspberry Pi (Linux ARM)

Drop support for Arduino 1.6.3 and 1.6.6

USB Keyboard improved media keys, now Windows compatible

Add USB Touchscreen (up to 10 fingers)

Add USB Audio

USB Mouse adds horizontal scroll

More combinations in Tools > USB Type

Serial1.setTX() adds open drain option

Libraries updated: Audio, FastCRC, FreqMeasureMulti, PS2Keyboard, SerialFlash, FreqCount, LedDisplay, SerialFlash, Talkie, TFT_ILI9163C, FastLED, ADC, TimeAlarms, TimerOne, TimerThree

SPI setMOSI, setMISO, setCLK work after SPI.begin

Serial1 setTX, setRX support pins 24 & 25 on Teensy LC

Port Serial1.clear to Teensy3 (thanks KurtE)

Port digitalWriteFast & digitalReadFast to Teensy2 (thanks KurtE)

Port Arduino's AVR Serial1 optimization to Teensy2 (thanks KurtE)

Add missing hardware register defs (thanks Duff)

Fix undocumented flightsim callback (thanks jbliesener)

Fix Servo library compile issue on Arduino 1.6.9

Fix WCharacter and ctype functions

Allow SPI setMOSI, setMISO, setCLK after SPI.begin()

Document flash security lock in mk20dx128.c

Support more F_BUS overclock speeds

Fix pulseIn on Teensy LC (thanks KurtE)

Version 1.28

Support for Arduino 1.6.8

Ethernet library rewrite & performance improvement

Serial1, Serial2, Serial3 setTX(pin) setRX(pin)

Wire setSDA(pin) & setSCL(pin) & end()

pinMode INPUT_PULLDOWN, OUTPUT_OPENDRAIN (thanks Xenoamor)

USB Mouse supports MOUSE_BACK & MOUSE_FORWARD buttons (thanks Xenoamor)

SPI.usingInterrupt supports IntervalTimer

Add libraries: MFRC522, Bounce2, RA8875

Update LiquidCrystal, Adafruit_GFX, Adafruit_NeoPixel, AltSoftSerial, Audio, CapacitiveSensor, DS1307RTC, Encoder, i2c_t3, ILI9341_t3, OctoWS2811, OneWire, SerialFlash, ShiftPWM, Snooze, TFT_ILI9163C, Time, TimerOne, TimerThree, Adafruit_SSD1306, ADC, OctoWS2811

Added CMP register defs (thanks Duff)

Convert all built-in library from 'legacy' format

Fix serial monitor transmit in non-Serial modes

Fix small error in IntervalTimer floating point init

Fix momentary wrong board display in Teensy Loader during 'Reboot OK'

Fix back button in installer when an error is detected (easier to retry)

Remove ARDUINO_ARCH_AVR from non-AVR Teensy boards

Add IPAddress fromString()

Fix E2END to always represent actual EEPROM size

Fix SPI.end() to disable alternate pins, if used

Installer name changed from 'teensyduino' to 'TeensyduinoInstall' (runs as admin on Windows)

Version 1.27

Add support for Arduino 1.6.7

Updates to Ethernet, Wire and XPT2046_Touchscreen libraries.

Add Note Frequency detection to Audio (thanks Colin Duffy)

Fix attachRTS on Serial2 & Serial3 on Teensy 3.x

Add RA8875 library, optimized for Teensy 3.x (thanks Sumotoy)

Other minor fixes and improvements

Version 1.26

Add support for Arduino 1.6.6

Fix USB Serial on Macintosh 10.11 El Capitan

Partially fix Mac signatures (still must run Arduino once before installing)

AnalogWriteFrequency supports extremely low speeds (thanks Theremingenieur)

Improve tone() changing frequency while running

Serial1.attachRts() and Serial1.attachCts()

Update libraries: AltSoftSerial, FastLED, ILI9341_t3

Add XPT2046_Touchscreen library

Improve Ethernet library W5200 reset handling

Update SD library examples

Add I2S 2-port register bitfield names

Initial work on MTP Disk (incomplete)

Version 1.25

Add support for Arduino 1.6.5-r5

Detect Windows 10 serial driver during install, avoid adding Teensy's INF.
If you installed a previous version on Windows 10, you canremove Teensy's unneeded serial driver.

Drop support for Arduino 1.6.4, due to this bug

Update Adafruit_GFX, FastLED, ILI9341_t3 (added fonts)

Audio lib: play from SerialFlash (thanks Wyatt Olson), ext mem delay, bitchusher (thanks Pensive)

Floating point constants are now single precision on Teensy LC, 3.0, 3.1

SD root dir bug and other minor fixes

SD Teensy3 optimized (not enabled by default) has improved caching

Servo library easier to edit for more than 16 motors

Remove dedicated AVR toolchain (was only needed for Arduino 1.6.2)

Avoid interfering with new Arduino 1.6.5 color scheme

Serial flow control functions (C only for now)

XPlaneRefs with names >58 chars (thanks jbliesener)

USB MIDI Time code (thanks Karg)

Installer detects Windows 10, skips driver install

Installer looks in more places on Windows to auto-find Arduino

Version 1.24

Support for Arduino 1.6.5

Optimize Serial.print() and micros() on Teensy-LC

Update Snooze, ADC and i2c_t3 libraries

Several very minor bug fixes

Version 1.23

Support for Arduino 1.6.4

Improve Wire library, handle Lidar Lite issues

Add SerialFlash library

Optimize SD library for Teensy 3.x (SD_t3.h, disabled by default)

Default Systick interrupt to priority level 32

Fix 24 MHz speed on Teensy 3.1

Fix RawHID on Teensy 2.0 with newer Arduino version

Update Time library

Update i2c_t3 library, adds support for Teensy-LC

Update OSC library

analogWriteFrequency() now allow precise sub-1 Hz input

Fix SPI FIFO bug in ILI9341_t3

Fix delay() and micros() bug at startup on Teensy-LC

Version 1.22

Support Arduino 1.6.2 and 1.6.3

Update EEPROM and OneWire libraries

Add ADC and i2c_t3 libraries

Fix USB flightsim on Teensy-LC

Fix SPI.transfer16 & support SPI1 on Teensy-LC

Fix String(unsigned char) on Teensy 2.0

Add Serial.availableForWrite() on Teensy 2.0

Fix printing of long integers on Teensy 2.0

Improve USBtoSerial example

Fix harmless but annoying compiler warnings

Version 1.21

Support for Teensy-LC

Support Arduino 1.6.0 and 1.6.1

Keep Arduino Serial Monitor window open during Upload (Arduino 1.0.6, 1.6.0, 1.6.1)

Improve Arduino Serial Monitor efficiency & memory usage (Arduino 1.0.6)

Wire.setClock()

Tools > CPU Speed menu supports speed vs size optimized (Teensy 3.1 & LC)

Update sample Makefile for non-Arduino usage

Simplify usb_desc.h for creating custom USB devices

Libraries added: Adafruit_VS1053, FastCRC, openGLCD, Snooze, TFT_ILI9163C

Libraries updated: Adafruit_CC3000, Adafruit_NeoPixel, Adafruit_SSD1306, Adafruit_ST7735,FastLED, FreqCount, FreqMeasure, ILI9341_t3, IRremote, MsTimer2, OctoWS2811, OneWire,PS2Keyboard, PulsePosition, Time, TimerOne, TimerThree, TinyGPS

Upgrade ARM Toolchain from 4.7.2 to 4.8.4.

Various minor bug fixes

Version 1.20

Support Arduino 1.0.6

Add libraries: Audio, FlexCAN, Adafruit_CC3000, SPIFlash, RadioHead, FastLED, Adafruit_ILI9341, ILI9431_t3, Artnet

Update libraries: Adafruit_NeoPixel, OctoWS2811, Time, Adafruit_SSD1306, Adafruit_ST7735, ShiftPWM

Libraries ported to Teensy 3.x: AltSoftSerial, CapacitiveSensor, FlexiTimer2, FreqCount, FreqMeasure, FrequencyTimer2, MsTimer2, ShiftPWM, TimerOne, TimerThree, Tlc5940

Libraries ported to use SPI transactions: SD, Ethernet, Adafruit_CC3000, Adafruit_ILI9341, Adafruit_STMPE610, RadioHead

Add SPI Transactions

Add DMAChannel & DMASetting objects

Add serialEvent (usb serial) & serialEvent# (hardware serial)

Add Serial.availableForWrite() & Serial#.availableForWrite()

Use Serial2 FIFO on Teensy 3.1

Add transmitterEnable() on Serial2 & Serial3

Fix analogWriteFrequency on Teensy 3.1 pins 25 & 32

Add Installer Directory Help Button

Fix strncpy_P on Teensy 3.x

Add Czech keyboard layout to menu

Add yield() function on Teensy 2.0

Add IntervalTimer priority()

Don't mix CPU speed setting switching from Teensy 2.0 to 3.x

Add FASTRUN, for functions in RAM on Teensy 3.x

Interrupt vector table moved to RAM for Teensy 3.x

Add attachInterruptVector()

Optimize Teensy 3.x hardware register definitions

Serial port names added to pins_arduino.h

Fix ARM toolchain linker & zlib issue (thanks to Andrew Kroll)

Add AVR emulation for util/parity.h

Version 1.19

Add support for 72 MHz on Teensy 3.1

Fix relative positioning on Teensy 3.x USB mouse (now has hybrid relative+absolute)

Add more AVR emulation on Teensy 3.x: wdt.h, crc16.h, sleep.h, EMISK

Fix USB Serial break on Teensy3 (needed by some Labview applications)

Fix USB endpoint read with no data (thanks nox771)

Add USB MIDI SysEx callback (thanks pcbeard)

Workaround for auto-reboot problems on Teensy 2.0 when using watchdog

Fix initialization of local static vars from non-const data on Teensy 3.x

Make all Teensy 3.1 HardwareSerial functions virtual (fixes issue with pointers to objects)

Add extra zero to USB serial number, works around a Macintosh CDC driver bug
If previous versions have been used, Windows will detect a 'new' device, 'install' the driver again, and assign a new COM port number.

Add Kinetis register definitions: DMA bits, VREF bit, ADC PGA, DMA priority registers

Fix IRQ_PRIORITY hard-coding in Serial3

Fix lockup in AVR emulation of SPI.setDataMode(SPI_MODE0)

Fix lockup in AVR emulation of TWBR when running at 24 MHz

Fix rare lockup in repeated Wire.begin() on Teensy 3.1

Update DS1307 library with workaround Arduino Due names.

Update Entropy library, now fully compatible with Teensy 3.x.

Add Teensy 3.1 slow clock options, 2, 4, 8 & 16 MHz... thanks for all the help Duff

Add overclocking code (not enabled by default) for Teensy 3.x at 120, 144 & 168 MHz

Minor Makefile improvement (Matthias Lohr)

Aesthetic source code cleanup

Drop Teensy 1.0 support

Version 1.18

Fix compile errors in several Arduino libraries with Teensy 3.1

Fix OctoWS2811 on Teensy 3.1

Keep unused native SPI chip selects high (disabled), Teensy 3.0 & 3.1

Speed up SD library

Fix upload > 128k on Teensy 3.1

Update Windows driver, fix Serial+Keyboard on Windows 8

Fix __cxa_guard errors on Teensy 2.0

Add missing DMA & PGA & other register definitions for Teensy 3.1

Add Serial1.transmitterEnable(pin) for RS-485 applications

Fix startup issue impacting Neopixel library on Teensy 3.1

Fix analogRead(39) (1.2V ref) on Teensy 3.1

Improve Teensy3 early startup hook, thanks to Anbroz Bizjak

Fix Arduino IDE library conflicts, Adafruit_GFX vs Robot libs

Mouse wheel support for scrolling long menus in Arduino IDE on Windows & Linux

Teensyduino version can be seen in Arduino's Help > About screen

Version 1.17

Support for Teensy 3.1

Ethernet library support for W5200 chip

Print speedup for Teensy2

analogRead is now thread safe on Teensy3

Keep USB & serial working in Teensy3 fault condition

Support interrupt priority levels on Teensy3

Serial1 on Teensy3 to transmit even if interrupt blocked

Fix Teensy3 USB buffer memory leak with re-enumeration

USB Mouse on Teensy3 now uses absolute cursor positioning,

Mouse.moveTo(x, y) and Mouse.screenSize(width, height)

USB Keyboard on Teensy3 supports media keys (Mac & Linux only)

Add missing AVR string _P functions on Teensy3

Add missing AVR eeprom functions on Teensy3

Improve Serial1, Serial2, Serial3 buffer size configuration on Teensy3

Fix to Teensy3 Makefile

USB MIDI example improved

Stream printf, eg: Serial.printf()

Add missing new/delete

Add digitalPinToInterrupt

Added SPIFIFO for Teensy3

Ethernet library speedup (using SPIFIFO)

Hardware serial support for other data formats, 7E1, 8N2, etc

9 bit serial format (not enabled by default)

Czech keyboard layout (not enabled by default)

Fix Keyboard.releaseAll() on Teensy3

Fix USB MIDI setHandlePitchChange on Teensy2

Fix arm math lib warnings

Fix digital signatures for Windows exe files

Removed ancient Arduino 0023 support

Windows USB Serial driver signature (should now install on Windows 8 without reboot)

Windows Installer signature

Windows Installer tries to find Arduino and automatically select its location

Version 1.16

SPI library can assign alternate Teensy3 pins: setMOSI, setMISO, setSCK.

Reduce Teensy 3.0 power consumption while not uploading.

Improve Teensy 3.0 upload on Macintosh.

Avoid erasing EEPROM during Teensy 3.0 upload.

Version 1.15

Fixed Serial2 and Serial3 regression on Teensy 3.0.

Fixed USB MIDI sendProgramChange on Teensy 3.0.

Add ARM math library for Teensy 3.0.

Teensy Loader now recognizes ARM elf format, will not accidentally program Teensy 3.0 code to a pre-3.0 board.

Teensy Loader version number is now in sync with Teensyduino version.

Fix stall when connected to a Raspberry Pi that reboots

Add float number support to String

Add String remove()

String now formats unsigned char as a number, same as Print.

Add AVR pin number constants

Added open source license to Teensy3 core library files

Updated Firmata library

Fix USB product name customization header

Reduce USB memory usage

Emulate AVR's TWBR register on Teensy 3.0

Fix single-quote key for USB Keyboard on German and French Canadian layouts

Version 1.14

Updated Time library. 'atime_t' on Teensy 3.0 changed back to 'time_t'. Date strings fixed on Teensy 3.0. NTP and GPS sync examples updated for Arduino 1.0.4. Many other fixes and improvements to the Time library examples.

Added DS1307RTC and TimeAlarms libraries (companions to Time library).

Linux select-paste supported (Arduino 1.0.4 and later, Linux only)

Added 'Copy To Clipboard' button for compile errors (Arduino 1.0.4 and later)

Turkish keyboard layout special keys supported for USB keyboard.

Fixed Ethernet DNS client bug on Teensy 3.0.

KEY_MENU name added for the menu key.

Memory tuning parameters (heap_start, heap_end, malloc_margin) supported on Teensy 2.0.

Fix compile error on Teensy 2.0 with ps2dev library.

Fix F() macro 'const' when used with newer versions of avr-gcc.

Added DDR registers and pullup resistors to AVR port register emulation on Teensy 3.0.

Optimized Serial1.write(buffer, length) on Teensy 3.0.

Added IntervalTimer to Teensy 3.0 - Thanks to Daniel Gilbert

Added compiler defines to example makefile, for compatibility with Arduino libraries

Added cxa_guard_acquire / cxa_guard_release needed for some Ethernet library applications

Fixed brief glitch at the beginning of analogWrite()

Round analogWriteFrequency() to the nearest possible frequency

Fix micros() bug on Teensy 3.0 when read while interrupts disabled.

Fix IPaddress Printable usage on Teensy 3.0

Fix Serial1 on Teensy 3.0 when more than 8 bytes written with interrupts disabled.

Optimize Serial1 FIFO handling on Teensy 3.0, for dramatically less CPU time per byte.

Convert tone() on Teensy 3.0 to use IntervalTimer.

Use serial number for all USB types on Teensy 3.0.

Remove MIDI message names which conflict with MIDI 3.2 library.

Allow override of USB manufacturer, product and serial strings on Teensy 3.0. See usb_names.h.

Add makeWord() to Teensy 3.0.

Fix buffer overflow in String + long integer concatenation on Teensy 3.0.

Update AccelStepper library.

Update Encoder library - now supports interrupts on all Teensy 3.0 pins.

Update PS2Keyboard library - French keymap, readUnicode() function, Teensy 3.0 interrupt support.

Update TinyGPS library

Support for Arduino 1.0.5.

Optimize Serial.readBytes(), both Teensy 2.0 and 3.0.

Optimize Serial.available() on Teensy 3.0.

Added IntervalTimer destructor.

Added String c_str() function.

Removed ArdOSC library.

DmxSimple library support for Teensy 2.0 and 3.0 (previously only Teensy++ 2.0 worked)

Fixed FastSPI compile problem on Teensy 2.0 and Teensy++ 2.0.

Update MIDI library to version 3.2.

Fixed error highlighting when using Teensy 3.0.

Improved recompile speed when Arduino is installed in a location with space in the pathname.

Improved automatic initialization of the Teensy 3.0 RTC, when a 32.768 kHz crystal is present.

Fix SD + Ethernet library compatibility on Teensy 3.0.

All 4 IntervalTimer objects usable on Teensy 3.0.

Fix off-by-one bug in delay() on Teensy 3.0.

Enable I/O after wakeup from lowest power stop mode on Teensy 3.0.

Fix analogInputToDigitalPin() on Teensy++ 2.0.

Added OSC (Open Sound Control) library

Updated VirtualWire library to 1.15 and support Teensy 3.0

Updated SoftPWM library to 1.5 and support Teensy 3.0

Updated XBee library to 0.4.

Added partial SoftwareSerial for Teensy 3.0. If the pins match one of the real serial ports, hardware serial is used. This allows use of libraries that are hard-coded for SoftwareSerial. If non-serial pins are specified, only transmit works. Software-based receive is not yet supported (but planned for a future release)

Version 1.13

Support for Arduino 1.0.4

Fix Serial.write(0)

Turkish keyboard layout (Teensy 3.0)

Fix while(!Serial)

Fixes for ST7565 library (Teensy 3.0)

Add OctoWS2811 library

Update libraries: Keypad, Metro, OneWire, Ping, ST7565

Version 1.12

Support for Teensy 3.0

Version 1.11

Support for Arduino 1.0.3

Fix French keyboard layout

Version 1.10

Support for Arduino 1.0.2

Fix error message line number bug.

Add Teensy 3.0 files (arm-none-eabi toolchain is not yet in the installer, usethis copy for Teensy 3.0).

Version 1.09

Support for Arduino 1.0.1

Keyboard.press() & Keyboard.release(), for compatibility with Leonardo sketches

Add descriptions for most included libraries.

Fix USB Mouse Buttons example.

Version 1.08

Support for Arduino 1.0.1-rc2

Add Flight Sim Controls USB Type

Add function keys F13 to F24 to USB Keyboard

Add Canadian Multilingual keyboard layout

Add libraries AccelStepper, AltSoftSerial, Encoder, FlexiTimer2, LowPower, Ping, ShiftPWM

Minor fixes and changes for compatibility with libraries

Version 1.07

Serial + Keyboard + Mouse + Joystick type

Raw HID available() function

Fix Ethernet library UDP support on 0022 & 0023

Windows installer: faster detection of serial driver already installed

Version 1.06

Support for Arduino 1.0

German Mac keyboard layout

(experimental) Raw HID USB type

Version 1.05

Add media keys. See File > Examples > Teensy > USB_Keyboard > MediaButtons

Improve elapsedMillis & elapsedMicros.

Fix small delayMicroseconds at 1 & 2 MHz clock.

Version 1.04

Add elapsedMillis & elapsedMicros.

Fix slight timekeeping error in millis().

Fix errors with avr-gcc 4.5 on Fedora 15 (thanks to Ward Wouts).

Version 1.03

Support Arduino 0023

More minor fixes in Print

MIDI improvements, thanks to Sebastian Tomczak & Dave Sorlien

Version 1.02

Minor fixes in Print

Support CapacitiveSensor library

Version 1.01

Support Arduino 1.0-rc2

Fix pulseIn

Fix printing negative floats

Improve Disk claim/release, add pause/resume API

Add compatibility functions for Leonardo Mouse API

Improve serial emulation on Linux

Version 1.00

Fix obscure bug in pinMode

Fix slow memory leak on Linux

Version 0.99

Support Arduino 1.0-rc1

Add more keyboard mappings

Add pushbutton examples using Bounce library

Version 0.98

Fix Ethernet on 1.0-beta4

Fix slow startup of serial monitor in Mac

Fix compile speedups for Mac and Windows

Version 0.97

Support Arduino 1.0-beta4,drop old 0018 & 0021

Fix stall of compile/upload when auto-launching Teensy Loader

Many small fixes

Version 0.96

USB Joystick type

Improved keyword coloring

(not working yet) Disk.claim() to allow using SD library with USB Disk type

Serial using Stream class

MIDI 2.6 library included

Try to avoid stalling millis() with USB Disk and heavy PC access

Several minor bug fixes

Version 0.95

Installs 3rd Party Arduino Libraries

Installs Teensy Loader

More Examples, in File > Examples > Teensy

Version 0.94

Support for Arduino version 0022

USB MIDI type added

International USB Keyboard layouts

String class bug fixes

Rework boards.txt menu syntax (requested by Arduino devs, issue #257)

Fixed Ethernet with 0021 & 0022

Version 0.9

Support for Arduino versions 0019 and 0021

USB Disk type added, supporting both SD Flash and internal flash

Fix Arduino bugs #29, #78, #209, #235

Emulate Arduino reboot behavior with Serial Monitor window is opened

Windows - directory drop-down now says '[all drives]', instead of just blank space

Compatibility with 0019, String class, improved delay(), stream class, shiftIn()

Compatibility with 0018, Tone() and noTone()

USB Serial: ignore break signal (some buggy programs send it, eg winbatch)

Windows - Teensyduino installer now included Serial driver install

USB Type and CPU Speed menus added inside Tools menu

Version 0.8B

Fix rare digitalWrite and digitalRead interference bug

Add A0, A1, A2... for analogRead(A0) - Arduino 0019 compatibility

Version 0.8

Add support for Teensy++ 2.0

Add support for Arduino 0018

Fix ethernet library

Add Serial.end() - shuts off and disconnects USB, saves power!

Automatically shut down USB when possible

Serial.begin() attempts to wait until PC/Mac has initialized USB

Add Uart.end()

Remove Teensy_Firmata - StandardFirmata branch now supports Teensy

Optimize most functions

Minor bug fixes

Version 0.7

Better error checking when installing files

Do not require rxtx lib on linux, which is removed on 64 bit systems

Fix USB Keyboard/Mouse on Teensy 1.0

Support 8, 4, 2, 1 MHz if specified in boards.txt

Use ADC in high speed mode, makes analogRead() twice as fast

Use lower power idle mode inside delay()

Minor bugs fixed

Version 0.6

Add Keyboard and Mouse board types

Add support for Teensy 2.0 (ATMEGA32U4 chip)

Add support for 0017.

Version 0.5

Add Firmata example

Add USB serial extensions to Serial

Add support for 0016.

Fix Serial.available()

Fix HardwareSerial()

Check Arduino version, do not install onto wrong version!

Version 0.4

Library fixes included, compatible with Sanguino

Add support for 0015.

Update core with improvements and bug fixes from 0012 to 0015.

Many small improvements.....

Version 0.3

Version 0.3 adds support for the Teensy++.

Pin names are now defined automatically. PIN_B0, PIN_C7, etc.

Add support for 0014 (0013 on linux because 0014 was never released on linux).

Version 0.2

Change API to use Serial.print to talk to USB.

Fix pinout

Many bugs fixed

Version 0.1

Initial release

Known Issues

Windows:Windows Defender and many anti-virus programs can dramaticallyslow down code compilation. A modern PC should take less than 10 seconds toverify simple programs. If Arduino takes 1 minute or longer to verify simpleprograms, that is a sure sign anti-virus software is slowing you down.
Configuring Windows Defender so that it does not check intermediate Arduino buildfolders & products (to keep it from slowing down the build).

1) Open Windows Defender
2) Click on 'App & browser control'

3) Click on 'Exploit protection settings'

4) Click on 'Program settings'

5) Click on 'Add program to customize' & specifically select 'Choose exact file path'

6) Navigate to the location where your Arduino IDE is installed (typically 'C:ProgramFiles (x86)Arduino'), highlight the 'arduino.exe' executable & click 'Open'

7) Activate the 'Override system settings' checkbox for every option & verify that theyare all turned off (make sure to scroll down the list to get everything)

8) Click 'Apply' to complete the process.

Special thanks to Mark J Culross (KD5RXT) forcontributing these Windows Defender instructions.

Macintosh: Teensyduino requiresaccess to your Documents folder, because Arduino stores installed libraries andboards in Documents/Arduino. If you have disallowed access to Documents,Teensyduino may fail to open. To solve this problem, open System Preferences,click Security & Privacy, and select Files and Folders. Then findTeensyduino on the list of applications which have requested access toyour Documents Folder. This box must be checked for Teensyduino to work.

All: Serial + Keyboard + Mouse + Joystickrequires Mac OS X Lion, or Windows XP SP3, Vista SP1, or Windows 7,or Linux 2.6.18 or later.Mac Snow Leopard and Windows XP SP2 do not support Serial whencombined with other types.

Windows & Linux: When using the Serial Monitor withthe USB Keyboard/Mouse option, sometimes a 'teensy gatewaycommunication error' can occur. Close and reopen the serialmonitor to regain communication.

Windows: You may need to run the Teensyduino installer asadministrator for it to install all files. Some anti-virusprograms can also interfere with installation and must betemporarily disabled. ANorton AntiVirus Workaroundwas sent by Carl B.

All: The Upload button can only work if your Teensy is runninga previously loaded sketch. If your board can not be rebootedautomatically, a message will ask you to press the reset button.

Mac OS X: When you run Arduino after installing Teensyduino, theLeopard's firewall will recognize the program has changed and willask again if you wish to allow internet connection (Arduino checksfor updates). Teensyduino does not 'phone home', but Arduino does!TODO: is this still an issue with recent versions of Arduino??

Linux: By default, the TeensyduinoInstall.linux32and TeensyduinoInstall.linux64 files will not have execute permission enabledwhen saved by most web browsers. Use a file manager or type'chmod 755 TeensyduinoInstall.linux32' in a terminal to make the file executable.Then you can run it. In a terminal, type './TeensyduinoInstall.linux32'. Replace'32' with '64' if using the 64 bit version, or 'arm' if using the ARM (Raspberry Pi)version.

Linux: Teensyduino only works with Arduino from www.arduino.cc.The modified version provided by Ubuntu is not (yet) supported.

Linux (especially Gentoo): Arduino uses the AVR toolchainprovided by your system. As of December 2011, Gentoo's avr-gcc is horriblybroken. Some newer Fedora (avr-gcc 4.6.x) also have trouble. FaultyAVR toolchains are a persistent problem on Linux.

Please report bugs to paul@pjrc.com

Credits

The Teensyduino installer is based in part on the work ofthe FLTK project (http://www.fltk.org).

Numerous files covered by various open source licenses are installedby Teensyduino. Nearly all are provided in source code form. Pleaserefer to the comments within each file for copyright and licensinginformation.

Files installed in compiled binary format that are based on code licensedunder the GNU General Public License have their corresponding source codeinstalled in a 'src' directory. On Macintosh, use control-click on Arduinoand select 'Show Package Contents' from the menu.

The ARM toolchain source code (with PJRC's patches) isavailable on GitHub.

Jan 22, 2019 By Team YoungWonks *

How do you program an Arduino using a Mac? This blog will tell how. But before we get into that, let’s take a look at what is an Arduino?

What is Arduino?

An Arduino is basically a single board microcontroller that is used for building digital devices and interactive objects that can sense and control objects in the physical and digital world. These Arduino boards are available both in preassembled form or as do-it-yourself (DIY) kits. Arduino board designs use a variety of microprocessors and controllers. The boards come fitted with sets of digital and analog input/output (I/O) pins that can be interfaced to several expansion boards or breadboards (shields) and other circuits.

One of the biggest advantages that Arduino boards have over Raspberry Pi is the fact that they can read sensitive values from sensors and Arduino boards have analog input and output and not digital input output which is the case with Raspberry Pi. This is why in some instances - especially where exact values are needed - it is a more apt choice. Say, if you want to make a device that automatically waters your plants. Now to do this, you have to measure the exact soil moisture, so an Arduino is a better bet because it can read analog values as opposed to the Raspberry Pi which will need another chip to read analog values.

Arduino has low maintenance and doesn’t get disrupted by power outages. But image processing needs can be done better with Raspberry Pi and Pi camera.

In this blog, we shall look at how we can program an Arduino board using a Mac OS. Here’s the step-by-step process to program an Arduino board with a Mac:

Install arduino uno driver mac

Downloading and installing Arduino on a Mac

Step 1: Get all the needed equipment in place. This means having with you the Arduino Uno board and the USB data cable that will help you connect the board to your Mac.

You’ll also need a breadboard, jumper cables(M-M), an LED and a resistor (with a resistance of say, 330 Ohms).

Step 2: Then start by connecting the narrow end of the USB data cable to your Arduino board as shown below.

Step 3: Then connect the other end of the USB data cable to your Mac. At this stage, your Mac and the Arduino board have been connected to each other using the USB cable. Refer to the pic below.

Step 4: Now go on to download the Arduino IDE on your Mac. To do this, open Safari on your Mac and just go to the website www.arduino.cc. Once you have opened the website, go to the software section and click on downloads from the dropdown menu. Now select the Mac OS X version, hit download and wait for the download to finish. Once it downloads, one can run the Installer in the next step.

Step 5: To install the IDE, we need to run the file that we just downloaded. Click on Agree and continue with the default settings for the rest of the installation. Once the installation is done, click on the close button to finish the installation.

Now that we have downloaded and installed the Arduino IDE on our Mac, we can carry out a number of tasks using the Arduino IDE. This includes getting the board to say, “Hello World”, running the counter program and lighting an LED - all using the Arduino.

Saying “Hello World”

Let’s look at what goes into writing our first program, the “Hello World” program. Let’s open the Arduino IDE that we have installed on the Mac. Make sure you check the board name under the Tools option as Arduino Uno. Also make sure that the communication port is selected as COM3. Now to see the information sent by our Arduino, we have to open the serial monitor we see on the right.

In the program, we start by putting Serial.begin 9600 in the void setup function which is the one-time setup required for exchanging information over the serial port from the Arduino to the computer. 9600 here is called the baud rate. It is the rate at which the Arduino can send symbols or characters to the computer.

In the void loop function, we use a very simple serial.print to show data on the serial monitor.

You can first save it and then upload the design onto the Arduino. You’ll then see that the words “Hello World!” are being sent by the Arduino to the computer and we can see the words on the serial monitor. You’ll see that the words “Hello” and “World” are appearing next to each other. However, if we use a n in our print command, we will see the two words printed one below the other.

Arduino Install Mac

Running the Counter Program

Let’s take a look at the next program. We will design a simple counter by opening the Arduino IDE and the serial monitor. Let’s start by defining the counter variable. Here we say int <space> counter equals one and add a semicolon at the end. This initializes the value of the counter to 1 at the beginning. Now just like in the previous program, we initialize the serial connection.

In the loop, we print the counter value and we also increase the value of the count by one. Here, we use the printIn function to automatically add a new line after having printed the value of the counter. Now this would be too fast and for us to understand what’s happening in the output, we add a delay and the argument is in milliseconds. So for a one second delay, we provide an argument of thousand to the delay function. Finally, increase the value of counter by one using the counter++ statement. Once we save and upload this design onto the Arduino, we will be able to see that a counter variable is constantly being increased in value and this value is being communicated to the computer over the serial connection.

Lighting an LED

Lighting the inbuilt LED on the Arduino

Now the next program we will be working on is blinking the Arduino’s inbuilt LED. You can see that right next to pin number 13 among the digital pins, there’s an LED which is orange in colour. We will learn how to make it blink once every second. And just like we do with the Raspberry Pi, we will start by initializing the pin to be an output so we can control its values. Here we say pinMode and we say 13 which is the pin for the inbuilt LED and we set it as an output so that we can send values of high or low. We then begin our loop function by setting value of the 13 pin to 1 (or high). We do this by using the DigitalWrite function. We then add a delay of one second and then we set the value of the 13 pin as low. Don’t forget to add a delay after turning it low. Now when you run the code, you should be able to see the light next to the pin number 13 blink.

Writing the program to blink an LED on the breadboard

Here we will see how one can write the program that allows the Arduino to make an LED on the breadboard blink once every one second. Just like in the previous case, we will set values and this time, we will choose pin number 12 and we will set it as an output. So we type the pinMode, 12, output. In the void loop, we use the serial to communicate messages from the Arduino to the computer. We use the DigitalWrite function to turn the pin on or set it to high. Then we add the delay of one second. In the same fashion, we will turn the pin off by using the DigitalWrite function. Similarly, we can add a message and a delay so that we see the output very clearly.

Next you can save and upload this. Go to your Arduino, make sure you have the serial monitor open so you can see the output. Now this code seems to work as it prints LED high and LED low every one second. At this stage, we need to make an LED circuit on the breadboard and connect it to the Arduino to see the actual result.

Making connections to blink an LED on the breadboard

Now we will explore the connections to be made on the breadboard so as to make an LED blink from the Arduino.

Arduino Install Mac

Here’s how you make connections to blink an LED on the breadboard using an Arduino:

Just like with Raspberry Pi, we set up the LED first. We place the LED on the breadboard across the middle separation.

Then we add a resistor (say with a resistance in the range of 220 to 600 ohms). We place one end of the resistor on the same line as the LED.

Now we connect the resistor’s other end to the railing for the Ground.

We use a wire to connect it to the Ground pin on the Arduino.

Install Arduino Uno Driver Mac

The closeup of the Arduino after the connections have been made will look like this.

We then connect the other end of the LED to the pin number 12 which we are programming for.

Arduino Install Mac Version

The closeup of the breadboard after the connections have been made will look like this.

Arduino Install Mac

Since the program is already on the Arduino, we should immediately be able to see the light blink.

Here's a video explaining in entirety how to program an Arduino using a Mac:

*Contributors: Written by Vidya Prabhu; Lead image by: Leonel Cruz