Building an HMI based on F1C200S and XBoot - Page 1
Forum section: electronics / projects

author: blueskull
author_rank: Unknown
timestamp: February 20, 2020, 10:00:03 am
content: This will be a long thread, and portal to all key posts will be linked here.Goal:To build a human to machine interface (HMI) with resistive touch for lab and light industrial applications. Resistive touch is chosen to allow the use with gloves and water/oil contamination.UI apps are created on the go using a custom static (no function calls, etc.) interpreted language.UI is updated by itself using link mechanism (i.e. if a slider moves, the progress bar moves accordingly) or serial command.All controllable widgets can send commands over serial for the external host to process.Hardware:The HMI module is built around AllWinner F1C100S/F1C200S SoC with 450MHz/600MHz ARM9 core, full LCD interface with 2D acceleration, touch screen controller and more.An external resistive touch screen is connected to the SoC via parallel RGB666/DE/VSYNC/HSYNC and CLK pins.An onboard NOR flash is used to store firmware and user resource, loaded via serial port.Only one port is exposed to the external, that is the serial port. USB is only used in debugging phase.Software:No full OS like Linux or AllWinner's Melis is used in this case due to the requirement of instant boot.XBoot is chosen for its high customizability and MIT license.To further accelerate boot time, all non essential components are stripped from XBoot.XBoot is used as a task scheduler and HAL, all UI features are implemented using Littlevgl.To strip XBoot down to bare minimum, all GUI is removed (Freetype, Cairo, PNG, JPG, SVG, XFS), LUA interpreter is removed.GUI component of XBoot was initially considered, but due to the lack of convenient C interface (it was written in C, but tailored for working with LUA) and huge size (~2.5MB), it was dumped.A custom app will be used in place of XBoot's shell and LUA interpreter. This app handles serial communication and widget control.HAL layer (down to framebuffer level) is kept so that my code will be portable in the long run.Links:F1C200S datasheet:https://linux-sunxi.org/images/1/11/Allwinner_F1C200s_Datasheet_V1.0.pdfF1C200S manual:https://linux-sunxi.org/images/2/21/Allwinner_F1C200s_User_Manual_V1.0.pdfXBoot:https://github.com/xboot/xbootDev kit I use:https://item.taobao.com/item.htm?id=587925184119Dev kit wiki (Chinese):https://wiki.widora.io/tiny200Another kit (Lichee Pi Nano):https://wiki.sipeed.com/en/lichee/nano.htmlDocumentation 1 (Chinese):http://nano.lichee.pro/Documentation 2 (Chinese):https://whycan.cn/t_449.htmlAmazing forum for F1C200S (Chinese):https://whycan.cn/f_17.htmlPortals:Booting a premade firmware:https://www.eevblog.com/forum/projects/building-an-hmi-based-on-f1c200s-and-xboot/msg2928818/#msg2928818Stripping down XBoot:https://www.eevblog.com/forum/projects/building-an-hmi-based-on-f1c200s-and-xboot/msg2928898/#msg2928898First hello world running on XBoot:https://www.eevblog.com/forum/projects/building-an-hmi-based-on-f1c200s-and-xboot/msg2928950/#msg2928950Getting XBoot to use full 64MB of RAM:https://www.eevblog.com/forum/projects/building-an-hmi-based-on-f1c200s-and-xboot/msg2929262/#msg2929262Customizing boot message:https://www.eevblog.com/forum/projects/building-an-hmi-based-on-f1c200s-and-xboot/msg2929300/#msg2929300

author: statorworks
author_rank: Newbie
timestamp: May 21, 2020, 07:00:25 pm
content: Wow just amazing, you really are into something here!These SOCs with all that RAM blow the Teensy boards out of the water, I don't know why this hasn't become as popular.I wan't to make a board for robotics around the F1c200s or even the H2 or H3; you show the right track, great work

author: ebclr
author_rank: Super Contributor
timestamp: May 22, 2020, 10:21:53 am
content: Always that I read your posts I end up wasting money...Just boughthttps://item.taobao.com/item.htm?spm=a230r.1.14.16.426739dbJjpa1b&id=587925184119&ns=1&abbucket=15#detail

author: ebclr
author_rank: Super Contributor
timestamp: May 22, 2020, 10:54:57 am
content: blueskullYou are in China now right? I guess you left the USAAre you in the Shenzhen area?

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: May 22, 2020, 11:52:43 am
content: Blueskull you are great! Big thumbs up, which one does support -40 to 85C? also how to write our own drivers, like I2C capacitive touch and a different lcd controller?Hi3516EV200 seems interesting, any link to data sheet? I only found a 7 page brief one, I want to know if I can get the data to design a PCB for this thing? also what's the pinout and working temp?

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: May 22, 2020, 12:08:37 pm
content: ThanksHi3516EV200 seems interesting, any link to data sheet? I only found a 7 page brief one, I want to know if I can get the data to design a PCB for this thing? also what's the pinout and working temp?

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: May 22, 2020, 12:26:48 pm
content: QuoteWould you please link to that repoI can use the chinese datasheet.Also do you have any video on your F1C200S board, regarding the boot time and some HMI actions.

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: May 23, 2020, 06:13:13 am
content: Thanks Blueskull, please take some videos from your board and share

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: May 23, 2020, 06:53:29 am
content: QuoteI meant the f1c200s boot videoThen we wait for your great news,regarding the rest

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: May 23, 2020, 09:54:14 am
content: Thanks for sharing,I wonder how you build and compile the code?Is there any tool for creating the UI (I mean is there any WYSIWYG editor)? also what's your debugger probe? can the code be debugged? How you flash it to the board?

author: coromonadalix
author_rank: Super Contributor
timestamp: May 23, 2020, 10:45:03 am
content: Quote from: ali_asadzadeh on May 23, 2020, 09:54:14 amSame here im a total noob in programmation, i use kinda old Dwin m600 and k600 and k600+ hmi panels at my job, and i must say even with a gui tool they are not easy to program and understand until you end up with the TL5 series, the software matured a lot more but ... all the good stuff is in Chineese arghThe Stone hmi software is betterNever tried Nextion displaysI hope there will be some gui software and a good startup guide, good points from @ali_asadzadeh

author: ebclr
author_rank: Super Contributor
timestamp: May 23, 2020, 09:51:46 pm
content: https://www.segger.com/products/user-interface/emwin/

author: statorworks
author_rank: Newbie
timestamp: May 23, 2020, 10:36:17 pm
content: Quote from: blueskull on May 22, 2020, 02:23:14 amThanks for your advice Blueskull, I come from the 48Mhz 256K of RAM world, so all of this seems fantastic.This kind of RAM allows to hold audio files and video frames, while still having instant-ON capability. All this for just a few bucks is a perfect improvement to run amusement and vending machines, and even half decent robots.

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: May 24, 2020, 06:45:50 am
content: QuoteThanks,so we use GCC, what about Debugging? do you use GBD? or something else? what about JTAG probe and flashing?

author: insert
author_rank: Newbie
timestamp: June 08, 2020, 12:41:12 am
content: Hi All, I bought TINY200 board 128mb NAND:https://www.yoycart.com/Product/587925184119/1. Can i use the I2S output in slave mode with 96K S/R + MPD?2. Where need will change a config for I2S + 24b + pinout parameter?3. Can i use Phyton 3 inside?

author: insert
author_rank: Newbie
timestamp: June 08, 2020, 12:45:25 am
content: my idea and project

author: statorworks
author_rank: Newbie
timestamp: June 16, 2020, 11:01:21 pm
content: Quote from: ebclr on May 22, 2020, 10:21:53 amMine is on the waycan't wait to try blueskull's Xboot example.

author: statorworks
author_rank: Newbie
timestamp: August 03, 2020, 11:25:54 pm
content: Look at this beauty

author: soFPG
author_rank: Frequent Contributor
timestamp: August 05, 2020, 11:53:41 am
content: Man, designing a board like this and then get it to work with your own software, has to be a unique feeling

author: Jarrod
author_rank: Contributor
timestamp: April 27, 2021, 03:46:04 am
content: Curious if you have used (or were involved with) the zkwse HMI boards. They look very similar to what you are working with in this thread. Specifically the Z6s platform here:https://www.programmersought.com/article/83082469829/I've hacked on those a little bit. They seem to run an embedded Android Linux of some type, out of a RAMdisk. Pretty neat devices. Would like to learn more but I don't speak or read Chinese and most of their site and docs are in Chinese.They call their software platform "FlyThings OS" and there is an SDK for building the UI elements that the HMI boots into.

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: April 27, 2021, 06:16:20 am
content: QuoteThe awtk looks promising, do you have or suggest any tutorial on using it with the F1C200S? If I could find the tutorials or the documentation on how to design and debug on F1C200S with awtk, I would definitely switch all of my GUI task to this puppy.

author: technix
author_rank: Super Contributor
timestamp: April 28, 2021, 03:23:32 am
content: This project is giving me ideas. I also have that F1C200s chip in stock (bare chip though) and I have a spare 24-bit capacitive touch screen. Maybe I can do something with that? (Although I will want to use Linux and base my project on stock Debian armel, for the UI I want to reimplement Apple iOS SwiftUI framework.)

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: April 28, 2021, 06:01:54 am
content: QuoteIf you can make a tutorial for your progress and make it open source, since your are an active Chinese user in here, it would help lot's of folks in here to use that thing

author: Jarrod
author_rank: Contributor
timestamp: April 28, 2021, 06:26:56 pm
content: Quote from: blueskull on April 27, 2021, 04:00:32 amThanks I will check out awtk.I've been watching lvgl for awhile. I noticed that very recently they have put out their own "official" GUI builder called Edgeline. Not fully featured yet but looks like a good start. Edit: Uh, Edgeline looks suspiciously similar to the AWTK Designer!!

author: sivate
author_rank: Newbie
timestamp: November 15, 2021, 10:54:20 am
content: I got my from Banggood , linkhttps://www.banggood.com/Lctech-Pi-F1C200S-ARM-926EJS-900MHZ-USB-Linux-Open-Source-Maker-Development-Board-USB-UART-TYPE-C-Interface-p-1893441.html?rmmds=myorder&cur_warehouse=CNI also requested a schematic from the manufacture. They responded the following day, you should be able to download herehttps://www.mediafire.com/file/n0nq21a0ye9pz50/LC-CherryPi-F1C200S_EN.zip/file

author: zaboy
author_rank: Newbie
timestamp: December 13, 2021, 02:29:05 pm
content: Hello!What screens can be connected to this device?