STM32MP1-OLinuXino development update, we managed to build Ubuntu 18.04.LTS with Linux Kernel 5.3. Now we need your feedback on GPIOs

kit

One of the benefits to work with European SOC vendor and distributors – just few days after we show interest in the new STM32MP1 series of SOCs DHL come with one big carton where we got STM32MP151AAC and STM32MP157AAA3 samples plus the most comprehensive ST kit with all features of the high end STM32MP157AAA3. The credits go to EBV as we got these totally free of charge. The kit came with comprehensive documentation for both board, software support etc. In regard of customer friendliness Chinese SOC vendors has long way to go.

We needed one day to build our own Linux image as we didn’t like (no offense) the Yocto ST uses, so here is Ubuntu 18.04.LTS with Kernel 5.30 boot:

screen

Overall we have very positive vibes that STM32MP1 is good candidate for new industrial grade OLinuXino-LIME2!

The specs of the STM32MP1-OLinuXino-LIME2 we work now are:

  • STM32MP151AAC or STM32MP157AAA3 they are pin to pin compatible so one board will be used for both
  • 1GB DDR3L industrial grade memory -45+90C
  • Gigabit Ethernet with PoE plug-in option (*)
  • AXP209 PMU with LiPo charger and step-up so everything works even with no external power supply
  • two USB 2.0 high speed hosts
  • USB-OTG 2.0
  • HDMI+CEC
  • LIME2 board shape and same connector positions
  • replacing with CAN the SATA connector
  • micro SD-card
  • SPI/NAND/eMMC Flash on socket and different options(**)

(*) we love what Raspberry Pi did with their PoE hat, board which is working as normal, and have PoE functionality if PoE hat is attached. We intend to add such PoE feature to our other Allwinner boards too, but will take time to re-design them all.

(**) this is new experimental feature instead to keep many different LIME2 board versions which only differs the amount of flash on them. The Flash will be on plug in module, something which Odroid does for years and we do wonder why we didn’t do earlier, as now keeping so many versions of LIME, LIME2 and MICRO is killing our production manager and logistics :). If these Flash modules work as expected we will re-design our LIME, LIME2 and MICRO to use them also .

STM32MP1 series has some very unique features missing in Allwinner SOCs like:

  • 6× I2C up to 1 Mbit/s
  • 4× UART + 4× USART up to 12.5 Mbit/s, ISO7816, LIN, IrDA, SPI slave
  • 6× SPI 50 Mbit/s, 3 FD I2S audio class accuracy
  • 4× SAI stereo audio: I2S, PDM, SPDIF Tx
  • SPDIF Rx with 4 inputs
  • 8-14-bit camera interface up to 140 Mbyte/s
  • 2× ADCs with 16-bit max. resolution 3.6-4.5Msps
  • 2× 12-bit D/A converters 1 MHz

We will try to arrange GPIOs with similar functions so A20-LIME2 current customers to may exchange with STM32MP1-LIME2 if they want or to have second SOC choice, but we are open to listen to your tips and suggestions how to arrange the ADC/DAC signals and extra I2C, UARTS, SPIs on the GPIO1-GPIO4 connectors optimally.

STM32MP1 series has only one operating temperature range -45+125C.

Many people may think that on 650Mhz the Cortex-A7 cores are running slow, but this is because this SOC has to work reliable from -45 to +125C. All SOCs which run on extended temperature range run on lower speed clocks compared with same parts which run on commercial 0-70C. If you want to run your STM32MP1 board at home in non demanding apps, we are pretty sure you will be able to overclock it at much higher values and it will work, but when we talk industrial devices and reliable 24/7 operation the clocks are always announced with most conservative values.

The Open Source Hardware Linux board A20-OLinuXino-LIME2 is now supported by freedom respected Parabola GNU Linux-Libre distribution

Parabola_Gnu_Linux-libre_icon.svg

Parabola GNU Linux-libre is derived from Arch (the GNU/Linux distribution) and provides packages from it that meet the Free System Distribution Guidelines (FSDG) and replacements for the packages that don’t meet this requirement.

