How I developed the Russian tablet

    Good day, friends!



    In this article, there will be no Arduino, Raspberry, Olimex, transfer of the insides of the tablet into its “custom” case made of cardboard and adhesive, etc. Only a harsh development, only hardcore ...

    I don’t know if I chose a title too high for the article, but everything seems to be honest: the development is Russian, the tablet form factor, even though it looks like a “smiley smile” brick.

    For my readers, I decided to outline the outline of the article so that you can easily navigate it and skip unnecessary points, but if you are going to write a comment, please read everything, “so that it would not be excruciatingly painful for the years spent aimlessly ... (c)”.

    1. Introduction Idea.
    2. Answers on questions.
    3. What I wanted to get at the exit.
    4. Description of iron.
    5. Prospects. If it will be needed.
    6. Conclusions. Summarizing.

    1. Introduction. Idea.


    As I wrote earlier in my articles, I am very interested in the topic of outputting an image to a matrix, and all that is connected with it. Now you will not surprise anyone with matrix scalers, in the form of small boards for $ 10- $ 15, from which you can easily make / repair a monitor or TV, but I have already played enough with them and I want something new.

    The idea to make something similar to a tablet was born a long time ago, and I constantly hatched it, thinking about how to implement it with less effort and cost with a bigger profit. Of course, I don’t need the tablet itself, it can be bought for moderate money if necessary, or as a last resort to make a case from plywood for Raspberry, but why do I need Raspberry (and you can even buy a case ready for it)? It was interesting to implement on your hardware with full development, but it needs money, and above all, time that is always lacking (or in your day more than 24 hours?).

    The impetus for the implementation was immediately two events, the first - it suddenly appeared several unnecessary matrices from 7 to 10 inches, which oh how attracted me. Some of them are RGB, but also among them was the LVDS matrix and a built-in backlight driver and a USB capacitive touch. Secondly, there was a weak need for a compact reference for debugging software for IMX6, in which there would be almost everything and a little more. Of course, it was easier to throw out the matrices and take a ready-made reference from the shelf, but it’s not so simple, we use in our designs a certain set of peripherals (codecs, physicists, charge controllers, etc.) that need to be debugged for new functionality, and I also wanted to experience something new (and the matrices are very attractive). Is it worth it to spend a month of your free evenings, you ask? Of course it's worth it!

    With these thoughts and a box of matrices, I started development. I knew that I could allocate very little time and at the same time it was not clear whether it would reach the second iteration.


    Fig. 1. Photo of the "tablet" on the side of the circuit board.

    2. Answers to questions


    So that there are no unnecessary questions, I will try to foresee some of them and I will immediately answer them.

    2.1 Isn't it easier to buy a tablet?
    - Simpler, but less interesting.
    2.2 How much does it cost and how much will it cost for a party?
    - It costs a lot, but our company took all the costs for itself for the realization of my little whim. No party is planned, made, so to speak, for oneself.
    2.3 Where is the enclosure? Why didn’t they print it on the printer, didn’t saw it out of plywood, didn’t blind it out of plasticine (and so on).
    - Now I have gathered everything together, and, in principle, you can come up with something about the case, but so far there is neither time nor desire. If, nevertheless, it comes to the second iteration of the board, when it will be possible to reduce the thickness, then it is planned to make a case with a thin polished metal sheet from the bottom to remove heat.
    2.4 Why didn’t they take a smaller / larger / thinner display?
    - The display went for free, but as you know, the gift horse ...
    2.5 Why did you put such a codec / feeder / battery / physics, etc.
    - The chipset is limited to our warehouse and I wanted to buy components as little as possible, so I tried to use what is.

    This list can be continued almost endlessly and you can extend it in the comments, but I will end here.

    3. What I wanted to get at the exit.


    TK was only in the head, and it expanded as new sheets of the scheme were added in the altium. Of course, I wanted to squeeze out everything that was possible from the processor. At the first stage, and possibly at the last, it was decided to do everything on our module, since its board is 8 layers, and for the motherboard I will need no more than 4.

    Interfaces:

    3.1 LVDS - one channel for a 10-inch matrix + capacitive touch.
    3.2 Ethernet - 1000/100/10 (to be).
    3.3 Audio - codec with several channels for input and output + built-in speakers and microphone.
    3.4 HDMI - a standard connector for connecting a monitor.
    3.5 SATA - connect an external SSD drive.
    3.6 Camera - one, preferably two + flash.
    3.7 E-Ink - a small display to display notifications, time, battery power, networks, etc.
    3.8 GPS - any module for tracking location.
    3.9 CAN - differential, for connecting external devices.
    3.10 SD card - debugging and downloading software. Data storage.
    3.11 WiFi / BT / 4G - on USB inside the case (below I will explain why so).
    3.12 USB - at least 5pcs + OTG + console.
    3.13 Accelerometer - to flip the screen.
    3.14 RTC - a separate chip for storing time when the device is completely de-energized.
    3.15 NFC is a reader to play with.
    3.16 Control buttons - on / off / volume / reset.
    3.17 Battery - 3.7V, 4-6A.
    3.18 Power 5-18V.
    3.19 Linux OS.

    That's all I wanted. Below I will explain some conflicting points of why this is so.

    4. Description of iron


    It’s fair to say why all the same on the module, and not immediately on the 8-layer board. It is more correct to transfer everything to one board only after debugging the entire periphery, if at all. One iteration of the board (4-6pcs) on eight layers (60mmX40mm) costs about 50tr + components - this is pretty decent, so it’s more correct on the layout. The prots on the module is 4-core, each of them is 1 GHz.


    Fig. 2. Printing housing elements

    The first thing I thought a lot about was the wireless interfaces. There should be several, and they should be on the board. With GPS, everything was decided by itself, I have repeatedly used the SIM33 module with a built-in antenna, it works fine, although not cheap, it has UART output and I already drew a footprint for it).

    Wi-Fi / BT could also be implemented as a module on the board, since there are a lot of them, but for now we postpone this issue. 4G modems come in various form factors and modules on the connector and on the board for soldering and USB. The software picks up Maxim (our programmer), who is still an enthusiast, and he suggested installing several USB on the board to stick Wi-Fi / BT sticks (which we repeatedly used), and also try to raise a 4G USB modem, for example, Yota or something like (what happens). In this case, we also have calls. So it was decided to do.

    Inside the board are 3 USB, a) Wi-Fi / BT, b) 4G modem, c) a module for a wireless keyboard / mouse. IMX6 has only two USB on board, while one of them is OTG and may be needed for debugging, therefore it is displayed on the rear panel in the form of a miniUSB connector. The second USB goes to the TUSB2077 hub from TI, which has 7 ports on the output, for which Maxim has already lifted the driver earlier, so I used it. There are 3 USB ports on the rear panel for connecting external devices. Another microUSB on the rear panel for outputting the console uart chip for debugging (via CP2102 on the main board).

    E-Ink display chose a tri-color (gray / black / red), one of the most common for Arduino. It has not yet been purchased, as it is not yet up to it. I found it rather interesting to decide not to turn on the screen, but to display some information on a small display and occasionally update it. I also really want to play around with E-Ink.


    Fig. 3. Photo display E-Ink.

    Our IMX6 module has a connector (there are three power voltages, I2C, reset, PWM, etc.) to connect the OV5640-M4320 camera, even two, to the stern of MIPI_CSI. So one camera worked (directly to the module connector), but with two questions. The loop of such a camera is usually from 3cm to 12cm. On the board, I routed MIPI_CSI to the right places on the board, but have not yet verified. Something tells me that this interface will not work at 15-20cm, or it will lag.


    Fig. 4. Photo camera OV5640-M4320.

    These are 5 megapixel cameras with built-in autofocus.

    It is planned to make a flash for the camera on the back of the device, for this I made a portable scarf (the hole from this scarf is visible on the circuit board, I spread it directly to the main one, so as not to order separately) on a loop with an LED (MP-3030-1100- 56-95) and put the ADP1653 driver on the main board flash. I never thought that the flash needs to be quite clearly synchronized with the frame (although this is logical), this driver can do this using I2C, which is most likely not suitable for external interruption. Let's see when the time comes, how it happened.

    IMX6 has built-in RTC, which did not perform very well in terms of power consumption, or I didn’t watch something, so I decided to install an external PCF8523 chip, which has a fully working driver for Linux. The time synchronization function itself is not particularly interesting to me, since it can be done over networks, but waking up on an event is necessary. I put this development miracle on the bedside table and wait for the alarm to go off, just like the Nokia 3310 rose from the off state.

    When external voltage is applied (the device is turned off), the following are energized: the charge controller BQ25895, RTC and the supervisor STM6601, which controls the secondary power supply at the touch of a button or softly (if we want not to cut off the power and correctly shut down the OS and then turn off the power ) As a result, the power supply turned out to be a rather interesting design, I have not had time to take measurements of consumption in different modes, but with the hardware shutdown of the entire periphery it should turn out pretty well. As a result, the “tablet” does not have such a “standby”, the STM6601 and PCF8523 are powered directly from the Li-Ion (3.7V) battery + to the RTC battery 2016 or 2032 (universal holder). A 2.3A battery is now connected (it’s about to arrive at 6A), in the desktop display mode, the charge lasts about 30 minutes - this is certainly very small, but let's see

    The LIS331 accelerometer is only needed for position tracking, to turn the display over, so I put what I already used. A good chip with I2C / SPI interfaces and interrapts.

    A full-fledged SATA connector was supplied with the type “I want, why not)”. I understand that tablets use eMMC / NAND, but since there is an interface, why not use it? Since in this version there is enough space for SSD 2.5 ”- let it be.

    Maxim insisted on installing NFC. I still don’t know what he will do with this interface, but what can’t you do for the whims of a programmer? True, I would not really want him to try to pay at the grocery store, applying this device to a wireless reader.

    CAN is sometimes needed in our designs, so I installed the TJA1040T physics, we already have a driver for it, we can work with it, even connected it to our cars and looked at the tables. Interesting thing.

    Codec ADAU1761 again, to feel all the delights of working with sound. First of all, it was he who was conceived (and not SGTL5000, which is also nothing) for debugging firmware for the built-in DSP (SigmaStudio). Therefore, on the back wall there are two connectors for speakers (through an amplifier), on the side connector for the internal microphone, as well as several (remaining) inputs / outputs for 3.5mm jacks on the front panel.

    The HDMI output seemed very convenient to me, and on a standard connector. Prior to that, he put microHDMI in development, but it seems to me that this makes sense only when the dimensions are limited.

    So that all this somehow lives and does not consume 100500 amperes at the same time, I put the TCA6424 chip on the board - this is a GPIO expander, which in this case serves as a switch for the peripherals. SATA, the display (its power and backlight), sound (codec and amplifier), accelerometer, GPS and everything else is connected to the power via transistor switches TPS27081 is a dual transistor switch that can cut power to 8V and up to 3A. So in addition to any software sleep modes, you can hardware-disable interfaces. The expander is controlled by I2C, so you can write a screen programm that can turn everything off individually.

    Now why all the same Linux. According to Maxim, it’s much easier to run everything under Android, but as practice has shown, we have more projects for Linux. Yes, there will probably be more fuss, but it seems to me that with Xubuntu (it’s on the device right now) the “tablet” acquires some originality and is more suitable for our tasks.


    Fig. 5. Printed circuit board.


    Fig. 6. Board with installed components.


    Fig. 7. First start.

    5. Prospects. If it will be needed.


    First of all, of course, I want to reduce the dimensions in thickness. There is only one way to achieve this: transferring the processor to the board and changing its geometry. The rejection of SATA will be justified, it will be more correct to put eMMC on 64 / 128Gb (at the moment it costs 8Gb). The battery should not be on the board, but next to it, well, in general, we all know the location of the elements inside the tablets, everything has already been invented for us. I already wrote about the case above, I would like a cooling plate, I haven’t really thought about how to implement the remaining elements.


    Fig. 8. In the case. Audio in / out.


    Fig. 9. Assembled device.


    Fig. 10. Rear panel.

    6. Conclusions. Summarizing.


    Since the project is being developed (now software) in his spare time from work, not everything has been managed to be raised. Maxim is sawing something and the “tablet” is gradually coming to life, but the finale is not yet visible.

    In my opinion, the device turned out to be quite viable for the tasks described above. I installed the VLC player and now you can watch the movie on the small screen)). If, in essence, then my idea was realized almost completely (the first iteration), not counting the case. By soldering the module on the board, you can get a total thickness of no more than 23 mm - this, of course, is harsh for the current foreign electronics, but for the prototype it is quite acceptable.

    PS: a link to the sources github.com/boundarydevices/linux-imx6/commits/boundary-imx_4.9.x_1.0.0_ga I wish you

    all success in your endeavors!

    Only registered users can participate in the survey. Please come in.

    How do you end up?

    • 9.4% Author, you're crazy, finish it! 72
    • 86.6% Author, you are crazy, but go ahead! 660
    • 3.9% I have an iPad, I don’t recognize anything else! thirty

    Also popular now: