Project Fleatiny

Introduction:

Project Fleatiny is a 100% open-source hobby-computer built around the 8051 micro controller. From a software point of view, Fleatiny consists of a sofware kernel (taking up from ~3K to 9K Program ROM area depending on installed kernel option modules) that essentially turns any fast 8051 core (though an 8052 core is recommended) with 1K  of XRAM or more into a small micro-computing platform with:

- VGA video and audio out
- PS/2 keyboard input
- SDHC card interface
- (up to) 8 I/O + 4 inputs
- Up to 64KByte SPI RAM expansion


Fleatiny differs from Flea86 in that it does not run x86 applications but is designed to run as a framework for user apps to run natively on the 8051. Currently, there exists one version of Fleatiny-8051 hardware (revision 1.2 PCB shown above) and two fleatiny kernel builds (for STC12LE5xxx and Coreriver Midas 3 series microcontrollers respectively. More to follow..). Following example builds include:

For use with the STC12LE5xxx microcontroller:
- Fleatiny kernel + simple test program - for users who want to create their own applications using Fleatiny.
- Fleatiny kernel + TinyBASIC interpreter. TinyBASIC for fleatiny is an improved port of TinyBASIC for Arduino.

For use with the coreriver Midas 3.0 series microcontroller:
- Fleatiny kernel  + Homebrew Lunar Lander Game. Note: 64KByte external SPI SRAM as well as a preloaded SD card are required to run the game.

Note: All source code and schematics for the Fleatiny 1.x platform have been released into the public domain under LGPLv3. Please refer to the Project files section found below.



Frequently Asked Questions:

What is an 8051 or 8052?

The 8051 and 8052 were both 8-bit microcontrollers that were once originally made by Intel Corporation from 1981 to 2007. 8051 has two 16-bit timers and 128Bytes IRAM, while the 8052 has three timers and 256Bytes of IRAM. Although Intel no longer produces them, dozens of silicon vendors still make (modern) 8051 models. (not to mention soft-core models that can exist inside an FPGA!).

What do I need to compile the Fleatiny sourcecode?

You will need the excellent (and free) SDCC compiler, which is command-line driven so it's best used with an Development Environment (IDE) which I recommend Notepad++ to use together with SDCC.

What are the minimum requirements for the Fleatiny kernel?
Technically, any modern (meaning greater than 10 million instructions per second or greater) 8051 micro with 1KByte of on-chip XRAM can be used to begin playing with the fleatiny kernel.

Will your code run unmodified on any fast 8051 other than STC and coreriver?
No! The following modifications might need to be made to the fleatiny kernel :
- Timer reload values for T0 and T1 are modified to suit the 8051 that you plan on using
- Special Function Register initialisation for GPIO differ between 8051 vendors - so any initialisation code will need to be altered to suit your 8051 model
- Video output routine: Because not all 8051 cores around execute code at the same rate, adjustments may need to be made to any VGA text/graphic output routines to suit your 8051 model

What exactly does the Fleatiny software kernel do and how would it help me?
Fleatiny's kernel basically acts like a hardware-oriented task-manager - It handles the following interfaces connected to the 8051 micro on the Fleatiny PCB (and provides easy access to them through c programming via SDCC):
- VGA Video text or graphics (resolution dependant on 8051 model) interface
- PS/2 Keyboard interface
- SD Card interface (transfer rate dependant on 8051 model)
- Audio out (Audio specs dependant on 8051 model)
- On-board SPI RAM expansion (if installed)

Hang on! How you generate those cool 16-color bitmapped graphics that are present in your lunar lander game using the 8051?!!
In the coreriver build of fleatiny, I have written a custom driver to talk to Microchip's new quad-rate (SQI) serial SPI RAM. When the coreriver build of fleatiny is run, it instructs the SPI RAM to enter burst mode, which allows the RAM to spit out four bits (ie 16-colors) at a rate of up to 20MHz - which is sufficient for up to 512x200 16-color VGA screen using a single 64KByte SPI RAM :-)



Project Screenshots (Click to zoom):


Closeup of the Fleatiny revision 1.2 PCB (Coreriver Midas 3.0 and 64KByte SPI RAM fitted): Fleatiny+TinyBASIC interpreter on an  STC12LE5A60S2 micro with no external RAM installed: 256x192 16-color bitmap generation using Coreriver Midas 3.0, 64KB SPI RAM and Fleatiny+demo code






YouTube Videos:

Fleatiny Lunar Lander demo on a Coreriver Midas3.0 8051 micro with 64KBytes SPI RAM installed:





Project source files and Schematics:

For use with the STC12LE5Axx or (with modifications) generic Turbo 8051 microcontroller core:
Fleatiny framework + simple user test app (.ZIP)
Fleatiny framework + TinyBASIC interpreter (.ZIP)

For use with the coreriver Midas3 microcontroller (64KByte SPI RAM and preloaded SD card required):
Fleatiny framework  + Demo Lunar Lander Game (.ZIP)

Fleatiny-8051 PCB Schematics:
Fleatiny Revision 1.2 Schematics (.PDF)



Fleatiny Development Forum:


The Fleatiny-8051 Development forums



External links:

http://sdcc.sourceforge.net                 Open-source C Compiler for the 8051 microcontroller

http://notepad-plus-plus.org                Recommended IDE front-end for use with SDCC

http://www.coreriver.com                     Home of the Midas 3.0 series 8052 microcontroller

http://www.stc-51.com                         STC12LE5Axx series 8052 microcontroller product page(s)


Copyright information:
All trademarked product names listed on this site belong to their respective trademark owners. All PCB designs, flea logo and related support documentation are the copyright of Valentin Angelovski (fleasystems).


(Page last updated 8th January 2014)