Skip to content

UnexpectedMaker/tinypico-helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TinyPICO Arduino Helper

This library adds some helper functions and useful pin assignments to make coding with TinyPICO & Arduino easier

We will be adding this library to the Arduino IDE library manager once we get closer to shipping the TinyPICOs.

TinyPICO Hardware Pin Assignments

// APA102 Dotstar
#define DOTSTAR_PWR 13
#define DOTSTAR_DATA 2
#define DOTSTAR_CLK 12

// Battery
#define BAT_CHARGE 34
#define BAT_VOLTAGE 35

Helper functions

// Class constructor
TinyPICO();

// Get a *rough* estimate of the current battery voltage
// If the battery is not present, the charge IC will still report it's trying to charge at X voltage
// so it will still show a voltage.
float GetBatteryVoltage();

// Return the current charge state of the battery - we need to read the value multiple times
// to eliminate false negatives due to the charge IC not knowing the difference between no battery
// and a full battery not charging - This is why the charge LED flashes
bool IsChargingBattery();

// Power to the on-board Dotstar is controlled by a PNP transistor, so low is ON and high is OFF
// We also need to set the Dotstar clock and data pins to be inputs to prevent power leakage when power is off
// The reason we have power control for the Dotstar is that it has a quiescent current of around 1mA, so we
// need to be able to cut power to it to minimise power consumption during deep sleep or with general battery powered use
// to minimise unneeded battery drain
void DotStar_SetPower( bool state );

// On-board Dotstar control
void DotStar_Clear();
void DotStar_SetBrightness( uint8_t );
void DotStar_SetPixelColor( uint32_t c );
void DotStar_SetPixelColor( uint8_t r, uint8_t g, uint8_t b );
void DotStar_Show( void );
void DotStar_CycleColor();
void DotStar_CycleColor( unsigned long wait );
void DotStar_CycleColor();
void DotStar_CycleColor( unsigned long wait );

// Convert R,G,B values to uint32_t
uint32_t Color( uint8_t r, uint8_t g, uint8_t b );

Example Usage

#include <TinyPICO.h>

// Interval between internal temperature reads
unsigned long next_temp_read = 0;   // Next time step in milliseconds
uint8_t temp_read_interval = 1000;  // This is in milliseconds

// Initialise the TinyPICO library
TinyPICO tp = TinyPICO();

void setup()
{
    // Not used
}

void loop()
{
    // Cycle the DotStar colour every 25 milliseconds
    tp.DotStar_CycleColor(25);

    // You can set the DotStar colour directly using r,g,b values
    // tp.DotStar_SetPixelColor( 255, 128, 0 );

    // You can set the DotStar colour directly using a uint32_t value
    // tp.DotStar_SetPixelColor( 0xFFC900 );

    // You can clear the DotStar too
    // tp.DotStar_Clear();

    // To power down the DotStar for deep sleep you call this
    // tp.DotStar_SetPower( false );

}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages