FOSDEM slides and video

DyUvHPPXcAADnIH

FOSDEM is always impressive, even for people like me who go there for 7th time. It’s great place where you can see developers for almost every FOSS big project and talk face to face.

It’s really pleasure to see that last years there is Hardware related dev rooms too.

KiCad as always attracted lot of attention

DyeknEdW0AUyjbH

but CAD and OSHW devroom was pretty small, so people are waiting on long tails to get in and just few lucky ones succeed:

DyerwtnW0AAP6je

DyelG7MXQAA9q_R

For security reason the organizers didn’t allow people to stay standing or sitting on the floor, but this didn’t stop all. Next day I spoke to lot of friends and they said – I knew there will be no space for all who want to enter, so I just stay at the cafeteria and watched the stream.

It was same situation at the Andre Przywara talk One image to rule them all. There was no space in the room to accommodate all people who wanted to attend it.

There were three talks from Plovdiv at FOSDEM this year 🙂 Our friend Leon Anavi had two talks Making Open Source Hardware for Retrogaming on Raspberry Pi and The Software Developer’s Guide to Open Source Hardware. It’s cool as his full time job is as software engineer but as you can see he does OSHW in his free time and obviously like to talk more about his hobby than his daily work 🙂

I talked about some new OSHW boards we are working on last few months.

The idea is to build LoRaWAN infrastructire and install some free Smart City solutions in Plovdiv which to set example and to put all our work on GitHub so if other cities want to follow to be able to replicate and scale what we did and hopefully people to get aware more about the power of the open source hardware and software solutions.

Here are my slides and here is my attempt to speak English at FOSDEM. Sorry subtitles are not available 🙂

It was incredible pleasant surprise to see OLinuXino-LIME2 mentioned in Danny Haidar‘s lighting talk Creating a Computing Revolution: from Personal Computers to Personal Servers.

DyadsCfWoAAeJby

TuxCon 2019 Open Source hardware and software conference in Plovdiv will be 8-9 of June!

Screenshot from 2019-02-01 16-52-44

Reserve these dates in your agenda now as there will be lot of tech talks and workshops.

Looking forward to see you in Plovdiv!

This year Plovdiv is also European Capital of Culture and we have amazing number of culture events. One more reason to visit our city!

FOSDEM 2019 is this weekend in Bruxelles

fosdem1

FOSDEM the biggest FOSS/OSHW event in Europe is this weekend in Universite Libre de Bruxelles

FOSDEM traditionally starts Friday evening in Delirium Cafe.

With 47 devrooms, 7 main tracks, Keynotes and Lighting talks everyone can find group with his interest.

Olimex will present our new IoT developments with KiCAD at CAD and Open hardware devroom in Sunday.

If you want to meet and talk please send email to info@olimex.com, we will be in Delirium Cafe this evening and at ULB in the weekend.

Rockchip is releasing low power SOC with NPU targeting deep learning.

1808

We are hacking cheap Chinese soldering robot aiming to make it usable with camera fiducials and solder joint inspection. I shared some info on Hackaday 2018 Belgrade conference.

As we want to make the robot easy to use we are looking around for capable SOC with Deep Learning capability. It seems the only embedded available solution now is nVidia.

Allwinner has put in their V5 SOC info about AI and Trensorflow support, but looking at info for the only available board on the market it looks just statement and no actual implementation.

The AI they advertise looks more like OpenCV / Tensorflow lite libraries using the V5 GPUs, but not real NPU.

Rockchip seems to be this time a little bit ahead of Allwinner and has released RK1808 and RK3399pro SOCs.

Some info also start to appear in their rockchip-linux repositories.

We got RK1808 brief datasheet and here are the SOC internals:

