Introducing the T-COMPUTER platform...

Jean-Marc

Well-known member
The T-COMPUTER is an attempt to create a complete micro computer around the Teensy MCU.

It is based on the Teensy 4.1 (my favorite MCU so far!)
See the details of the project below.

https://github.com/Jean-MarcHarvengt/T-COMPUTER/blob/main/README.md


It is fully open source and it is a DIY project so you are free to build it yourself for non commercial use of course

It is using the MCUME project for the SW part, see below latest updates of the MCUME as Super NES emulator running full speed on the platform

https://youtu.be/K1JdkA93pqs
 
Hi Marc,

I want to build your T-Computer with MCUME to present it as little "Event" in our Retro Area for the GamesCom'25 which is running right now in Cologne.

Couple days ago the Folder MCUME was still bounded and finished to deploy, I believe I'd copied it into
"C:\Users\UserX\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\libraries". But today I was forced to "clean" the whole Teensy 4.1 Package and wiped it (due Problems with SD, SdFat and MTP_Teensy). After Re-Installing MCUME it won't appear anymore in the Sample Folder. No matter what I try. Not in the Folder mentioned above nor in my custom Folder under C:\Arduino\libraries. Everything is up-to-date but I get white hairs due nothing want's to run. What do I wrong?

@PaulStoffregen , @KurtE , @defragster , anybody?
I really need urgent help and would be much apprechiated for your kind duties.

I believe it would become a big Highlight at the Retro Area
 
The p#1 github link is still valid - and it has a BIN folder of HEX files ready to load onto the T_4.1.

Not sure if there were sources before - but they are not there now.

A download of the zip file and extracting would give the files to upload.
 
Many thanks bro. The Repository is still there and what I've realized is, that Doom is working with the right setup, even with the HEX, (except Audio (PT8211)) but all the other not. It's like "Jean-Mark" removed some Folders or Files on purpose, so that an compile is no longer possible and you must use the HEX Files instead. Anyway it looks like that. Descriptions like pinout.txt for the T4.1 isn't in that folder where the Teensy41Files and Subfolders lies and a common Description like the one for the T4 isn't useable in common because it's not everything declared for the T41. Then, I tried to setup Teensyuae (T4.1) and used the SPI1 Block with ILI9341 (not yet VGA ready). Wireing as shown in the "iopins.h", TFT_RST settled to 255 (3.3V). It works with DOOM fawless but anyone else ain't and I don'T know - WHY althought it'S the same setup - and the screen is just a whiteout. I checked the cables (use for Proto a large Breadboard), everything is okay. I saw, that you had answered several times to the MCUME Topics and would like asking you, is you familiar with the Audio Problem? As I mentioned before, wireing is okay all around. That's why I assume the error is anywhere within the code but not obvious to see.

I've setting it up to this:

platform_config.h
C++:
#ifndef _PLATFORM_CONFIG_H_
#define _PLATFORM_CONFIG_H_

#define TEECOMPUTER    1

#ifdef TEECOMPUTER
#define ILI9341        1
//#define ST7789         1
#define TFTSPI1        1
//#define HAS_T4_VGA     1
#define HAS_SND        1
#define HAS_USB        1
#define HAS_USBKEY     1
#define HAS_EXTFF     1
#define PT8211         1
#else

//#define HAS_T4_VGA     1
//#define INVX           1
#define INVY           1
#define HAS_SND        1
#define HAS_USB        1
#define HAS_USBKEY     1
#define HAS_EXTFF     1
#define PT8211         1

#endif

#define ILI9341        1
//#define ST7789         1
//#define SWAP_JOYSTICK  1
//#define LOHRES         1
#define ROTATE_SCREEN  1
//#define EXTERNAL_SD    1

#define USE_SDFAT      1
#define SD_FAT_TYPE    1
//#define USE_SDFS       1
//#define SDFSDEV        "1:"

#endif

