aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rwxr-xr-xcore/libraries/EEPROM/EEPROM.cpp50
-rwxr-xr-xcore/libraries/EEPROM/EEPROM.h35
-rw-r--r--core/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.pde21
-rw-r--r--core/libraries/EEPROM/examples/eeprom_read/eeprom_read.pde38
-rw-r--r--core/libraries/EEPROM/examples/eeprom_write/eeprom_write.pde38
-rw-r--r--core/libraries/EEPROM/keywords.txt18
-rw-r--r--core/libraries/Firmata/Firmata.cpp128
-rw-r--r--core/libraries/Firmata/Firmata.h95
-rw-r--r--core/libraries/Firmata/keywords.txt18
-rwxr-xr-xcore/libraries/Matrix/Matrix.cpp229
-rwxr-xr-xcore/libraries/Matrix/Matrix.h54
-rw-r--r--core/libraries/Matrix/examples/hello_matrix/hello_matrix.pde39
-rw-r--r--core/libraries/Matrix/examples/sprite_animation/sprite_animation.pde45
-rw-r--r--core/libraries/Matrix/keywords.txt22
-rwxr-xr-xcore/libraries/SoftwareSerial/SoftwareSerial.cpp227
-rwxr-xr-xcore/libraries/SoftwareSerial/SoftwareSerial.h56
-rw-r--r--core/libraries/SoftwareSerial/keywords.txt18
-rw-r--r--core/libraries/Sprite/Sprite.cpp95
-rw-r--r--core/libraries/Sprite/Sprite.h48
-rw-r--r--core/libraries/Sprite/binary.h515
-rw-r--r--core/libraries/Sprite/keywords.txt534
-rw-r--r--core/libraries/Stepper/Stepper.cpp220
-rw-r--r--core/libraries/Stepper/Stepper.h86
-rw-r--r--core/libraries/Stepper/examples/MotorKnob/MotorKnob.pde40
-rw-r--r--core/libraries/Stepper/keywords.txt28
-rwxr-xr-xcore/libraries/Wire/Wire.cpp262
-rwxr-xr-xcore/libraries/Wire/Wire.h67
-rwxr-xr-xcore/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.pde84
-rw-r--r--core/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.pde34
-rw-r--r--core/libraries/Wire/examples/master_reader/master_reader.pde29
-rw-r--r--core/libraries/Wire/examples/master_writer/master_writer.pde28
-rw-r--r--core/libraries/Wire/examples/slave_receiver/slave_receiver.pde35
-rw-r--r--core/libraries/Wire/examples/slave_sender/slave_sender.pde29
-rw-r--r--core/libraries/Wire/keywords.txt31
-rw-r--r--core/libraries/Wire/utility/twi.c449
-rwxr-xr-xcore/libraries/Wire/utility/twi.h57
36 files changed, 0 insertions, 3802 deletions
diff --git a/core/libraries/EEPROM/EEPROM.cpp b/core/libraries/EEPROM/EEPROM.cpp
deleted file mode 100755
index 3a361e7..0000000
--- a/core/libraries/EEPROM/EEPROM.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- EEPROM.cpp - EEPROM library
- Copyright (c) 2006 David A. Mellis. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-/******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include <avr/eeprom.h>
-#include "WConstants.h"
-#include "EEPROM.h"
-
-/******************************************************************************
- * Definitions
- ******************************************************************************/
-
-/******************************************************************************
- * Constructors
- ******************************************************************************/
-
-/******************************************************************************
- * User API
- ******************************************************************************/
-
-uint8_t EEPROMClass::read(int address)
-{
- return eeprom_read_byte((unsigned char *) address);
-}
-
-void EEPROMClass::write(int address, uint8_t value)
-{
- eeprom_write_byte((unsigned char *) address, value);
-}
-
-EEPROMClass EEPROM;
diff --git a/core/libraries/EEPROM/EEPROM.h b/core/libraries/EEPROM/EEPROM.h
deleted file mode 100755
index aa2b577..0000000
--- a/core/libraries/EEPROM/EEPROM.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- EEPROM.h - EEPROM library
- Copyright (c) 2006 David A. Mellis. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef EEPROM_h
-#define EEPROM_h
-
-#include <inttypes.h>
-
-class EEPROMClass
-{
- public:
- uint8_t read(int);
- void write(int, uint8_t);
-};
-
-extern EEPROMClass EEPROM;
-
-#endif
-
diff --git a/core/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.pde b/core/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.pde
deleted file mode 100644
index 36af68e..0000000
--- a/core/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.pde
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * EEPROM Clear
- *
- * Sets all of the bytes of the EEPROM to 0.
- */
-
-#include <EEPROM.h>
-
-void setup()
-{
- // write a 0 to all 512 bytes of the EEPROM
- for (int i = 0; i < 512; i++)
- EEPROM.write(i, 0);
-
- // turn the LED on when we're done
- digitalWrite(13, HIGH);
-}
-
-void loop()
-{
-}
diff --git a/core/libraries/EEPROM/examples/eeprom_read/eeprom_read.pde b/core/libraries/EEPROM/examples/eeprom_read/eeprom_read.pde
deleted file mode 100644
index 2e30708..0000000
--- a/core/libraries/EEPROM/examples/eeprom_read/eeprom_read.pde
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * EEPROM Read
- *
- * Reads the value of each byte of the EEPROM and prints it
- * to the computer.
- */
-
-#include <EEPROM.h>
-
-// start reading from the first byte (address 0) of the EEPROM
-int address = 0;
-byte value;
-
-void setup()
-{
- Serial.begin(9600);
-}
-
-void loop()
-{
- // read a byte from the current address of the EEPROM
- value = EEPROM.read(address);
-
- Serial.print(address);
- Serial.print("\t");
- Serial.print(value, DEC);
- Serial.println();
-
- // advance to the next address of the EEPROM
- address = address + 1;
-
- // there are only 512 bytes of EEPROM, from 0 to 511, so if we're
- // on address 512, wrap around to address 0
- if (address == 512)
- address = 0;
-
- delay(500);
-}
diff --git a/core/libraries/EEPROM/examples/eeprom_write/eeprom_write.pde b/core/libraries/EEPROM/examples/eeprom_write/eeprom_write.pde
deleted file mode 100644
index ae7c57e..0000000
--- a/core/libraries/EEPROM/examples/eeprom_write/eeprom_write.pde
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * EEPROM Write
- *
- * Stores values read from analog input 0 into the EEPROM.
- * These values will stay in the EEPROM when the board is
- * turned off and may be retrieved later by another sketch.
- */
-
-#include <EEPROM.h>
-
-// the current address in the EEPROM (i.e. which byte
-// we're going to write to next)
-int addr = 0;
-
-void setup()
-{
-}
-
-void loop()
-{
- // need to divide by 4 because analog inputs range from
- // 0 to 1023 and each byte of the EEPROM can only hold a
- // value from 0 to 255.
- int val = analogRead(0) / 4;
-
- // write the value to the appropriate byte of the EEPROM.
- // these values will remain there when the board is
- // turned off.
- EEPROM.write(addr, val);
-
- // advance to the next address. there are 512 bytes in
- // the EEPROM, so go back to 0 when we hit 512.
- addr = addr + 1;
- if (addr == 512)
- addr = 0;
-
- delay(100);
-}
diff --git a/core/libraries/EEPROM/keywords.txt b/core/libraries/EEPROM/keywords.txt
deleted file mode 100644
index d3218fe..0000000
--- a/core/libraries/EEPROM/keywords.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-#######################################
-# Syntax Coloring Map For Ultrasound
-#######################################
-
-#######################################
-# Datatypes (KEYWORD1)
-#######################################
-
-EEPROM KEYWORD1
-
-#######################################
-# Methods and Functions (KEYWORD2)
-#######################################
-
-#######################################
-# Constants (LITERAL1)
-#######################################
-
diff --git a/core/libraries/Firmata/Firmata.cpp b/core/libraries/Firmata/Firmata.cpp
deleted file mode 100644
index de58a41..0000000
--- a/core/libraries/Firmata/Firmata.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- Firmata.cpp - Firmata library
- Copyright (c) 2007 Free Software Foundation. All right reserved.
- Written by Hans-Christoph Steiner <hans@at.or.at>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-//******************************************************************************
-//* Includes
-//******************************************************************************
-
-extern "C" {
- // AVR LibC Includes
- #include <inttypes.h>
- #include <stdlib.h>
-
- // Wiring Core Includes
- #include "WConstants.h"
-}
-
-#include "Firmata.h"
-#include "EEPROM.h"
-#include "HardwareSerial.h"
-
-//******************************************************************************
-//* Definitions
-//******************************************************************************
-
-//******************************************************************************
-//* Constructors
-//******************************************************************************
-
-FirmataClass::FirmataClass()
-{
- // TODO: init serial here
- // TODO: printVersion
-}
-
-//******************************************************************************
-//* Private Methods
-//******************************************************************************
-// resets the system state upon a SYSTEM_RESET message from the host software
-void FirmataClass::systemReset(void)
-{
- // TODO automatically call this in response to SYSTEM_RESET
- // TODO reset EEPROM to 0 here
-}
-
-//******************************************************************************
-//* Public Methods
-//******************************************************************************
-
-// output type of message that is next on the queue
-int FirmataClass::available(void)
-{
- // TODO output next available message type, or -1 if nothing
-}
-
-
-// output the protocol version message to the serial port
-void FirmataClass::printVersion() {
- Serial.print(REPORT_VERSION, BYTE);
- Serial.print(FIRMATA_MINOR_VERSION, BYTE);
- Serial.print(FIRMATA_MAJOR_VERSION, BYTE);
-}
-
-// send an analog message
-void FirmataClass::sendAnalog(int pin, int value)
-{
- // pin can only be 0-15, so chop higher bits
- Serial.print(ANALOG_MESSAGE | (pin & 0xF), BYTE);
- Serial.print(value % 128, BYTE);
- Serial.print(value >> 7, BYTE);
-}
-
-// send a single digital pin in a digital message
-void FirmataClass::sendDigital(int pin, int value)
-{
- // TODO add single pin digital messages to the protocol
-}
-
-// send 14-bits in a single digital message
-void FirmataClass::sendDigitalPortPair(int port, int value)
-{
- // TODO: the digital message should not be sent on the serial port every
- // time sendDigital() is called. Instead, it should add it to an int
- // which will be sent on a schedule. If a pin changes more than once
- // before the digital message is sent on the serial port, it should send a
- // digital message for each change.
-
- // TODO: some math needs to happen for pin > 14 since MIDI channels are used
- Serial.print(DIGITAL_MESSAGE | (port & 0xF),BYTE);
- Serial.print(value % 128, BYTE); // Tx pins 0-6
- Serial.print(value >> 7, BYTE); // Tx pins 7-13
-}
-
-// Internal Actions/////////////////////////////////////////////////////////////
-
-void FirmataClass::loadState(void)
-{
- // TODO load state from EEPROM
-}
-
-void FirmataClass::saveState(void)
-{
- // TODO save state to EEPROM
-}
-
-void FirmataClass::resetState(void)
-{
- // TODO reset state bytes in EEPROM
-}
-
-// make one instance for the user to use
-FirmataClass Firmata;
diff --git a/core/libraries/Firmata/Firmata.h b/core/libraries/Firmata/Firmata.h
deleted file mode 100644
index 1c6604b..0000000
--- a/core/libraries/Firmata/Firmata.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- Firmata.h - Firmata library
- Copyright (c) 2007 Free Software Foundation. All right reserved.
- Written by Hans-Christoph Steiner <hans@at.or.at>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef Firmata_h
-#define Firmata_h
-
-#include <inttypes.h>
-
-class FirmataClass
-{
-private:
- void systemReset(void);
-public:
- FirmataClass();
- int available(void);
- // serial receive actions
- // send serial messages
- void printVersion(void);
- void sendAnalog(int, int);
- void sendDigital(int, int);
- void sendDigitalPortPair(int, int);
- // internal actions
- void loadState(void);
- void saveState(void);
- void resetState(void);
-};
-
-extern FirmataClass Firmata;
-
-/*==============================================================================
- * MACROS
- *============================================================================*/
-
-/* Version numbers for the protocol. The protocol is still changing, so these
- * version numbers are important. This number can be queried so that host
- * software can test whether it will be compatible with the currently
- * installed firmware. */
-#define FIRMATA_MAJOR_VERSION 1 // for non-compatible changes
-#define FIRMATA_MINOR_VERSION 0 // for backwards compatible changes
-
-// total number of pins currently supported
-#define TOTAL_ANALOG_PINS 6
-#define TOTAL_DIGITAL_PINS 14
-
-// for comparing along with INPUT and OUTPUT
-#define PWM 2
-
-// for selecting digital inputs
-#define PB 2 // digital input, pins 8-13
-#define PC 3 // analog input port
-#define PD 4 // digital input, pins 0-7
-
-#define MAX_DATA_BYTES 2 // max number of data bytes in non-SysEx messages
-// message command bytes
-#define DIGITAL_MESSAGE 0x90 // send data for a digital pin
-#define ANALOG_MESSAGE 0xE0 // send data for an analog pin (or PWM)
-//#define PULSE_MESSAGE 0xA0 // proposed pulseIn/Out message (SysEx)
-//#define SHIFTOUT_MESSAGE 0xB0 // proposed shiftOut message (SysEx)
-#define REPORT_ANALOG_PIN 0xC0 // enable analog input by pin #
-#define REPORT_DIGITAL_PORTS 0xD0 // enable digital input by port pair
-#define START_SYSEX 0xF0 // start a MIDI SysEx message
-#define SET_DIGITAL_PIN_MODE 0xF4 // set a digital pin to INPUT or OUTPUT
-#define END_SYSEX 0xF7 // end a MIDI SysEx message
-#define REPORT_VERSION 0xF9 // report firmware version
-#define SYSTEM_RESET 0xFF // reset from MIDI
-
-// these are used for EEPROM reading and writing
-#define ANALOGINPUTSTOREPORT_LOW_BYTE 0x1F0 // analogInputsToReport is an int
-#define ANALOGINPUTSTOREPORT_HIGH_BYTE 0x1F1 // analogInputsToReport is an int
-#define REPORTDIGITALINPUTS_BYTE 0x1F2 //
-#define DIGITALPINSTATUS_LOW_BYTE 0x1F3 // digitalPinStatus is an int
-#define DIGITALPINSTATUS_HIGH_BYTE 0x1F4 // digitalPinStatus is an int
-#define PWMSTATUS_LOW_BYTE 0x1F5 // pwmStatus is an int
-#define PWMSTATUS_HIGH_BYTE 0x1F6 // pwmStatus is an int
-
-
-#endif /* Firmata_h */
-
diff --git a/core/libraries/Firmata/keywords.txt b/core/libraries/Firmata/keywords.txt
deleted file mode 100644
index a241593..0000000
--- a/core/libraries/Firmata/keywords.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-#######################################
-# Syntax Coloring Map For Firmata
-#######################################
-
-#######################################
-# Datatypes (KEYWORD1)
-#######################################
-
-Firmata KEYWORD1
-
-#######################################
-# Methods and Functions (KEYWORD2)
-#######################################
-
-#######################################
-# Constants (LITERAL1)
-#######################################
-
diff --git a/core/libraries/Matrix/Matrix.cpp b/core/libraries/Matrix/Matrix.cpp
deleted file mode 100755
index c86c4c9..0000000
--- a/core/libraries/Matrix/Matrix.cpp
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- Matrix.cpp - Max7219 LED Matrix library for Arduino & Wiring
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-// TODO: Support segment displays in api?
-// TODO: Support varying vendor layouts?
-
-/******************************************************************************
- * Includes
- ******************************************************************************/
-
-extern "C" {
- // AVR LibC Includes
- #include <inttypes.h>
- #include <stdlib.h>
-
- // Wiring Core Includes
- #undef abs
- #include "WConstants.h"
-
- // Wiring Core Prototypes
- //void pinMode(uint8_t, uint8_t);
- //void digitalWrite(int, uint8_t);
-}
-
-#include "Sprite.h"
-#include "Matrix.h"
-
-/******************************************************************************
- * Definitions
- ******************************************************************************/
-
-// Matrix registers
-#define REG_NOOP 0x00
-#define REG_DIGIT0 0x01
-#define REG_DIGIT1 0x02
-#define REG_DIGIT2 0x03
-#define REG_DIGIT3 0x04
-#define REG_DIGIT4 0x05
-#define REG_DIGIT5 0x06
-#define REG_DIGIT6 0x07
-#define REG_DIGIT7 0x08
-#define REG_DECODEMODE 0x09
-#define REG_INTENSITY 0x0A
-#define REG_SCANLIMIT 0x0B
-#define REG_SHUTDOWN 0x0C
-#define REG_DISPLAYTEST 0x0F
-
-/******************************************************************************
- * Constructors
- ******************************************************************************/
-
-Matrix::Matrix(uint8_t data, uint8_t clock, uint8_t load, uint8_t screens /* = 1 */)
-{
- // record pins for sw spi
- _pinData = data;
- _pinClock = clock;
- _pinLoad = load;
-
- // set ddr for sw spi pins
- pinMode(_pinClock, OUTPUT);
- pinMode(_pinData, OUTPUT);
- pinMode(_pinLoad, OUTPUT);
-
- // allocate screenbuffers
- _screens = screens;
- _buffer = (uint8_t*)calloc(_screens, 64);
- _maximumX = (_screens * 8);
-
- // initialize registers
- clear(); // clear display
- setScanLimit(0x07); // use all rows/digits
- setBrightness(0x0F); // maximum brightness
- setRegister(REG_SHUTDOWN, 0x01); // normal operation
- setRegister(REG_DECODEMODE, 0x00); // pixels not integers
- setRegister(REG_DISPLAYTEST, 0x00); // not in test mode
-}
-
-/******************************************************************************
- * MAX7219 SPI
- ******************************************************************************/
-
-// sends a single byte by sw spi (no latching)
-void Matrix::putByte(uint8_t data)
-{
- uint8_t i = 8;
- uint8_t mask;
- while(i > 0) {
- mask = 0x01 << (i - 1); // get bitmask
- digitalWrite(_pinClock, LOW); // tick
- if (data & mask){ // choose bit
- digitalWrite(_pinData, HIGH); // set 1
- }else{
- digitalWrite(_pinData, LOW); // set 0
- }
- digitalWrite(_pinClock, HIGH); // tock
- --i; // move to lesser bit
- }
-}
-
-// sets register to a byte value for all screens
-void Matrix::setRegister(uint8_t reg, uint8_t data)
-{
- digitalWrite(_pinLoad, HIGH); // begin
- for(uint8_t i = 0; i < _screens; ++i){
- putByte(reg); // specify register
- putByte(data); // send data
- }
- digitalWrite(_pinLoad, LOW); // latch in data
- digitalWrite(_pinLoad, HIGH); // end
-}
-
-// syncs row of display with buffer
-void Matrix::syncRow(uint8_t row)
-{
- if (!_buffer) return;
-
- // uint8_t's can't be negative, so don't test for negative row
- if (row >= 8) return;
- digitalWrite(_pinLoad, HIGH); // begin
- for(uint8_t i = 0; i < _screens; ++i){
- putByte(8 - row); // specify register
- putByte(_buffer[row + (8 * i)]); // send data
- }
- digitalWrite(_pinLoad, LOW); // latch in data
- digitalWrite(_pinLoad, HIGH); // end
-}
-
-/******************************************************************************
- * MAX7219 Configuration
- ******************************************************************************/
-
-// sets how many digits are displayed
-void Matrix::setScanLimit(uint8_t value)
-{
- setRegister(REG_SCANLIMIT, value & 0x07);
-}
-
-// sets brightness of the display
-void Matrix::setBrightness(uint8_t value)
-{
- setRegister(REG_INTENSITY, value & 0x0F);
-}
-
-/******************************************************************************
- * Helper Functions
- ******************************************************************************/
-
-void Matrix::buffer(uint8_t x, uint8_t y, uint8_t value)
-{
- if (!_buffer) return;
-
- // uint8_t's can't be negative, so don't test for negative x and y.
- if (x >= _maximumX || y >= 8) return;
-
- uint8_t offset = x; // record x
- x %= 8; // make x relative to a single matrix
- offset -= x; // calculate buffer offset
-
- // wrap shift relative x for nexus module layout
- if (x == 0){
- x = 8;
- }
- --x;
-
- // record value in buffer
- if(value){
- _buffer[y + offset] |= 0x01 << x;
- }else{
- _buffer[y + offset] &= ~(0x01 << x);
- }
-}
-
-/******************************************************************************
- * User API
- ******************************************************************************/
-
-// buffers and writes to screen
-void Matrix::write(uint8_t x, uint8_t y, uint8_t value)
-{
- buffer(x, y, value);
-
- // update affected row
- syncRow(y);
-}
-
-void Matrix::write(uint8_t x, uint8_t y, Sprite sprite)
-{
- for (uint8_t i = 0; i < sprite.height(); i++){
- for (uint8_t j = 0; j < sprite.width(); j++)
- buffer(x + j, y + i, sprite.read(j, i));
-
- syncRow(y + i);
- }
-}
-
-// clears screens and buffers
-void Matrix::clear(void)
-{
- if (!_buffer) return;
-
- // clear buffer
- for(uint8_t i = 0; i < 8; ++i){
- for(uint8_t j = 0; j < _screens; ++j){
- _buffer[i + (8 * j)] = 0x00;
- }
- }
-
- // clear registers
- for(uint8_t i = 0; i < 8; ++i){
- syncRow(i);
- }
-}
-
diff --git a/core/libraries/Matrix/Matrix.h b/core/libraries/Matrix/Matrix.h
deleted file mode 100755
index 7c6be91..0000000
--- a/core/libraries/Matrix/Matrix.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- Matrix.h - Max7219 LED Matrix library for Arduino & Wiring
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef Matrix_h
-#define Matrix_h
-
-#include <inttypes.h>
-
-class Sprite;
-
-class Matrix
-{
- private:
- uint8_t _pinData;
- uint8_t _pinClock;
- uint8_t _pinLoad;
-
- uint8_t* _buffer;
- uint8_t _screens;
- uint8_t _maximumX;
-
- void putByte(uint8_t);
- void setRegister(uint8_t, uint8_t);
- void syncRow(uint8_t);
-
- void setScanLimit(uint8_t);
-
- void buffer(uint8_t, uint8_t, uint8_t);
- public:
- Matrix(uint8_t, uint8_t, uint8_t, uint8_t = 1);
- void setBrightness(uint8_t);
- void write(uint8_t, uint8_t, uint8_t);
- void write(uint8_t, uint8_t, Sprite);
- void clear(void);
-};
-
-#endif
-
diff --git a/core/libraries/Matrix/examples/hello_matrix/hello_matrix.pde b/core/libraries/Matrix/examples/hello_matrix/hello_matrix.pde
deleted file mode 100644
index b8e1971..0000000
--- a/core/libraries/Matrix/examples/hello_matrix/hello_matrix.pde
+++ /dev/null
@@ -1,39 +0,0 @@
-// Hello Matrix
-// by Nicholas Zambetti <http://www.zambetti.com>
-
-// Demonstrates the use of the Matrix library
-// For MAX7219 LED Matrix Controllers
-// Blinks welcoming face on screen
-
-// Created 13 February 2006
-
-/* create a new Matrix instance
- pin 0: data (din)
- pin 1: load (load)
- pin 2: clock (clk)
-*/
-Matrix myMatrix = Matrix(0, 2, 1);
-
-void setup()
-{
-}
-
-void loop()
-{
- myMatrix.clear(); // clear display
-
- delay(1000);
-
- // turn some pixels on
- myMatrix.write(1, 5, HIGH);
- myMatrix.write(2, 2, HIGH);
- myMatrix.write(2, 6, HIGH);
- myMatrix.write(3, 6, HIGH);
- myMatrix.write(4, 6, HIGH);
- myMatrix.write(5, 2, HIGH);
- myMatrix.write(5, 6, HIGH);
- myMatrix.write(6, 5, HIGH);
-
- delay(1000);
-}
-
diff --git a/core/libraries/Matrix/examples/sprite_animation/sprite_animation.pde b/core/libraries/Matrix/examples/sprite_animation/sprite_animation.pde
deleted file mode 100644
index f6099fc..0000000
--- a/core/libraries/Matrix/examples/sprite_animation/sprite_animation.pde
+++ /dev/null
@@ -1,45 +0,0 @@
-// Sprite Animation
-// by Nicholas Zambetti <http://www.zambetti.com>
-
-// Demonstrates the use of the Matrix & Sprite libraries
-// Displays animated waveform graphic on screen
-
-// Created 29 March 2006
-
-/* create a new Matrix instance
- pin 0: data (din)
- pin 1: load (load)
- pin 2: clock (clk)
-*/
-Matrix myMatrix = Matrix(0, 2, 1);
-
-/* create a new Sprite instance
- 8 pixels wide, 4 pixels tall
-*/
-Sprite wave = Sprite(
- 8, 4,
- B00011000,
- B00100100,
- B01000010,
- B10000001
-);
-
-void setup()
-{
-}
-
-int x = 0;
-
-void loop()
-{
- myMatrix.write(x, 2, wave); // place sprite on screen
- myMatrix.write(x - 8, 2, wave); // place sprite again, elsewhere on screen
- delay(75); // wait a little bit
- myMatrix.clear(); // clear the screen for next animation frame
- if(x == 8) // if reached end of animation sequence
- {
- x = 0; // start from beginning
- }
- x++; // advance x coordinate to the right
-}
-
diff --git a/core/libraries/Matrix/keywords.txt b/core/libraries/Matrix/keywords.txt
deleted file mode 100644
index b784f87..0000000
--- a/core/libraries/Matrix/keywords.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-#######################################
-# Syntax Coloring Map For Matrix
-#######################################
-
-#######################################
-# Datatypes (KEYWORD1)
-#######################################
-
-Matrix KEYWORD1
-
-#######################################
-# Methods and Functions (KEYWORD2)
-#######################################
-
-setBrightness KEYWORD2
-write KEYWORD2
-clear KEYWORD2
-
-#######################################
-# Constants (LITERAL1)
-#######################################
-
diff --git a/core/libraries/SoftwareSerial/SoftwareSerial.cpp b/core/libraries/SoftwareSerial/SoftwareSerial.cpp
deleted file mode 100755
index 6df04d2..0000000
--- a/core/libraries/SoftwareSerial/SoftwareSerial.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- SoftwareSerial.cpp - Software serial library
- Copyright (c) 2006 David A. Mellis. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-/******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "WConstants.h"
-#include "SoftwareSerial.h"
-
-/******************************************************************************
- * Definitions
- ******************************************************************************/
-
-/******************************************************************************
- * Constructors
- ******************************************************************************/
-
-SoftwareSerial::SoftwareSerial(uint8_t receivePin, uint8_t transmitPin)
-{
- _receivePin = receivePin;
- _transmitPin = transmitPin;
- _baudRate = 0;
-}
-
-/******************************************************************************
- * User API
- ******************************************************************************/
-
-void SoftwareSerial::begin(long speed)
-{
- _baudRate = speed;
- _bitPeriod = 1000000 / _baudRate;
-
- digitalWrite(_transmitPin, HIGH);
- delayMicroseconds( _bitPeriod); // if we were low this establishes the end
-}
-
-int SoftwareSerial::read()
-{
- int val = 0;
- int bitDelay = _bitPeriod - clockCyclesToMicroseconds(50);
-
- // one byte of serial data (LSB first)
- // ...--\ /--\/--\/--\/--\/--\/--\/--\/--\/--...
- // \--/\--/\--/\--/\--/\--/\--/\--/\--/
- // start 0 1 2 3 4 5 6 7 stop
-
- while (digitalRead(_receivePin));
-
- // confirm that this is a real start bit, not line noise
- if (digitalRead(_receivePin) == LOW) {
- // frame start indicated by a falling edge and low start bit
- // jump to the middle of the low start bit
- delayMicroseconds(bitDelay / 2 - clockCyclesToMicroseconds(50));
-
- // offset of the bit in the byte: from 0 (LSB) to 7 (MSB)
- for (int offset = 0; offset < 8; offset++) {
- // jump to middle of next bit
- delayMicroseconds(bitDelay);
-
- // read bit
- val |= digitalRead(_receivePin) << offset;
- }
-
- delayMicroseconds(_bitPeriod);
-
- return val;
- }
-
- return -1;
-}
-
-void SoftwareSerial::print(uint8_t b)
-{
- if (_baudRate == 0)
- return;
-
- int bitDelay = _bitPeriod - clockCyclesToMicroseconds(50); // a digitalWrite is about 50 cycles
- byte mask;
-
- digitalWrite(_transmitPin, LOW);
- delayMicroseconds(bitDelay);
-
- for (mask = 0x01; mask; mask <<= 1) {
- if (b & mask){ // choose bit
- digitalWrite(_transmitPin,HIGH); // send 1
- }
- else{
- digitalWrite(_transmitPin,LOW); // send 1
- }
- delayMicroseconds(bitDelay);
- }
-
- digitalWrite(_transmitPin, HIGH);
- delayMicroseconds(bitDelay);
-}
-
-void SoftwareSerial::print(const char *s)
-{
- while (*s)
- print(*s++);
-}
-
-void SoftwareSerial::print(char c)
-{
- print((uint8_t) c);
-}
-
-void SoftwareSerial::print(int n)
-{
- print((long) n);
-}
-
-void SoftwareSerial::print(unsigned int n)
-{
- print((unsigned long) n);
-}
-
-void SoftwareSerial::print(long n)
-{
- if (n < 0) {
- print('-');
- n = -n;
- }
- printNumber(n, 10);
-}
-
-void SoftwareSerial::print(unsigned long n)
-{
- printNumber(n, 10);
-}
-
-void SoftwareSerial::print(long n, int base)
-{
- if (base == 0)
- print((char) n);
- else if (base == 10)
- print(n);
- else
- printNumber(n, base);
-}
-
-void SoftwareSerial::println(void)
-{
- print('\r');
- print('\n');
-}
-
-void SoftwareSerial::println(char c)
-{
- print(c);
- println();
-}
-
-void SoftwareSerial::println(const char c[])
-{
- print(c);
- println();
-}
-
-void SoftwareSerial::println(uint8_t b)
-{
- print(b);
- println();
-}
-
-void SoftwareSerial::println(int n)
-{
- print(n);
- println();
-}
-
-void SoftwareSerial::println(long n)
-{
- print(n);
- println();
-}
-
-void SoftwareSerial::println(unsigned long n)
-{
- print(n);
- println();
-}
-
-void SoftwareSerial::println(long n, int base)
-{
- print(n, base);
- println();
-}
-
-// Private Methods /////////////////////////////////////////////////////////////
-
-void SoftwareSerial::printNumber(unsigned long n, uint8_t base)
-{
- unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars.
- unsigned long i = 0;
-
- if (n == 0) {
- print('0');
- return;
- }
-
- while (n > 0) {
- buf[i++] = n % base;
- n /= base;
- }
-
- for (; i > 0; i--)
- print((char) (buf[i - 1] < 10 ? '0' + buf[i - 1] : 'A' + buf[i - 1] - 10));
-}
diff --git a/core/libraries/SoftwareSerial/SoftwareSerial.h b/core/libraries/SoftwareSerial/SoftwareSerial.h
deleted file mode 100755
index 95753fc..0000000
--- a/core/libraries/SoftwareSerial/SoftwareSerial.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- SoftwareSerial.h - Software serial library
- Copyright (c) 2006 David A. Mellis. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef SoftwareSerial_h
-#define SoftwareSerial_h
-
-#include <inttypes.h>
-
-class SoftwareSerial
-{
- private:
- uint8_t _receivePin;
- uint8_t _transmitPin;
- long _baudRate;
- int _bitPeriod;
- void printNumber(unsigned long, uint8_t);
- public:
- SoftwareSerial(uint8_t, uint8_t);
- void begin(long);
- int read();
- void print(char);
- void print(const char[]);
- void print(uint8_t);
- void print(int);
- void print(unsigned int);
- void print(long);
- void print(unsigned long);
- void print(long, int);
- void println(void);
- void println(char);
- void println(const char[]);
- void println(uint8_t);
- void println(int);
- void println(long);
- void println(unsigned long);
- void println(long, int);
-};
-
-#endif
-
diff --git a/core/libraries/SoftwareSerial/keywords.txt b/core/libraries/SoftwareSerial/keywords.txt
deleted file mode 100644
index de5a74c..0000000
--- a/core/libraries/SoftwareSerial/keywords.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-#######################################
-# Syntax Coloring Map For Ultrasound
-#######################################
-
-#######################################
-# Datatypes (KEYWORD1)
-#######################################
-
-SoftwareSerial KEYWORD1
-
-#######################################
-# Methods and Functions (KEYWORD2)
-#######################################
-
-#######################################
-# Constants (LITERAL1)
-#######################################
-
diff --git a/core/libraries/Sprite/Sprite.cpp b/core/libraries/Sprite/Sprite.cpp
deleted file mode 100644
index 6055876..0000000
--- a/core/libraries/Sprite/Sprite.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- Sprite.cpp - 2D sprite buffer library for Arduino & Wiring
- Copyright (c) 2006 David A. Mellis. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#include <stdlib.h>
-#include <stdarg.h>
-//#include <stdio.h>
-
-#include "Sprite.h"
-
-void Sprite::init(uint8_t width, uint8_t height)
-{
- _width = width >= 8 ? 8 : width;
- _height = height >= 8 ? 8 : height;
-
- // for now, do nothing if this allocation fails. methods that require it
- // should silently fail if _buffer is null.
- _buffer = (uint8_t *) calloc(_height, 1);
-}
-
-Sprite::Sprite(uint8_t width, uint8_t height)
-{
- init(width, height);
-}
-
-Sprite::Sprite(uint8_t width, uint8_t height, uint8_t row, ...)
-{
- init(width, height);
-
- if (!_buffer) return;
-
- va_list ap;
- va_start(ap, row);
-
- int y = 0;
-
- for (y = 0; ; y++) {
- for (int x = 0; x < width && x < 8; x++)
- write(x, y, (row >> (width - x - 1)) & 0x01);
-
- if (y == height - 1)
- break;
-
- row = va_arg(ap, int); // using '...' promotes uint8_t to int
- }
-
- va_end(ap);
-}
-
-uint8_t Sprite::width() const
-{
- return _width;
-}
-
-uint8_t Sprite::height() const
-{
- return _height;
-}
-
-void Sprite::write(uint8_t x, uint8_t y, uint8_t value)
-{
- if (!_buffer) return;
-
- // uint8_t's can't be negative, so don't test for negative x and y.
- if (x >= _width || y >= _height) return;
-
- // we need to bitwise-or the value of the other pixels in the byte with
- // the new value, masked and shifted into the proper bits.
- _buffer[y] = (_buffer[y] & ~(0x01 << x)) | ((value & 0x01) << x);
-}
-
-uint8_t Sprite::read(uint8_t x, uint8_t y) const
-{
- if (!_buffer) return 0;
-
- // uint8_t's can't be negative, so don't test for negative x and y.
- if (x >= _width || y >= _height) return 0;
-
- return (_buffer[y] >> x) & 0x01;
-}
diff --git a/core/libraries/Sprite/Sprite.h b/core/libraries/Sprite/Sprite.h
deleted file mode 100644
index bdcfdb8..0000000
--- a/core/libraries/Sprite/Sprite.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- Sprite.cpp - 2D sprite buffers library for Arduino & Wiring
- Copyright (c) 2006 David A. Mellis. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef Sprite_h
-#define Sprite_h
-
-#include <inttypes.h>
-
-#include "binary.h"
-
-class Sprite
-{
- private:
- uint8_t _width;
- uint8_t _height;
- uint8_t _depth;
- uint8_t _ppb;
- uint8_t _bpr;
- uint8_t _mask;
- uint8_t *_buffer;
-
- void init(uint8_t width, uint8_t height);
- public:
- Sprite(uint8_t width, uint8_t height);
- Sprite(uint8_t width, uint8_t height, uint8_t row, ...);
- uint8_t width() const;
- uint8_t height() const;
- void write(uint8_t x, uint8_t y, uint8_t value);
- uint8_t read(uint8_t x, uint8_t y) const;
-};
-
-#endif
diff --git a/core/libraries/Sprite/binary.h b/core/libraries/Sprite/binary.h
deleted file mode 100644
index af14980..0000000
--- a/core/libraries/Sprite/binary.h
+++ /dev/null
@@ -1,515 +0,0 @@
-#ifndef Binary_h
-#define Binary_h
-
-#define B0 0
-#define B00 0
-#define B000 0
-#define B0000 0
-#define B00000 0
-#define B000000 0
-#define B0000000 0
-#define B00000000 0
-#define B1 1
-#define B01 1
-#define B001 1
-#define B0001 1
-#define B00001 1
-#define B000001 1
-#define B0000001 1
-#define B00000001 1
-#define B10 2
-#define B010 2
-#define B0010 2
-#define B00010 2
-#define B000010 2
-#define B0000010 2
-#define B00000010 2
-#define B11 3
-#define B011 3
-#define B0011 3
-#define B00011 3
-#define B000011 3
-#define B0000011 3
-#define B00000011 3
-#define B100 4
-#define B0100 4
-#define B00100 4
-#define B000100 4
-#define B0000100 4
-#define B00000100 4
-#define B101 5
-#define B0101 5
-#define B00101 5
-#define B000101 5
-#define B0000101 5
-#define B00000101 5
-#define B110 6
-#define B0110 6
-#define B00110 6
-#define B000110 6
-#define B0000110 6
-#define B00000110 6
-#define B111 7
-#define B0111 7
-#define B00111 7
-#define B000111 7
-#define B0000111 7
-#define B00000111 7
-#define B1000 8
-#define B01000 8
-#define B001000 8
-#define B0001000 8
-#define B00001000 8
-#define B1001 9
-#define B01001 9
-#define B001001 9
-#define B0001001 9
-#define B00001001 9
-#define B1010 10
-#define B01010 10
-#define B001010 10
-#define B0001010 10
-#define B00001010 10
-#define B1011 11
-#define B01011 11
-#define B001011 11
-#define B0001011 11
-#define B00001011 11
-#define B1100 12
-#define B01100 12
-#define B001100 12
-#define B0001100 12
-#define B00001100 12
-#define B1101 13
-#define B01101 13
-#define B001101 13
-#define B0001101 13
-#define B00001101 13
-#define B1110 14
-#define B01110 14
-#define B001110 14
-#define B0001110 14
-#define B00001110 14
-#define B1111 15
-#define B01111 15
-#define B001111 15
-#define B0001111 15
-#define B00001111 15
-#define B10000 16
-#define B010000 16
-#define B0010000 16
-#define B00010000 16
-#define B10001 17
-#define B010001 17
-#define B0010001 17
-#define B00010001 17
-#define B10010 18
-#define B010010 18
-#define B0010010 18
-#define B00010010 18
-#define B10011 19
-#define B010011 19
-#define B0010011 19
-#define B00010011 19
-#define B10100 20
-#define B010100 20
-#define B0010100 20
-#define B00010100 20
-#define B10101 21
-#define B010101 21
-#define B0010101 21
-#define B00010101 21
-#define B10110 22
-#define B010110 22
-#define B0010110 22
-#define B00010110 22
-#define B10111 23
-#define B010111 23
-#define B0010111 23
-#define B00010111 23
-#define B11000 24
-#define B011000 24
-#define B0011000 24
-#define B00011000 24
-#define B11001 25
-#define B011001 25
-#define B0011001 25
-#define B00011001 25
-#define B11010 26
-#define B011010 26
-#define B0011010 26
-#define B00011010 26
-#define B11011 27
-#define B011011 27
-#define B0011011 27
-#define B00011011 27
-#define B11100 28
-#define B011100 28
-#define B0011100 28
-#define B00011100 28
-#define B11101 29
-#define B011101 29
-#define B0011101 29
-#define B00011101 29
-#define B11110 30
-#define B011110 30
-#define B0011110 30
-#define B00011110 30
-#define B11111 31
-#define B011111 31
-#define B0011111 31
-#define B00011111 31
-#define B100000 32
-#define B0100000 32
-#define B00100000 32
-#define B100001 33
-#define B0100001 33
-#define B00100001 33
-#define B100010 34
-#define B0100010 34
-#define B00100010 34
-#define B100011 35
-#define B0100011 35
-#define B00100011 35
-#define B100100 36
-#define B0100100 36
-#define B00100100 36
-#define B100101 37
-#define B0100101 37
-#define B00100101 37
-#define B100110 38
-#define B0100110 38
-#define B00100110 38
-#define B100111 39
-#define B0100111 39
-#define B00100111 39
-#define B101000 40
-#define B0101000 40
-#define B00101000 40
-#define B101001 41
-#define B0101001 41
-#define B00101001 41
-#define B101010 42
-#define B0101010 42
-#define B00101010 42
-#define B101011 43
-#define B0101011 43
-#define B00101011 43
-#define B101100 44
-#define B0101100 44
-#define B00101100 44
-#define B101101 45
-#define B0101101 45
-#define B00101101 45
-#define B101110 46
-#define B0101110 46
-#define B00101110 46
-#define B101111 47
-#define B0101111 47
-#define B00101111 47
-#define B110000 48
-#define B0110000 48
-#define B00110000 48
-#define B110001 49
-#define B0110001 49
-#define B00110001 49
-#define B110010 50
-#define B0110010 50
-#define B00110010 50
-#define B110011 51
-#define B0110011 51
-#define B00110011 51
-#define B110100 52
-#define B0110100 52
-#define B00110100 52
-#define B110101 53
-#define B0110101 53
-#define B00110101 53
-#define B110110 54
-#define B0110110 54
-#define B00110110 54
-#define B110111 55
-#define B0110111 55
-#define B00110111 55
-#define B111000 56
-#define B0111000 56
-#define B00111000 56
-#define B111001 57
-#define B0111001 57
-#define B00111001 57
-#define B111010 58
-#define B0111010 58
-#define B00111010 58
-#define B111011 59
-#define B0111011 59
-#define B00111011 59
-#define B111100 60
-#define B0111100 60
-#define B00111100 60
-#define B111101 61
-#define B0111101 61
-#define B00111101 61
-#define B111110 62
-#define B0111110 62
-#define B00111110 62
-#define B111111 63
-#define B0111111 63
-#define B00111111 63
-#define B1000000 64
-#define B01000000 64
-#define B1000001 65
-#define B01000001 65
-#define B1000010 66
-#define B01000010 66
-#define B1000011 67
-#define B01000011 67
-#define B1000100 68
-#define B01000100 68
-#define B1000101 69
-#define B01000101 69
-#define B1000110 70
-#define B01000110 70
-#define B1000111 71
-#define B01000111 71
-#define B1001000 72
-#define B01001000 72
-#define B1001001 73
-#define B01001001 73
-#define B1001010 74
-#define B01001010 74
-#define B1001011 75
-#define B01001011 75
-#define B1001100 76
-#define B01001100 76
-#define B1001101 77
-#define B01001101 77
-#define B1001110 78
-#define B01001110 78
-#define B1001111 79
-#define B01001111 79
-#define B1010000 80
-#define B01010000 80
-#define B1010001 81
-#define B01010001 81
-#define B1010010 82
-#define B01010010 82
-#define B1010011 83
-#define B01010011 83
-#define B1010100 84
-#define B01010100 84
-#define B1010101 85
-#define B01010101 85
-#define B1010110 86
-#define B01010110 86
-#define B1010111 87
-#define B01010111 87
-#define B1011000 88
-#define B01011000 88
-#define B1011001 89
-#define B01011001 89
-#define B1011010 90
-#define B01011010 90
-#define B1011011 91
-#define B01011011 91
-#define B1011100 92
-#define B01011100 92
-#define B1011101 93
-#define B01011101 93
-#define B1011110 94
-#define B01011110 94
-#define B1011111 95
-#define B01011111 95
-#define B1100000 96
-#define B01100000 96
-#define B1100001 97
-#define B01100001 97
-#define B1100010 98
-#define B01100010 98
-#define B1100011 99
-#define B01100011 99
-#define B1100100 100
-#define B01100100 100
-#define B1100101 101
-#define B01100101 101
-#define B1100110 102
-#define B01100110 102
-#define B1100111 103
-#define B01100111 103
-#define B1101000 104
-#define B01101000 104
-#define B1101001 105
-#define B01101001 105
-#define B1101010 106
-#define B01101010 106
-#define B1101011 107
-#define B01101011 107
-#define B1101100 108
-#define B01101100 108
-#define B1101101 109
-#define B01101101 109
-#define B1101110 110
-#define B01101110 110
-#define B1101111 111
-#define B01101111 111
-#define B1110000 112
-#define B01110000 112
-#define B1110001 113
-#define B01110001 113
-#define B1110010 114
-#define B01110010 114
-#define B1110011 115
-#define B01110011 115
-#define B1110100 116
-#define B01110100 116
-#define B1110101 117
-#define B01110101 117
-#define B1110110 118
-#define B01110110 118
-#define B1110111 119
-#define B01110111 119
-#define B1111000 120
-#define B01111000 120
-#define B1111001 121
-#define B01111001 121
-#define B1111010 122
-#define B01111010 122
-#define B1111011 123
-#define B01111011 123
-#define B1111100 124
-#define B01111100 124
-#define B1111101 125
-#define B01111101 125
-#define B1111110 126
-#define B01111110 126
-#define B1111111 127
-#define B01111111 127
-#define B10000000 128
-#define B10000001 129
-#define B10000010 130
-#define B10000011 131
-#define B10000100 132
-#define B10000101 133
-#define B10000110 134
-#define B10000111 135
-#define B10001000 136
-#define B10001001 137
-#define B10001010 138
-#define B10001011 139
-#define B10001100 140
-#define B10001101 141
-#define B10001110 142
-#define B10001111 143
-#define B10010000 144
-#define B10010001 145
-#define B10010010 146
-#define B10010011 147
-#define B10010100 148
-#define B10010101 149
-#define B10010110 150
-#define B10010111 151
-#define B10011000 152
-#define B10011001 153
-#define B10011010 154
-#define B10011011 155
-#define B10011100 156
-#define B10011101 157
-#define B10011110 158
-#define B10011111 159
-#define B10100000 160
-#define B10100001 161
-#define B10100010 162
-#define B10100011 163
-#define B10100100 164
-#define B10100101 165
-#define B10100110 166
-#define B10100111 167
-#define B10101000 168
-#define B10101001 169
-#define B10101010 170
-#define B10101011 171
-#define B10101100 172
-#define B10101101 173
-#define B10101110 174
-#define B10101111 175
-#define B10110000 176
-#define B10110001 177
-#define B10110010 178
-#define B10110011 179
-#define B10110100 180
-#define B10110101 181
-#define B10110110 182
-#define B10110111 183
-#define B10111000 184
-#define B10111001 185
-#define B10111010 186
-#define B10111011 187
-#define B10111100 188
-#define B10111101 189
-#define B10111110 190
-#define B10111111 191
-#define B11000000 192
-#define B11000001 193
-#define B11000010 194
-#define B11000011 195
-#define B11000100 196
-#define B11000101 197
-#define B11000110 198
-#define B11000111 199
-#define B11001000 200
-#define B11001001 201
-#define B11001010 202
-#define B11001011 203
-#define B11001100 204
-#define B11001101 205
-#define B11001110 206
-#define B11001111 207
-#define B11010000 208
-#define B11010001 209
-#define B11010010 210
-#define B11010011 211
-#define B11010100 212
-#define B11010101 213
-#define B11010110 214
-#define B11010111 215
-#define B11011000 216
-#define B11011001 217
-#define B11011010 218
-#define B11011011 219
-#define B11011100 220
-#define B11011101 221
-#define B11011110 222
-#define B11011111 223
-#define B11100000 224
-#define B11100001 225
-#define B11100010 226
-#define B11100011 227
-#define B11100100 228
-#define B11100101 229
-#define B11100110 230
-#define B11100111 231
-#define B11101000 232
-#define B11101001 233
-#define B11101010 234
-#define B11101011 235
-#define B11101100 236
-#define B11101101 237
-#define B11101110 238
-#define B11101111 239
-#define B11110000 240
-#define B11110001 241
-#define B11110010 242
-#define B11110011 243
-#define B11110100 244
-#define B11110101 245
-#define B11110110 246
-#define B11110111 247
-#define B11111000 248
-#define B11111001 249
-#define B11111010 250
-#define B11111011 251
-#define B11111100 252
-#define B11111101 253
-#define B11111110 254
-#define B11111111 255
-
-#endif
diff --git a/core/libraries/Sprite/keywords.txt b/core/libraries/Sprite/keywords.txt
deleted file mode 100644
index 73cd8d9..0000000
--- a/core/libraries/Sprite/keywords.txt
+++ /dev/null
@@ -1,534 +0,0 @@
-#######################################
-# Syntax Coloring Map For Sprite
-#######################################
-
-#######################################
-# Datatypes (KEYWORD1)
-#######################################
-
-Sprite KEYWORD1
-
-#######################################
-# Methods and Functions (KEYWORD2)
-#######################################
-
-width KEYWORD2
-height KEYWORD2
-write KEYWORD2
-read KEYWORD2
-
-#######################################
-# Constants (LITERAL1)
-#######################################
-
-B0 LITERAL1
-B00 LITERAL1
-B000 LITERAL1
-B0000 LITERAL1
-B00000 LITERAL1
-B000000 LITERAL1
-B0000000 LITERAL1
-B00000000 LITERAL1
-B1 LITERAL1
-B01 LITERAL1
-B001 LITERAL1
-B0001 LITERAL1
-B00001 LITERAL1
-B000001 LITERAL1
-B0000001 LITERAL1
-B00000001 LITERAL1
-B10 LITERAL1
-B010 LITERAL1
-B0010 LITERAL1
-B00010 LITERAL1
-B000010 LITERAL1
-B0000010 LITERAL1
-B00000010 LITERAL1
-B11 LITERAL1
-B011 LITERAL1
-B0011 LITERAL1
-B00011 LITERAL1
-B000011 LITERAL1
-B0000011 LITERAL1
-B00000011 LITERAL1
-B100 LITERAL1
-B0100 LITERAL1
-B00100 LITERAL1
-B000100 LITERAL1
-B0000100 LITERAL1
-B00000100 LITERAL1
-B101 LITERAL1
-B0101 LITERAL1
-B00101 LITERAL1
-B000101 LITERAL1
-B0000101 LITERAL1
-B00000101 LITERAL1
-B110 LITERAL1
-B0110 LITERAL1
-B00110 LITERAL1
-B000110 LITERAL1
-B0000110 LITERAL1
-B00000110 LITERAL1
-B111 LITERAL1
-B0111 LITERAL1
-B00111 LITERAL1
-B000111 LITERAL1
-B0000111 LITERAL1
-B00000111 LITERAL1
-B1000 LITERAL1
-B01000 LITERAL1
-B001000 LITERAL1
-B0001000 LITERAL1
-B00001000 LITERAL1
-B1001 LITERAL1
-B01001 LITERAL1
-B001001 LITERAL1
-B0001001 LITERAL1
-B00001001 LITERAL1
-B1010 LITERAL1
-B01010 LITERAL1
-B001010 LITERAL1
-B0001010 LITERAL1
-B00001010 LITERAL1
-B1011 LITERAL1
-B01011 LITERAL1
-B001011 LITERAL1
-B0001011 LITERAL1
-B00001011 LITERAL1
-B1100 LITERAL1
-B01100 LITERAL1
-B001100 LITERAL1
-B0001100 LITERAL1
-B00001100 LITERAL1
-B1101 LITERAL1
-B01101 LITERAL1
-B001101 LITERAL1
-B0001101 LITERAL1
-B00001101 LITERAL1
-B1110 LITERAL1
-B01110 LITERAL1
-B001110 LITERAL1
-B0001110 LITERAL1
-B00001110 LITERAL1
-B1111 LITERAL1
-B01111 LITERAL1
-B001111 LITERAL1
-B0001111 LITERAL1
-B00001111 LITERAL1
-B10000 LITERAL1
-B010000 LITERAL1
-B0010000 LITERAL1
-B00010000 LITERAL1
-B10001 LITERAL1
-B010001 LITERAL1
-B0010001 LITERAL1
-B00010001 LITERAL1
-B10010 LITERAL1
-B010010 LITERAL1
-B0010010 LITERAL1
-B00010010 LITERAL1
-B10011 LITERAL1
-B010011 LITERAL1
-B0010011 LITERAL1
-B00010011 LITERAL1
-B10100 LITERAL1
-B010100 LITERAL1
-B0010100 LITERAL1
-B00010100 LITERAL1
-B10101 LITERAL1
-B010101 LITERAL1
-B0010101 LITERAL1
-B00010101 LITERAL1
-B10110 LITERAL1
-B010110 LITERAL1
-B0010110 LITERAL1
-B00010110 LITERAL1
-B10111 LITERAL1
-B010111 LITERAL1
-B0010111 LITERAL1
-B00010111 LITERAL1
-B11000 LITERAL1
-B011000 LITERAL1
-B0011000 LITERAL1
-B00011000 LITERAL1
-B11001 LITERAL1
-B011001 LITERAL1
-B0011001 LITERAL1
-B00011001 LITERAL1
-B11010 LITERAL1
-B011010 LITERAL1
-B0011010 LITERAL1
-B00011010 LITERAL1
-B11011 LITERAL1
-B011011 LITERAL1
-B0011011 LITERAL1
-B00011011 LITERAL1
-B11100 LITERAL1
-B011100 LITERAL1
-B0011100 LITERAL1
-B00011100 LITERAL1
-B11101 LITERAL1
-B011101 LITERAL1
-B0011101 LITERAL1
-B00011101 LITERAL1
-B11110 LITERAL1
-B011110 LITERAL1
-B0011110 LITERAL1
-B00011110 LITERAL1
-B11111 LITERAL1
-B011111 LITERAL1
-B0011111 LITERAL1
-B00011111 LITERAL1
-B100000 LITERAL1
-B0100000 LITERAL1
-B00100000 LITERAL1
-B100001 LITERAL1
-B0100001 LITERAL1
-B00100001 LITERAL1
-B100010 LITERAL1
-B0100010 LITERAL1
-B00100010 LITERAL1
-B100011 LITERAL1
-B0100011 LITERAL1
-B00100011 LITERAL1
-B100100 LITERAL1
-B0100100 LITERAL1
-B00100100 LITERAL1
-B100101 LITERAL1
-B0100101 LITERAL1
-B00100101 LITERAL1
-B100110 LITERAL1
-B0100110 LITERAL1
-B00100110 LITERAL1
-B100111 LITERAL1
-B0100111 LITERAL1
-B00100111 LITERAL1
-B101000 LITERAL1
-B0101000 LITERAL1
-B00101000 LITERAL1
-B101001 LITERAL1
-B0101001 LITERAL1
-B00101001 LITERAL1
-B101010 LITERAL1
-B0101010 LITERAL1
-B00101010 LITERAL1
-B101011 LITERAL1
-B0101011 LITERAL1
-B00101011 LITERAL1
-B101100 LITERAL1
-B0101100 LITERAL1
-B00101100 LITERAL1
-B101101 LITERAL1
-B0101101 LITERAL1
-B00101101 LITERAL1
-B101110 LITERAL1
-B0101110 LITERAL1
-B00101110 LITERAL1
-B101111 LITERAL1
-B0101111 LITERAL1
-B00101111 LITERAL1
-B110000 LITERAL1
-B0110000 LITERAL1
-B00110000 LITERAL1
-B110001 LITERAL1
-B0110001 LITERAL1
-B00110001 LITERAL1
-B110010 LITERAL1
-B0110010 LITERAL1
-B00110010 LITERAL1
-B110011 LITERAL1
-B0110011 LITERAL1
-B00110011 LITERAL1
-B110100 LITERAL1
-B0110100 LITERAL1
-B00110100 LITERAL1
-B110101 LITERAL1
-B0110101 LITERAL1
-B00110101 LITERAL1
-B110110 LITERAL1
-B0110110 LITERAL1
-B00110110 LITERAL1
-B110111 LITERAL1
-B0110111 LITERAL1
-B00110111 LITERAL1
-B111000 LITERAL1
-B0111000 LITERAL1
-B00111000 LITERAL1
-B111001 LITERAL1
-B0111001 LITERAL1
-B00111001 LITERAL1
-B111010 LITERAL1
-B0111010 LITERAL1
-B00111010 LITERAL1
-B111011 LITERAL1
-B0111011 LITERAL1
-B00111011 LITERAL1
-B111100 LITERAL1
-B0111100 LITERAL1
-B00111100 LITERAL1
-B111101 LITERAL1
-B0111101 LITERAL1
-B00111101 LITERAL1
-B111110 LITERAL1
-B0111110 LITERAL1
-B00111110 LITERAL1
-B111111 LITERAL1
-B0111111 LITERAL1
-B00111111 LITERAL1
-B1000000 LITERAL1
-B01000000 LITERAL1
-B1000001 LITERAL1
-B01000001 LITERAL1
-B1000010 LITERAL1
-B01000010 LITERAL1
-B1000011 LITERAL1
-B01000011 LITERAL1
-B1000100 LITERAL1
-B01000100 LITERAL1
-B1000101 LITERAL1
-B01000101 LITERAL1
-B1000110 LITERAL1
-B01000110 LITERAL1
-B1000111 LITERAL1
-B01000111 LITERAL1
-B1001000 LITERAL1
-B01001000 LITERAL1
-B1001001 LITERAL1
-B01001001 LITERAL1
-B1001010 LITERAL1
-B01001010 LITERAL1
-B1001011 LITERAL1
-B01001011 LITERAL1
-B1001100 LITERAL1
-B01001100 LITERAL1
-B1001101 LITERAL1
-B01001101 LITERAL1
-B1001110 LITERAL1
-B01001110 LITERAL1
-B1001111 LITERAL1
-B01001111 LITERAL1
-B1010000 LITERAL1
-B01010000 LITERAL1
-B1010001 LITERAL1
-B01010001 LITERAL1
-B1010010 LITERAL1
-B01010010 LITERAL1
-B1010011 LITERAL1
-B01010011 LITERAL1
-B1010100 LITERAL1
-B01010100 LITERAL1
-B1010101 LITERAL1
-B01010101 LITERAL1
-B1010110 LITERAL1
-B01010110 LITERAL1
-B1010111 LITERAL1
-B01010111 LITERAL1
-B1011000 LITERAL1
-B01011000 LITERAL1
-B1011001 LITERAL1
-B01011001 LITERAL1
-B1011010 LITERAL1
-B01011010 LITERAL1
-B1011011 LITERAL1
-B01011011 LITERAL1
-B1011100 LITERAL1
-B01011100 LITERAL1
-B1011101 LITERAL1
-B01011101 LITERAL1
-B1011110 LITERAL1
-B01011110 LITERAL1
-B1011111 LITERAL1
-B01011111 LITERAL1
-B1100000 LITERAL1
-B01100000 LITERAL1
-B1100001 LITERAL1
-B01100001 LITERAL1
-B1100010 LITERAL1
-B01100010 LITERAL1
-B1100011 LITERAL1
-B01100011 LITERAL1
-B1100100 LITERAL1
-B01100100 LITERAL1
-B1100101 LITERAL1
-B01100101 LITERAL1
-B1100110 LITERAL1
-B01100110 LITERAL1
-B1100111 LITERAL1
-B01100111 LITERAL1
-B1101000 LITERAL1
-B01101000 LITERAL1
-B1101001 LITERAL1
-B01101001 LITERAL1
-B1101010 LITERAL1
-B01101010 LITERAL1
-B1101011 LITERAL1
-B01101011 LITERAL1
-B1101100 LITERAL1
-B01101100 LITERAL1
-B1101101 LITERAL1
-B01101101 LITERAL1
-B1101110 LITERAL1
-B01101110 LITERAL1
-B1101111 LITERAL1
-B01101111 LITERAL1
-B1110000 LITERAL1
-B01110000 LITERAL1
-B1110001 LITERAL1
-B01110001 LITERAL1
-B1110010 LITERAL1
-B01110010 LITERAL1
-B1110011 LITERAL1
-B01110011 LITERAL1
-B1110100 LITERAL1
-B01110100 LITERAL1
-B1110101 LITERAL1
-B01110101 LITERAL1
-B1110110 LITERAL1
-B01110110 LITERAL1
-B1110111 LITERAL1
-B01110111 LITERAL1
-B1111000 LITERAL1
-B01111000 LITERAL1
-B1111001 LITERAL1
-B01111001 LITERAL1
-B1111010 LITERAL1
-B01111010 LITERAL1
-B1111011 LITERAL1
-B01111011 LITERAL1
-B1111100 LITERAL1
-B01111100 LITERAL1
-B1111101 LITERAL1
-B01111101 LITERAL1
-B1111110 LITERAL1
-B01111110 LITERAL1
-B1111111 LITERAL1
-B01111111 LITERAL1
-B10000000 LITERAL1
-B10000001 LITERAL1
-B10000010 LITERAL1
-B10000011 LITERAL1
-B10000100 LITERAL1
-B10000101 LITERAL1
-B10000110 LITERAL1
-B10000111 LITERAL1
-B10001000 LITERAL1
-B10001001 LITERAL1
-B10001010 LITERAL1
-B10001011 LITERAL1
-B10001100 LITERAL1
-B10001101 LITERAL1
-B10001110 LITERAL1
-B10001111 LITERAL1
-B10010000 LITERAL1
-B10010001 LITERAL1
-B10010010 LITERAL1
-B10010011 LITERAL1
-B10010100 LITERAL1
-B10010101 LITERAL1
-B10010110 LITERAL1
-B10010111 LITERAL1
-B10011000 LITERAL1
-B10011001 LITERAL1
-B10011010 LITERAL1
-B10011011 LITERAL1
-B10011100 LITERAL1
-B10011101 LITERAL1
-B10011110 LITERAL1
-B10011111 LITERAL1
-B10100000 LITERAL1
-B10100001 LITERAL1
-B10100010 LITERAL1
-B10100011 LITERAL1
-B10100100 LITERAL1
-B10100101 LITERAL1
-B10100110 LITERAL1
-B10100111 LITERAL1
-B10101000 LITERAL1
-B10101001 LITERAL1
-B10101010 LITERAL1
-B10101011 LITERAL1
-B10101100 LITERAL1
-B10101101 LITERAL1
-B10101110 LITERAL1
-B10101111 LITERAL1
-B10110000 LITERAL1
-B10110001 LITERAL1
-B10110010 LITERAL1
-B10110011 LITERAL1
-B10110100 LITERAL1
-B10110101 LITERAL1
-B10110110 LITERAL1
-B10110111 LITERAL1
-B10111000 LITERAL1
-B10111001 LITERAL1
-B10111010 LITERAL1
-B10111011 LITERAL1
-B10111100 LITERAL1
-B10111101 LITERAL1
-B10111110 LITERAL1
-B10111111 LITERAL1
-B11000000 LITERAL1
-B11000001 LITERAL1
-B11000010 LITERAL1
-B11000011 LITERAL1
-B11000100 LITERAL1
-B11000101 LITERAL1
-B11000110 LITERAL1
-B11000111 LITERAL1
-B11001000 LITERAL1
-B11001001 LITERAL1
-B11001010 LITERAL1
-B11001011 LITERAL1
-B11001100 LITERAL1
-B11001101 LITERAL1
-B11001110 LITERAL1
-B11001111 LITERAL1
-B11010000 LITERAL1
-B11010001 LITERAL1
-B11010010 LITERAL1
-B11010011 LITERAL1
-B11010100 LITERAL1
-B11010101 LITERAL1
-B11010110 LITERAL1
-B11010111 LITERAL1
-B11011000 LITERAL1
-B11011001 LITERAL1
-B11011010 LITERAL1
-B11011011 LITERAL1
-B11011100 LITERAL1
-B11011101 LITERAL1
-B11011110 LITERAL1
-B11011111 LITERAL1
-B11100000 LITERAL1
-B11100001 LITERAL1
-B11100010 LITERAL1
-B11100011 LITERAL1
-B11100100 LITERAL1
-B11100101 LITERAL1
-B11100110 LITERAL1
-B11100111 LITERAL1
-B11101000 LITERAL1
-B11101001 LITERAL1
-B11101010 LITERAL1
-B11101011 LITERAL1
-B11101100 LITERAL1
-B11101101 LITERAL1
-B11101110 LITERAL1
-B11101111 LITERAL1
-B11110000 LITERAL1
-B11110001 LITERAL1
-B11110010 LITERAL1
-B11110011 LITERAL1
-B11110100 LITERAL1
-B11110101 LITERAL1
-B11110110 LITERAL1
-B11110111 LITERAL1
-B11111000 LITERAL1
-B11111001 LITERAL1
-B11111010 LITERAL1
-B11111011 LITERAL1
-B11111100 LITERAL1
-B11111101 LITERAL1
-B11111110 LITERAL1
-B11111111 LITERAL1
-
diff --git a/core/libraries/Stepper/Stepper.cpp b/core/libraries/Stepper/Stepper.cpp
deleted file mode 100644
index b10f94c..0000000
--- a/core/libraries/Stepper/Stepper.cpp
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- Stepper.cpp - - Stepper library for Wiring/Arduino - Version 0.4
-
- Original library (0.1) by Tom Igoe.
- Two-wire modifications (0.2) by Sebastian Gassner
- Combination version (0.3) by Tom Igoe and David Mellis
- Bug fix for four-wire (0.4) by Tom Igoe, bug fix from Noah Shibley
-
- Drives a unipolar or bipolar stepper motor using 2 wires or 4 wires
-
- When wiring multiple stepper motors to a microcontroller,
- you quickly run out of output pins, with each motor requiring 4 connections.
-
- By making use of the fact that at any time two of the four motor
- coils are the inverse of the other two, the number of
- control connections can be reduced from 4 to 2.
-
- A slightly modified circuit around a Darlington transistor array or an L293 H-bridge
- connects to only 2 microcontroler pins, inverts the signals received,
- and delivers the 4 (2 plus 2 inverted ones) output signals required
- for driving a stepper motor.
-
- The sequence of control signals for 4 control wires is as follows:
-
- Step C0 C1 C2 C3
- 1 1 0 1 0
- 2 0 1 1 0
- 3 0 1 0 1
- 4 1 0 0 1
-
- The sequence of controls signals for 2 control wires is as follows
- (columns C1 and C2 from above):
-
- Step C0 C1
- 1 0 1
- 2 1 1
- 3 1 0
- 4 0 0
-
- The circuits can be found at
-
-http://www.arduino.cc/en/Tutorial/Stepper
-
-
- */
-
-
-#include "WProgram.h"
-#include "Stepper.h"
-
-/*
- * two-wire constructor.
- * Sets which wires should control the motor.
- */
-Stepper::Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2)
-{
- this->step_number = 0; // which step the motor is on
- this->speed = 0; // the motor speed, in revolutions per minute
- this->direction = 0; // motor direction
- this->last_step_time = 0; // time stamp in ms of the last step taken
- this->number_of_steps = number_of_steps; // total number of steps for this motor
-
- // Arduino pins for the motor control connection:
- this->motor_pin_1 = motor_pin_1;
- this->motor_pin_2 = motor_pin_2;
-
- // setup the pins on the microcontroller:
- pinMode(this->motor_pin_1, OUTPUT);
- pinMode(this->motor_pin_2, OUTPUT);
-
- // When there are only 2 pins, set the other two to 0:
- this->motor_pin_3 = 0;
- this->motor_pin_4 = 0;
-
- // pin_count is used by the stepMotor() method:
- this->pin_count = 2;
-}
-
-
-/*
- * constructor for four-pin version
- * Sets which wires should control the motor.
- */
-
-Stepper::Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2, int motor_pin_3, int motor_pin_4)
-{
- this->step_number = 0; // which step the motor is on
- this->speed = 0; // the motor speed, in revolutions per minute
- this->direction = 0; // motor direction
- this->last_step_time = 0; // time stamp in ms of the last step taken
- this->number_of_steps = number_of_steps; // total number of steps for this motor
-
- // Arduino pins for the motor control connection:
- this->motor_pin_1 = motor_pin_1;
- this->motor_pin_2 = motor_pin_2;
- this->motor_pin_3 = motor_pin_3;
- this->motor_pin_4 = motor_pin_4;
-
- // setup the pins on the microcontroller:
- pinMode(this->motor_pin_1, OUTPUT);
- pinMode(this->motor_pin_2, OUTPUT);
- pinMode(this->motor_pin_3, OUTPUT);
- pinMode(this->motor_pin_4, OUTPUT);
-
- // pin_count is used by the stepMotor() method:
- this->pin_count = 4;
-}
-
-/*
- Sets the speed in revs per minute
-
-*/
-void Stepper::setSpeed(long whatSpeed)
-{
- this->step_delay = 60L * 1000L / this->number_of_steps / whatSpeed;
-}
-
-/*
- Moves the motor steps_to_move steps. If the number is negative,
- the motor moves in the reverse direction.
- */
-void Stepper::step(int steps_to_move)
-{
- int steps_left = abs(steps_to_move); // how many steps to take
-
- // determine direction based on whether steps_to_mode is + or -:
- if (steps_to_move > 0) {this->direction = 1;}
- if (steps_to_move < 0) {this->direction = 0;}
-
-
- // decrement the number of steps, moving one step each time:
- while(steps_left > 0) {
- // move only if the appropriate delay has passed:
- if (millis() - this->last_step_time >= this->step_delay) {
- // step the motor to step number 0, 1, 2, or 3:
- stepMotor(this->step_number % 4);
- // get the timeStamp of when you stepped:
- this->last_step_time = millis();
- // increment or decrement the step number,
- // depending on direction:
- if (this->direction == 1) {
- this->step_number++;
- if (this->step_number == this->number_of_steps) {
- this->step_number = 0;
- }
- }
- else {
- if (this->step_number == 0) {
- this->step_number = this->number_of_steps;
- }
- this->step_number--;
- }
- // decrement the steps left:
- steps_left--;
- }
- }
-}
-
-/*
- * Moves the motor forward or backwards.
- */
-void Stepper::stepMotor(int thisStep)
-{
- if (this->pin_count == 2) {
- switch (thisStep) {
- case 0: /* 01 */
- digitalWrite(motor_pin_1, LOW);
- digitalWrite(motor_pin_2, HIGH);
- break;
- case 1: /* 11 */
- digitalWrite(motor_pin_1, HIGH);
- digitalWrite(motor_pin_2, HIGH);
- break;
- case 2: /* 10 */
- digitalWrite(motor_pin_1, HIGH);
- digitalWrite(motor_pin_2, LOW);
- break;
- case 3: /* 00 */
- digitalWrite(motor_pin_1, LOW);
- digitalWrite(motor_pin_2, LOW);
- break;
- }
- }
- if (this->pin_count == 4) {
- switch (thisStep) {
- case 0: // 1010
- digitalWrite(motor_pin_1, HIGH);
- digitalWrite(motor_pin_2, LOW);
- digitalWrite(motor_pin_3, HIGH);
- digitalWrite(motor_pin_4, LOW);
- break;
- case 1: // 0110
- digitalWrite(motor_pin_1, LOW);
- digitalWrite(motor_pin_2, HIGH);
- digitalWrite(motor_pin_3, HIGH);
- digitalWrite(motor_pin_4, LOW);
- break;
- case 2: //0101
- digitalWrite(motor_pin_1, LOW);
- digitalWrite(motor_pin_2, HIGH);
- digitalWrite(motor_pin_3, LOW);
- digitalWrite(motor_pin_4, HIGH);
- break;
- case 3: //1001
- digitalWrite(motor_pin_1, HIGH);
- digitalWrite(motor_pin_2, LOW);
- digitalWrite(motor_pin_3, LOW);
- digitalWrite(motor_pin_4, HIGH);
- break;
- }
- }
-}
-
-/*
- version() returns the version of the library:
-*/
-int Stepper::version(void)
-{
- return 4;
-}
diff --git a/core/libraries/Stepper/Stepper.h b/core/libraries/Stepper/Stepper.h
deleted file mode 100644
index a3aa180..0000000
--- a/core/libraries/Stepper/Stepper.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- Stepper.h - - Stepper library for Wiring/Arduino - Version 0.4
-
- Original library (0.1) by Tom Igoe.
- Two-wire modifications (0.2) by Sebastian Gassner
- Combination version (0.3) by Tom Igoe and David Mellis
- Bug fix for four-wire (0.4) by Tom Igoe, bug fix from Noah Shibley
-
- Drives a unipolar or bipolar stepper motor using 2 wires or 4 wires
-
- When wiring multiple stepper motors to a microcontroller,
- you quickly run out of output pins, with each motor requiring 4 connections.
-
- By making use of the fact that at any time two of the four motor
- coils are the inverse of the other two, the number of
- control connections can be reduced from 4 to 2.
-
- A slightly modified circuit around a Darlington transistor array or an L293 H-bridge
- connects to only 2 microcontroler pins, inverts the signals received,
- and delivers the 4 (2 plus 2 inverted ones) output signals required
- for driving a stepper motor.
-
- The sequence of control signals for 4 control wires is as follows:
-
- Step C0 C1 C2 C3
- 1 1 0 1 0
- 2 0 1 1 0
- 3 0 1 0 1
- 4 1 0 0 1
-
- The sequence of controls signals for 2 control wires is as follows
- (columns C1 and C2 from above):
-
- Step C0 C1
- 1 0 1
- 2 1 1
- 3 1 0
- 4 0 0
-
- The circuits can be found at
- http://www.arduino.cc/en/Tutorial/Stepper
-*/
-
-// ensure this library description is only included once
-#ifndef Stepper_h
-#define Stepper_h
-
-// include types & constants of Wiring core API
-#include "WConstants.h"
-
-// library interface description
-class Stepper {
- public:
- // constructors:
- Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2);
- Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2, int motor_pin_3, int motor_pin_4);
-
- // speed setter method:
- void setSpeed(long whatSpeed);
-
- // mover method:
- void step(int number_of_steps);
-
- int version(void);
-
- private:
- void stepMotor(int this_step);
-
- int direction; // Direction of rotation
- int speed; // Speed in RPMs
- unsigned long step_delay; // delay between steps, in ms, based on speed
- int number_of_steps; // total number of steps this motor can take
- int pin_count; // whether you're driving the motor with 2 or 4 pins
- int step_number; // which step the motor is on
-
- // motor pin numbers:
- int motor_pin_1;
- int motor_pin_2;
- int motor_pin_3;
- int motor_pin_4;
-
- long last_step_time; // time stamp in ms of when the last step was taken
-};
-
-#endif
-
diff --git a/core/libraries/Stepper/examples/MotorKnob/MotorKnob.pde b/core/libraries/Stepper/examples/MotorKnob/MotorKnob.pde
deleted file mode 100644
index 062cac9..0000000
--- a/core/libraries/Stepper/examples/MotorKnob/MotorKnob.pde
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * MotorKnob
- *
- * A stepper motor follows the turns of a potentiometer
- * (or other sensor) on analog input 0.
- *
- * http://www.arduino.cc/en/Reference/Stepper
- */
-
-#include <Stepper.h>
-
-// change this to the number of steps on your motor
-#define STEPS 100
-
-// create an instance of the stepper class, specifying
-// the number of steps of the motor and the pins it's
-// attached to
-Stepper stepper(STEPS, 8, 9, 10, 11);
-
-// the previous reading from the analog input
-int previous = 0;
-
-void setup()
-{
- // set the speed of the motor to 30 RPMs
- stepper.setSpeed(30);
-}
-
-void loop()
-{
- // get the sensor value
- int val = analogRead(0);
-
- // move a number of steps equal to the change in the
- // sensor reading
- stepper.step(val - previous);
-
- // remember the previous value of the sensor
- previous = val;
-} \ No newline at end of file
diff --git a/core/libraries/Stepper/keywords.txt b/core/libraries/Stepper/keywords.txt
deleted file mode 100644
index 19a0fad..0000000
--- a/core/libraries/Stepper/keywords.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#######################################
-# Syntax Coloring Map For Test
-#######################################
-
-#######################################
-# Datatypes (KEYWORD1)
-#######################################
-
-Stepper KEYWORD1
-
-#######################################
-# Methods and Functions (KEYWORD2)
-#######################################
-
-step KEYWORD2
-setSpeed KEYWORD2
-version KEYWORD2
-
-######################################
-# Instances (KEYWORD2)
-#######################################
-direction KEYWORD2
-speed KEYWORD2
-
-
-#######################################
-# Constants (LITERAL1)
-#######################################
diff --git a/core/libraries/Wire/Wire.cpp b/core/libraries/Wire/Wire.cpp
deleted file mode 100755
index 73369b3..0000000
--- a/core/libraries/Wire/Wire.cpp
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- TwoWire.cpp - TWI/I2C library for Wiring & Arduino
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-extern "C" {
- #include <stdlib.h>
- #include <string.h>
- #include <inttypes.h>
- #include "twi.h"
-}
-
-#include "Wire.h"
-
-// Initialize Class Variables //////////////////////////////////////////////////
-
-uint8_t* TwoWire::rxBuffer = 0;
-uint8_t TwoWire::rxBufferIndex = 0;
-uint8_t TwoWire::rxBufferLength = 0;
-
-uint8_t TwoWire::txAddress = 0;
-uint8_t* TwoWire::txBuffer = 0;
-uint8_t TwoWire::txBufferIndex = 0;
-uint8_t TwoWire::txBufferLength = 0;
-
-uint8_t TwoWire::transmitting = 0;
-void (*TwoWire::user_onRequest)(void);
-void (*TwoWire::user_onReceive)(int);
-
-// Constructors ////////////////////////////////////////////////////////////////
-
-TwoWire::TwoWire()
-{
-}
-
-// Public Methods //////////////////////////////////////////////////////////////
-
-void TwoWire::begin(void)
-{
- // init buffer for reads
- rxBuffer = (uint8_t*) calloc(BUFFER_LENGTH, sizeof(uint8_t));
- rxBufferIndex = 0;
- rxBufferLength = 0;
-
- // init buffer for writes
- txBuffer = (uint8_t*) calloc(BUFFER_LENGTH, sizeof(uint8_t));
- txBufferIndex = 0;
- txBufferLength = 0;
-
- twi_init();
-}
-
-void TwoWire::begin(uint8_t address)
-{
- twi_setAddress(address);
- twi_attachSlaveTxEvent(onRequestService);
- twi_attachSlaveRxEvent(onReceiveService);
- begin();
-}
-
-void TwoWire::begin(int address)
-{
- begin((uint8_t)address);
-}
-
-void TwoWire::requestFrom(uint8_t address, uint8_t quantity)
-{
- // clamp to buffer length
- if(quantity > BUFFER_LENGTH){
- quantity = BUFFER_LENGTH;
- }
- // perform blocking read into buffer
- twi_readFrom(address, rxBuffer, quantity);
- // set rx buffer iterator vars
- rxBufferIndex = 0;
- rxBufferLength = quantity;
-}
-
-void TwoWire::requestFrom(int address, int quantity)
-{
- requestFrom((uint8_t)address, (uint8_t)quantity);
-}
-
-void TwoWire::beginTransmission(uint8_t address)
-{
- // indicate that we are transmitting
- transmitting = 1;
- // set address of targeted slave
- txAddress = address;
- // reset tx buffer iterator vars
- txBufferIndex = 0;
- txBufferLength = 0;
-}
-
-void TwoWire::beginTransmission(int address)
-{
- beginTransmission((uint8_t)address);
-}
-
-void TwoWire::endTransmission(void)
-{
- // transmit buffer (blocking)
- twi_writeTo(txAddress, txBuffer, txBufferLength, 1);
- // reset tx buffer iterator vars
- txBufferIndex = 0;
- txBufferLength = 0;
- // indicate that we are done transmitting
- transmitting = 0;
-}
-
-// must be called in:
-// slave tx event callback
-// or after beginTransmission(address)
-void TwoWire::send(uint8_t data)
-{
- if(transmitting){
- // in master transmitter mode
- // don't bother if buffer is full
- if(txBufferLength >= BUFFER_LENGTH){
- return;
- }
- // put byte in tx buffer
- txBuffer[txBufferIndex] = data;
- ++txBufferIndex;
- // update amount in buffer
- txBufferLength = txBufferIndex;
- }else{
- // in slave send mode
- // reply to master
- twi_transmit(&data, 1);
- }
-}
-
-// must be called in:
-// slave tx event callback
-// or after beginTransmission(address)
-void TwoWire::send(uint8_t* data, uint8_t quantity)
-{
- if(transmitting){
- // in master transmitter mode
- for(uint8_t i = 0; i < quantity; ++i){
- send(data[i]);
- }
- }else{
- // in slave send mode
- // reply to master
- twi_transmit(data, quantity);
- }
-}
-
-// must be called in:
-// slave tx event callback
-// or after beginTransmission(address)
-void TwoWire::send(char* data)
-{
- send((uint8_t*)data, strlen(data));
-}
-
-// must be called in:
-// slave tx event callback
-// or after beginTransmission(address)
-void TwoWire::send(int data)
-{
- send((uint8_t)data);
-}
-
-// must be called in:
-// slave rx event callback
-// or after requestFrom(address, numBytes)
-uint8_t TwoWire::available(void)
-{
- return rxBufferLength - rxBufferIndex;
-}
-
-// must be called in:
-// slave rx event callback
-// or after requestFrom(address, numBytes)
-uint8_t TwoWire::receive(void)
-{
- // default to returning null char
- // for people using with char strings
- uint8_t value = '\0';
-
- // get each successive byte on each call
- if(rxBufferIndex < rxBufferLength){
- value = rxBuffer[rxBufferIndex];
- ++rxBufferIndex;
- }
-
- return value;
-}
-
-// behind the scenes function that is called when data is received
-void TwoWire::onReceiveService(uint8_t* inBytes, int numBytes)
-{
- // don't bother if user hasn't registered a callback
- if(!user_onReceive){
- return;
- }
- // don't bother if rx buffer is in use by a master requestFrom() op
- // i know this drops data, but it allows for slight stupidity
- // meaning, they may not have read all the master requestFrom() data yet
- if(rxBufferIndex < rxBufferLength){
- return;
- }
- // copy twi rx buffer into local read buffer
- // this enables new reads to happen in parallel
- for(uint8_t i = 0; i < numBytes; ++i){
- rxBuffer[i] = inBytes[i];
- }
- // set rx iterator vars
- rxBufferIndex = 0;
- rxBufferLength = numBytes;
- // alert user program
- user_onReceive(numBytes);
-}
-
-// behind the scenes function that is called when data is requested
-void TwoWire::onRequestService(void)
-{
- // don't bother if user hasn't registered a callback
- if(!user_onRequest){
- return;
- }
- // reset tx buffer iterator vars
- // !!! this will kill any pending pre-master sendTo() activity
- txBufferIndex = 0;
- txBufferLength = 0;
- // alert user program
- user_onRequest();
-}
-
-// sets function called on slave write
-void TwoWire::onReceive( void (*function)(int) )
-{
- user_onReceive = function;
-}
-
-// sets function called on slave read
-void TwoWire::onRequest( void (*function)(void) )
-{
- user_onRequest = function;
-}
-
-// Preinstantiate Objects //////////////////////////////////////////////////////
-
-TwoWire Wire = TwoWire();
-
diff --git a/core/libraries/Wire/Wire.h b/core/libraries/Wire/Wire.h
deleted file mode 100755
index 9c91b9b..0000000
--- a/core/libraries/Wire/Wire.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- TwoWire.h - TWI/I2C library for Arduino & Wiring
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef TwoWire_h
-#define TwoWire_h
-
-#include <inttypes.h>
-
-#define BUFFER_LENGTH 32
-
-class TwoWire
-{
- private:
- static uint8_t* rxBuffer;
- static uint8_t rxBufferIndex;
- static uint8_t rxBufferLength;
-
- static uint8_t txAddress;
- static uint8_t* txBuffer;
- static uint8_t txBufferIndex;
- static uint8_t txBufferLength;
-
- static uint8_t transmitting;
- static void (*user_onRequest)(void);
- static void (*user_onReceive)(int);
- static void onRequestService(void);
- static void onReceiveService(uint8_t*, int);
- public:
- TwoWire();
- void begin();
- void begin(uint8_t);
- void begin(int);
- void beginTransmission(uint8_t);
- void beginTransmission(int);
- void endTransmission(void);
- void requestFrom(uint8_t, uint8_t);
- void requestFrom(int, int);
- void send(uint8_t);
- void send(uint8_t*, uint8_t);
- void send(int);
- void send(char*);
- uint8_t available(void);
- uint8_t receive(void);
- void onReceive( void (*)(int) );
- void onRequest( void (*)(void) );
-};
-
-extern TwoWire Wire;
-
-#endif
-
diff --git a/core/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.pde b/core/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.pde
deleted file mode 100755
index c89b0f0..0000000
--- a/core/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.pde
+++ /dev/null
@@ -1,84 +0,0 @@
-// I2C SRF10 or SRF08 Devantech Ultrasonic Ranger Finder
-// by Nicholas Zambetti <http://www.zambetti.com>
-// and James Tichenor <http://www.jamestichenor.net>
-
-// Demonstrates use of the Wire library reading data from the
-// Devantech Utrasonic Rangers SFR08 and SFR10
-
-// Created 29 April 2006
-
-#include <Wire.h>
-
-void setup()
-{
- Wire.begin(); // join i2c bus (address optional for master)
- Serial.begin(9600); // start serial communication at 9600bps
-}
-
-int reading = 0;
-
-void loop()
-{
- // step 1: instruct sensor to read echoes
- Wire.beginTransmission(112); // transmit to device #112 (0x70)
- // the address specified in the datasheet is 224 (0xE0)
- // but i2c adressing uses the high 7 bits so it's 112
- Wire.send(0x00); // sets register pointer to the command register (0x00)
- Wire.send(0x50); // command sensor to measure in "inches" (0x50)
- // use 0x51 for centimeters
- // use 0x52 for ping microseconds
- Wire.endTransmission(); // stop transmitting
-
- // step 2: wait for readings to happen
- delay(70); // datasheet suggests at least 65 milliseconds
-
- // step 3: instruct sensor to return a particular echo reading
- Wire.beginTransmission(112); // transmit to device #112
- Wire.send(0x02); // sets register pointer to echo #1 register (0x02)
- Wire.endTransmission(); // stop transmitting
-
- // step 4: request reading from sensor
- Wire.requestFrom(112, 2); // request 2 bytes from slave device #112
-
- // step 5: receive reading from sensor
- if(2 <= Wire.available()) // if two bytes were received
- {
- reading = Wire.receive(); // receive high byte (overwrites previous reading)
- reading = reading << 8; // shift high byte to be high 8 bits
- reading |= Wire.receive(); // receive low byte as lower 8 bits
- Serial.println(reading); // print the reading
- }
-
- delay(250); // wait a bit since people have to read the output :)
-}
-
-
-/*
-
-// The following code changes the address of a Devantech Ultrasonic Range Finder (SRF10 or SRF08)
-// usage: changeAddress(0x70, 0xE6);
-
-void changeAddress(byte oldAddress, byte newAddress)
-{
- Wire.beginTransmission(oldAddress);
- Wire.send(0x00);
- Wire.send(0xA0);
- Wire.endTransmission();
-
- Wire.beginTransmission(oldAddress);
- Wire.send(0x00);
- Wire.send(0xAA);
- Wire.endTransmission();
-
- Wire.beginTransmission(oldAddress);
- Wire.send(0x00);
- Wire.send(0xA5);
- Wire.endTransmission();
-
- Wire.beginTransmission(oldAddress);
- Wire.send(0x00);
- Wire.send(newAddress);
- Wire.endTransmission();
-}
-
-*/
diff --git a/core/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.pde b/core/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.pde
deleted file mode 100644
index 35ee5d6..0000000
--- a/core/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.pde
+++ /dev/null
@@ -1,34 +0,0 @@
-// I2C Digital Potentiometer
-// by Nicholas Zambetti <http://www.zambetti.com>
-// and Shawn Bonkowski <http://people.interaction-ivrea.it/s.bonkowski/>
-
-// Demonstrates use of the Wire library
-// Controls AD5171 digital potentiometer via I2C/TWI
-
-// Created 31 March 2006
-
-#include <Wire.h>
-
-void setup()
-{
- Wire.begin(); // join i2c bus (address optional for master)
-}
-
-byte val = 0;
-
-void loop()
-{
- Wire.beginTransmission(44); // transmit to device #44 (0x2c)
- // device address is specified in datasheet
- Wire.send(0x00); // sends instruction byte
- Wire.send(val); // sends potentiometer value byte
- Wire.endTransmission(); // stop transmitting
-
- val++; // increment value
- if(val == 64) // if reached 64th position (max)
- {
- val = 0; // start over from lowest value
- }
- delay(500);
-}
-
diff --git a/core/libraries/Wire/examples/master_reader/master_reader.pde b/core/libraries/Wire/examples/master_reader/master_reader.pde
deleted file mode 100644
index 1b139de..0000000
--- a/core/libraries/Wire/examples/master_reader/master_reader.pde
+++ /dev/null
@@ -1,29 +0,0 @@
-// Wire Master Reader
-// by Nicholas Zambetti <http://www.zambetti.com>
-
-// Demonstrates use of the Wire library
-// Reads data from an I2C/TWI slave device
-// Refer to the "Wire Slave Sender" example for use with this
-
-// Created 29 March 2006
-
-#include <Wire.h>
-
-void setup()
-{
- Wire.begin(); // join i2c bus (address optional for master)
- Serial.begin(9600); // start serial for output
-}
-
-void loop()
-{
- Wire.requestFrom(2, 6); // request 6 bytes from slave device #2
-
- while(Wire.available()) // slave may send less than requested
- {
- char c = Wire.receive(); // receive a byte as character
- Serial.print(c); // print the character
- }
-
- delay(500);
-}
diff --git a/core/libraries/Wire/examples/master_writer/master_writer.pde b/core/libraries/Wire/examples/master_writer/master_writer.pde
deleted file mode 100644
index d0ff9fa..0000000
--- a/core/libraries/Wire/examples/master_writer/master_writer.pde
+++ /dev/null
@@ -1,28 +0,0 @@
-// Wire Master Writer
-// by Nicholas Zambetti <http://www.zambetti.com>
-
-// Demonstrates use of the Wire library
-// Writes data to an I2C/TWI slave device
-// Refer to the "Wire Slave Receiver" example for use with this
-
-// Created 29 March 2006
-
-#include <Wire.h>
-
-void setup()
-{
- Wire.begin(); // join i2c bus (address optional for master)
-}
-
-byte x = 0;
-
-void loop()
-{
- Wire.beginTransmission(4); // transmit to device #4
- Wire.send("x is "); // sends five bytes
- Wire.send(x); // sends one byte
- Wire.endTransmission(); // stop transmitting
-
- x++;
- delay(500);
-}
diff --git a/core/libraries/Wire/examples/slave_receiver/slave_receiver.pde b/core/libraries/Wire/examples/slave_receiver/slave_receiver.pde
deleted file mode 100644
index 53c86b5..0000000
--- a/core/libraries/Wire/examples/slave_receiver/slave_receiver.pde
+++ /dev/null
@@ -1,35 +0,0 @@
-// Wire Slave Receiver
-// by Nicholas Zambetti <http://www.zambetti.com>
-
-// Demonstrates use of the Wire library
-// Receives data as an I2C/TWI slave device
-// Refer to the "Wire Master Writer" example for use with this
-
-// Created 29 March 2006
-
-#include <Wire.h>
-
-void setup()
-{
- Wire.begin(4); // join i2c bus with address #4
- Wire.onReceive(receiveEvent); // register event
- Serial.begin(9600); // start serial for output
-}
-
-void loop()
-{
- delay(100);
-}
-
-// function that executes whenever data is received from master
-// this function is registered as an event, see setup()
-void receiveEvent(int howMany)
-{
- while(1 < Wire.available()) // loop through all but the last
- {
- char c = Wire.receive(); // receive byte as a character
- Serial.print(c); // print the character
- }
- int x = Wire.receive(); // receive byte as an integer
- Serial.println(x); // print the integer
-}
diff --git a/core/libraries/Wire/examples/slave_sender/slave_sender.pde b/core/libraries/Wire/examples/slave_sender/slave_sender.pde
deleted file mode 100644
index f500644..0000000
--- a/core/libraries/Wire/examples/slave_sender/slave_sender.pde
+++ /dev/null
@@ -1,29 +0,0 @@
-// Wire Slave Sender
-// by Nicholas Zambetti <http://www.zambetti.com>
-
-// Demonstrates use of the Wire library
-// Sends data as an I2C/TWI slave device
-// Refer to the "Wire Master Reader" example for use with this
-
-// Created 29 March 2006
-
-#include <Wire.h>
-
-void setup()
-{
- Wire.begin(2); // join i2c bus with address #2
- Wire.onRequest(requestEvent); // register event
-}
-
-void loop()
-{
- delay(100);
-}
-
-// function that executes whenever data is requested by master
-// this function is registered as an event, see setup()
-void requestEvent()
-{
- Wire.send("hello "); // respond with message of 6 bytes
- // as expected by master
-}
diff --git a/core/libraries/Wire/keywords.txt b/core/libraries/Wire/keywords.txt
deleted file mode 100644
index 12f129b..0000000
--- a/core/libraries/Wire/keywords.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-#######################################
-# Syntax Coloring Map For Wire
-#######################################
-
-#######################################
-# Datatypes (KEYWORD1)
-#######################################
-
-#######################################
-# Methods and Functions (KEYWORD2)
-#######################################
-
-begin KEYWORD2
-beginTransmission KEYWORD2
-endTransmission KEYWORD2
-requestFrom KEYWORD2
-send KEYWORD2
-receive KEYWORD2
-onReceive KEYWORD2
-onRequest KEYWORD2
-
-#######################################
-# Instances (KEYWORD2)
-#######################################
-
-Wire KEYWORD2
-
-#######################################
-# Constants (LITERAL1)
-#######################################
-
diff --git a/core/libraries/Wire/utility/twi.c b/core/libraries/Wire/utility/twi.c
deleted file mode 100644
index 2235b0b..0000000
--- a/core/libraries/Wire/utility/twi.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/*
- twi.c - TWI/I2C library for Wiring & Arduino
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#include <math.h>
-#include <stdlib.h>
-#include <inttypes.h>
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include <avr/signal.h>
-#include <compat/twi.h>
-
-#ifndef cbi
-#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
-#endif
-
-#ifndef sbi
-#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
-#endif
-
-#include "twi.h"
-
-static volatile uint8_t twi_state;
-static uint8_t twi_slarw;
-
-static void (*twi_onSlaveTransmit)(void);
-static void (*twi_onSlaveReceive)(uint8_t*, int);
-
-static uint8_t* twi_masterBuffer;
-static volatile uint8_t twi_masterBufferIndex;
-static uint8_t twi_masterBufferLength;
-
-static uint8_t* twi_txBuffer;
-static volatile uint8_t twi_txBufferIndex;
-static volatile uint8_t twi_txBufferLength;
-
-static uint8_t* twi_rxBuffer;
-static volatile uint8_t twi_rxBufferIndex;
-
-/*
- * Function twi_init
- * Desc readys twi pins and sets twi bitrate
- * Input none
- * Output none
- */
-void twi_init(void)
-{
- // initialize state
- twi_state = TWI_READY;
-
- #if defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__)
- // activate internal pull-ups for twi
- // as per note from atmega8 manual pg167
- sbi(PORTC, 4);
- sbi(PORTC, 5);
- #else
- // activate internal pull-ups for twi
- // as per note from atmega128 manual pg204
- sbi(PORTD, 0);
- sbi(PORTD, 1);
- #endif
-
- // initialize twi prescaler and bit rate
- cbi(TWSR, TWPS0);
- cbi(TWSR, TWPS1);
- TWBR = ((CPU_FREQ / TWI_FREQ) - 16) / 2;
-
- /* twi bit rate formula from atmega128 manual pg 204
- SCL Frequency = CPU Clock Frequency / (16 + (2 * TWBR))
- note: TWBR should be 10 or higher for master mode
- It is 72 for a 16mhz Wiring board with 100kHz TWI */
-
- // enable twi module, acks, and twi interrupt
- TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
-
- // allocate buffers
- twi_masterBuffer = (uint8_t*) calloc(TWI_BUFFER_LENGTH, sizeof(uint8_t));
- twi_txBuffer = (uint8_t*) calloc(TWI_BUFFER_LENGTH, sizeof(uint8_t));
- twi_rxBuffer = (uint8_t*) calloc(TWI_BUFFER_LENGTH, sizeof(uint8_t));
-}
-
-/*
- * Function twi_slaveInit
- * Desc sets slave address and enables interrupt
- * Input none
- * Output none
- */
-void twi_setAddress(uint8_t address)
-{
- // set twi slave address (skip over TWGCE bit)
- TWAR = address << 1;
-}
-
-/*
- * Function twi_readFrom
- * Desc attempts to become twi bus master and read a
- * series of bytes from a device on the bus
- * Input address: 7bit i2c device address
- * data: pointer to byte array
- * length: number of bytes to read into array
- * Output byte: 0 ok, 1 length too long for buffer
- */
-uint8_t twi_readFrom(uint8_t address, uint8_t* data, uint8_t length)
-{
- uint8_t i;
-
- // ensure data will fit into buffer
- if(TWI_BUFFER_LENGTH < length){
- return 1;
- }
-
- // wait until twi is ready, become master receiver
- while(TWI_READY != twi_state){
- continue;
- }
- twi_state = TWI_MRX;
-
- // initialize buffer iteration vars
- twi_masterBufferIndex = 0;
- twi_masterBufferLength = length;
-
- // build sla+w, slave device address + w bit
- twi_slarw = TW_READ;
- twi_slarw |= address << 1;
-
- // send start condition
- TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTA);
-
- // wait for read operation to complete
- while(TWI_MRX == twi_state){
- continue;
- }
-
- // copy twi buffer to data
- for(i = 0; i < length; ++i){
- data[i] = twi_masterBuffer[i];
- }
-
- return 0;
-}
-
-/*
- * Function twi_writeTo
- * Desc attempts to become twi bus master and write a
- * series of bytes to a device on the bus
- * Input address: 7bit i2c device address
- * data: pointer to byte array
- * length: number of bytes in array
- * wait: boolean indicating to wait for write or not
- * Output byte: 0 ok, 1 length too long for buffer
- */
-uint8_t twi_writeTo(uint8_t address, uint8_t* data, uint8_t length, uint8_t wait)
-{
- uint8_t i;
-
- // ensure data will fit into buffer
- if(TWI_BUFFER_LENGTH < length){
- return 1;
- }
-
- // wait until twi is ready, become master transmitter
- while(TWI_READY != twi_state){
- continue;
- }
- twi_state = TWI_MTX;
-
- // initialize buffer iteration vars
- twi_masterBufferIndex = 0;
- twi_masterBufferLength = length;
-
- // copy data to twi buffer
- for(i = 0; i < length; ++i){
- twi_masterBuffer[i] = data[i];
- }
-
- // build sla+w, slave device address + w bit
- twi_slarw = TW_WRITE;
- twi_slarw |= address << 1;
-
- // send start condition
- TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTA);
-
- // wait for write operation to complete
- while(wait && (TWI_MTX == twi_state)){
- continue;
- }
-
- return 0;
-}
-
-/*
- * Function twi_transmit
- * Desc fills slave tx buffer with data
- * must be called in slave tx event callback
- * Input data: pointer to byte array
- * length: number of bytes in array
- * Output 1 length too long for buffer
- * 2 not slave transmitter
- * 0 ok
- */
-uint8_t twi_transmit(uint8_t* data, uint8_t length)
-{
- uint8_t i;
-
- // ensure data will fit into buffer
- if(TWI_BUFFER_LENGTH < length){
- return 1;
- }
-
- // ensure we are currently a slave transmitter
- if(TWI_STX != twi_state){
- return 2;
- }
-
- // set length and copy data into tx buffer
- twi_txBufferLength = length;
- for(i = 0; i < length; ++i){
- twi_txBuffer[i] = data[i];
- }
-
- return 0;
-}
-
-/*
- * Function twi_attachSlaveRxEvent
- * Desc sets function called before a slave read operation
- * Input function: callback function to use
- * Output none
- */
-void twi_attachSlaveRxEvent( void (*function)(uint8_t*, int) )
-{
- twi_onSlaveReceive = function;
-}
-
-/*
- * Function twi_attachSlaveTxEvent
- * Desc sets function called before a slave write operation
- * Input function: callback function to use
- * Output none
- */
-void twi_attachSlaveTxEvent( void (*function)(void) )
-{
- twi_onSlaveTransmit = function;
-}
-
-/*
- * Function twi_reply
- * Desc sends byte or readys receive line
- * Input ack: byte indicating to ack or to nack
- * Output none
- */
-void twi_reply(uint8_t ack)
-{
- // transmit master read ready signal, with or without ack
- if(ack){
- TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA);
- }else{
- TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT);
- }
-}
-
-/*
- * Function twi_stop
- * Desc relinquishes bus master status
- * Input none
- * Output none
- */
-void twi_stop(void)
-{
- // send stop condition
- TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO);
-
- // wait for stop condition to be exectued on bus
- // TWINT is not set after a stop condition!
- while(TWCR & _BV(TWSTO)){
- continue;
- }
-
- // update twi state
- twi_state = TWI_READY;
-}
-
-/*
- * Function twi_releaseBus
- * Desc releases bus control
- * Input none
- * Output none
- */
-void twi_releaseBus(void)
-{
- // release bus
- TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT);
-
- // update twi state
- twi_state = TWI_READY;
-}
-
-SIGNAL(SIG_2WIRE_SERIAL)
-{
- switch(TW_STATUS){
- // All Master
- case TW_START: // sent start condition
- case TW_REP_START: // sent repeated start condition
- // copy device address and r/w bit to output register and ack
- TWDR = twi_slarw;
- twi_reply(1);
- break;
-
- // Master Transmitter
- case TW_MT_SLA_ACK: // slave receiver acked address
- case TW_MT_DATA_ACK: // slave receiver acked data
- // if there is data to send, send it, otherwise stop
- if(twi_masterBufferIndex < twi_masterBufferLength){
- // copy data to output register and ack
- TWDR = twi_masterBuffer[twi_masterBufferIndex++];
- twi_reply(1);
- }else{
- twi_stop();
- }
- break;
- case TW_MT_SLA_NACK: // address sent, nack received
- case TW_MT_DATA_NACK: // data sent, nack received
- twi_stop();
- break;
- case TW_MT_ARB_LOST: // lost bus arbitration
- twi_releaseBus();
- break;
-
- // Master Receiver
- case TW_MR_DATA_ACK: // data received, ack sent
- // put byte into buffer
- twi_masterBuffer[twi_masterBufferIndex++] = TWDR;
- case TW_MR_SLA_ACK: // address sent, ack received
- // ack if more bytes are expected, otherwise nack
- if(twi_masterBufferIndex < twi_masterBufferLength){
- twi_reply(1);
- }else{
- twi_reply(0);
- }
- break;
- case TW_MR_DATA_NACK: // data received, nack sent
- // put final byte into buffer
- twi_masterBuffer[twi_masterBufferIndex++] = TWDR;
- case TW_MR_SLA_NACK: // address sent, nack received
- twi_stop();
- break;
- // TW_MR_ARB_LOST handled by TW_MT_ARB_LOST case
-
- // Slave Receiver
- case TW_SR_SLA_ACK: // addressed, returned ack
- case TW_SR_GCALL_ACK: // addressed generally, returned ack
- case TW_SR_ARB_LOST_SLA_ACK: // lost arbitration, returned ack
- case TW_SR_ARB_LOST_GCALL_ACK: // lost arbitration, returned ack
- // enter slave receiver mode
- twi_state = TWI_SRX;
- // indicate that rx buffer can be overwritten and ack
- twi_rxBufferIndex = 0;
- twi_reply(1);
- break;
- case TW_SR_DATA_ACK: // data received, returned ack
- case TW_SR_GCALL_DATA_ACK: // data received generally, returned ack
- // if there is still room in the rx buffer
- if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){
- // put byte in buffer and ack
- twi_rxBuffer[twi_rxBufferIndex++] = TWDR;
- twi_reply(1);
- }else{
- // otherwise nack
- twi_reply(0);
- }
- break;
- case TW_SR_STOP: // stop or repeated start condition received
- // put a null char after data if there's room
- if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){
- twi_rxBuffer[twi_rxBufferIndex] = '\0';
- }
- // callback to user defined callback
- twi_onSlaveReceive(twi_rxBuffer, twi_rxBufferIndex);
- // ack future responses
- twi_reply(1);
- // leave slave receiver state
- twi_state = TWI_READY;
- break;
- case TW_SR_DATA_NACK: // data received, returned nack
- case TW_SR_GCALL_DATA_NACK: // data received generally, returned nack
- // nack back at master
- twi_reply(0);
- break;
-
- // Slave Transmitter
- case TW_ST_SLA_ACK: // addressed, returned ack
- case TW_ST_ARB_LOST_SLA_ACK: // arbitration lost, returned ack
- // enter slave transmitter mode
- twi_state = TWI_STX;
- // ready the tx buffer index for iteration
- twi_txBufferIndex = 0;
- // set tx buffer length to be zero, to verify if user changes it
- twi_txBufferLength = 0;
- // request for txBuffer to be filled and length to be set
- // note: user must call twi_transmit(bytes, length) to do this
- twi_onSlaveTransmit();
- // if they didn't change buffer & length, initialize it
- if(0 == twi_txBufferLength){
- twi_txBufferLength = 1;
- twi_txBuffer[0] = 0x00;
- }
- // transmit first byte from buffer, fall
- case TW_ST_DATA_ACK: // byte sent, ack returned
- // copy data to output register
- TWDR = twi_txBuffer[twi_txBufferIndex++];
- // if there is more to send, ack, otherwise nack
- if(twi_txBufferIndex < twi_txBufferLength){
- twi_reply(1);
- }else{
- twi_reply(0);
- }
- break;
- case TW_ST_DATA_NACK: // received nack, we are done
- case TW_ST_LAST_DATA: // received ack, but we are done already!
- // ack future responses
- twi_reply(1);
- // leave slave receiver state
- twi_state = TWI_READY;
- break;
-
- // All
- case TW_NO_INFO: // no state information
- break;
- case TW_BUS_ERROR: // bus error, illegal stop/start
- twi_stop();
- break;
- }
-}
-
diff --git a/core/libraries/Wire/utility/twi.h b/core/libraries/Wire/utility/twi.h
deleted file mode 100755
index 7ccbf5c..0000000
--- a/core/libraries/Wire/utility/twi.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- twi.h - TWI/I2C library for Wiring & Arduino
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef twi_h
-#define twi_h
-
- #include <inttypes.h>
-
- //#define ATMEGA8
-
- #ifndef CPU_FREQ
- #define CPU_FREQ 16000000L
- #endif
-
- #ifndef TWI_FREQ
- #define TWI_FREQ 100000L
- #endif
-
- #ifndef TWI_BUFFER_LENGTH
- #define TWI_BUFFER_LENGTH 32
- #endif
-
- #define TWI_READY 0
- #define TWI_MRX 1
- #define TWI_MTX 2
- #define TWI_SRX 3
- #define TWI_STX 4
-
- void twi_init(void);
- void twi_setAddress(uint8_t);
- uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t);
- uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t);
- uint8_t twi_transmit(uint8_t*, uint8_t);
- void twi_attachSlaveRxEvent( void (*)(uint8_t*, int) );
- void twi_attachSlaveTxEvent( void (*)(void) );
- void twi_reply(uint8_t);
- void twi_stop(void);
- void twi_releaseBus(void);
-
-#endif
-