Ever wanted to have two hardware Serial Ports, two SPI, two I2C and more PWM pins on the Arduino Pro Mini? Tit has all of this, and retains the same form factor. Tit uses Atmega328PB at its core.

Tit, is pin compatible with Arduino Pro Mini, the chip Atmega328pb is software compatible with Atmega328p. Hence all the existing code and libraries should work without any changes. Tit uses higher version of avr-gcc toolchain, we have bundled it up as a package along with additional libraries required to access the extra features. Check the setup section on installing support for the board in the Arduino IDE. Tit-2.JPG

Features

  • Processor: Atmega328pb
  • Speed: 16MHz
  • Flash: 32KB
  • RAM : 2KB
  • EEPROM: 1KB
  • GPIOs x24
  • Analog Channels x 8
  • HW UARTs x 2,
  • SPI x 2
  • I2C x 2
  • PWM x 9
  • Interrupt Pins x 2
  • Unique HW ID
  • Castellated Pads
  • Pin compatible with Arduino Pro-Mini

Setup on Windows

  1. Download the Tit-Windows support files.
  2. Extract the content \hardware directory of your arduino sketch directory.
  3. After extracting the directory structure should look like ..\Documents\Arduino\hardware\Tit-Windows
  4. Open the Arduino IDE, select the board as Tit, and verify if the sketch compiles.
Tit Compile.png


Note:To get the latest version you may check the latest release on github

To upload the sketch connect a USB to Serial device with FTDI or CP2102 etc as shown in the image below. Verify the COM Port and hit upload. (Install the drivers if you're using the USB to serial board for the first time.)

Tit Setting up.png

Setup on Linux

  1. Download the Linux support files from links below for your machine.
    1. Linux 64 bit
    2. Linux 32 bit
  2. Extract the content \hardware directory of your arduino sketch directory.
  3. After extracting the directory structure should look like ..\Arduino\hardware\Tit-Linux-64 or ..\Arduino\hardware\Tit-Linux-32' on a 32 bit machine
  4. Open the Arduino IDE, select the board as Tit, and verify if the sketch compiles without errors.
Tit linux-64.png


Setup on MAC

[will update this soon]

Examples

The HW Serial Ports

This is probably the first example you might want to try, get hands on the additional HW serial port.

void setup() {
  //intialiaze both the ports
  Serial.begin(9600);
  Serial1.begin(9600);
}
 
void loop() {
  // send messages on the ports
  Serial.println("hey, tit on COM0");
  Serial1.println("hey, tit1 on COM1");
  delay(1000);
}

The results are below:

Tit 2Coms.PNG


The PWM channels

The obvious next thing to try is the fade effect with all the PWM channels. There are 10 PWM channels on the chip, however 2 of them have been mapped on 1 pin. So let's try the 9 of them as indicated in the pin-out diagram above.

/*
 Fade
  Tit has PWM output on 9 pins. Leds are connected to all the 9 pins as shown.
 */
 
int led  =0; 
int led1 = 1; 
int led2 = 2; 
int led3 = 3;
int led4 = 5;
int led5 = 6;
int led6 = 9;
int led7 = 10;
int led8 = 11;
 
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by
 
// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
}
 
// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 9:
  analogWrite(led, brightness);
  analogWrite(led1, brightness);
  analogWrite(led2, brightness);
  analogWrite(led3, brightness);
  analogWrite(led4, brightness);
  analogWrite(led5, brightness);
  analogWrite(led6, brightness);
  analogWrite(led7, brightness);
  analogWrite(led8, brightness);
 
  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;
 
  // reverse the direction of the fading at the ends of the fade:
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(50);
}


This is how it looks. TitPWMLED.gif

References and Credits