AgonLight Week Programming Challenge – ISSUE 3

Here we go to the Third issue of the AgonLight programming challenge.

This time taking into the account the feedback we got from Facebook we will extend it to be 1 week long, not just weekend!

So rules are changed:

What is WPC?

It’s a small coding challenge that you have to solve for 1 week from Friday 2nd of June to Thursday 8th of June!.

Who can participate?

Anyone can participate except Olimex employees. You can submit the solutions under your name or anonymously under an alias name.

What are the rules?

The code must run on AgonLight. There are no restriction how you will code your solution: Assembler, Forth, C, BBC Basic, Turbo Pascal for CP/M any tool is possible. If your tool need special installation you should provide brief note how to do it so we can verify your solution.
There is no restriction to re-use code found on internet and adopt it for AgonLight2 as far the code is working and doing the job!
The solutions should be sent to info at olimex dot com. You will receive notification email that the solution is received.

On next Friday 9th of June, we will push all solutions received to a special GitHub repository and announce the winner on Monday 12th of June, who will receive a €50 voucher to use in the Olimex web shop. The jury will consist of Tsvetan Usunov and Bernardo Kastrup.

So z80 retro ninja coders here is the third challenge for you!

Make Snake game for AgonLight in the next 7 days!

https://en.wikipedia.org/wiki/Snake_(video_game_genre)

Good Luck!

ZX-ESPectrum emulator tested with ESP32-SBC-FabGL, The Mensch computer with W65C256 got VGA display and Keyboard

https://github.com/EremusOne/ZX-ESPectrum-IDF is the next repository we try with ESP32-SBC-FabGL.

At first it didn’t build but after Twitter consultation the problem appear with PlatformIO which was searching for obsolete version of ESP32 tools, after adding one line in platformio.ini

[env]
platform_packages = toolchain-riscv32-esp @ 8.4.0+2021r2-patch5

the project compiled and show on the screen, there are still some annoying things like menus not working well and no programs in the slots, but I stopped spending time on it 🙂 a little bit more documentation would be helpful though!

Many people asked when W65C265 computer like AgonLight2 will be available and I reply that even now such computer is available: The Mensch W65C265 computer is available at Mouser for EUR 18!

Today I wired Mensch to ESP32-SBC-FabGL access bus following this schematic:

AccessBus.pin1 +5V to Mensch.J5.pin.3
AccessBus.pin3 GND to Mensch.J5.pin.1
AccessBus.pin5 (TX) to Mensch.J5.pin4 (RX)
AccessBus.pin6 (RX) in series with 220 ohm resistor to Mensch.J5.pin5 (TX)

The 220 ohm resistor is necessary as current limiter as Mensch is working on 5V while ESP32 on 3.3V

ESP32-SBC-FabGL is running the standard FabGL ANSI Termainal example with small modification. Mensch sends only CR but not LF. So the FabGL code should be changed when see CR on Serial port to send CR+LF to the terminal. In serialport.cpp this should be add:

void SerialPortTerminalConnector::rxCallback(void * args, uint8_t value, bool fromISR)
{
  auto obj = (SerialPortTerminalConnector *) args;
  if (obj->m_serialPortRXEnabled) {
    obj->m_terminal->write(value, fromISR);
    if (value == 13)
           obj->m_terminal->write(10, false);
  }
}

and we are set 🙂 now Mensch have VGA display and PS2 keyboard!

ESP32-SBC-FabGL tested with RunCPM 5.7 and 6.0, TinyCPC Amstrad, TinyNes, TinyMCUME

When I posted about ESP32-SBC-FabGL some people start asking, will it run runCPM? will it run TinyNES so today I found some time and tested few projects found on GitHub:

https://github.com/guidol70/RunCPM_VGA32

tested RunCPM6 and RunCPM5.7 both works but there are few things to change: both require SdFat library but do not compile with latest library version 2.2.2. but compiles fine with earlier version of the library 2.0.1

Also in the ttgo_vga32_esp32.h you must change the SPI for SD card definition to:

#define SPIINIT 14,35,12,SS // TTGO_VGA32 (sck, miso, mosi, cs)
#define SPIINIT_TXT "14,35,12,13"

once this is set you have to prepare SD card with CPM – I recommend you to use this one:

https://github.com/coopzone-dc/RunCPM/blob/master/DISK/mydiskA.zip

as this one has plenty of software inside like WordStar, MBasic, Turbo Pascal, E editor, Z80asm assembler etc.

Another interesting repository is

https://github.com/rpsubc8

I tested TinyNES

CPC Amstrad

So basically everything made for FabGL and TTGO VGA32 will run on ESP32-SBC-FabGL without any or with little change.

New Open Source Hardware design is verified: ESP32-SBC-FabGL single board computer based on FabGL library with PS2 keyboard, mouse and VGA display with many retro computer emulators

I learned about the FabGL library when we started manufacturing AgonLight2. The ESP32 was used as a graphics, sound, and IO keyboard co-processor for Bernardo’s Z80 design.

Upon checking the library, I discovered that the author, Fabrizio Di Vittorio, had already created several emulators for Altair8080, VIC20, and even old DOS PCs!

This is how the idea for ESP32-SBC-FabGL was born. I wanted to create a board that could be used as a graphics/sound/IO co-processor for other retro computers based on different processors.

Here is the ESP32-SBC-FabGL layout 105 x 65 mm board:

ESP32-SBC-FabGL uses ESP32-WROVER with 4MB Flash and 8MB PSRAM.

As you may guess, this will be very convenient platform to create Retro Computers based on same principle as AgonLight2, so some Retro Computers based on this platform will follow, but do not ask when 😉

The Access bus will provide interface to retro processors hats for Graphics, Sound, Keyboard and Mouse.

The LCD hat will allow handheld Game consoles to be created easily.

The LiPo battery charger and connector provide stand alone operation without USB connection.

Today we build the first prototypes and they work as expected.

All FabGL demos works!

Altair8080 with CP/M:

IBM-PC with DOS:

It was quite blast from the past to see Turbo Pascal 3.0 running

Boy it took me a while to remember how to quit the editor 🙂

ESP32-SBC-FabGL will be ready for sale in June.

We will put it on the web with pre-order state this week.

The price will be EUR 15.00.

In this price is included royalties for the Author of FabGL, so by buying this board you will support Fabrizio and his further developments.

Tsvetan

USB-4SERIAL is Industrial grade -45+85C Open Source Hardware USB2.0 High speed USB to Four RS232 Serial ports + shared RS485 port

USB-4SERIAL is and Industrial grade -45+85C, Open Source Hardware USB-C type connector USB2.0 High speed to Four RS232 level or TTL level Serial ports. Port4 can be multiplexed between RS232 and RS485 current loop.

You can connect as many USB-4SERIAL as USB ports you have on your computer, this allow easy scaling when you need more than 4 Serial ports.

First Serial port has also RTS/CTS control, the other three are just Tx/Rx pairs.

The RS485 current loop Serial port is shared with RS232 Serial port4 and is jumper selectable what functionality to have RS232 or RS485.

For link to embedded board Four connectors with TTL levels are available.

The baudrate can be up to 12Mbps (400Kbps on the RS232 levels DB9 connectors due to IC driver limitation)

ESP32-POE and ESP32-POE-ISO now can be ordered with WROVER module with 8MB PSRAM

ESP32-POE and ESP32-POE-ISO are the most popular ESP32 boards with Power over Ethernet features. They are supported by ESPhome, Arduino, MicroPython, PlatformIO and of course Espressif SDK.

Some customers need more than the WROOM module 520KB of RAM and asked for revision with more RAM and we released WROVER version with 8MB of PSRAM.

The tradeoff is that WROVER module uses some ports to access the PSRAM and GPIO16 becomes non available on the EXT2 connector. Beside this everything is same as with the WROOM modules.

TuxCon the open source hardware and software conference in Plovdiv is June 10 and 11!

Make sure to mark your calendar and reserve the dates of June 10 and 11 because this weekend will take place the TuxCon conference in Plovdiv.

On June 10, at the Technical University in Plovdiv, there will be a series of 9 talks starting at 11 o’clock. Following the talks, there will be a quiz with prizes and lightning talks, during which visitors can share something interesting they have discovered or are working on in the field of Open Source. The first day will conclude with the FOSS beer event at Fabric bar.

On June 11, the traditional soldering workshop will take place at the Olimex Training Building. Participants can choose between soldering kits or creating art using broken electronic components.

AgonLight Weekend Programming Challenge – ISSUE 2

What is WPC?

It’s a small coding challenge that you have to solve in two days during the weekend.

Who can participate?

Anyone can participate except Olimex employees. You can submit the solutions under your name or anonymously under an alias name.

What are the rules?

The code must run on AgonLight. There are no restriction how you will code your solution: Assembler, Forth, C, BBC Basic, Turbo Pascal for CP/M any tool is possible. If your tool need special installation you should provide brief note how to do it so we can verify your solution.
There is no restriction to re-use code found on internet and adopt it for AgonLight2 as far the code is working and doing the job!
The solutions should be sent to info at olimex dot com. You will receive notification email that the solution is received.

On Monday, we will push all solutions received to a special GitHub repository and announce the winner on Tuesday, who will receive a €50 voucher to use in the Olimex web shop. The jury will consist of Tsvetan Usunov and Bernardo Kastrup.

So z80 retro ninja coders here is the second challenge for you!

Make Flappy Bird game for AgonLight during this weekend!

https://en.wikipedia.org/wiki/Flappy_Bird