The goal is to provide a fully freedom-respecting GNU+Linux distribution.

We are very happy to announce that now A20-OLinuXino-LIME2 is one of the supported boards.

Magic shield plates helps naked A20-OLinuXino-LIME2 board to pass CE EMC requirements.

Ax0-OLinuXino-LIME-1

A20-OLinuXino-LIME and A20-OLinuXino-LIME2 are choice for many industrial applications, when the board is inside metal box like BOX-LIME:

BOX-LIME-BLACK-1

it has no problems with shielding the radio emissions, but when just board is used as component, our customers has to shield it by their own in their designs. We had number of request to do official CE EMC certifications for A20-OLinuXino-LIME2 as this would make their life easier, and we decided to do this after we already get some experience with the certification of USB-ISO and ESP32-POE-ISO.

Initially the naked board failed on EMC measurements as seen here from the test results.

LIME2-naked

The major problem is the Gigabit Ethernet PHY. You can see spikes at 125 Mhz, 325Mhz etc. Disabling the PHY removes all noise and everything is in safe levels. So we knew who is ther trouble maker.

The major noise emitter are the Transmit and Receive clock lines. We put 33 ohm resistors in series R119 and R123 in A20-OLinuXino-LIME2 schematic , but obviously this was not enough. To further fade the line harmonics we replaced the resistors with 0402 Ferite Beads with 600 ohm impedance at 100 Mhz. This lowered the emissions, but still not well enough to be at safe levels.

So we had to make small Faraday cage on top:

LIME2-SHIELD-top

and bottom of the board:

LIME2-SHIELD-bot

this effectively removed all noises and the A20-OLinuXino-LIME2 pass CE requirements:

LIME2-1

LIME2-2

LIME2-3

LIME2-4

We are preparing now to implement the Ferite Beads on PHY Tx and Rx lines in all our other boards production assembly, and will offer the shield plates as kit they are good for A20-OLinuXino-LIME and A20-OLinuXino-LIME2 and we will prepare same for A20-OLinuXino-MICRO and A64-OLinuXino.

 

Lime2-SD add on board for second SD card on A20-OLinuXino-LIME2

Lime2-SDa.jpg

Lime2-SD is small add on board which snaps on GPIO-1 connector and add second SD card to A20-OLinuxino-LIME2. It doesn’t interference with other parts on the board and do not increase the height.

Lime2-SD

Why we do this? Because this is an easy way to increase storage for Pioneer-FreedomBox-HSK . What we are preparing to offer soon is upgraded version of the Home Server Kit with 256GB storage made with 2 “disks” x 128GB micro SD cards. For these who already have Pioneer-FreedomBox-HSK they still can upgrade by ordering Lime2-SD .

Note that support in FreedomBox for Lime2-SD is not add, but you can try Lime2-SD with the current Armbian image for LIME2. To enable the Lime2-SD support you also have to add this dts overlay .

 

A20-OLinuXino-LIME2 now with PCB revision G

a20-olinuxino-lime2

A20-OLinuXino-LIME2 now is assembling on same PCB Revision G as A20-OLinuXino-LIME2-eMMC.

What are the improvement:

  • Ethernet PHY is changed to RTL8211E replacing the obsolete RTL8211CL no need for kernel patches;
  • we drop the odd shape which was necessary to fit LIME2 in the plastic box as we now have range of metal boxes;
  • the four mount holes now have grounding for better contact with chassis;

Meantime we silently work on further improvement for next revision (to be released March 2017):

  • adding SPI boot Flash;
  • replacing RTL8211E to industrial grade PHY, so the board can be produced completely in -40+85C operating temperature;

 

Alternative Linux images for LIME and LIME2

A20-OLinuXino-LIME2-1

Igor Pecovnik has created optimized Debian image for Cubie board named Cubian, he asked for sample board and we sent him LIME2 so few days after he received the board he generated optimized Debian image for LIME2, you can see the instructions and images on his blog: http://www.igorpecovnik.com/2014/11/18/olimex-lime-debian-sd-image/

