Close
0%
0%

Transportable bench computer

An ARM open hardware computer in a briefcase

Similar projects worth following
I have so little space on my bench that I needed to be able to store the computer. But the first objective is to learn things about computer building. So I decided to do a maximum by myself. Schematics for every parts is a must.

The computer is composed of :

  • A Beagleboard X15, with a strong ARM CPU (TI AM5728)
  • 128Gb SSD hard drive
  • VoCore2 SBC for Wifi
  • A cheap aluminium briefcase and some aluminium plates
  • A 15" LCD panel (including a breakout board)

With that, I made myself :

The project is incomplete yet, I still want to add a battery, and a touchpad.

Adobe Portable Document Format - 151.18 kB - 08/24/2017 at 21:29

Preview
Download

Adobe Portable Document Format - 21.89 kB - 08/24/2017 at 21:28

Preview
Download

Adobe Portable Document Format - 4.31 MB - 08/09/2017 at 21:01

Preview
Download

Adobe Portable Document Format - 29.46 kB - 08/09/2017 at 20:59

Preview
Download

Adobe Portable Document Format - 749.69 kB - 08/09/2017 at 20:58

Preview
Download

  • Beagleboard X15 and LVDS

    Julien08/24/2017 at 21:28 0 comments

    The Beagleboard X15 is an incredible machine. The TI's AM5728 is a pretty amazing chip, it contains two 1.5Ghz Cortex-A15 ARM cores, two 750Mhz c66x DSP cores, four 200Mhz Cortex-M4 ARM cores, and f 200Mhz general purpose PRU. With that, there is two SGX544 3D GPU cores and one GC320 2D GPU core.

    The board contains two gigabits ethernet ports, three USB-3.0 ports, one SATA, one HDMI, analog audio output and a lot more via four expansion ports (157 gpio ! see last page of X15 schematics). The AM5728 itself allow three video output, and the expansion port of the beagleboard exposes one that I used to interface with the display. There is no direct LVDS output on the board, but SN75LVDS83B can transmit RGB parallel signal to LVDS. The schematics is actually very simple : just read the datasheets and connect the lines. Add some passives and that's it (see ext1_x15.pdf) !
    Since the video signal only takes 21 pins, I decided to exposes more to a standard 2,54mm header. I first added the power on signal, so I will be able to connect an external switch button. Then some others GPIO : if I read the AM57xx correctly, I will be able to use them to most usage : SPI, I2C, UART and PWM.

    (fast forward, board ordered at OSHPark and components at Digikey, then everything put together)

    After wiring LVDS pins between the expansion board and the OLIMEX breakout, it is time to test the software part. A proper DTS is needed for Beagleboard X15 linux drive the new screen :

    lcd0: display {
            status = "okay";
            compatible = "", "panel-dpi";
            label = "lcd";
            pinctrl-names = "default";
            pinctrl-0 = <&lcd_pins>;

            enable-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>;

            panel-timing {
                clock-frequency = <69300000>;
                hactive = <1366>;
                vactive = <768>;
                hsync-len = <10>;
                hfront-porch = <8>;
                hback-porch = <78>;

                vsync-len = <1>;
                vfront-porch = <3>;
                vback-porch = <18>;

                hsync-active = <0>;
                vsync-active = <0>;
                de-active = <1>;
                pixelclk-active = <1>;
                /*syncclk-active = <0>;*/
        };

        port {
            lcd_in: endpoint {
            remote-endpoint = <&dpi_out>;
        };
    };

    Mainly, it is the specification of the LCD panel in a config file and I used one of the expansion GPIO as a enable pin. Beagleboard VOUT pins is needed as well (lcd_pins, see complete DTS in source repository)

    Some backlight is nice two, so we can change the intensity of the panel's leds, I used another expansion GPIO for that :

    backlight {
        status = "okay";
        compatible = "pwm-backlight";
        pwms = <&ehrpwm1 1 500000 0>;
        pwm-names = "LCD";

        /* Anything lower than 241 is no longer visible */
        brightness-levels = <0 30 55 60 75 100 200 240 255>;
        default-brightness-level = <8>;
    };

    Finally, this new screen will be the default one :
    aliases {
            display0...

    Read more »

  • The display

    Julien08/09/2017 at 21:32 0 comments

    I ordererd the display on Olimex because they propose a documented panel with an integrated breakout board (see LCD-OLinuXino-15_6_sch.pdf). The bad news is that the board is actually glued to the panel (please don't do that). I partially succeded to remove the board, but a little part of the reflective sheet was torn ... Not so terrible, but there is now a little spot.

    I modified the breakout board, particulary because there is a 12v input, and the board actually take 5v (to step up to 10v) for the backlight. It does not seems good to step down to 5v then step up to 10v (and the panel is rated up to 21v), and adapted the board to this need (schematics is a must).

    R6 indicated as a 0v resistor is actually routed, so I needed to cut the route to separate the step-up chip and the DCDC_VCC signal. The jumper on PWR_JACK/5V_LCD_CON must be on the 5V_LCD_CON to be able to use the pin header, and change the PWR_JACK/10V_DCDC soldering jumper to DCDC_VCC. Now pin 1 (5.0V) which will use to provide 12V will be connected to the panel VLED directly. To avoid any problem, I changed the C3 22uF capacitor rated 6.3v to a 15v rated one.

  • The keyboard

    Julien08/07/2017 at 19:30 0 comments

    I already learnt a lot of things about keyboards with my previous laptop project (in particular matrices) reusing a old Dell mini keyboard. But I wanted more, and those mechanical keyboards seems very nice.

    So I decided to give a try. I really love STM32 microcontroller, but in the mechanical keyboard world, it seems that AVR are everywhere. So I first checked if nobody tried with STM32, and started with that. In the same time, and since Eagle changed their policies, I started learning Kicad.

    The original keyboard is nice, but I only wanted one microcontroller, and decided to use a dedicated chip for led matrix (http://www.issi.com/WW/pdf/IS31FL3733.pdf). The main problem with these huge PCB is cost (sorry for this time OSHPark friends), so I ordered them on EasyEDA (5 board + shipping for $62). The switches however are available on Digikey, and ordered the caps on https://mechboards.co.uk/.

    I did not have major issue soldering the board and testing it : everything were fine the first time (ok, just some resistor was to close to the switch, but it works).

    Finally, I reused my other keyboard firmware and improved it to support LED.

    Hardware and firmware sources : https://github.com/julbouln/stm32_mech_keyboard

View all 3 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates