Close
0%
0%

DLT one - A Damn Linux Tablet!

Modular Open Source Hardware Tablet that is easy to hack and can run a standard Desktop Linux Distribution (or Android)

Similar projects worth following
Plain Linux Tablets just don't exist! No, Android does not count. I want hardware that allows me to install whatever OS I want to, f.e. a standard Linux Desktop. Commercial offerings barely ever allow modifying your OS without exploits and then lack drivers.

- I want something open! Open in terms of software and open in terms of hardware.

- Extensible and modular, just like (most) Laptops and Desktop PCs.

- High performance (much more than a Pi3)

- I want all of this without making a big clunky ugly monstrosity.

- It should be manufacturable on a very small scale (or eventually big scale) without ending up costing a fortune per unit. So a smart design is of utter most importance.

There are finally fast and affordable SOMs. I will start looking at an iMX8M SOM from Technexion and the Nvidia Jetson Nano.

High-res displays from 5-12" are finally cheap and available in QTY 1.

I will design a carrier PCB and case that allow for modular hardware extension.

Motivation:

For years I've been wanting to create a tablet like device based on a SOM (System on Module). Doing something from scratch, routing DDR3 RAM, eMMC etc. didn't seem realistic to me, this is not in my skill set yet and would make small scale production more expensive. SoC and RAM are hard to source if you want only couple of them.

I've started out with the Raspberry Pi compute module but the more I thought about my specs the clearer it was to me that it just wont cut it.
I wanted something that can run modern applications, something that is actually very usable and is not just a cool thing on paper.

How:
The past years I've been looking around for affordable SOMs that offer enough performance to be viable, until now there were either cheap outdated SOMs or ones that target the industrial market and are too expensive.
In recent months there is finally an interesting selection of SOMs out there.

Technexion/Wandboard released the Pico SOM product range and the Pico Pi as a dev board. They range from 72-150$ For 150$ you get a fairly decent ARM SoC with 4K video support, 4GB RAM, 16GB eMMC and 802.11 AC WIFI and Bluetooth 5.0.

Essentially the basic specs for a modern tablet.

The other SOM that just popped up recently is the Nvidia Jetson Nano. Very capable SOM with similar specs but lacking WIFI. Though the GPU is much more high-end than the iMX8M Quad.

Another very important part is the Display. Until now I never found a satisfying product that had a good picture quality and resolution.

For some reasons there are really great IPS displays popping up all over the place from 1.8" to 13" there is something in every category and all of them can be considered to be "retina" displays. If I want to make a tablet I don't want it to feel like tech from 10 years ago.

So the goal is to make it good or go home :)

The SOM is is 60% of the way actually, the Display is another 20%, the hard part there is getting a generic Linux DSI driver to play with the displays I'm looking into.
What this project will then essentially entail is to design a carrier board for one the two SOMs (though I want to see if I can keep it generic enough to allow for different SOMs in the future).

What:
My MVP will have the following specs:

  • Fast enough SoC to run a modern web app without lag.
  • Enough RAM for more demanding applications >=2GB
  • 802.11AC Wifi and Bluetooh
  • USB for charging and data >=USB2.0
  • High-res display in the 7-10" range connected via MIPI DSI.
  • Modular peripherals, the carrier should be very small allowing to attach different peripheral connectors through FFC cables. A choose your own peripheral kind of product.
  • A parametric case design that allows for different screen sizes and peripheral openings.
  • Battery and charging circuit. No idea how large but I aim for around 4h+ active usage for now.
  • Extensible storage via SDcards
  • Audio
  • HDMI

Cool things for the future:

  • USB-C PD
  • Desktop peripherals that you never see in mobile products like an Ethernet Jack.
  • mPCI-E connector ( I never touched PCI-e so lets see how that goes). This would technically also allow for M.2 and adding a proper SSD to your tablet.
  • This does not have be a tablet, if I can make it small enough a phone is also possible, at least a phablet.
  • USB 3.0+ (the SOMs support it but I'm a little scared by it)
  • LTE either through USB or PCI-E
  • Camera
  • Keyboard "dock" to turn it into a Laptop

Here is a block diagram of what I wan for the MVP:

Visualization Images Courtesy of:
Wise Technology
Nvidia
Technexion

  • Switching to Jetson Nano

    Prof. Fartsparkle6 days ago 0 comments

    After being rather frustrated with the state of documentation of the i.MX8M SoM and sparse design guide I'm now switching my efforts over the Jetson Nano from Nvidia.

    Among my main reasons why I will pause my efforts with the i.MX8M is the availability of a polished end-user Linux in the form of L4T (slightly modified Ubuntu), with the i.MX8M you get a lot of options but none are really meant as a finished piece of software for end use but as a base for your own build. This is great for someone designing a tightly integrated product but not so great if you want an easy to use general purpose system.

    Another reason is community support. There is simply no big community behind the i.MX8M yet. The Jetson ecosystem exists longer and existing work for it is largely compatible with the Nano. Also in the few weeks the Jetson Nano has been available there is big community gathering around it. Given that it also comes in the form factor of an affordable SBC would really help adoption of the plattform and in turn also help my Tablet get nicer software and guides from the community.

    Another reason is performance, especially for multimedia the Jetson Nano blows the i.MX8M out of the water and this is something I think most users would be interested in.

    I designed a first test board with a similar goal as I had with my previous breakout for the i.MX8M. Get to know the hardware and its issues. When I'm comfortable with it I will continue with the next iteration, a first prototype that would actually be usable in my tablet form factor.

    This first prototype will again just be a quick and dirty SBC. I also gave a bit more shit about HDMI and eDP, learning more about High Speed design and trying to do it "proper". I ended up rerouting the high speed stuff 4 or 5 times as I found more and more error the more I read into the topic :)

    The PCB should hopefully arrive end of next week. 4 Layer impedance controlled PCB this time.

  • Soldered up and finally booting

    Prof. Fartsparkle05/01/2019 at 22:38 0 comments

    So the first time I soldered the new boards the SoM was still not booting.

    Quite frustrating, then in a fluke accident I found out that the "ONOFF" pin is actually a pin from the PMIC and by connecting it to 5V and then letting it float again (e.g. "button press" with a piece of wire) makes it boot.

    I then solderd up a second board with all components and was able to SSH into the Linux via a USB to Ethernet adapter.

    So some stuff is working!
    On the HDMI side I unfortunately missed the pull up resistors on the EDID lines so that seems to not work atm.

    Also the CPU debug serial does not come up. Not sure what the issue there is, might be an issue with the level shifter or I got the wrong UART all together.

    Here are some photos of the process and the finished board:

  • Ordered second prototype

    Prof. Fartsparkle04/24/2019 at 11:59 0 comments

    I didn't get the milled PCB to work, I triple checked everything but couldn't find a root cause. Technexion is taking a look at my schematic so lets see what they have to say.

    In the meantime I just went ahead with a new design as I think it probaly is just a fluke issue that I just haven't noticed yet. I ordered a PCB this time to cast out any issues arising from a missing solder mask.

    My main goal is still to only get it to boot but I broke out a bunch more stuff in case I want to test more. I don't have high hopes for HDMI and DSI as I did not order a impedance controlled PCB this time and haven't taken much care to aproximate the impedance with this stackup but it will be interesting to see if it would still work, just to see how much you can abuse these high-speed busses before they completely crap out on you.

  • Unable to power up

    Prof. Fartsparkle04/19/2019 at 12:20 0 comments

    The past days I've been debugging my first try at a minimal carrier PCB. I milled a PCB that has power in, CPU debug serial, USB-A and HDMI.

    Though the only thing I wanted to get going so far is powering the SoM and getting a connection to the CPU debug serial.

    At the moment I'm struggeling to even get the SoMs PMIC to power up. I connected everything correctly according to the datasheet. All thats apparently needed is 4.2-5.2v on the VSYS pins and all GND pins connected. I continuintity up to the mating pin of the connector and they are all properly connected, so its quite puzzling why the PMIC wont even start up and produce the 3.3 and 1.8 voltages. I do get a minimal power draw of around 10mA when attaching 5V but other than that it just seems dead.
    SoM is still working fine in the dev kit carrier board so I haven't fried it either.

    If anyone is interested here is the datasheet for the SoM: https://s3.us-east-2.amazonaws.com/technexion/documentation/pico-imx8m-rev099.pdf

    A pic of the milled carrier board (yes the connectors are shit to solder, they have no alignment pins)


    Here the excerpt from the datasheet


  • Dev-kit arrived and working

    Prof. Fartsparkle04/11/2019 at 22:07 0 comments

    Just a quick update. I got the dev-kit in the mail yesterday, I booted it up with the touch screen attached that it came with. Was all working fine so today I started working on making a first break out which I will mill tomorrow to do a first test fit with the SOM connector. As there 3x70 pin connectors the positioning of them in relation to each other is very important.

    Technically it should fit perfectly as I worked according to Technexion specs but lets see how it goes after they are soldered to a board.

  • What this is going to be and what not

    Prof. Fartsparkle04/09/2019 at 21:43 0 comments

    As a lot of people seem to get very excited about this project (which is fantastic). I want to address some thing to manage expectations.

    What I want to build here is a basic platform for a tablet computing device. I will not write fancy software to make this a typical end consumer tablet so you can have an awesome Linux tablet in your backpack to check your Twitter feed and do your daily work with it. This is actually really hard and the main reason why no one with commercial interest has done this yet.

    All I want to make is a hardware foundation which of course also means making sure the hardware has good driver support. After that, it is up to you what you do with this.

    Compile your own version of Android for it and use it as a consumer tablet? Sure! I don't think the hardware will ever perform as well as any commercial tablet in the same price range but if that doesn't matter to you because it can solve specific issues for you that is great!

    Want to add a weird sensor to the tablet and run a minimal Linux distro on it with a single application x11 instance to run a single app 24/7 on it? Great! This what I'm making this for, giving other developers a starting point to do cool stuff that is not possible with other devices :)

    And of course there is always the possibility that I will fail miserably. I do have a fair bit of confidence that I can pull it off but who knows what horrible things await me in the ultra high-speed realm of USB 3.0 and dual channel MIPI :)

    Over the years I read up quite a bit on high-speed signal routing and managing impedance so I hope I got enough of a basic understanding to make this work. If high-speed signal routing is a topic you are experienced in I would very much like to hear from you and ask you some questions!

    This one big reason why I want do make this open source, so that when there is some grunt work done, other people get inspired to chime in and improve on this together with me.

