Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error compiling for board Adafruit Feather 32u4 #46

Open
C-dr opened this issue Jul 6, 2018 · 0 comments
Open

Error compiling for board Adafruit Feather 32u4 #46

C-dr opened this issue Jul 6, 2018 · 0 comments

Comments

@C-dr
Copy link

C-dr commented Jul 6, 2018

If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:

  • Arduino board: Feather Bluefruit 32u4

  • Arduino IDE version (found in Arduino -> About Arduino menu): 1.8.5

  • List the steps to reproduce the problem below (if possible attach a sketch or
    copy the sketch code in too): LIST REPRO STEPS BELOW

The Arduino.h file seems to be missing. When I add the rFN52 Arduino.h file to my rFN51 library, I get a rabbit hole of missing files.

`
#include <Arduino.h>
#include <SPI.h>
#include "Adafruit_BLE.h"
#include "Adafruit_BluefruitLE_SPI.h"
#include "Adafruit_BluefruitLE_UART.h"
#include "Adafruit_BLEMIDI.h"
#if SOFTWARE_SERIAL_AVAILABLE
#include <SoftwareSerial.h>
#endif

#include "BluefruitConfig.h"

#define FACTORYRESET_ENABLE 1
#define MINIMUM_FIRMWARE_VERSION "0.7.0"

// This app was tested on iOS with the following apps:
//
// https://itunes.apple.com/us/app/midimittr/id925495245?mt=8
// https://itunes.apple.com/us/app/igrand-piano-free-for-ipad/id562914032?mt=8
//
// To test:
// - Run this sketch and open the Serial Monitor
// - Open the iGrand Piano Free app
// - Open the midimittr app on your phone and under Clients select "Adafruit Bluefruit LE"
// - When you see the 'Connected' label switch to the Routing panel
// - Set the Destination to 'iGrand Piano'
// - Switch to the iGrand Piano Free app and you should see notes playing one by one

// Create the bluefruit object, either software serial...uncomment these lines
/*
SoftwareSerial bluefruitSS = SoftwareSerial(BLUEFRUIT_SWUART_TXD_PIN, BLUEFRUIT_SWUART_RXD_PIN);
Adafruit_BluefruitLE_UART ble(bluefruitSS, BLUEFRUIT_UART_MODE_PIN,
BLUEFRUIT_UART_CTS_PIN, BLUEFRUIT_UART_RTS_PIN);
*/

/* ...or hardware serial, which does not need the RTS/CTS pins. Uncomment this line */
// Adafruit_BluefruitLE_UART ble(BLUEFRUIT_HWSERIAL_NAME, BLUEFRUIT_UART_MODE_PIN);

/* ...hardware SPI, using SCK/MOSI/MISO hardware SPI pins and then user selected CS/IRQ/RST */
Adafruit_BluefruitLE_SPI ble(BLUEFRUIT_SPI_CS, BLUEFRUIT_SPI_IRQ, BLUEFRUIT_SPI_RST);

/* ...software SPI, using SCK/MOSI/MISO user-defined SPI pins and then user selected CS/IRQ/RST */
//Adafruit_BluefruitLE_SPI ble(BLUEFRUIT_SPI_SCK, BLUEFRUIT_SPI_MISO,
// BLUEFRUIT_SPI_MOSI, BLUEFRUIT_SPI_CS,
// BLUEFRUIT_SPI_IRQ, BLUEFRUIT_SPI_RST);

Adafruit_BLEMIDI midi(ble);

bool isConnected = false;
int current_note = 60;

// A small helper
void error(const __FlashStringHelper*err) {
Serial.println(err);
while (1);
}

// callback
void connected(void)
{
isConnected = true;

Serial.println(F(" CONNECTED!"));
delay(1000);

}

void disconnected(void)
{
Serial.println("disconnected");
isConnected = false;
}

void BleMidiRX(uint16_t timestamp, uint8_t status, uint8_t byte1, uint8_t byte2)
{
Serial.print("[MIDI ");
Serial.print(timestamp);
Serial.print(" ] ");

Serial.print(status, HEX); Serial.print(" ");
Serial.print(byte1 , HEX); Serial.print(" ");
Serial.print(byte2 , HEX); Serial.print(" ");

Serial.println();
}

void setup(void)
{
//while (!Serial); // required for Flora & Micro
//delay(500);

Serial.begin(115200);
Serial.println(F("Adafruit Bluefruit MIDI Example"));
Serial.println(F("---------------------------------------"));

/* Initialise the module */
Serial.print(F("Initialising the Bluefruit LE module: "));

if ( !ble.begin(VERBOSE_MODE) )
{
error(F("Couldn't find Bluefruit, make sure it's in CoMmanD mode & check wiring?"));
}
Serial.println( F("OK!") );

if ( FACTORYRESET_ENABLE )
{
/* Perform a factory reset to make sure everything is in a known state */
Serial.println(F("Performing a factory reset: "));
if ( ! ble.factoryReset() ) {
error(F("Couldn't factory reset"));
}
}

//ble.sendCommandCheckOK(F("AT+uartflow=off"));
ble.echo(false);

Serial.println("Requesting Bluefruit info:");
/* Print Bluefruit information */
ble.info();

/* Set BLE callbacks */
ble.setConnectCallback(connected);
ble.setDisconnectCallback(disconnected);

// Set MIDI RX callback
midi.setRxCallback(BleMidiRX);

Serial.println(F("Enable MIDI: "));
if ( ! midi.begin(true) )
{
error(F("Could not enable MIDI"));
}

ble.verbose(false);
Serial.print(F("Waiting for a connection..."));
}

void loop(void)
{
// interval for each scanning ~ 500ms (non blocking)
ble.update(500);

// bail if not connected
if (! isConnected)
return;

Serial.print("Sending pitch ");
Serial.println(current_note, HEX);

// send note on
midi.send(0x90, current_note, 0x64);
delay(500);

// send note off
midi.send(0x80, current_note, 0x64);
delay(500);

// increment note pitch
current_note++;

// only do one octave
if(current_note > 72)
current_note = 60;

}
'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant