Tuesday, December 17, 2019

AN8008 Current Measurement Error

The most annoying problem with ANENG AN8008 multimeter is the poor accuracy of high current measurements.  Significant error is seen for the measurements above 1A.  The error drifts high quickly at higher current.

It is apparent looking that the circuit board the current sense circuitry is laid out incorrectly.  The voltage measurement across the current sensing shunt includes a section of PCB trace.     The copper trace width is about 150mil, and the length is about 700mil; so the copper trace could be as much as 2-3 mOhms.  The shunt wire is labelled 0.01 Ohm.  Assume the shunt wire is Manganin with temp co 1.5e-5 /C  (vs Copper 3.9e-3 /C).  The size is about 14 AWG, so the resistance is about 2 mOhms/cm; the length appears to be 4-5cm, so 8-10 mOhms is reasonable.  We could bypass this section, but the meter may be calibrated this way. (The EEPROM may be updated for new calibration.)


The section of the PCB is already different from the earlier version based on other teardown pictures online.  The copper trace is exposed and vias are added; the trace is coated with solder.  It appears that attempts are made to improve thermal dissipation.

When I actually measured the voltage drop across the shunt wire and the copper trace, I did not see the drift that I expected.  The shunt wire has about 8 mOhms, and the trace less than 1.5 mOhms.  When 7A is applied to the meter, the area near the fuse gets pretty hot.

The burden on the current measurement is also high because of the fuse and traces.  I measured as much as 180 mOhms at the terminals.

Wednesday, December 11, 2019

$20 Multimeter

I wrote about $4 multimeter (also see here), which is fine for crude measurements.  For $20, we can have a meter with the following enhancements: 10Meg-Ohm input impedance, auto range, auto power off,  higher resolution (9999 vs 1999 counts or 4 digits vs 3.5 digits), capacitance measurement, true RMS for AC voltage and current, frequency and duty measurement, continuity beep.  Those are the features of ANENG AN8008, which has received favorable reviews online.  There are even modifications (adding capacitors to the reference and supply) to improve its performance.  The meter also comes with an extra set of probes with changeable tips.

The voltage measurements are generally very good.  The current measurements are poor at high current range.  The measurement drifts a lot.  For example, at 7A current input, the initial measurement is 7.03A (well within spec), but very quickly it drifts 7.15A and keeps climbing.  For current 1A or below, the measurements seem stable.  (It appears that the poor layout of the current sensing shunt resistor contributes to the poor performance.)  The $4 meter actual does better: measuring 7.05A and steady.  The shunt resistance in the uA range is 100 Ohms.  The resistance measurement excitation voltage appears to be 1V.  The diode voltage measurement goes up to 3V; the open circuit voltage is 3.3V .  It has a square wave output (+/-1.37V) at selected frequencies, which I don't know a good use for.  The current draw in the voltage mode is about 1.5mA from two AAA batteries; that gives about 600 hrs operating time.

The specifications are fairly conservative and easily met except for the high current measurements.

Is it worth $20?  Maybe.  It is not for professional use.  The poor high current measurement accuracy is a disappointment.  There is no 10mA and 100mA current range.  The input protection is pretty minimal: 10A/250V and 200mA/250V fuses for current protection, a bidirectional TVS diode and a 1.5K-Ohm PTC thermistor.  The 600V CAT III and 1000V CAT II ratings should not be relied on.

The Fluke 107 has comparable features and specs (the only enhanced feature is 40M-Ohm range); the cost is $80.   The extra cost buys guaranteed spec and verified 600V CAT III rating.

Saturday, November 16, 2019

TS100 mini soldering iron

The TS100 soldering iron is an open source hardware by Miniware, which releases the schematics and software.  It has a decent construction; it comes with one tip but no power adapter.  The input voltage range is 12 to 24V, for power of 17W to 65W.  The interesting feature is that custom software can be loaded.  Ralim/ts100 on Github is an alternate firmware with more features.

The processor is STM32F103T8U6, 72MHz M3 core with 64K Flash and 20K SRAM, 2 12-b ADC.  It includes a 3-axis digital accelerometer for motion and orientation detection, 96x16 OLED display, a temperature sensor, TMP36 and two push buttons.  It has a barrel connector (5.5mm x 2.5mm) for power and a micro USB connector for firmware update.  The tip contains a thermocouple (reported to be type K); TMP36 provides the cold junction compensation.  The circuit design seems decent; it does not aim for the lowest cost possible.  For the price of about $50, it should not need to skimp on the circuitry.  I would estimate the bill of material costs do not exceed $20.  With 12V input, it takes about 30s to heat up to 300C; with 19V input (40W) from a laptop power adapter, it takes about 12s.

With the right firmware, it does make a nice soldering station.  The tip temperature is settable up to 450C.  The iron goes to sleep on a timer and wakes up on motion.   It can be made portable with a LiPo pack; the cutoff voltage is settable based on number of cells.  Because of the small size, a stand can be made out of a paper clip.


Monday, October 14, 2019

Habor Freight $4 Multimeter

I was generally pleased with Cen Tech multimeter from Habor Freight.  Similar looking multimeters (Item 63604) sold at Habor Freight now do not carry Cen Tech brand name; it can still be purchased for $3.99.  Upon close look the spec has changed a little bit,  The highest voltage only goes up to 250V DC or AC (vs 1000V), and the max current 5A (vs 10A).   It appears that the meter simply changed 1000V DC and 750V AC range to 250V range probably because of the fear of liability.  Opening it up, I can see the effort in cost reduction.  The Chip-on-Board I/C may be the same, but there are fewer discrete components and the PCB is smaller.   It does not have the trimmer. The fuse is soldered on; previously there was a fuse holder.  The probe is still decent; the spec says 18 gauge.  Even the critics now concede that the cheapest multimeters can be reasonably accurate; their main complaint is protections.   The CAT II rating cannot be taken serious; the CAT II marking on the probes are now removed.  One-mega-Ohm input impedance is also too much loading for some measurements.
The official spec is
  • 0-200mA: 1.2%+/-2d
  • 5A: 3%+/-5d
  • 200mV: 0.5%+/-1d
  • 2000mV-200V: 1%+/-2d
  • 250V: 1%+/-2d
  • AC 200/250V (45-450Hz): 1.2%+/-2d
  • No accuracy given for resistance
No spec for resistance measurements.

We'll check the accuracy against a Fluke 87 (spec voltage 0.05%, current 0.2%, resistance 0.2-0.6%).  The accuracy seems to have degraded somewhat, more so with the resistance measurements.  If you accept 1% error; it is OK for casual use.

Voltage
8.88.80.00%
48.949.10.41%
98.598.80.30%
149149.50.34%
198.5198.50.00%
4994990.00%
9999990.00%
19991992-0.35%
2.99930.03%
3.9994.010.28%
55.010.20%
99.020.22%
1212.020.17%
1515.020.13%
2019.97-0.15%
2525.20.80%
29.9930.20.70%
4040.30.75%
5050.40.80%
Current
17.817.7-0.56%
5454.10.19%
99.7100.10.40%
154154.50.32%
198.5198.90.20%
147014800.68%
195019690.97%
5.075.06-0.20%
10.2110.19-0.20%
15.3415.29-0.33%
19.619.52-0.41%
50500.00%
99.799.70.00%
150.8150.90.07%
197.3197.2-0.05%
0.50.50.00%
10.99-1.00%
21.99-0.50%
2.9992.99-0.30%
3.9993.99-0.23%
54.99-0.20%
660.00%
770.00%
* I took the current up to 7A; it is still working. I wonder if the lower spec is just to be on the conservative side.
 
Resistance
10.911.11.83%
50.750.70.00%
100.5100.3-0.20%
150.3149.6-0.47%
190.2189-0.63%
499494-1.00%
998987-1.10%
14961479-1.14%
18971872-1.32%
4.984.95-0.60%
9.999.92-0.70%
14.9814.85-0.87%
18.9818.79-1.00%
49.849.7-0.20%
99.299.1-0.10%
149148.7-0.20%
189188-0.53%
498493-1.00%
997989-0.80%
14941480-0.94%
18951872-1.21%

Monday, August 12, 2019

Performance Comparison of a few Computer Systems

Small computer modules like the Tinker Board now easily outperform old laptops while the cost ratio is 1:20.

Why is that Tinker Board runs so much faster?  Compaq Presario 2100 laptop (2003) has an Intel Celeron processor, from the Wikipedia,
Model NumbersSpec NumberFrequencyL2 CacheFSBMultVoltageTDPSocketRelease DatePart Number(s)
Mobile Celeron 2.0SL6QH (C1)
SL6VJ (D1)
2000 MHz256 KB400 MT/s20×1.3 V32 WPPGA 47814 January 2003RH80532NC041256
It has 1GB RAM (max possible).  The graphic processor is ATI Radeon.  The Tinker Board has 2GB dual channel LPDDR3 RAM and a Rockchip RK3288 processor (Quad-core ARM Cortex-A17, up to 1.8 GHz and Quad-core ARM Mali-T760 MP4 GPU clocked at 600 MHz, 1MB L2 unified cache ).  The board runs on less than 5W.  Note that while everything else has improved, the processor speed has not.

The Tinker Board also compares favorably against other similar boards.  It is reported that the Tinker Board is almost twice the performance as Raspberry Pi 3.  When compiling KiCad, the Tinker Board takes about 4 hours, vs 8 hours on OrangePi Prime.  This seems consistent with some benchmarks that OPiP has a little lower performance than RPi 3.  Perhaps this justifies the twice of the cost.  Furthermore, the board quality is better.  However, while OrangePi releases the full schematics, Asus only releases the partial schematics for the Tinker Board.  Comparing RK3288 vs H5, CPU speed 1.8GHz vs 1.37GHz, about 30% faster.  So that alone does not account for the difference.  RK3288 is 32-bit architecture ARMv7-A and H5 is 64-bit ARMv8-A  (Cortex-A53 Quad-Core, 512KB L2, Mali450 MP4 GPU).  Cortex-A17 features out-of-order execution and deeper pipeline than Cortex-A53.

On Core2 Duo T7200, compiling KiCad takes about 2.5 hours with a solid state drive with 3Gb/s SATA connection.
Model
number
sSpec
number
Cores
Frequency
FSB
TDP
Release date
Part
number(s)
SL9SF (B2)
2
2 GHz
4 MiB
667 MT/s
12×
0.95–1.175 V
34 W
Socket M
August 2006
LF80537GF0414M

All these have been single core performance. If we use all available cores, Core2 Duo still outperforms the Tinker Board, but the difference is smaller, about 30%.  Multicore improves 2.2 times for the Tinker Board and 1.6 times for Core2 Duo.  On Atomic Pi,
Model
number
sSpec
number
Cores
Frequency
Burst
GPU
model
GPU
frequency
TDP
SDP
Release date
Part
number(s)
SR2KT (D1)
4
1.44 GHz
1.92 GHz
2 MiB
HD Graphics (12 EUs)
200-500 MHz
1 × DDR3L-1600
2.17 W
2 W
UTFCBGA592
February 2016
FJ8066401836620
running 4 cores (2M L2) at 1.68GHz, the compilation takes 2.3 hours, longer than the Tinker Board, which is a little surprising.  Core2 Duo T7200 and Atom x5-Z8350 receive similar CPU Mark, but single-thread rating is much lower for x5-Z8350.The system has the advantage of having a faster disk.  A further comparison, compiling KiCad on i9-8950HK (2.9GHz/4.8GHz turbo 12MB L3) Linux Virtualbox takes only about 45 minutes.


Friday, August 9, 2019

Product Failure II

Continued from product failure.

Power Adapter


5V 2.5A AC power adapter failed.  It was still able to provide about 0.5A, but larger load caused it to turn off.  The output capacitor showed sign of heat damage.  It was a 16V 1000uF by TEAPO, but measured to have only about 5uF capacitance.  After it is replaced, the adapter worked fine with 2.5V load.  It is unclear just what caused the capacitor to overheat.

ATOTO A6 Pro

