Guys:
I'm trying to drive an Adafruit 2.4" TFT display with SD port and touchscreen using an Arduino Nano 33 BLE Sense board. I'm displaying information that I receive from another Arduino BLE board via Bluetooth.
I'm able to display text and lines, etc. on the display with the example program, but I'm not able to upload bitmaps from the SD card, nor am I able to use the touchscreen.
When I install all the libraries and simply try to compile the example program (Adafruit ImageReader Library/ShieldILI9341), just like in the Adafruit instructions, I get errors and it won't compile. It has nothing to do with the wiring...it won't even compile. I was flabbergasted as to why you can't even compile an example program until I discovered that it will compile if I change the board in the IDE to an "Arduino UNO". It will not compile if I set it as an Arduino Nano 33 BLE.
So am I dead in the water? Is it impossible to use an SD card or touch with an Arduino Bluetooth board?
Don
So is there no way to use the SD without writing my own libraries?
Don
The BLE and UNO use two different MCU's
You would have to find a suitable library that covers the one used on the BLE to be able to use it.
As you found out the hard way.
:-[
Moving you to the NANO BLE section as maybe somebody there can help you.
Could you also take a few moments to Learn How To Use The Forum.
Other general help and troubleshooting advice can be found here.
It will help you get the best out of the forum in the future.
How are you supposed to know this? The literature on the display says it's compatible with Arduino and makes a vague statement that the Leonardo might be a problem with some applications. It makes no mention of Nano BLE. This is all I have to go by before I spend my money on their displays.
Does anyone know of a display that IS compatible with Nano BLE? I need it to be able to upload bitmap photos and have a touchscreen. I would prefer a medium-sized one, similar to the 2.4" one, if possible.
Has anyone used one of these in a Bluetooth project?
Don
Where did you get the display (link) ?
Maybe ask them directly for a library to suit the every.
Most libraries are supplied by third party people who make a library for thier own use and then release it into the wild.
Maybe less than 15% of libraries are actually developed and supplied by Arduino themselves !
Usually they are only ones that are specific to some common functions of that board or a common piece of external hardware.
Arduino compatible does not 100% guarantee everything will add to anything !
At most it means it will probably work with UNO's, MEGA's, NANO's and similar architecture.
Well, it's an Adafruit 2.4" TFT that runs on the ILI9341, which they supply libraries for. They just don't work on Nano BLE.
It occurred to me that the Nano IoT board does Bluetooth, but uses a different processor than the BLE boards. I tried setting that as the board and it compiles. I suppose I could switch to the IoT.
But is the IoT low energy, or old-style Bluetooth? This is a battery-powered application.
Don
I assume you're using the Adafruit resistive touchscreen library: GitHub - adafruit/Adafruit_TouchScreen: Arduino library for 4-wire resistive touchscreens
I see it requires connection to 2 digital and 2 analog. May be worth checking the analog side works as expected.
This library uses compiler directives. So you'll need to make some manual changes to the library as although the nano is technically an "NRF52_SERIES", it might not be defined as such by the Arduino IDE so the library will fail to recognise. An nRF52 is a type of BLE (Bluetooth Low Energy) module and is not old style Bluetooth.
Example:
#elif defined(NRF52_SERIES) || defined(ESP32) || defined(ESP8266) ||
defined(ARDUINO_ARCH_STM32)
typedef volatile uint32_t RwReg;