07/08/2019 at 23:17 •
A topic I haven't talked about in too much detail yet.
Its something I'm constantly thinking about whenever I change something in the design. The tricky part is that I want to reach two main target audiences which require somewhat conflicting mechanical design.
The first one being the general open source crowd, no matter if they are interested in hardware or not, there is quite a lot of interest from people who are interested in Linux and open development. They mostly want to see a tablet that comes close to a polished commercial tablet, from the feedback I've got it seems they are fine with something thicker but it didn't seem there was a ton of interest in fiddling with hardware or getting something that works but looks ugly. Small to mid sized industrial companies are also pretty interested in something like this, they would require a more rugged case and are also fine with thickness but also require a finished and polished product that is well integrated.
Catering to this crowd is actually not hard, you require a few injection moulded pieces of plastic (I try to keep it as simple as possible, so far I see about 2-3 large pieces of plastic) and make a design that is constrained and tries to squeeze the hardware into any space there is to yield a tablet that looks nice and tidy, just as a tablet would look like that you bought from the usual Manufacturers. Sure there will be a few iterations until it comes out perfect but injection moulding is a well understand process and can be done in any quantity now a days. There is polyurethane casting for prototyping and small runs of 10-100pcs.
Next step would be injection moulding with an aluminium tool, they are a lot cheaper to manufacture than the high-end steel ones and yield y few hundred to maybe 1k pieces and if you are going really big you can scale up to steel tools and produce several 10k-100k per tool ( I pulled those numbers out of my nose but this is the range I remember).
The issue is that I can't design the mechanical parts so that they are only feasibly manufacturable with injection moulding.
This is because I have a second target audience that I personally find most exiting and is what drives me personally. It's the hardware hacker crowd, the educational crowd, the mid-size company that wants 10 super specialized tablets that integrates their own weird oddball hardware.
Those people want to modify the hardware, they want to experiment, they want to make their own spin-off.
For this audience I need to think about hack-ability. It doesn't mean they don't want a somewhat good looking tablet, but extendability is key here.
This is one reason why I design the electronics in a very modular way, no peripheral is fixed, everything is changeable. Don't need HDMI output? Then don't get the HDMI PCB. Need it 2 years later? Just buy it for a small amount and add it to your tablet, no need to buy a whole new thing. This not only allows upgrading to some degree, it also allows for great repairability which is something pretty much everyone likes.
Now there is a catch here, how do I add an HDMI port to a case that doesn't have an opening for it?
This why I decided to design the case in the following way. There will be a display assembly that consists of LCD, Touchscreen (the two will not be bonded for repairability) and a plastic 'spacer' that creates a frame around the LCD. This assembly is then acting as a flat surface where the aluminium plate will be attached to.
This plate will have a sort of pegboard pattern of 2.5mm threaded holes where the electronics can be attached to, this allows for free placement of all peripherals and the motherboard. This plate can be easily manufactured in lots of different processes, its thin enough to be done in a sheet metal process, using water-jets or lasers, or more expensively, on a milling machine.
The tapping will be a bit more expensive than just having threads in a limited amount of places for a fixed set of peripherals but this can be done with CNC (not actual milling) and is a standard part of a sheet metal workflow.
So far so good, none of these parts need to be exchanged if you were to change a peripheral or anything else in the electronics design.
Only the last part gets tricky, its the back. This is a plastic piece that will serve as nothing but the cover for the electronics, nothing will attach to it, it just covers it up. It's also the driving factor of how the the Tablet will look.
The way I have the design in mind so far is that this back can be produced either in a high-end manufacturing way (e.g. moulding) or in a home shop through 3D printing or milling, heck even laser cutting can work, you just need to laser spacers to put between the peripheral connector and have one large plate cover everything up.
The possibility for easy prototype manufacturing will be important for testing out your own variants of the tablet, this is important for business users and of course hackers.
There is a not so small market that is in need of very specialized portable electronics where a tablet is 90% of what you need but the remaining 10% is their own specialized hardware that they just need to integrate into the tablet, DLT will serve as a perfect basis for these kind of projects.
Now back to our average Linux lover who wants to add an HDMI port because his needs changed.
I want to offer him several ways of doing that, one I just described right now, visit your hackerspace and make something yourself. That's something very few will do but they have the option.
The next option will be getting a new back, maybe you opted for the integrated back cover before, unfortunately you will have to ditch this, right now I don't see any feasible way around this but you can keep the most expensive and resource hungry parts of the tablet.
You will then have to get the second variant that I plan to offer, it will be similar to the first but the sides of this variant will be open except for the corners, the corners are where the large screws go in, to hold everything together (look at the early mechanical design concept for a visualization).
Now you can get a set of pre-made 'jackets' for each peripheral so they are encased nicely and a set of spacers that fill the holes between the peripheral connectors, this allows for a pretty free placement so everything is located where you want it to.
These spacers and jackets will be screwed down onto the aluminium plate just like the peripheral PCB's. Thanks to counter sunk screws they will end flush and you can put the finishing back plate onto everything just like you did before.
I'm not sure if I will go with these two variants, maybe I will only make the customizable one, this really depends on how much my customers are willing to do some end assembly but from the current feedback I feel there is a large crowd that will be happy with a minimal set of peripherals and a finished product that requires no assembly and for those the cheapest and easiest option will be a 'unibody' plastic back.
Of course there is also the possibility of made to order tablets where the customizable variant is build for you but this will jack up prizes and is not something I see as viable in the near future.
I try to add some picture to this blog post later on to illustrate the concepts better, for now the wall of text has to suffice :)
I focused solely on the mechanical manufacturing part here, getting PCBs assembled is something so standard I don't think I have to go into details here. There is nothing particular unique in terms of parts for DLT.
07/07/2019 at 20:46 •
I got a nice 8.9" eDP LCD and a fitting touchscreen with a glass cover in typical tablet style, they only got white in stock, I would prefer black for future tests but it works well for first tests. Touchscreen was working perfectly in Ubuntu out of the box.
07/07/2019 at 20:34 •
It's been quite a while since the last update. Some private events kept me busy for a few weeks and I had somewhat of a slump, the second prototype was all about defining sensible pinouts for all the FFC's, finding out what connectors to use, what pin counts, what problems could arise in different applications than mine with the pinout I'm choosing and lots of other little decisions.
It's important work but can feel a bit like a drag because you essentially just redo what you already did in a different way.
I've worked through the slump and churned out a new motherboard and over the weekend I made 7 little peripheral breakouts.
This will be the first proper proof of concept. The part I'm most anxious about is the eDP to LCD part, I've never talked to eDP LCD directly before, so lots of stuff I could have missed.
Now that I'm waiting probably about 2 weeks for all those boards to arrive I will focus on milling a prototype aluminium frame to attach these PCBs to. I also got a nice LCD and touchscreen from a vendor, more about that in the next post.
06/12/2019 at 21:17 •
So turns out I simply forgot to connect the AUX_GND pin for the DisplayPort connector, a quick bodge wire and DisplayPort was working as well :)
Ethernet is only 100Mbits because I mixed up the connector pinout. Molex had two versions for the part that I used and for some reason the bi-color MagJack has a different pinout for the diff. pairs rendering 2 pairs useless which makes me end up with just a 100Mbit connection.
I have ordered the correct part for the pinout and will see if it works ok after reworking it.
I'm currently in the process of designing the next prototype which will be the actual first prototype meant for the tablet instead of a SBC like before.
It will be as compact as possible and breakout everything over FFC like I planed. This also means I have to spec the electrical standards for each peripheral. This will probably not be final but its important to keep future solutions in mind here already. After all its supposed to be a universal standard for portables, not just for my initial tablet here.
I expect this to take another 2-3 weeks as I wont have too much time due to private life stuff.
But I want to see it assembled in mid July and maybe do a second revision before the judging deadline in late August.
05/28/2019 at 22:25 •
So the PCB came yesterday and it looks super pretty! It's a 4 layer board with impedance control.
Also thanks to JLCPCB for sponsoring the board.
The best part is, after soldering it together, it was actually working! Well everything except for DisplayPort.
05/25/2019 at 22:03 •
I haven't talked too much about the mechanical side yet, which I want to change now. I did some sketches in Fusion to illustrate what I want to do here.
I want to make the mechanical design akin to how a PC case works. So it is a generic mounting point and shell for the hardware, you are able to change hardware without also buying a completely new case.
This is a bit tricky when you have so little room like in a tablet but it is doable to a degree. I want you to at least be able to swap out peripheral connections or add/remove them. Maybe you want a 6.3mm Audio Jack because you are an audiophile or you want a GPIO header on the side for hacking on the go.
I want to keep the amount of parts needed to a minimum. This keeps costs down especially when manufacturing the project on a larger scale. If only have to buy tooling to 1-2 plastic pieces that saves a ton of money for smaller production runs.
The frame is made out of 3 major pieces at the moment and is hold together by 4 screws (that might change as it is likely that is not stiff enough on the long side of the tablet).
Here an exploded view of the current design. Bare in mind that this is still largely conceptual and it misses some details like studs that will be needed for stability of the back f.e.
The back is hollow and offers room in addition to space the aluminium mounting plate already creates.
This gives me 7mm space for hardware at the moment. I might have to increase this to 9-10mm by increasing the tablet thickness but I would like to avoid it. At the moment the tablet would have a thickness of 14mm which is about 2012 era tablet thickness. Which is still absoultely ok for me. This makes the product more hacker friendly (and repairable!). If you are looking for a 7mm iPad you will probably just get an iPad...
The idea with the mounting plate is that it defines a mounting standard similar to that of expansion slots in a PC case.
It has M2.5 threaded holes which are spaced 5mm apart giving you a nice even grid of 5mm steps.
There you can attach small PCBs for the peripherals that you wish to use (as well as the mainboard through another small mounting plate that takes heat away from the SoC to the large mounting plate).
The mainboard will offer several FFC connectors that break out all relevant peripherals. So each peripheral will connect to the outgoing connector through a flat flex cable.
This makes the mainboard itself very compact and you have the total freedom of where you want to have which functionality!
The only thing you would have to re-do is the plastic backplate. There are two options here. Have this be constructed out of one large back part and several smaller spacer parts that you could put between peripheral PCBs to close up the sides.
Or you have a single piece and you will have to print or mill yourself a new one.
From a product perspective I might offer both options. The latter looks much nicer, the former is more hacker friendly but actually very cheap to produce. It would actually make it possible to laser cut the whole assembly.
Here are some renderings. I'm still missing some dummy PCBs, I will add those in later to make it clear how the whole modular peripheral thing is supposed to work.
05/18/2019 at 16:27 •
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.
05/01/2019 at 22:38 •
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:
04/24/2019 at 11:59 •
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.
04/19/2019 at 12:20 •
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