[Feelings & Sharing] 200元手搓可运行Ubuntu和Android系统的迷你主机
Tofloor
poster avatar
流浪的加菲
deepin
2024-06-20 17:57
Author

本项目的初衷是想以“泰山派”开发板为核心打造一个PC主机,期望制作过程可以进行linux趣味学习开发

开源地址:https://oshwhub.com/flyn/flpc

一、迷你主机的参数/亮点?

image.png

  • 使用立创泰山派开发板设计
  • 如果你已经有泰山派,DIY这个项目的总成本可以压缩到100多元!(该成本需节约液晶屏和外壳)
  • ***便携,能轻松揣兜里!出差旅游都能带!***整机尺寸为5.4X5.2X11.3(cm)
  • 扩展出M.2硬盘千兆网口USB等多种接口,可运行UbuntuAndroid系统。
  • CPU: RK3566,4核Cortex-A55,主频1.8GHz
  • GPU: ARM G52 2EE
  • 内存: 2GB LPDDR4
  • 存储: 16GB EMMC
  • 其他接口: TF卡座、MicroHDMI、2.4G wifi、蓝牙、USB2.0 * 1、Type-C * 1、debug串口 * 1
  • 拓展板 存储接口:M.2接口硬盘 (2242尺寸,SATA协议)
  • 拓展板 其他接口:3.5mm耳机接口、Typ-c口 * 1、USB2.0 * 3、千兆网口 * 1、Typec电源接口、GPIO扩展排座
  • 拓展板 显示屏:3.4寸 412x960 RGB 电容屏
  • 应用场景:PC主机、桌面摆件、智能家居中控、NAS存储

二、硬件部分

1.EXP扩展板

该板主要通过FPC排线和弹簧顶针 (POGO PIN)从泰山派开发板上引出电源接口、网口、USB口、SATA接口、耳机接口 等。各接口如下所示:

2.IO扩展板

首先,IO扩展板将泰山派开发板上的40PIN扩展口引出到侧面,通过PWM14引脚驱动散热风扇,并设计了DCDC电路用于风扇供电(5V转12V)。

其次,这块板接入了所有外扩IO,大家可灵活设计,比如你可以:

  • 在板上加MP6050实现自动翻转屏幕
  • 直接做个模块从背面排座插入

3.LCD适配板

  • 电容屏:HD34004C40
  • RGB接口驱动芯片:st7701s
  • 触摸驱动:cst328

泰山派的mipi接口座只提供了背光、mipi引脚。为了和IO扩展板独立开来,不使用其上面的IO,就给适配板上另外加了一颗smt32g030f6p6来对液晶屏进行初始化操作。

三、软件部分

这里的代码通过STM32CubeMX生成,基于Keil编写。

当stm32检测到复位信号后开始初始化液晶屏。

代码比较简单查看lcd_config.c就行,以下是lcd_config_task函数,在主函数中循环运行。

void lcd_config_task(void)
{
    //static uint8_t status = kStatus_idle;
    static uint8_t status = kStatus_reset;
    static uint32_t tick;
    static lcd_t *lcd_select = NULL;


    if (rst_key_is_pressed()) // 检测reset_key信号
    {
        status = kStatus_reset;
    }
    switch (status)
    {
    case kStatus_reset:
        HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_RESET);
        tick = HAL_GetTick();
        status = kStatus_config;
        break;
    case kStatus_config:
        lcd_select = read_lcd_selected(); // 读取lcd型号id


        if (lcd_select)
        {
            if (HAL_GetTick() - tick > lcd_select->reset_time)
            {
                HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_SET);
                lcd_select->config(); // 配置lcd
                status = kStatus_idle;
            }
        }
        else
        {
            // 找不到对应lcd
            status = kStatus_idle;
        }
        break;


    case kStatus_idle:
    default:
        break;
    }
}

2.开发板Android系统

目前使用的是Android系统,基于泰山派官方资料里的SDKUbuntu18.04.6环境编译。官方sdk已基本适配,稍微修改下设备树即可,如果要带液晶屏需要添加触摸驱动

四、作者有话说

image.png

希望这个"迷你主机"抛砖引玉,能有更多的具有开源精神的伙伴们一起共建一个强大的开源生态!

开源引用,感谢以下开源作者:

  • 官方的泰山派开发板项目
  • okll的“泰山派MIPI DSI 转 RGB 适配器”项目
  • 风漠兮的“泰山派4寸86屏转接板”项目

原文转自知乎:花200多元,手搓迷你主机,可运行Ubuntu和Android系统,全开源了

强烈建议大家看原文,作者连电路设计图都放出来了,真开源kissing_heart

题外话:感觉这东西有市场啊,不知道废旧手机能不能利用起来,加个磁盘搞带屏幕的家庭服务器。

这个东西真的很小巧漂亮,感觉可以发起众筹,说不定就是人生的第一桶金啊,哈哈哈哈哈哈哈blush

Reply Favorite View the author
All Replies
jjcui8595
deepin
2024-06-20 19:03
#1

like

Reply View the author
deepin-superuser
deepin
2024-06-21 09:18
#2

星火计划??

Reply View the author
绍贝格尔
deepin
2024-06-21 09:21
#3

like

Reply View the author
131******66
deepin
2024-06-21 10:03
#4

applaud

厉害 有机会试试

Reply View the author
kero990
deepin
2024-06-21 10:55
#5

但是自从用上了90块(当然现在涨价了)的rk3566矿渣之后

我觉得一切3566都没啥性价比

Reply View the author
立青
deepin
2024-06-21 11:04
#6

2G内存,V23都安装不了吧

Reply View the author
Amber
deepin
2024-06-21 18:04
#7

太高级了

Reply View the author
raspbian
deepin
2024-06-23 10:46
#8

这种就只是发烧友自己玩玩

和日用扯不上任何关系

Reply View the author
流浪的加菲
deepin
2024-06-23 14:09
#9
raspbian

这种就只是发烧友自己玩玩

和日用扯不上任何关系

这个可以放客厅替代机顶盒吧,接口还蛮丰富的,然后存点照片和音乐啥的,在客厅的电视上播放还是可以的

Reply View the author
raspbian
deepin
2024-06-23 17:33
#10
流浪的加菲

这个可以放客厅替代机顶盒吧,接口还蛮丰富的,然后存点照片和音乐啥的,在客厅的电视上播放还是可以的

如果要当机顶盒 最起码硬解 vp9/av1 + opus crf29 得过关吧 树莓派5都做不到流畅

Reply View the author