As I add to my old car more electronics, GPS, backup camera, dash cam, Bluetooth, etc, I figure all that can be handled by the Android auto head unit.  I picked up ATOTO A6 Pro for about $220.  It has the following features:

  • Model Name: A6Y2721PRB (2GB/32GB);
  • SoC Chip: MTK 8127A Soc-based Quad-core 1.5Ghz Cortex-A7 (512K L2) CPU with ARM Mali-450 MP4  600MHz GPU.
  • Pre-Amplifier: Built-in Max 4*49W BTL Amplifier with RMS 4*29W (Vcc=14.4v,THD=10%); It can drive both 4Ω & 2Ω door speakers! 
  • Preset 9-band EQ with 12 section adjustable frequency;
  • Bluetooth: Dual Bluetooth (BT1 5.0 & BT2 4.0). Bluetooth1 is Qualcomm Bluetooth 5.0 w/ aptX feature, and it supports HFP/HSP/A2DP/AVRCP/PBAP;
  • Radio tuner: Built-in FM/AM Radio Tuner w/ RDS (station name will be displayed if available);
  • Display: Full HD 7" 1024*600 5-Touch Capacitive Touchscreen with 600cd/m2 latest 178° full-viewing angle IPS display screen;
  • GPS/Navigation: Builtin GPS Receiver module with external GPS antenna
  • WiFi/Microphone: Builtin microphone & Ultra external Wi-Fi antenna (Silver plated copper wire) and external microphone
  • Input/output
    • Reversing camera input
    • Front camera input
    • AUX Audio/Video input
    • 4-CH RCA Audio Out (4V) for connecting to amplifiers
    • Separate Sub-woof Out (4V) (Manual /Automatic mode available)
    • Steering wheel control input
    • One Micro SD slot
    • 3 USB interfaces, one of which is a quick charge (2A) port

The harness has the following connections


This model has physical buttons, no gesture control.  Having physical buttons is useful because the it is harder to operate the touchscreen while driving.  But in any case, a rotary switch would be better for such things as changing volume. 

When ignition is off, it draws about 18mA.  The standard battery is 45Ahr.  So it is about 1% a day.   It takes 2 seconds to be on after the ignition is on.  When idle, it draws about 700mA.  When in standby, it draws about 330mA.

Installation is not too difficult after watching a number of online videos.

Car Startup Battery Energy and Recharge

One of my cars has been used for very short trips lately.  The question is whether the car battery can maintain full charge.  The starter is rated 1.7KW, but that could be continuous running power.  The start-up power could be higher.  Let's assume 500A for 3 seconds, that's about 0.4Ah.    The alternator rated output is 100A; but the actual charging current is much lower, no more than 1/4C, could be as low as 1/10C.  The battery rated reserve capacity is 100min (25A) , so the capacity is about 42Ah; then the charging current could be only 4A.  That means it should recover the loss energy in about 6min.  So if the trip is more than 6min, the battery should maintain the full charge.  This estimation is conservative.

Component Failures

Electronic components can fail in many ways. Here I try to document some failures that I've encountered.

Resistors usually fail open. I had a small gate resistor failed open, but I'm not sure if it failed because of a surge of current or a spike in voltage. I had an SMT 0805 resistor rated for 100V failed when 200V was applied to it. It failed slowly; I knew that because it was connected to an LED, and the LED faded and flicked a little before completely went out.  A current surge on a resistor may just change its resistance.  I had one current sense resistor increased its resistance by a factor 2 and another changed a few percent after current surge.  Another 50-milliOhm axial current sensing resistance increased resistance to 250milliOhms.

An aluminum can capacitor blew itself apart completely after it was applied with reverse polarity voltage. A 1000uF 16V aluminum electrolytic capacitor at the output of 5V 2.5A AC adapter appeared overheated and failed with reduced capacitance.   A ceramic capacitor fails short.  It happened on a cPCI power backplane, which had a 10uF ceramic cap on 12V and became a 4-Ohm short.

A diode in a PC power supply failed short, tripped the fuse.

A white LED was overstressed with larger than normal current for a long time.  It did not fail completely; but it flickered.  It ran fine with reduced current.

Power MOSFETs can fail short. Usually a check for the resistances between terminals if the MOSFET is alive; all should be high impedance except that the source-drain body diode may give a little lower reading (depending on the meter used) if measured in the forward polarity of the diode. A check of the source-drain body diode voltage is also a good test; it should be about 0.5V (also depending on the meter used) in the forward direction and no voltage in the other direction. I had a power MOSFET in a push-pull converter failed with a source-drain hard short and gate-source short with 420 Ohms resistance. It was probably killed with a surge of current possibly due to transformer magnetic saturation. Another one died with the body diode still intact. But there was finite resistance between the gate and drain; when it was powered, it simply shorted the drain and source. An examination of its TO-220 casing showed blisters on the metal tab.

