Arduino Due libraries (official and 3rd party)

Roving Networks RN-XV library.

Basically this is the one from https://github.com/harlequin-tech/WiFlyHQ but modified to work with Arduino Due is at:

https://bitbucket.org/thiseldo/wiflyhqdue

Changes are to remove PSTR and PROGMEM use and to change to hardware serial instead of softserial.

Examples updated.

There may still be issues with this as not fully tested in all situations, but basic client and server actions seem to work.

Full credit to the original authors, Harlequin-tech for their library.

Thanks

Andy

who knows the link of the IRremote.h for the Due

I created a simple external memory interface/static memory controller. Because of some HW limitations, it's not a full bus interface but can be used for interfacing with parallel LCDs.

More info here: http://arduino.cc/forum/index.php/topic,152644.0.html

ported Adafruit's sensor framework and TSL2561 (luminosity sensor) lib to the Due:

https://github.com/ecopoesis/Adafruit_Sensor https://github.com/ecopoesis/Adafruit_TSL2561

The AccelStepper library works beautifully with the Due. (Using step/dir based driver board.)

Desc:
High performance Non-Blocking (or blocking if desired).
Stepper library written in C++

Developmental Assets:
Very well documented.

Library: pwm01.h
Description: A clean alternate approach for setting up unique PWM frequencies from within a sketch, for any or all PWM pins. The trick is to utilize the two PWM clocks (CLKA & CLKB) provided by the SAM3X8E chip.

I wrote and enclosed a library (pwm01.h). It includes 4 user functions to: 1) setup PWM resolution, 2) setup PWM pin, frequency & pick clock, 3) write duty cycle, and 4) stop PWM. See example code for usage:

#include "C:\Programs\arduino-1.5.1r2\hardware\arduino\sam\libraries\Pwm01\pwm01.h"

void setup() 
{
    uint32_t  pwm_duty = 32767;
    uint32_t  pwm_freq1 = 2;  
    uint32_t  pwm_freq2 = 5000;

    // Set PWM Resolution
    pwm_set_resolution(16);  

    // Setup PWM Once (Up to two unique frequencies allowed
    //-----------------------------------------------------    
    pwm_setup( 6, pwm_freq1, 1);  // Pin 6 freq set to "pwm_freq1" on clock A
    pwm_setup( 7, pwm_freq2, 2);  // Pin 7 freq set to "pwm_freq2" on clock B
    pwm_setup( 8, pwm_freq2, 2);  // Pin 8 freq set to "pwm_freq2" on clock B
    pwm_setup( 9, pwm_freq2, 2);  // Pin 9 freq set to "pwm_freq2" on clock B
      
    // Write PWM Duty Cycle Anytime After PWM Setup
    //-----------------------------------------------------    
    pwm_write_duty( 6, pwm_duty );  // 50% duty cycle on Pin 6
    pwm_write_duty( 7, pwm_duty );  // 50% duty cycle on Pin 7
    pwm_write_duty( 8, pwm_duty );  // 50% duty cycle on Pin 8
    pwm_write_duty( 9, pwm_duty );  // 50% duty cycle on Pin 9

    delay(30000);  // 30sec Delay; PWM signal will still stream
        
    // Force PWM Stop On All Pins
    //-----------------------------    
    pwm_stop( 6 );
    pwm_stop( 7 );
    pwm_stop( 8 );
    pwm_stop( 9 );
}

void loop() 
{  
}

The pwm01.h library and example code were tested in IDE 1.5.1r2. Additional notes on this library:

  • Applies to Arduino-Due board, PWM pins 6, 7, 8 & 9.
  • Libary Does not operate on the TIO pins.
  • Unique frequencies set via PWM Clock-A (“CLKA”) and Clock-B (“CLKB”)
    Therefore, up to two unique frequencies allowed.
  • Set max duty cycle counts (pwm_max_duty_Ncount) equal to 255 per Arduino approach.
    This value is best SUITED for low frequency applications (2hz to 40,000hz) such as
    PWM motor drivers, 38khz infrared transmitters, etc.
  • Future library versions will address high frequency applications.
  • Arduino’s “wiring_analog.c” function was very helpful in this effort.

