Skip to content

daisy

Hardware defines and helpers for daisy field platform. More...

Namespaces

Name
daisy::MAX11300Types
daisy::patch_sm
daisy::seed

Classes

Name
struct daisy::Pin
representation of hardware port/pin combination
class daisy::DaisyField
class daisy::DaisyLegio
Class that handles initializing all of the hardware specific to the Virt Iter Legio hardware. Helper funtions are also in place to provide easy access to built-in controls and peripherals.
class daisy::DaisyPatch
Class that handles initializing all of the hardware specific to the Daisy Patch Board. Helper funtions are also in place to provide easy access to built-in controls and peripherals.
class daisy::DaisyPetal
Helpers and hardware definitions for daisy petal.
class daisy::DaisyPod
Class that handles initializing all of the hardware specific to the Daisy Patch Board. Helper funtions are also in place to provide easy access to built-in controls and peripherals.
class daisy::DaisySeed
This is the higher-level interface for the Daisy board. All basic peripheral configuration/initialization is setup here. .
class daisy::DaisyVersio
Class that handles initializing all of the hardware specific to the Desmodus Versio hardware. Helper funtions are also in place to provide easy access to built-in controls and peripherals.
class daisy::Apds9960I2CTransport
class daisy::Apds9960
Device support for APDS9960 gesture / RGB / proximity sensor.
class daisy::Ak4556
class daisy::Pcm3060
class daisy::Wm8731
class daisy::DotStarSpiTransport
SPI Transport for DotStars.
class daisy::DotStar
Device support for Adafruit DotStar LEDs (Opsco SK9822)
class daisy::Dps310I2CTransport
class daisy::Dps310SpiTransport
class daisy::Dps310
Device support for DPS310 Barometric Pressure and Altitude Sensor.
class daisy::Icm20948I2CTransport
class daisy::Icm20948SpiTransport
class daisy::Icm20948
Device support for ICM20948 IMU sensor.
class daisy::LcdHD44780
Device Driver for 16x2 LCD panel. HD44780 with 4 data lines. Example product: https://www.adafruit.com/product/181.
class daisy::LedDriverPca9685
class daisy::MAX11300MultiSlaveSpiTransport
class daisy::MAX11300Driver
Device Driver for the MAX11300 20 port ADC/DAC/GPIO device.
class daisy::Mcp23017Transport
class daisy::Mcp23X17
class daisy::Mpr121I2CTransport
class daisy::Mpr121
Device support for MPR121 12x Capacitive Touch Sensor.
class daisy::NeoPixelI2CTransport
class daisy::NeoPixel
Device support for Adafruit Neopixel Device.
class daisy::NeoTrellisI2CTransport
class daisy::NeoTrellis
Device support for the Adafruit Neotrellis device.
class daisy::SSD130xI2CTransport
class daisy::SSD130x4WireSpiTransport
class daisy::SSD130x4WireSoftSpiTransport
class daisy::SSD130xDriver
class daisy::ShiftRegister4021
Device Driver for CD4021 shift register.
class daisy::Tlv493dI2CTransport
class daisy::Tlv493d
Device support for TLV493D Magnetic Sensor.
class daisy::AudioHandle
Audio Engine Handle.
class daisy::AnalogControl
Hardware Interface for control inputs Primarily designed for ADC input controls such as potentiometers, and control voltage. .
class daisy::OneBitGraphicsDisplay
class daisy::OneBitGraphicsDisplayImpl
class daisy::Rectangle
class daisy::OledDisplay
class daisy::Encoder
Generic Class for handling Quadrature Encoders Inspired/influenced by Mutable Instruments (pichenettes) Encoder classes.
class daisy::GateIn
Generic Class for handling gate inputs through GPIO.
class daisy::Led
LED Class providing simple Software PWM ability, etc Eventually this will work with hardware PWM, and external LED Driver devices as well.
class daisy::Logger
Interface for simple USB logging.
class daisy::Logger< LOGGER_NONE >
class daisy::LoggerImpl
Logging I/O underlying implementation.
class daisy::LoggerImpl< LOGGER_INTERNAL >
Specialization for internal USB port.
class daisy::LoggerImpl< LOGGER_EXTERNAL >
Specialization for external USB port.
class daisy::LoggerImpl< LOGGER_SEMIHOST >
Specialization for semihosting (stdout)
class daisy::MidiUartTransport
Transport layer for sending and receiving MIDI data over UART.
class daisy::MidiHandler
Simple MIDI Handler Parses bytes from an input into valid MidiEvents. The MidiEvents fill a FIFO queue that the user can pop messages from.
class daisy::MidiParser
Utility class for parsing raw byte streams into MIDI messages.
struct daisy::NoteOffEvent
struct daisy::NoteOnEvent
struct daisy::PolyphonicKeyPressureEvent
struct daisy::ControlChangeEvent
struct daisy::ProgramChangeEvent
struct daisy::ChannelPressureEvent
struct daisy::PitchBendEvent
struct daisy::ChannelModeEvent
struct daisy::SystemExclusiveEvent
struct daisy::MTCQuarterFrameEvent
struct daisy::SongPositionPointerEvent
struct daisy::SongSelectEvent
struct daisy::AllSoundOffEvent
struct daisy::ResetAllControllersEvent
struct daisy::LocalControlEvent
struct daisy::AllNotesOffEvent
struct daisy::OmniModeOffEvent
struct daisy::OmniModeOnEvent
struct daisy::MonoModeOnEvent
struct daisy::PolyModeOnEvent
struct daisy::MidiEvent
class daisy::Parameter
class daisy::RgbLed
class daisy::Switch
class daisy::Switch3
class daisy::USBHostHandle
Presents a USB Mass Storage Device host interface.
class daisy::MidiUsbTransport
USB Transport for MIDI.
struct daisy::WavFileInfo
class daisy::WavPlayer
struct daisy::AdcChannelConfig
Configuration Structure for an ADC Channel.
class daisy::AdcHandle
Handler for analog to digital conversion.
class daisy::DacHandle
DAC handle for Built-in DAC Peripheral.
class daisy::GPIO
General Purpose I/O control.
class daisy::I2CHandle
class daisy::QSPIHandle
class daisy::Random
True Random Number Generator access.
class daisy::SaiHandle
class daisy::SdmmcHandler
class daisy::SpiHandle
class daisy::MultiSlaveSpiHandle
class daisy::TimerHandle
Hardare timer peripheral support.
class daisy::UartHandler
class daisy::FatFSInterface
Daisy FatFS Driver Interface.
class daisy::System
class daisy::AbstractMenu
Base class for complex menus.
class daisy::ButtonMonitor
A button monitor that generates events in a UiEventQueue.
class daisy::FullScreenItemMenu
A menu page for small screens.
class daisy::PotMonitor
A potentiometer monitor that generates events in a UiEventQueue.
struct daisy::UiCanvasDescriptor
A descriptor for a canvas in the UI system.
class daisy::UiPage
The base class for a page in the UI system.
class daisy::UI
A generic UI system.
class daisy::UiEventQueue
A queue that holds user input events in the UI system.
class daisy::Color
class daisy::CpuLoadMeter
class daisy::FIFOBase
class daisy::FIFO
class daisy::FixedCapStrBase
class daisy::FixedCapStr
class daisy::MappedValue
class daisy::MappedFloatValue
class daisy::MappedIntValue
class daisy::MappedStringListValue
class daisy::PersistentStorage
Non Volatile storage class for persistent settings on an external flash device.
class daisy::RingBuffer
class daisy::RingBuffer< T, 0 >
class daisy::ScopedIrqBlocker
class daisy::StackBase
class daisy::Stack
class daisy::VoctCalibration
Helper class for calibrating an input to 1V/oct response.
struct daisy::WAV_FormatTypeDef
class daisy::WaveTableLoader
class daisy::WavWriter

Types

Name
using MidiHandler< MidiUartTransport > MidiUartHandler
shorthand accessors for MIDI Handlers
using MidiHandler< MidiUsbTransport > MidiUsbHandler
shorthand accessors for MIDI Handlers
enum GPIOPort { PORTA, PORTB, PORTC, PORTD, PORTE, PORTF, PORTG, PORTH, PORTI, PORTJ, PORTK, PORTX}
GPIO Port names.
enum class uint8_t MCPRegister
enum class uint8_t MCPPort
enum class uint8_t MCPMode
enum class Alignment
enum LoggerDestination
enum MidiMessageType
enum SystemCommonType
enum SystemRealTimeType
enum ChannelModeType
enum ApplicationTypeDef
enum class ArrowButtonType { left = 0, right, up, down}
The type of arrow button in the UI system.
enum WavFileFormatCode
using Apds9960< Apds9960I2CTransport > Apds9960I2C
using DotStar< DotStarSpiTransport > DotStarSpi
using Dps310< Dps310I2CTransport > Dps310I2C
using Dps310< Dps310SpiTransport > Dps310Spi
using Icm20948< Icm20948I2CTransport > Icm20948I2C
using Icm20948< Icm20948SpiTransport > Icm20948Spi
template <size_t num_devices =1>
using daisy::MAX11300Driver< MAX11300MultiSlaveSpiTransport, num_devices >
MAX11300
using Mcp23X17< Mcp23017Transport > Mcp23017
using Mpr121< Mpr121I2CTransport > Mpr121I2C
using NeoPixel< NeoPixelI2CTransport > NeoPixelI2C
using NeoTrellis< NeoTrellisI2CTransport > NeoTrellisI2C
using daisy::SSD130xDriver< 128, 64, SSD130x4WireSpiTransport > SSD130x4WireSpi128x64Driver
using daisy::SSD130xDriver< 128, 32, SSD130x4WireSpiTransport > SSD130x4WireSpi128x32Driver
using daisy::SSD130xDriver< 98, 16, SSD130x4WireSpiTransport > SSD130x4WireSpi98x16Driver
using daisy::SSD130xDriver< 64, 48, SSD130x4WireSpiTransport > SSD130x4WireSpi64x48Driver
using daisy::SSD130xDriver< 64, 32, SSD130x4WireSpiTransport > SSD130x4WireSpi64x32Driver
using daisy::SSD130xDriver< 128, 64, SSD130xI2CTransport > SSD130xI2c128x64Driver
using daisy::SSD130xDriver< 128, 32, SSD130xI2CTransport > SSD130xI2c128x32Driver
using daisy::SSD130xDriver< 98, 16, SSD130xI2CTransport > SSD130xI2c98x16Driver
using daisy::SSD130xDriver< 64, 48, SSD130xI2CTransport > SSD130xI2c64x48Driver
using daisy::SSD130xDriver< 64, 32, SSD130xI2CTransport > SSD130xI2c64x32Driver
using daisy::SSD130xDriver< 128, 64, SSD130x4WireSoftSpiTransport > SSD130x4WireSoftSpi128x64Driver
using Tlv493d< Tlv493dI2CTransport > Tlv493dI2C