AND
iopins.h
C++:
#ifndef IOPINS_H
#define IOPINS_H

#include "platform_config.h"

#ifdef TEECOMPUTER

// Teecomputer layout

// VGA
// R                    3  2K
// R                    4  1K
// R                    33 500
// G                    11 2K
// G                    13 1K
// G                    2  500
// B                    10 820
// B                    12 390
// HSYNC                15 82
// VSYNC                8  82

// Display
#define TFT_SCLK        27
#define TFT_MOSI        26
#define TFT_MISO        255
#define TFT_TOUCH_CS    255
#define TFT_TOUCH_INT   255
#define TFT_DC          23
#define TFT_CS          22 // 255 for LORES ST7789 (NO CS)
#define TFT_RST         255 // 255 for ILI/ST if connected to 3.3V or 24 if really needed


// SD
#define SD_CS           BUILTIN_SDCARD

// Audio
#define AUDIO_I2S_DIN   7
#define AUDIO_I2S_BCK   21
#define AUDIO_I2S_LCK   20

// Keyboard matrix
#define KLED            14
//Cols (out)
//pico 1,2,3,4,5,14
//teen 16,6,24,25,28,31
#define KCOLOUT1        16
#define KCOLOUT2        6
#define KCOLOUT3        24
#define KCOLOUT4        25
#define KCOLOUT5        28
#define KCOLOUT6        31
//Rows (in)
//pico 9,8,6,15,7,22
//teen 19,18,17,5,29,30,32 //5,6,16,17,18,19
#define KROWIN1         19
#define KROWIN2         18
#define KROWIN3         17
#define KROWIN4         5
#define KROWIN5         29
#define KROWIN6         30
#define KROWIN7         32

#define PIN_KEY_USER1   41
#define PIN_KEY_USER2   40

// Second joystick (external)
#define PIN_JOY1_BTN     34
#define PIN_JOY1_1       35 // UP
#define PIN_JOY1_2       36 // DOWN
#define PIN_JOY1_3       38 // RIGHT
#define PIN_JOY1_4       37 // LEFT

#else

// Original Layout
#define TFT_SCLK        13
#define TFT_MOSI        11
#define TFT_MISO        12
#define TFT_TOUCH_CS    255
#define TFT_TOUCH_INT   255
#define TFT_DC          9
#define TFT_CS          22 // 255 for LORES ST7789 (NO CS)
#define TFT_RST         23 // 255 for ILI/ST if connected to 3.3V

// SD
#define SD_CS          BUILTIN_SDCARD

// I2C keyboard
#define I2C_SCL_IO     19
#define I2C_SDA_IO     18

// Analog joystick (primary) for JOY2 and 5 extra buttons
#ifdef HAS_T4_VGA
#define PIN_JOY2_A1X    A3
#define PIN_JOY2_A2Y    A2
#define PIN_JOY2_BTN    14
#define PIN_KEY_USER1   22
#define PIN_KEY_USER2   23

// Second joystick
#define PIN_JOY1_BTN     34
#define PIN_JOY1_1       35 // UP
#define PIN_JOY1_2       36 // DOWN
#define PIN_JOY1_3       38 // RIGHT
#define PIN_JOY1_4       37 // LEFT

#else
#define PIN_JOY2_A1X    A1
#define PIN_JOY2_A2Y    A2
#define PIN_JOY2_BTN    17
#define PIN_KEY_USER1   3 //34
#define PIN_KEY_USER2   4 //35

// Second joystick
#define PIN_JOY1_BTN     2
#define PIN_JOY1_1       14 // UP
#define PIN_JOY1_2       7  // DOWN
#define PIN_JOY1_3       6  // RIGHT
#define PIN_JOY1_4       5  // LEFT
#endif

#endif

#endif


and I can't see any Problems with SND and PT8211... Do you have any clue what's goning on there?
Even Audio is okay (7, 20, 21)

(Should we move the topic or still discuss here?)
 
Back
Top