AgonLight2 update: embedded Hello world in BBC basic

AgonLight2 is Z80 based retro computer running BBC Basic.

The first thing you do with embedded computer is to run the Hello World equivalent i.e. to blink LED.

AgonLight2 has 34 pin GPIO connector:

In this GPIO-1 connector we can see many different signals are coming both from Z80 and ESP32-D4 . In this demo we decide to connect LED to pin 17 which is GPIO_PC0 signal of ez80F92 processor.

I use Breadboard and some Jumper wires Female-Male to connect the LED anode (+) to GPIO-1.pin17 the LED cathode (-) is connected to 4.7 k OHM which then is connected to GPIO-1.pin3 GND.

With the above setup if PC0 is set high the LED with light ON. When the PC0 is set LOW the LED will go OFF.

So how do we access PC0 in BBC BASIC?

I admit I come from AppleSoft Basic so Z80 BBC Baisc is new for me.

Fortunately Quark Firmware is on GitHub so I can check the sources.

In BBCBasic.txt I nottice commands to access directly Z80 memory, these are GET and PUT commands.

In ez80F92 datasheet I read that GPIO ports are accessed through 4 registers:

PC_DR – data register at address 09E hex /158 dec an 8 bit register where every bit corresponds to port bit i.e. if I want to write in PC0 I have to modify bit0

PC_DDR – data direction register at address 09F hex / 159 dec and 8 bit register where every bit corresponds to port bit direction 1 means Input, 0 means output

I quickly check:

PRINT GET(159)

returns 255 i.e. all ports C are inputs by default

I change PC to output with the PUT command

PUT 159,254

then make PC0 HIGH with the command:

PUT 158,1

LED lights ON:

Yay!

PUT 158,0

command switch LED off:

Now we only have to put some delay between the ON OFF commands.

I search for delay in Quark sources without success when I nottice that INKEY command scans for keystroke pressed for some time and returns -1 if not suceed.

Let’s check if INKEY can be used as delay 🙂

PRINT INKEY 1000

prints -1 after about 1 second, great then our fill code becomes like this:

the code runs and the LED slowly blinks as on the video clip above!

AgonLight2 now is officially certified by OSHWA as Open Source Hardware

AgonLight2 now is officially listed on OSHWA.org directory as true Open Source Hardware project.

AgonLight Open Source Hardware Retro Computer Running BBC Basic was captured in KiCad and updated by Olimex

AgonLight is a well-documented small computer based on the Z80 family and running BBC BASIC.

With a VGA output and a PS2 Keyboard this is a stand alone retro style computer.

The project is open source hardware and software.

AgonLight may be also seen as an embedded BASIC computer as it has plenty of GPIOs available to interact with other components and modules.

The AgonLight was designed by Bernardo Kastrup and the Quark firmware is developed by Dean Belfield.

The project has an active Facebook group https://www.facebook.com/groups/agoncomputer/

We got a few inquiries from customers asking if Olimex is interested in making this project and we hesitated at first due to having the bad experience in the past with Maximite pseudo open source project.

After exchanging a few words with Bernardo via Twitter, we became confident that this is a true open source hardware project.