Opamps can fail when the output is shorted. Some opamps are more resistant to output short. The output stage is destroyed when the output is shorted and excessive current flows. I had a gate driver failed when the output was shorted to the ground. The damaged IC had the supply pins shorted as well as the output pin shorted to the supply pins.

Inductors and transformers are not easily destroyed, but they can wreak havoc on the components connected to them.  Enormous voltages can be readily generated when they are switched.

Sunday, August 4, 2019

Install TinyCore Linux without CD

Even some of light weight Linux distribution, such as Lubuntu is too much for old computers, which I think still have usable life left.   Recently I tried tinycore and was impressed by it.  Here is how to install it on a computer with a version of Linux already installed.  And we install it without using a CD drive.

TinyCore Linux is very flexible.  We can take the iso image and simply unpack it to /tce directory. We add a Grub entry to load the TinyCore image,
linux /tce/boot/vmlinuz
initrd /tce/boot/core.gz
This setup is by far the easiest and the most responsive Linux I've used.   The file /tce/onboot.lst specifies the list of packages that are loaded on boot.  We can edit it for customization.  Most applications should probably be installed as ondemand for fast boot.  I install chromium browser as ondemand.  It takes a few extra seconds to load, but the browser is usable.  The home directory is saved on exit and restored on boot.  However, if it gets too large, it can have a persistent storage location on disk.


Monday, July 8, 2019

Creative CT6840 Webcam on Tinker Board

The Creative CT6840 webcam is about 20 years old.  Windows 10 does not recognize it; but Linux (4.4.0 x86_64 Ubuntu 16.04) does load the driver and runs it fine,
[28163.448127] usb 1-2: new full-speed USB device number 3 using xhci_hcd
[28163.765592] usb 1-2: New USB device found, idVendor=05a9, idProduct=0511
[28163.765595] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[28164.813944] media: Linux media interface: v0.10
[28164.821933] Linux video capture interface: v2.00
[28164.826858] gspca_main: v2.14.0 registered
[28164.831722] gspca_main: ov519-2.14.0 probing 05a9:0511
[28165.040996] input: ov519 as /devices/pci0000:00/0000:00:0c.0/usb1/1-2/input/input8
[28165.041553] usbcore: registered new interface driver ov519
So does Armbian on OrangePi.  This is the great advantage of using an open-source OS.  VLC, cheese, or guvcview can be used to view the images.

This webcam uses OV511 camera-to-USB bridge chip.  OmniVision's OV511 is designed to work with the company's single-chip image sensors, the OV7610 Series and the OV7110 Series.  OV7610 is 1/3 in VGA color image sensor, with 8.4 x 8.4 um^2 pixel size, capable of 30Hz progressive at 640x480.  The quality of the image is not very good.  We can appreciate the great advance in the imaging sensor technology during the last 20 years.

However, there is no driver for it on the TinkerOS distribution.  The driver source code is in TinkerBoard debian_kernel source on Github.  We will try to compile it ourselves.  We downloaded the kernel source 4.4.103+ for TinkerOS Debian V2.0.7.  The driver source code is drivers/media/usb/gspca/ov519.c . We like to compile the driver to a kernel module without having to build the entire OS.  We copy the kernel config file from /lib/modules and Module.symvers from /usr/src/linux-headers to the source directory, then
make kernelversion
to confirm the version number.
make menuconfig 
to enable the ov51x module,
make ARCH=arm drivers/media/usb/gspca/ov519.ko, 
but that only makes ov519.o.
make ARCH=arm modules SUBDIRS=drivers/media/usb/gspca/ 
makes ov519.ko.
make ARCH=arm modules_install SUBDIRS=drivers/media/usb/gspca/ 
installs the kernel module in  /lib/modules/4.4.103/extra/. Run
depmod
modprobe gspca_ov519.ko . 
[   31.583420] usb 1-1.2: new full-speed USB device number 7 using dwc2
[   31.684866] usb 1-1.2: New USB device found, idVendor=05a9, idProduct=0511
[   31.684887] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[   31.732956] gspca_main: v2.14.0 registered
[   31.741516] gspca_main: ov519-2.14.0 probing 05a9:0511
[   31.938123] input: ov519 as /devices/platform/ff540000.usb/usb1/1-1/1-1.2/input/input7
[   31.939754] usbcore: registered new interface driver ov519
But the image does not come out right; it appears to be some kind of format error.