pwm01.h (3.96 KB)

Encoder has been updated to support Arduino Due.

http://www.pjrc.com/teensy/td_libs_Encoder.html

Bitlash is confirmed up and running on the Due, thanks to patches submitted by a friendly user.

http://bitlash.net

Regards to all,

-br

ShiftOutMega.h

http://www.4shared.com/get/QSUfwzo4/ShifOutMega.html

DS1307.h

http://www.4shared.com/get/HIZiPup2/DS1307.html

Hi!
As i like libraries, i have done one for Timers on the Arduino DUE.

You can check it out here: GitHub - ivanseidel/DueTimer: ⏳ Timer Library fully implemented for Arduino DUE

All 6 timers are fully implemented, and ready to play with…

I made a (very basic) library to interface with the FTDI Vdrive2 module. Uses TX1/RX1 for communication with the Vdrive2 and TX0/RX0 to send the responses to the Serial Monitor.

https://github.com/prphntm63/VDRIVE2.git

Improvements welcome ;)

I can confirm that the Xbee Library works on DUE. I ported over my code and tested last night.

http://code.google.com/p/xbee-arduino/

ivanseidel: Hi! As i like libraries, i have done one for Timers on the Arduino DUE.

You can check it out here: https://github.com/ivanseidel/DueTimer

All 6 timers are fully implemented, and ready to play with...

I have merged all the features of my timer library with his. This is a great timer library, and we would love feedback for any features that people would like to see.

The Time library has been updated for compatibility with Arduino Due.

http://playground.arduino.cc/Code/Time

A Due-specific example was added, using Markus Lange's rtc_clock library to access the Due's on-chip RTC.

[quote author=Paul Stoffregen link=topic=144446.msg1190733#msg1190733 date=1365357179] The Time library has been updated for compatibility with Arduino Due.

http://playground.arduino.cc/Code/Time

A Due-specific example was added, using Markus Lange's rtc_clock library to access the Due's on-chip RTC. [/quote]

What on-chip RTC? I just built a DS1307 project for Arduino Mini; does the Arduino Due have an internal RTC so a chip like DS1307 is not needed?

[quote author=Kuya Marc link=topic=144446.msg1193606#msg1193606 date=1365519313] What on-chip RTC? [/quote]

Due does have an on-chip RTC. The way the reset signals are wired makes it less useful for many projects, but there is indeed a RTC on the chip.

For more info, please download the new version of the Time library and look at its TimeArduinoDue example. You'll also need Markus's rtc_clock libary. Again, see the comments in TimeArduinoDue for more info.

ivanseidel: Hi! As i like libraries, i have done one for Timers on the Arduino DUE.

You can check it out here: https://github.com/ivanseidel/DueTimer

All 6 timers are fully implemented, and ready to play with...

May I ask you how I can use your file? I cannot include any library from out side. Is there anyway to run within one file? I would like to use a timer and change the REG by Serial Monitor.

henrimontreal:

ivanseidel: Hi! As i like libraries, i have done one for Timers on the Arduino DUE.

You can check it out here: https://github.com/ivanseidel/DueTimer

All 6 timers are fully implemented, and ready to play with...

May I ask you how I can use your file? I cannot include any library from out side. Is there anyway to run within one file? I would like to use a timer and change the REG by Serial Monitor.

Hi, If you want to include the library to your project, than all you nees to do is to copy DueTimer.h and DueTimer.cpp to your sketch folder and include it normaly (#include "DueTimer.h"). What do you mean by change REG? And might I ask why can't you install the library? Thanks, Ivan

I ported Ken Shirriff's IRremote library to work with the Due with a few improvements: https://github.com/enternoescape/Arduino-IRremote-Due

Note: Don't forget to use a transistor to drive the IR LED. It might work powered directly, but probably not for long. :)

I updated the RF24 (Nordic nRF24L01+) library to run on the Due. I ran the basic ping/pong dyn example for testing.

Code: https://github.com/mcrosson/RF24

Edit: You'll need to use the "due" branch from the above repo with the DUE.