screenshot from 2019-01-25 12-52-48

  • Dual core Cortex-A35
  • Internal 2MB SRAM
  • DDR 32-bit data width, 2 ranks max 2GB of DDR3/DDR3L/LPDDR3/LPDDR3L -1600
  • Neural Process Unit with 512KB internal buffer and Support for: max 1920 Int8, max 192 Int16 and max 64 FP16 MAC operations per cycle
  • eMMC 4.5 1-4-8 bit max 150MB/s
  • SD/MMC support
  • SPI Flash x1-4-8 data
  • video encoder/decoder up to 1080p
  • video input DPI 8-10-12-16 bit up to 150MB/s
  • camera input MIPI CSI up to 4 data lane, 2.0Gbps, MIPI-HS, MIPI-LP
  • LCD RGB 8/8/8 up to 1280×800@60fps
  • MIPI DSI 1920×1080 up to 4 data lane, 2.0GbpsA
  • Audio I2S
  • Gigabit Ethernet
  • USB2.0 HOST/OTG
  • USB3.0 5Gbps
  • PCIe 1/2 links with 2.5Gbps per link
  • SPI, I2C, UART
  • x4 10bit SAR ADC 1Msps
  • -40+125C operating temperature, targeting automotive and industrial vision apps

This chip is definitely not hobby friendly with FCCSP 420 0.3mm balls spaced at 0.5/0.35mm!

screenshot from 2019-01-25 13-41-56

Price info is not available yet. First evaluation boards will be ready end of March 2019. Rockchip will sell SDK with the NPU API also at unknown yet price.

Rockchip also upgraded their RK3399 including inside RK1808 and naming it RK3399Pro.
They keep the same RK3399 ball layout, so people who already made RK3399 boards can upgrade with RK3399Pro without changing lot on their PCB layout.

How they do it? They bond RK1808 in the same package and connect RK3399 with RK1808 via USB3.0 this is why RK3399Pro has NO externally available USB3.0:

screenshot from 2019-01-25 13-48-45

How they will manage power dissipation when they put together two quite power hungry chips is yet to be seen. RK3399 alone requires quite big heatsink as it dissipates up to 20W when the Cortex-A72 cores are running.

Working with A20 OLinuXino or SOM GPIOs when using new Armbian based A20 universal Linux image

a20

A20 GPIO ports are 32 bit registers listed in alphabetical order PA, PB, PC, PD, PE, PF, PG, PH, PI.

In Armbian GPIO ports are numbered from 0 to 287 corresponding from PA0 to PI31.

The GPIO number is calculating using this formula:

gpioNumber = (Port Letter - 'A') * 32 + pinNumber

 

For instance GREEN STATUS LED on A20-OLinuXino-LIME2 is connected to port PH2. This will correspond to GPIO number:

('H'-'A' = 7) * 32 + 2 = 226

 

All GPIO operations in shell should be made as super user. First we have to register the gpio in the Linux Kernel with this command:

sudo echo 226 > /sys/class/gpio/export

 

to check if we did registered this gpio successfully we use ls command:

sudo ls /sys/class/gpio

 

If you did everything correctly you will see gpio226 listed.

Then you have to specify what will be this GPIO input or output. This is done with writing “in” or “out” in gpioxx direction directory. In this case we want to drive the STATUS LED so we have to make it output:

sudo echo out > /sys/class/gpio/gpio226/direction

 

Once we set the GPIO as output we can write 1 or 0 to it’s value and this will make GPIO port to supply 3.3V when 1 is written or 0V when 0 is written.

To switch the LED on we have to write 1:

sudo echo 1 > /sys/class/gpio/gpio226/value

 

Yay the green LED is now lighting. If we want to switch it off we have to write 0:

sudo echo 0 > /sys/class/gpio/gpio226/value

 

To read the GPIO state it has to be set as input first with the command:

sudo echo in > /sys/class/gpio/gpioXXX/direction

 

where XXX is GPIO port number calculated as described above. Then to read the GPIO state you use this command:

sudo cat /sys/class/gpio/gpioXXX/value