A10-OLinuXino-LIME-1

Remy van Elst did minimal Debian 7 for A10-OLinuxino-LIME https://raymii.org/s/articles/Olimex_A10-OLinuXino-LIME_minimal_debian_7_image.html

A20-OLinuXino-LIME2 review and updates

A20-OLinuXino-LIME2-1

Sorry for blogging so late for A20-OLinuXino-LIME2 but last two month every week I had to travel somewhere.

This is also the reason for the two last weeks without Weekend Programming Challenge and Friday Free Board Quiz.

I promise these will be resumed next week after Open Fest 🙂

A20-OLinuXino-LIME2 is product of the continual improvement of our OSHW OLinuXino boards based on your feedback, tips and suggestions.

The major differences to A20-OLinuXino-LIME are:

1. Much better routing of DDR3 memory. We increased the number of layers to 8 vs the 6 layers in LIME, we put the DDR3 memory closer to the A20, we layout the tracks shorter, as result now LIME2 runs with DDR3 on 532Mhz on LIME there were problems to run DDR3 at more than 400Mhz.

2. Double the memory, LIME2 now is with 1GB RAM and we expect 8Gbit DDR3 memories to experiment on having LIME2+ with 2GB RAM (shhhhht do not tell anyone and do not ask when it will be available as we also don’t know if these experiments will be successful).

3. Faster Ethernet, now we use A20 GMAC instead of EMAC so LIME2 have Gigabit Ethernet.

4. GPIOs 0.05″ connectors now made right. When we designed LIME we first though to use female connectors instead of male, but when we finished the design we realized that this time we will break the order we made all “mother boards” to have male connectors (to may connect to ribbon cables) and the shields/modules/capes to have female connectors. In the last moment we decided to make LIME with male connectors and we had the dilemma – to go again to re-routing and prototyping or just to assembly the female connectors with male, we wanted to release LIME earlier so we went with the latter without realizing that this way when cable is attached the cable numbering will be mirrored!

Once we made this mistake we continued it with A10-OLinuXino-LIME-UEXT as otherwise we couldn’t have functional extension board.

Then we had internal discussion if we have to make these GPIOs right, the problem was that there were already many thousands LIMEs sold so what to tell to our customers who already bought LIME and made shields for it? So we left it “as is”.

In LIME2 we decided to make it right and LIME2 is with connectors which have no mirror, but this make them incompatible with LIME 😦  What we will do now is to make new version of LIME with correct GPIOs, but we will keep the production of the old LIME too, just have to figure out how to name the new board to not add more confusion to our customers.

So to conclude about the GPIOs:

LIME and LIME2 connectors are with different layouts (mirror). This means you can’t use A10-OLinuXino-LIME-UEXT on A20-OLinuXino-LIME2. We have A20-OLinuXino-LIME2-UEXT which is in production and will be ready around 10th of November in Stock.

Also new version of our A13-LCD4.3 A13-LCD7 and A13-LCD10 is developing which have standard 40 pin LCD connector to attach to A13-OLinuXino and A20-OLinuXino-MICRO + two small connectors for direct connection to LIME and to LIME2. I hope this is not confusing for you too :)))

Here is picture on the new LCDs:

LCD

as you can see you can connect directly now any of our boards including LIME and LIME2 without need to go through adapter board.

I’m sorry for all these confusions but we decided to make thing right and move forward than to keep the GPIO error forever (Arduino for this reason keeps the shield connectors off 0.1″ step, they made initial mistake but decided to not correct it).

Now we will have the inconvenience to keep LIME (mirrored GPIOs), LIME2 (correct GPIOs) and NEW-LIME(correct GPIOs) but this is our mistake and we want to fix it.

EDIT: Something important! Debian and Android images for LIME and LIME2 are different because of the memory and Gigabit ethernet, so if you have LIME download the images for LIME if you have LIME2 download the images for LIME2!!!