Functions

Name
MCPRegister operator+(MCPRegister a, MCPPort b)
void dsy_i2c_global_init()
void dsy_spi_global_init()
void dsy_uart_global_init()
template <class CharType ,std::size_t capacity>
constexpr void
Swap(const FixedCapStr< capacity, CharType > & lhs, const FixedCapStr< capacity, CharType > & rhs)

Attributes

Name
daisy::System::BootInfo boot_info
const uint32_t kWavFileChunkId
const uint32_t kWavFileWaveId
const uint32_t kWavFileSubChunk1Id
const uint32_t kWavFileSubChunk2Id

Detailed Description

Hardware defines and helpers for daisy field platform.

Copyright (C) Johannes Elliesen, 2021

Types Documentation

using MidiUartHandler

using daisy::MidiUartHandler = typedef MidiHandler<MidiUartTransport>;

shorthand accessors for MIDI Handlers

using MidiUsbHandler

using daisy::MidiUsbHandler = typedef MidiHandler<MidiUsbTransport>;

shorthand accessors for MIDI Handlers

enum GPIOPort

Enumerator Value Description
PORTA Port A
PORTB Port B
PORTC Port C
PORTD Port D
PORTE Port E
PORTF Port F
PORTG Port G
PORTH Port H
PORTI Port I
PORTJ Port J
PORTK Port K
PORTX Used as a dummy port to signal an invalid pin.

GPIO Port names.

enum MCPRegister

Enumerator Value Description
IODIR_A 0x00
IODIR_B 0x01
IPOL_A 0x02
IPOL_B 0x03
GPINTEN_A 0x04
GPINTEN_B 0x05
DEFVAL_A 0x06
DEFVAL_B 0x07
INTCON_A 0x08
INTCON_B 0x09
IOCON 0x0A
GPPU_A 0x0C
GPPU_B 0x0D
INTF_A 0x0E
INTF_B 0x0F
INTCAP_A 0x10
INTCAP_B 0x11
GPIO_A 0x12
GPIO_B 0x13
OLAT_A 0x14
OLAT_B 0x15

