Adafruit is open, safely ... and shipping all orders at this time! Read more!

Bluetooth Heads Up Display
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Bluetooth Heads Up Display

by Shmilt on Sun Jul 28, 2019 1:19 pm

Hello all! First post here!

I'm looking at an ambitious first project that will encompass:

Ambient light sensors
Bluetooth communication,
2 x quad 14 segment Alphanumeric displays,
4 x 10 segment bar graphs.
Maybe an encoder or other physical interface.

My end goal is to make a speedometer/tachometer/gear indicator/shift-light that communicates with your basic ELM327 OBD2 dongle.

Untitled drawing (1).png
Untitled drawing (1).png (25.93 KiB) Viewed 97 times

My main question here is if there are any recommendations on a suitable microprocessor that could run all of these things?
Should I go the I2C route with the alphanumeric displays?
Would a MAX7219 be sufficient for the bar graphs?
I'm roughly looking at 3.8A (152 LEDs) of total current draw if all them were on, so would I need to look at separate regulated power supplies?
Is using a photo resistor for ambient light and some clever code going to be of any use for dimming these LEDs?
Is the Feather M0 Bluefruit LE my one stop shop for controlling this?
What is the name of the switch I have represented in my image? I can't think of it to save my life.

This is all I can think of in one go, I hope the formatting is readable.
Thanks in advance!

Posts: 1
Joined: Sun Jul 28, 2019 12:16 pm

Re: Bluetooth Heads Up Display

by adafruit_support_mike on Mon Jul 29, 2019 3:43 pm

You’ll need a full computer to communicate with a Bluetooth peripheral. A Raspberry Pi Zero with a Bluetooth adapter should be able to do it though!

‘Bluetooth’ is actually a family of incompatible protocols managed by a working group that really likes misleadingly-similar names. The protocol now known as Bluetooth Classic is the oldest and fastest, and requires a dongle with the right kind of radio. The Low Energy protocol called BLE is easier to build into small devices, but can’t talk to BT-C devices.

All versions of Bluetooth split devices into ‘central’ and ‘peripheral’ categories. Central devices initiate and control all data connections, while peripherals wait for a central to tell them what to do. Peripherals can’t talk to each other, and generally don’t know other peripherals even exist. The arrangement puts most of the cost and complexity in the central device, and follows a design model that basically considers a BT link to be the wireless equivalent of a USB cable.. there’s no reason for a keyboard to talk to a mouse independently of the computer, or for the mouse to read/write information on a thumb drive without going through the computer.

In terms of display control, it will probably be easiest to use I2C, The RasPi only has two SPI channels, which limits the range and number of devices you can control.

We have alphanumeric LED controllers that use I2C and can share connections to an I2C bus, and the MCP23017 and MCP23008 I2C GPIO expanders:

The RasPi has enough memory to control several of each easily. We also have the PCA9685 I2C 16-channel PWM generator, which will let you fade the LEDs:

That’s handy with bargraphs, because fading gives you more effective resolution.

Power system design for display systems is a study in tradeoffs.. a single, beefy power supply is simpler and in many cases cheaper than multiple supplies, but multiple supplies give you better isolation between sections and keep a problem in one part from taking down the whole system.

Posts: 61107
Joined: Thu Feb 11, 2010 2:51 pm

Please be positive and constructive with your questions and comments.