Try Armbian kernel.  It works; guvcview shows a frame rate of 7.5 fps.
Linux tinkerboard 4.19.33-rockchip #5.77 SMP PREEMPT Wed Apr 3 17:06:29 CEST 2019 armv7l armv7l armv7l GNU/Linux
[   84.650548] usb 1-1.2: new full-speed USB device number 7 using dwc2
[   84.751749] usb 1-1.2: New USB device found, idVendor=05a9, idProduct=0511, bcdDevice= 1.00
[   84.751762] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[   84.805728] gspca_main: v2.14.0 registered
[   84.809936] gspca_main: ov519-2.14.0 probing 05a9:0511
[   85.040060] input: ov519 as /devices/platform/ff540000.usb/usb1/1-1/1-1.2/input/input7
[   85.040954] usbcore: registered new interface driver ov519
Probing does not always succeed for some reason.

Friday, June 21, 2019

Garmin Lidar Lite V3 on OrangePi PC

Connect Garmin Lidar Lite V3 to the OrangePi PC 40-pin header, either on I2C-0,

 3  
twi0_sda 
blue

 4
+5V        
red
 5 
twi0_sck
green

 6
gnd
black

or I2C-1,

27 
twi1_sda 
blue

28
twi1_sck 
green

Run i2c detection on bus 0:  i2cdetect 0; and the device is detected on 0x62, the default address.

Start by trying a Python version that uses smbus (or smbus2).  But all registers read 0.

Try Garmin's LIDARLite_RaspberryPi_Library.  Note that the library hard coded the i2c bus to i2c-1.  The code compiles and runs fine without modification.  Add code to do a register dump,
0x00
0x05
ACQ_COMMAND
0x01
0x26
STATUS
0x02
0x80
SIG_COUNT_VAL
0x04
0x08
ACQ_CONFIG_REG
0x09
0x67
VELOCITY
0x0c
0xe8
PEAK_CORR
0x0d
0x3d
NOISE_PEAK
0x0e
0x9a
SIGNAL_STRENGTH
0x0f
0x00
FULL_DELAY_HIGH
0x10
0x9e
FULL_DELAY_LOW
0x11
0x01
OUTER_LOOP_COUNT
0x12
0x05
REF_COUNT_VAL
0x14
0x00
LAST_DELAY_HIGH
0x15
0x05
LAST_DELAY_LOW
0x16
0x34
UNIT_ID_HIGH
0x17
0x30
UNIT_ID_LOW
0x18
0x00
I2C_ID_HIGH
0x19
0x00
I2C_ID_LOW
0x1a
0x00
I2C_SEC_ADDR
0x1c
0x00
THRESHOLD_BYPASS
0x1e
0x00
I2C_CONFIG
0x40
0x00
COMMAND
0x45
0x14
MEASURE_DELAY
0x4c
0x43
PEAK_BCK
0x52
0x00
CORR_DATA
0x53
0x00
CORR_DATA_SIGN
0x5d
0x00
ACQ_SETTINGS
0x65
0x00
POWER_CONTROL
Add 0.5 sec delay.  It prints distance at about 1 Hz.  The max update rate appears to be 300Hz , possibly limited by 100KHz I2C speed.  Occasionally, there are errors and the kernel prints error message,
sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x48, dev addr: 0x62)
 This is using armbian 5.38 with linux image sun8i 3.4.113.

Try to display the distance on the 1.8" LCD.   The simplest way is just to redirect the fb console.  Use con2fbmap to map a tty console to the fb.  And to set to a large font,
sudo setfont -C /dev/tty1 /usr/share/consolefonts/Lat15-TerminusBold14.psf.gz 
 For something fancier, need a graphics library.  The SDL library can be used.  Python Pygame can be set to use SDL to test it out.  Pygame works fine on the LCD.  It is very desirable to stay with Python.  So SWIG is used to add python interface to the Garmin library.  With that, the LCD displays the distance nicely.  However, there are some unresolved issues with console/framebuffer management.  The other option is just to write to the framebuffer directly as images.  Note that the format is hardware dependent; for this particular LCD, the format is packed 16-bit RGB (5/6/5).