According to the Author it took him one weekend to write it 😉

Good Luck!

UPDATE 08-05-2023

With only one single submission we have the ultimate winner LuzrBum:

https://github.com/OLIMEX/AgonLight-WPC/tree/main/ISSUE-2

Our most complex OSHW board – the iMX8QuadMax Tukhla project first prototypes are assembled and they boot!

The Tukhla project was completed in April 2021. However, due to the COVID-19 semiconductor madness, we were unable to assemble prototypes because of the lack of semiconductors. The development of this project is financed by Ignitial SAS, a company based in France.

Finally we got enough chips to complete the first three prototypes and we assembled them last week before the May’s Holidays.

Tukhla has these features:

MIMX8QM5AVUFFAB 8-core processor:

  • x2 Cortex-A72 running at 1.6Ghz
  • x4 Cortex-A53 running at 1.2Ghz
  • x2 Cortex-M4F running at 264Mhz
  • 8 GB LPDR4 64 bit @1600Mhz

Connectivity:

  • 1× PCIe (2-lanes)
  • 1× USB 3.0 with PHY
  • 1x USB 3.0 dual role with PHY
  • 1× SATA 3.0
  • 2× 1Gb Ethernet with AVB
  • 1× CAN/CAN-FD
  • 1x HDMI Rx

GPU:

  • 2xGC7000 XSVX
  • 16× Vec4 shaders with 64 execution units
  • Dual independent 8-Vec4 shader GPUs or a combined 16-Vec4 shader GPU
  • OpenGL 3.0, 2.1
  • OpenGL ES 3.2, 3.1 (with AEP), 3.0, 2.0, and 1.1
  • OpenCL 1.2 Full Profile and 1.1
  • OpenVG 1.1
  • Vulkan

VPU:

  • H.265 decode (4Kp60)
  • H.264 decode (4Kp30)
  • WMV9/VC-1 imple decode
  • MPEG 1 and 2 decode
  • AVS decodeMPEG4.2 ASP,
  • H.263, Sorenson Spark decode
  • Divx 3.11 including GMC decode
  • ON2/Google VP6/VP8 decode
  • RealVideo 8/9/10 decode
  • JPEG and MJPEG decode
  • 2× H.264 encode (1080p30)

Display:

  • Supports single UltraHD 4Kp60 display
  • or up to 4 independent FullHD 1080p60 displays
  • 2× MIPI-DSI with 4 lanes each
  • 1× HDMI-TX/DisplayPort
  • 2× LVDS Tx with 2 channels of 4 lanes each

Camera:

  • 2× MIPI-CSI with 4-lanes each, MIPI DPHYSM v1.

Security:

  • Advanced High Assurance Boot (AHAB) secure & encrypted boot

Operating temperature:

  • Automotive AEC-Q100 Grade 3 -40+125C

We now experiment with NXP Yocto build images to verify everythings is working correctly, before we run production.

New Product Preview: RP2040-PICO30 Raspberry Pico with 30 GPIO available!

RP2040 is a nice dual-core Cortex-M0 SOC packed with a lot of features and a huge community that has been built up over the last two years since its announcement.

For our new Neo6502 design, we needed to use all 30 GPIOs on the RP2040. Although the RP2040 has 30 GPIOs, only 26 of them are available for the user, as GPIO23 controls the power supply, GPIO24 detects if USB is connected, GPIO25 is connected to the status LED, and GPIO29 measures the power supply after the 3.3V voltage regulator. While all these features are nice to have, there are many situations when you need to use ALL available GPIOs.

This is why we decided to release the RP2040-PICO30, where all 30 GPIOs are available for the user. We tried to be as compatible as possible with the RP2040-PICO layout, so we kept all signals in the same places and just removed 4 GNDs (as there are plenty in the RP2040-PICO) and connected the missing 4 GPIOs there.

Here is RP2040-PICO30 pinout:

In addition, we changed the USB micro connector used in the RP2040-PICO (as it can’t supply more than 0.5A by design) to USB-C, where up to 3A can be sourced. We also replaced the voltage regulator used in the RP2040-PICO with the proven SY8089A DCDC, which can deliver up to 3A at 3.3V.

RP2040-PICO30 has two buttons: RESET and BOOT and there is also status LED but it’s not connected by default to GPIO25 and require small solder jumper to be soldered if you want to use the LED. Of course we also add UEXT connector so our UEXT modules can be used with it.

This board is currently in the prototype stage and will be available for sale in late May. The price of the RP2040-PICO30 with 2MB Flash will be EUR 4.50. If you want the headers to be soldered onto it, the price will be EUR 6.00.

There will also be a version with 16MB Flash, and the price of the RP2040-PICO30-16MB will be EUR 6.50 without soldered headers and EUR 8.00 with soldered headers on it.

Previous Older Entries