[queued] Engine Monitor - Teensy 4.1 & 3.6

Yes, personally, I have encountered this behavior several times: the wiring, just one wire that fails is enough.

But, let's go in parts:

1) Please share some photos of the way you have the 20 pin flat cable connected to your teensy

Short cables should be used. The flat cable that comes with the screen is suitable for using interfaces such as the Hermes or the shield for Arduino, both from Riverdi. To use the FPC-20 pin header breakout, we must use the shortest connections possible.

There are 10 and 8 cm long FPC cables, they are quite useful, especially with high SPI frequencies.

The BT81x controller (and its predecessors FT80x and FT81X) does not work as the vast majority of chips do: ILI9341, ILI9325, ILI9488, etc., it updates the information on the screen at a frequency of 60 Hz, without affecting the speed of the MCU , so one of the frequent failures is the quality of the wiring used. If possible, use soldered joints rather than dupont wiring, and if there is no other option, make sure each harness has enough pressure at each joint.

FPC.jpg
soporte.jpg


2) The FPC connector bracket must be firmly attached at both ends

FPC1.jpg


3) To stabilize the operation and sensitivity of the touch panel, and the screen itself, I recommend installing 10K resistors in pull-up mode on the miso, mosi and sck lines of the TFT header.

20pin-header wiring.jpg


4) I recommend having a clear idea of the support that we will use to fix the TFT and take care of it at all times during the tests, this way we ensure that the joints and the flat cable will be protected at all times to avoid repetitive wiring failures.

FPC2.jpg
FPC3.jpg
 
Thank you. I'm glad that my components aren't dead as that was my first thought. My set up is not nearly as well constructed! I will take some time to do things the right way and report back once I have something that works (or doesn't!)
 
What type of signal are you using for RPM? I am building my own simple engine monitor and have been playing with an inductive wire that wraps around the plug wire but I have had a difficult time making it steady and accurate. I was thinking about just giving up and using a hall effect sensor since that would be pretty easy
 
KidChaos,

Circuit below is driven off of the magneto P-lead. Running off of the low voltage side is safer - both for you and your Teensy. Put a scope on your kill switch or low voltage side somewhere (not sure what type of ignition you're connecting to.) Here's some discussion for going off of the plug... YMMV: RPM Interfacing

Magneto.png

The electronic ignition (I've got two ignitions on this) outputs a square wave signal that I feed - again through some protection - right into the Teensy.
What type of engine, what all are you monitoring? Anything I can help with?

julesjulesjules, call up one of your friends with a 3D printer and sketch out a quick holder for your system... Saves me TONS of headaches with wires being knocked loose. (If you're in SE PA, send me a design.) Sometimes having your nice enclosure helps motivate you to move the project along quicker - even when the insides are still ugly.

Alright - and here's the latest iteration of the engine monitor with the NewHaven 800x480 cap touch screen... I'd call it pretty sunlight readable. CapTouch works great. Higher resolution is really nice too. That's sitting right next to Garmin's latest display for comparison...
PXL_20230904_195137589.jpg

I did get the second CPU temp reading correctly (from the Teensy 3.6 in the engine compartment) after this photo. EconA is also incorrect - had to fix an equation... This has been good for 60 or 70 hours of flight so far and good to go for the long term, But.... I may do one final revision of both of the PCBA's - update the rear module to a Teensy 4.1, add some additional spare analog inputs via an ADS1115 and then maybe call it good. Maybe.
 
It looks great, responds very well to adjustments on the fly.To verify the display settings, please use the following code:
Code:
#include <GDSTx.h>

void setup() {
  GD.begin();
}

void loop()
{
  GD.Clear();
  GD.cmd_testcard();
}

Upload a photo of the result on the screen, to verify if the time table is correct or possibly a parameter should be adjusted. As it is in the library, it should work, however it is possible to tune some other parameters to improve colors and limits

The GDSTx library works hand in hand with the most recent SDFat library, for external multimedia storage: jpg images, avi video, assets, cells, and audio.

The teensy 4 MCU allows you to install an external reader in which you can use microSD memories of more than 32 Gb. For example, in the GPS that I am configuring, there is a 256 Gb microSD for map storage!

You have to be careful with the pinout when soldering small wires.

T4_ILI9488_06.png
T4_ILI9488_08.png
IMG_20200816_025031.jpg


GPST4_02.png


PD: Please share with us more photos of the PCB with which you have made the BT817 work.
 
Last edited:
Hello, it's been some time! I have hit another snag on my project and was wondering if someone might be able to help point me in the right direction. I am trying to use the GDSTx library in conjunction with Paul's teensy audio library, however they seem to interfere. Calling GD.begin() makes all incoming i2s data come back as all zeros. Patching it to a queue and then displaying the data yields 0.00 for every datapoint. Does anyone know why this might be?
 
Back
Top