We checked the schematic and decided to do some small changes.

  • We decided to re-capture the design in KiCad instead of EasyEDA
  • The power of the original AgonLight is delivered by a USB-A connector which is quite odd and USB-A to USB-A cables are less popular. We decided to replace it with USB-C connector which is used in all new phones, tablets and devices due to the new EU directive. Usually everyone has such a cable at home to charge and transfer files to their cell phone.
  • We replaced the Linear voltage regulator with DCDC which delivers up to 2A current.
  • We added a battery LiPo charger and step-up converter which allows operations even if external power supply is interrupted.
  • The original design had a PS2 connector for a keyboard and required a USB to PS2 adapter to operate with the more available USB keyboards. We replaced the PS2 connector with a USB-A connector so a normal USB keyboard (which supports PS2) can be directly plugged-in to AgonLight
  • We routed the AS7C34096A-10TCTR SRAM with 40 ohm impedance lines as per the datasheet
  • Fixed a wrong signal naming in the ESP32-PICO-D4, which now is updated in the original AgonLight documentation.
  • Replaced the bare header 32-pin connector with a plastic boxed 34-pin connector following the same layout and adding two additional signals Vbat and Vin which allow AgonLight to be powered by this connector too.
  • Added a UEXT connector (https://www.olimex.com/Products/Modules/) which allows AgonLight to be connected to: temperature sensors, environmental air quality sensors, pressure, humidity, gyroscope, light, RS485, LCDs, LED matrix, relays, Bluettooth, Zigbee, Lora, GSM, RFID reader, GPS, Pulse, EKG, RTC etc.

We changed most of the components to our component base, which we source and stock in large quantities and allow us to bring the cost down.

The design was completed 1 week ago:

Today the first blank PCBs arrived:

Next week we will assemble 5 pcs to test by ourselves and then send to the original AgonLight developers.


AgonLight will be put on our web and available for pre-order next week with a special Christmas price of EUR 50 for a completely assembled, programmed and tested computer.


If the prottotypes are good mass production will follow and all pre-orders taken to 23.12.2022 will be shipped by the end of January.

We plan to make metal case and other accessories in the near future.

Ultrasound levitation soldering kits will be present at OpenFest for soldering workshop

Sound travels approximately at 343 meters per second. When two speakers are placed opposite one another and they generate sound with same phases, then acoustic standing sound waves are formed.

These sound waves have enough power to keep small objects in the air.

The wave length is calculated by dividing the speed of sound by the sound frequency. Our speakers are 40Khz ultrasound transmitters and the sound wave length is 8.5 mm long.

Ultra-Sound-Levitation soldering kit contains everything needed to build such a standing sound wave generator.

On 14th October is the 20th issue of Open Fest – the biggest Open Source event in Bulgaria.

Olimex will have its traditional soldering workshop there from 10.00 to 18.00 o’clock.

Participation in both OpenFest and the soldering workshop is completely free of charge.

Everyone who wants to test his/her soldering skills is welcome. Olimex employees will help you with the soldering and guide you at the workshop.

For these who can’t participate in the workshop, the Ultra-Sound-Levitation soldering kit is available on Olimex web site for sale and can build one at home.

New shield for STMP157-OLinuXino Industrial grade Open Source Hardware Linux computer

The open source hardware STMP157-OLinuXino industrial grade Linux computer got new shield which adds two UEXT connectors, second micro SD card and 40 pin GPIO connector in breadboard friendly 0.1″ (2.54 mm) step format.

STMP15X-SHIELD plugs on top of OLinuXino, the overlays are already included in OLIMAGE Linux images and no need for additional setup.

ESP32-C3-DevKit-Lipo RISC-V development board with build in USB JTAG, WiFi, Bluetooth5, Lipo charger and 15 GPIOs

ESP32-C3-DevKit-Lipo is EUR 6.00 Open Source Hardware compact development board with:

  • RISC-V running on 160Mhz
  • 400KB RAM, 8K data RAM
  • 4MB Flash
  • Two headers (soldered) with power supply and GPIO signals
  • ESP-PROG-C compatible rescue connector (if you mess with bootloader)
  • USB-C for programming and JTAG debugging
  • LiPo battery charger allowing handheld applications with single LiPo battery
  • 4 mount holes

This is all you need to get started with RISC-V programming in C and Assembly.

Shteryana Shopova recently did RISC-V workshop with this board and explained how to setup your tools for programming and debugging. Here you can find her work.

A64-OLinuXino Open Source Hardware Linux computer is back in stock

All variants of the Open Source Hardware Linux computer A64-OLinuXino now are back in stock!

GigaDevices GD32 boards replacements for the popular STM32 are now in stock

STM32 are one of the most popular Cortex ARM devices on the market as they are with aggresive pricing and nice features. The semiconductor crisis hit ST as all other semiconductor vendors and STM32 disappeared from the market. Many customers have been left for more than year without MCus.

GigaDevices is well known Flash memory manufacturer, they have range of ARM Cortex M3, M4 devices which are pin to pin compatible with STM32 MCUs.

We check GD32 assembled on our STM32 boards and they work equal the only difference we notice is that GD32 lack two wires JTAG SWD interface and only support the full JTAG, which is not big issue.

All code we test run equal on both STM32 and GD32.

Here are links for the GigaDevices based boards:

GD32-H103 header board equal to STM32-H103

GD32-P103 prototype board equal to STM32-P103

OLIMEXINO-GD32 Arduino like board equal to OLIMEXINO-STM32

OLIMEXINO-GD32F3 Arduino like board equal to OLIMEXINO-STM32F3

GD32-H405 header board equal to STM32-H405

GD32-P405 prototype board equal to STM32-P405

GD32-H407 development board equal to STM32-H407

GD32-E407 development board equal to STM32-E407

GD32-P407 development board equal to STM32-P407

TuxCon 2022 will be on 4 and 5 of June in Plovdiv

TuxCon is an annual event about free and open source software and hardware.

The entrance is free for all visitors.

TuxCon is a community event and it is organized by volunteers.

The twitter hashtag of the event is #TuxCon.

The conference is scheduled during the first day of the event (Saturday, 4 June 2022).

Workshops and unconference will take place at Olimex training during the second day of the event (Sunday, 5 June 2022).

New more compact design of ARM-USB-OCD-H(L) is released with USB-C connector

ARM-USB-OCD-H is very popular OpenOCD debugger supported by almost all IDEs and platforms. It’s in the Application notes of Intel and ARM processor vendors.

The ARM-USB-OCD-H initial design was made many years ago and some parts are obsolete like the USB-B to USB-A cable, big plastic shell from centronic 36/36 connectors etc.

As the centronic plastic became unavailable this year we decided that it’s good time to re-design ARM-USB-OCD-H completely.

Smaller and more compact plastic box is used. The USB connector now is USB-C, so popular USB phone cables can be used.

Our recommendation is customer to move to ARM-USB-OCD-HL it’s completely same as ARM-USB-OCD-H but supports targets with voltage levels from 0.65-5.5V

Previous Older Entries