View all 6 project logs

Enjoy this project?

Share

Discussions

Daniel Dunn wrote 04/12/2019 at 01:54 point

Awesome project! And it's a chance to fix the big mistake that 99% of portable devices seem to have. 4.2V is too high for batteries and it wears them out twice as fast as slightly less charge would!.   I think it would be cool to use 1 or 2 18650 batteries for something like this, because it's so easy to find them.

A Linux tablet would be great because Android is really restrictive about hardware access and it makes mesh networks way harder than they should be.

  Are you sure? yes | no

Prof. Fartsparkle wrote 04/12/2019 at 20:07 point

Haven't decided on a battery system yet but I will probably utilize a smarter IC for that which should offer settings for these kind of things which should be settable from the SoC.
I might even put it on its dedicated PCB so you can choose battery chemistry and charging circuitry yourself without spinning your own baseboard flavor.

  Are you sure? yes | no

mbt28 wrote 04/09/2019 at 11:40 point

Hi, 

I think you should go for a sbc which fits with your design. You may go for edged sbcs too. 

Routing hdmi, usb 3, pciexp and mipi is quite hard actually. 

For the lcd side, I highly suggest to use an lcd with an available documentation and driver support. I think this is the case for you, otherwise it consumes so much time to adapt a bare mipi dsi lcd. 

My last comment is do lots of research about the base board you will use. I highly suggest you to dont use chinese boards because they lack of support which will take most of your time. 

Gl&Hf

  Are you sure? yes | no

Prof. Fartsparkle wrote 04/09/2019 at 21:25 point

Hi,

thank you for your comments.
Using a SBC is not really an option if you want to make a thin device with modular peripherals :)
Like I wrote in my description I will either use the i.MX8M SOMs from Technexion or the Nvidia Jetson Nano SOM. The i.MX8M SOMs have a detailed datasheet available and NXP offers an insane amount of support material for their SoCs. Which is why I will very likely go with the i.MX8M. The Jetson Nano might still be nice but so far there is no documentation and I would like to get started soon.

I do know that routing high-speed buses is more work than fanning out a few GPIOs :)
Though I want to take on that challenge. I've touched that topic on older projects and feel confident that I can make this work.
I worked with MIPI displays before and the bus is surprisingly robust, I could run full hd displays on a meter long FFC cable which technically violates the MIPI specs quite a bit but the displays didn't care one bit.

About hardware from China, I will source the displays from china but mostly because they are sold there. I found some panel from Sharp and got a datsheet for it. I hope I can modify an existing driver for a different Sharp panel and adjust the code for the start up sequence according to the datasheet.

If you got some experience there I would glady here about it :)

But yes, I will not buy random unknown crap. I want to end up with something that is manufacturable and will only look into hardware that is well documented and has a manufacturer behind it that offers support.

  Are you sure? yes | no

mbt28 wrote 04/10/2019 at 09:04 point

Hi 

I was talking about something like this when I was saying about edge sbc:

https://www.khadas.com/shop

In this way you dont have route hdmi usb etc. 

I.mx8m is amazing soc. Has good support and very capable. I like imx8m mini more since I dont need a hdmi. 

Nxp chips are so good but unfortunately they are expensive when you want to buy single quantity.

You might go for rpi compute module but I am quite sure adapting mipi dsi to an existibg lcd would be quite hard. 

My 50 cent is do your work part by part for example you can go for an sbc and design the lcd interface, audio etc. Then, when everything is okay you can adapt them to the som version. Otherwise debugging the hardware is so much time consuming. 

  Are you sure? yes | no

Prof. Fartsparkle wrote 04/10/2019 at 11:53 point

@mbt28 that "Edge" board is super interesting. Thank you for that I will definitely have a look at that :)

It does not really fit in my overall goal of modularity and being somewhat SOM agnostic but if I end up in a dead corner I will give this a go.

Anything RPi based is a no go, they are just too slow. This is what I experimented years ago and just ended up not pursuing it further because it can't keep up with modern applications performance demands.

The workflow you suggest is what I'm doing. I have now a dev kit from the SOM manufacturer which is a full SBC and comes with a MIPI DSI touch screen.

So I have a working base there that I will start to adapt from slowly. I will work with this known to work screen for now and if I got a very basic system going I will see if I can make other screens work that may not have a public driver available yet.

I do PCB and Software design as a day job so I do bring some experience with me to hopefully not fail miserably with all of this :)

If you know a good source for existing MIPI drivers outside the mainline kernel I would much appreciate that :)

  Are you sure? yes | no

mbt28 wrote 04/10/2019 at 12:22 point

Hi,

I always find MIPI DSI a bit complicated. I am using lvds screens, those are more straightforward. 

If you want to go for LVDS ones, there are DSI to LVDS bridges by Texas Instrument called sn65dsi8*. They are easy to use. If you want to manufacture it by hand, bga package is cheaper and beleive me is easier to solder by hot air gun or owen.

You can configure it through I2C and there is even an application called DSI tuner you can configure the chip and create a script for it.

http://www.ti.com/interface/hdmi-dvi-dp-mipi/bridges-transceivers/products.html#p1694=Bridge

http://www.ti.com/tool/DSI-TUNER

And there are some useful information on this website (LCD interfaces, backlights etc):

http://www.programmersought.com/article/7481201221/;jsessionid=F29EEE6C46D8DE26C33BF8BE08D5C924

  Are you sure? yes | no

Prof. Fartsparkle wrote 04/10/2019 at 13:21 point

@mbt28 those bridge ICs are something I also looked into, at least for HDMI. LVDS sounds like an interesting option. Valuable to hear that they were easy to deal with from your experience.

What makes LVDS easier in your opinion? I don't really have experience with it.

Thanks for all these resources, that is very helpful!

I will have to see if there are LCDs with LVDS available that are high-res enough. I wanted at least Full HD or "2k" for anything larger than 6". It makes life harder but its something I don't want to compromise on.

  Are you sure? yes | no

mbt28 wrote 04/10/2019 at 13:35 point

"What makes LVDS easier in your opinion?"

DSI is a bileteral communication. Some LCD's need to be configured via DSI as well. I am not familiar with it, and usually hard to find detailed  datasheets for dsi panels. Maybe because of NDA aggrements, I dont know actually.

LVDS is just serilization of RGB interface with 4 data pairs and one clock lane. It is one direction. Usually you need to configure some functions of LCD via GPIO, which is pretty easy.

Another issue with DSI; it has higher speed so routing it is a bit harder than LVDS.

  Are you sure? yes | no

Asher Gomez wrote 04/09/2019 at 00:23 point

Nice project, I'd definitely want one of these... Good Luck!

  Are you sure? yes | no

Prof. Fartsparkle wrote 04/24/2019 at 11:38 point

thanks :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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