Go Down

Topic: FT801 Image Streaks on an Arduino Clone (Read 65 times) previous topic - next topic

leydar

Aug 12, 2015, 01:27 pm Last Edit: Aug 14, 2015, 03:41 pm by leydar Reason: Reducing attachment size.
I'm writing an application using the FT801 graphics/audio chip on an Arduino Yun clone and Intel Edison processor. I'm using the EVE IDE to import a background image. It looks great in the emulator itself but when I export it to Arduino 1.6.5 and program the device, horizontal discolouration occurs in streaks from the overlayed widgets and primitives.

I have read through the documentation and tried the other image encoding options. If it was in the conversion then the image in the EVE emulator would also have exhibited the same streaks which it does not. I've tried saving and restoring the context and clearing the buffers but this didn't have any effect. Is there anything I can do with masking/stencils to prevent this? I realise this is more of an FDTI than Arduino problem but I'm hoping someone here may have seen something similar. The manufacturer of the chip have suggested that it might be a signal integrity issue.

The streaks occur along the same pixel rows as the text and the overlayed rectangle primitive. To be honest I don't know where to look from here. Might the TFT screen itself cause this? I'm looking more toward this being an issue with the FT801 libraries but I'm sure it would have been caught as a bug and fixed by now.

Code: [Select]
#include <EEPROM.h>
#include <SPI.h>
#include <Wire.h>
#include <FT_VM801P43_50.h>

#define RAM_HUB_BG 0

static PROGMEM prog_uchar hub_bg[] = {
 #include "hub_bg.h"
};

FT801IMPL_SPI FTImpl(FT_CS_PIN,FT_PDN_PIN,FT_INT_PIN);
void setup()
{
 FTImpl.Init(FT_DISPLAY_RESOLUTION);
 FTImpl.SetDisplayEnablePin(FT_DISPENABLE_PIN);
 FTImpl.SetAudioEnablePin(FT_AUDIOENABLE_PIN);
 FTImpl.DisplayOn();
 FTImpl.AudioOn();

 FTImpl.DLStart();
 FTImpl.Cmd_Inflate(RAM_HUB_BG);
 FTImpl.WriteCmdfromflash(hub_bg, sizeof(hub_bg));
 FTImpl.Finish();
 FTImpl.DLStart();
 FTImpl.BitmapHandle(0);
 FTImpl.BitmapSource(0);
 FTImpl.BitmapLayout(FT_ARGB1555, 960, 272);
 FTImpl.BitmapSize(FT_NEAREST,FT_BORDER,FT_BORDER, 480, 272);
 FTImpl.DLEnd();
 FTImpl.Finish();
}

void loop()
{
 FTImpl.DLStart();
 FTImpl.Begin(FT_BITMAPS);
 FTImpl.Vertex2ii(0, 0, 0, 0);
 FTImpl.End();
 FTImpl.ColorRGB(255, 255, 255);
 FTImpl.ColorA(158);
 FTImpl.PointSize(1500);
 FTImpl.Begin(FT_POINTS);
 FTImpl.End();
 FTImpl.ColorRGB(0, 0, 0);
 FTImpl.Cmd_Text(192, 72, 28, 0, "Brightness");
 FTImpl.ColorRGB(180, 160, 106);
 FTImpl.Cmd_Slider(190, 164, 100, 8,FT_OPT_FLAT, 36, 100);
 FTImpl.Begin(0);
 FTImpl.Vertex2ii(0, 136, 0, 0);
 FTImpl.End();
 FTImpl.ColorRGB(180, 160, 106);
 FTImpl.LineWidth(80);
 FTImpl.Begin(FT_RECTS);
 FTImpl.Vertex2f(3340, 1816);
 FTImpl.Vertex2f(4344, 2316);
 FTImpl.End();
 FTImpl.Display();
 FTImpl.DLEnd();
 FTImpl.Finish();
}



Stephen

TFTLCDCyg

#1
Aug 13, 2015, 02:16 am Last Edit: Aug 13, 2015, 02:21 am by TFTLCDCyg
Try to load images directly from the microSD card of your EVE-module.

This is my personal App to load single jpg images from microSD card.

1) Copy all images on a microSD card (*.jpg 480x272 and 320x194)
2) Comment all lines with this text:      //FT800 core
3) Uncomment all lines with this text:   //FT801 core



PD: my hardware ring is: FT843 (4.3", FT800 core)+ADAM on arduino Due, IDE 1.6.5 R2


leydar

Thank you for the reply and the reassuring images :) Of course in isolation all I could do was look for a software solution to what turned out to be a hardware issue. I managed to get a loan of another prototype from one of the hardware engineers and traced the problem back to the ribbon socket on the board. I now have an operational and reasonably good looking display. Unfortunately one of the first things that was removed from the standard board was the SD card reader :/

Stephen

Go Up