December 02, 2023, 03:34:19 AM

Recent posts

A20 / Re: olinuxino-lime2 network sp...
Last post by LubOlimex - November 07, 2023, 09:50:22 AM
Ummm, what is WIFI-bridge and is it needed for testing Ethernet throughput. Can you try without it using only wires. We are now trying to determine if LIME2 is at fault for your woes so we have to strip down the hardware setup to the bare minimum. The bare minimum is GbE switch/router, cable and LIME2 board (with some debug medium). Then the best empirical test is to get some big file over the network, then write another big file somewhere in the local network.

But we use iperf in the quality tests.
A20 / Re: olinuxino-lime2 network sp...
Last post by mbosschaert - November 07, 2023, 09:31:29 AM
I've used the latest olimex debian images and kept them up to date. As test I used speedtest-cli. All boards, and the wifi bridge are conneccted to the same router.

For all the boards at both sides of the connection, it is indicated that the link speed selected is 1000Mbit/sec.

@Lub, could you tell which setup you use for testing? I could try to repeat that at my place to distinghuish between hardware and software causing the problem
A20 / Re: olinuxino-lime2 network sp...
Last post by LubOlimex - November 07, 2023, 08:45:55 AM
The Ethernet throughput of each LIME2 board is empirically tested after manufacturing and boards that have lower than 400Mbit/sec throughput are discarded. Based on that you can expect at least 400Mbit/sec. My personal tests show that throughput is at least around 600Mbit/sec.

If you have less than 400Mbit/sec search for the issue in the software or the network hardware and software configuration or cabling.

Are you testing with Olimage Linux?
A20 / olinuxino-lime2 network speed
Last post by mbosschaert - November 07, 2023, 12:50:09 AM
I'm puzzled by the network speed of my olinuxino-lime2 revL boards. I have several of these boards, most function as NAS or alike (backup server). On all boards I have olimex image bullseye, latest updates. Network cables are no longer than 1m and most cat6, one cat8. The max network speed I reach with my laptop via wifi is the same as the max indicated by my provider (about 400Mbit/sec). However none of the olinuxino-lime2 boards reach a network speed higher than 130Mbit/sec (connection is 1Gbit/sec Full Duplex as indicated on the router), and one of the boards is extremely unstable, moving between 6Mbit/sec - 80Mbit/sec.

Should it be possible to employ full 1000Mbit/sec at all with these boards and why would one board show such large variation without being under any additional load.

ESP32 / Re: ESP Prog - Female White Co...
Last post by wiseman - November 06, 2023, 04:03:51 PM
Many thanks for this!

I used a Picoblade and it seems to fit the same and my PCB powers on.
A13 / Re: How to use NAND and UART3 ...
Last post by LubOlimex - November 06, 2023, 02:18:12 PM
1. NAND won't work with mainline images. The drivers are not open-source and community won't make it work. If you wish to use NAND you have to use old kernel sunxi images.

Alternative is to use boards with eMMC. The eMMC has support under mainline kernel images.

There can be some way to get NAND working breaking the open source nature, but we have no experience with it and we don't know what has to be done. It is worth asking elsewhere if that is possible at all.

2. Doesn't seem like it. TWI2 seems to be PB17 and PB18 while LCD uses port D signals. TWI2 is available at GPIO-3 (pins 8 and 10).

3. What we have is the source code for everything we've done for Olimage (overlays, u-boot, kernel, etc, etc) at Olimex GitHub. Also this is good document on Olimage and the end there are some instructions:
ARDUINO / Re: ICE40-ADC with Arduino/Pi ...
Last post by josephberg - November 06, 2023, 11:37:50 AM
Quote from: tomh381 on January 28, 2023, 06:30:18 PMHi guys. I'm trying to use an ICE40-ADC with a Pi Pico (programming with Arduino IDE) to make a high-frequency oscilloscope. I cannot find anywhere an explanation of how to wire the ICE40-ADC up. I found the schematic but it makes no sense to me at all. Any advice/knowledge about this would be much appreciated.
The ICE40-ADC is a board that contains an ICE40 FPGA and an ADC chip that can sample analog signals up to 100 MHz. The Pi Pico is a microcontroller board that can run MicroPython or C/C++ code.

To wire the ICE40-ADC to the Pi Pico, you need to connect the following pins:

Connect the 3.3V pin of the ICE40-ADC to the 3V3 OUT pin of the Pi Pico.
Connect the GND pin of the ICE40-ADC to any GND pin of the Pi Pico.
Connect the SPI pins of the ICE40-ADC (SCK, MOSI, MISO, CS) to the corresponding SPI pins of the Pi Pico (GP2, GP3, GP4, GP5).
Connect the INT pin of the ICE40-ADC to any GPIO pin of the Pi Pico that supports interrupts (e.g. GP6).
Here is a diagram that shows how to wire the ICE40-ADC to the Pi Pico:

To program the ICE40-ADC and the Pi Pico using the Arduino IDE, you need to do the following steps:

Install the Arduino IDE and the Raspberry Pi Pico / RP2040 board support package3.
Select the Raspberry Pi Pico as the board and the appropriate COM port as the port in the Tools menu.
Write your code using the Wire library for SPI communication and the attachInterrupt function for handling interrupts.
Upload your code to the Pi Pico by pressing the BOOTSEL button and then the upload button in the Arduino IDE.
Here is an example code that reads the ADC value from the ICE40-ADC and prints it to the serial monitor:

#include "Wire.h"

#define CS_PIN 5 // chip select pin
#define INT_PIN 6 // interrupt pin

volatile uint16_t adc_value = 0; // ADC value

void setup() {
  Wire.begin(); // initialize SPI
  Serial.begin(9600); // initialize serial
  pinMode(CS_PIN, OUTPUT); // set CS pin as output
  digitalWrite(CS_PIN, HIGH); // set CS pin high
  pinMode(INT_PIN, INPUT); // set INT pin as input
  attachInterrupt(digitalPinToInterrupt(INT_PIN), readADC, FALLING); // attach interrupt handler

void loop() {
  Serial.println(adc_value); // print ADC value
  delay(1000); // wait for 1 second

void readADC() {
  digitalWrite(CS_PIN, LOW); // set CS pin low
  Wire.requestFrom(0x48, 2); // request 2 bytes from ADC
  if (Wire.available() == 2) { // if 2 bytes are available
    uint8_t high =; // read high byte
    uint8_t low =; // read low byte
    adc_value = (high << 8) | low; // combine high and low bytes
  digitalWrite(CS_PIN, HIGH); // set CS pin high

I hope this helps you with your project.
A13 / Re: allwinner a13 datasheet
Last post by vladimirstoyanov - November 06, 2023, 10:38:56 AM
Thank you!

It seems the A13 manual has everything that I need.
A13 / Re: allwinner a13 datasheet
Last post by LubOlimex - November 06, 2023, 09:58:51 AM
A20 / Re: A20-SOM REV D wrong board ...
Last post by LubOlimex - November 06, 2023, 08:45:22 AM
We already found a fix for "config write xxx" when the board has no EEPROM and it should be available after "apt update" and "apt upgrade" and "u-boot-install" (notice this might be hard to do if you just got one board and it is not booting successfully). It will also be included in next release, keep an eye at the FTP for the last modified date.