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.
#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