the result will be 0 if the GPIO voltage is between 0.0-1.0V and 1 if the voltage is between 2.3-3.3V. If the voltage on the GPIO is between 1.0 and 2.3V the attempt to read will return randomly value 0 or 1.

Be careful when playing with the GPIO ports, some of them are wired to important peripherials like LCD, Ethernet, USB, SATA etc and writing bad values may break the functionality or even damage the board. Test your knowledge on GPIOs which are not connected to anything is best approach.

We are prepare now new version of PyA20 Python module which will add access to GPIO, SPI, I2C, Serial resources of A20 directly from Python code to work with the new universal A20 Armbian Linux image.

EDIT 2019-01-25 14:24:

We got question how fast is the access to the GPIOs via shell. Sure it’s not fast and made just for slow processes like switching on and off relays, or polling status of buttons or sensors which do not change often their state. Running this code below:

nano toggle_led_lime2.sh

 

Enter inside the file this code:

#!/bin/bash
# the lime2 led is PH2 - 32*(8-1) + 2 = 226

echo 226 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio226/direction
while [ 1 -eq 1 ]
do
echo 1 > /sys/class/gpio/gpio226/value
echo 0 > /sys/class/gpio/gpio226/value
done

 

Save and exit, then make executable and run

chmod +x toggle_led_lime2.sh
./toggle_led_lime2.sh

 

We can see square wave with oscilloscope on PH2 with frequency between 3 and 4 kHz. i.e. pulses with high state 125-150uS and low state 125-150uS.

Shell is slow, if we write same code in C:

#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>

#define PH2        226    // (32 * 7) + 2
#define GPIO_PATH  "/sys/class/gpio/gpio226/value"

int main() {
    int ret;
    int fd;

    fd = open(GPIO_PATH, O_RDWR);
    if (fd < 0)
        return errno;

    while(1) {
        ret = write(fd, "1", 1);
        ret = write(fd, "0", 1);
    }

    return 0;
}

 

The new code produces square wave with 2.13 us high and low state i.e. approx 235 kHz or about 50 times faster than access via shell.

A20-OLinuXino universal image updated – now supporting our new boards with SPI+eMMC

d6ndarl

We just uploaded new A20-OLinuXino universal image at our FTP.

With this image we add support for the new OLinuXino boards with eMMC+SPI.

Few things need some more attention and will be fixed in new image next week: boot from SPI with rootFS on HDD or USB Flash. The new LCD-15.6 eDP display also doesn’t like the new kernel and drivers, but will be fixed too. These are explained in the ISSUES.txt.

The new image also support our new 5″, 7″ and 10″ capacitive touch displays (not on our web for sale yet as still testing) automatically i.e. plug and play and no need to run display script, each time at boot it recognizes the connected display and configure the drivers.

All other peripherals and devices are tested to work with: A20-OLinuXino-LIME, A20-OLinuXino-LIME2, A20-OLinuXino-MICRO, A20-SOM and A20-SOM204.

Seven new version of ESP32 modules are add to our web shop

esp32-wroom-32-01-2

We add to our web shop seven new ESP32 modules:

ESP32-WROOM-32D-4MB – this is equal to used by us ESP32-WROOM-32, it uses D0WD instead of D0WDQ6 which is with smaller size and Espressif recommend it for new designs.

ESP32-WROOM-32D-16MB  has 16MB of Flash

ESP32-WROOM-32D-4MBHT is High temperature +105C module for demanding applications.

ESP32-WROOM-32U-4MB is with U.FL connector for external antenna

ESP32-WROOM-32U-16MB has 16MB of Flash

ESP32-WROOM-32U-4MBHT is High temperature +105C module for demanding applications.

ESP32-WROVER-4MB has 4MB Flash and 8MB of PSRAM.

The high temperature modules are still not in stock as Espressif manufacture these now, but all others are in stock.

Previous Older Entries Next Newer Entries