Registers addresses. The library use addresses for IOCON.BANK = 0. See "3.2.1 Byte mode and Sequential mode".

enum MCPPort

Enumerator Value Description
A 0
B 1

enum MCPMode

Enumerator Value Description
INPUT
INPUT_PULLUP
OUTPUT

enum Alignment

Enumerator Value Description
centered
topLeft
topCentered
topRight
bottomLeft
bottomCentered
bottomRight
centeredLeft
centeredRight

Justifications

enum LoggerDestination

Enumerator Value Description
LOGGER_NONE mute logging
LOGGER_INTERNAL internal USB port
LOGGER_EXTERNAL external USB port
LOGGER_SEMIHOST stdout

Enumeration of destination ports for debug logging

enum MidiMessageType

Enumerator Value Description
NoteOff &
NoteOn &
PolyphonicKeyPressure &
ControlChange &
ProgramChange &
ChannelPressure &
PitchBend &
SystemCommon &
SystemRealTime &
ChannelMode &
MessageLast &

Parsed from the Status Byte, these are the common Midi Messages that can be handled.

At this time only 3-byte messages are correctly parsed into MidiEvents.

enum SystemCommonType

Enumerator Value Description
SystemExclusive &
MTCQuarterFrame &
SongPositionPointer &
SongSelect &
SCUndefined0 &
SCUndefined1 &
TuneRequest &
SysExEnd &
SystemCommonLast &

enum SystemRealTimeType

Enumerator Value Description
TimingClock &
SRTUndefined0 &
Start &
Continue &
Stop &
SRTUndefined1 &
ActiveSensing &
Reset &
SystemRealTimeLast &

enum ChannelModeType

Enumerator Value Description
AllSoundOff &
ResetAllControllers &
LocalControl &
AllNotesOff &
OmniModeOff &
OmniModeOn &
MonoModeOn &
PolyModeOn &
ChannelModeLast &

enum ApplicationTypeDef

Enumerator Value Description
APPLICATION_IDLE 0
APPLICATION_START
APPLICATION_READY
APPLICATION_DISCONNECT

Status of USB Host application

enum ArrowButtonType

Enumerator Value Description
left 0 The left arrow button.
right The right arrow button.
up The up arrow button.
down The down arrow button.

The type of arrow button in the UI system.

Author: jelliesen

enum WavFileFormatCode

Enumerator Value Description
WAVE_FORMAT_PCM 0x0001
WAVE_FORMAT_IEEE_FLOAT 0x0003
WAVE_FORMAT_ALAW 0x0006
WAVE_FORMAT_ULAW 0x0007
WAVE_FORMAT_EXTENSIBLE 0xFFFE

Standard Format codes for the waveform data.

According to spec, extensible should be used whenever:

  • PCM data has more than 16 bits/sample
  • The number of channels is more than 2
  • The actual number of bits/sample is not equal to the container size
  • The mapping from channels to speakers needs to be specified.

using Apds9960I2C

using daisy::Apds9960I2C = typedef Apds9960<Apds9960I2CTransport>;

using DotStarSpi

using daisy::DotStarSpi = typedef DotStar<DotStarSpiTransport>;

using Dps310I2C

using daisy::Dps310I2C = typedef Dps310<Dps310I2CTransport>;

using Dps310Spi

using daisy::Dps310Spi = typedef Dps310<Dps310SpiTransport>;

using Icm20948I2C

using daisy::Icm20948I2C = typedef Icm20948<Icm20948I2CTransport>;

using Icm20948Spi

using daisy::Icm20948Spi = typedef Icm20948<Icm20948SpiTransport>;

using MAX11300

template <size_t num_devices =1>
using daisy::MAX11300 = typedef daisy::MAX11300Driver<MAX11300MultiSlaveSpiTransport, num_devices>;

using Mcp23017

using daisy::Mcp23017 = typedef Mcp23X17<Mcp23017Transport>;

using Mpr121I2C

using daisy::Mpr121I2C = typedef Mpr121<Mpr121I2CTransport>;

using NeoPixelI2C

using daisy::NeoPixelI2C = typedef NeoPixel<NeoPixelI2CTransport>;

using NeoTrellisI2C

using daisy::NeoTrellisI2C = typedef NeoTrellis<NeoTrellisI2CTransport>;

using SSD130x4WireSpi128x64Driver

using daisy::SSD130x4WireSpi128x64Driver = typedef daisy::SSD130xDriver<128, 64, SSD130x4WireSpiTransport>;

A driver for the SSD1306/SSD1309 128x64 OLED displays connected via 4 wire SPI

using SSD130x4WireSpi128x32Driver

using daisy::SSD130x4WireSpi128x32Driver = typedef daisy::SSD130xDriver<128, 32, SSD130x4WireSpiTransport>;

A driver for the SSD1306/SSD1309 128x32 OLED displays connected via 4 wire SPI

using SSD130x4WireSpi98x16Driver

using daisy::SSD130x4WireSpi98x16Driver = typedef daisy::SSD130xDriver<98, 16, SSD130x4WireSpiTransport>;

A driver for the SSD1306/SSD1309 98x16 OLED displays connected via 4 wire SPI

using SSD130x4WireSpi64x48Driver

using daisy::SSD130x4WireSpi64x48Driver = typedef daisy::SSD130xDriver<64, 48, SSD130x4WireSpiTransport>;

A driver for the SSD1306/SSD1309 64x48 OLED displays connected via 4 wire SPI

using SSD130x4WireSpi64x32Driver

using daisy::SSD130x4WireSpi64x32Driver = typedef daisy::SSD130xDriver<64, 32, SSD130x4WireSpiTransport>;

A driver for the SSD1306/SSD1309 64x32 OLED displays connected via 4 wire SPI

using SSD130xI2c128x64Driver

using daisy::SSD130xI2c128x64Driver = typedef daisy::SSD130xDriver<128, 64, SSD130xI2CTransport>;

A driver for the SSD1306/SSD1309 128x64 OLED displays connected via I2C

using SSD130xI2c128x32Driver

using daisy::SSD130xI2c128x32Driver = typedef daisy::SSD130xDriver<128, 32, SSD130xI2CTransport>;

A driver for the SSD1306/SSD1309 128x32 OLED displays connected via I2C

using SSD130xI2c98x16Driver

using daisy::SSD130xI2c98x16Driver = typedef daisy::SSD130xDriver<98, 16, SSD130xI2CTransport>;

A driver for the SSD1306/SSD1309 98x16 OLED displays connected via I2C

using SSD130xI2c64x48Driver

using daisy::SSD130xI2c64x48Driver = typedef daisy::SSD130xDriver<64, 48, SSD130xI2CTransport>;

A driver for the SSD1306/SSD1309 64x48 OLED displays connected via I2C

using SSD130xI2c64x32Driver

using daisy::SSD130xI2c64x32Driver = typedef daisy::SSD130xDriver<64, 32, SSD130xI2CTransport>;

A driver for the SSD1306/SSD1309 64x32 OLED displays connected via I2C

using SSD130x4WireSoftSpi128x64Driver

using daisy::SSD130x4WireSoftSpi128x64Driver = typedef daisy::SSD130xDriver<128, 64, SSD130x4WireSoftSpiTransport>;

A driver for the SSD1306/SSD1309 128x64 OLED displays connected via 4 wire SPI

using Tlv493dI2C

using daisy::Tlv493dI2C = typedef Tlv493d<Tlv493dI2CTransport>;

Functions Documentation

function operator+

inline MCPRegister operator+(
    MCPRegister a,
    MCPPort b
)

function dsy_i2c_global_init

void dsy_i2c_global_init()

internal. Used for global init.

function dsy_spi_global_init

void dsy_spi_global_init()

internal. Used for global init.

function dsy_uart_global_init

void dsy_uart_global_init()

internal. Used for global init.

function Swap

template <class CharType ,
std::size_t capacity>
inline constexpr void Swap(
    const FixedCapStr< capacity, CharType > & lhs,
    const FixedCapStr< capacity, CharType > & rhs
)

Attributes Documentation

variable boot_info

daisy::System::BootInfo boot_info;

variable kWavFileChunkId

const uint32_t kWavFileChunkId = 0x46464952;

Constants for In-Header IDs "RIFF"

variable kWavFileWaveId

const uint32_t kWavFileWaveId = 0x45564157;

"WAVE"

variable kWavFileSubChunk1Id

const uint32_t kWavFileSubChunk1Id = 0x20746d66;

"fmt "

variable kWavFileSubChunk2Id

const uint32_t kWavFileSubChunk2Id = 0x61746164;

"data"


Updated on 2024-01-03 at 19:41:00 +0000