Electronics > Open Source Hardware

Olimex €1 RISC-V CH32V003 retro PC with VGA and PS/2 keyboard

(1/3) > >>

brucehoult:
Can order now, ships October 4.

https://www.olimex.com/Products/Retro-Computers/RVPC/open-source-hardware

RVPC is EURO 1.00 old retro computer style RISCV computer with Keyboard, VGA and Woz like monitor which allow you to explore the RISCV architecture and assembler.

The RVPC is sold as DIY Kit for self soldering.

All components are carefully selected to be possible to be assembled even from beginners.

FEATURES

- CH32V003 QingKe 32-bit RISC-V2A processor

- 48MHz system main frequency

- 2KB SRAM

- 16KB Flash

- Power supply voltage: 5V

- PS2 keyboard connector

- VGA connector

- Audio Buzzer

- power LED

- Power supply Jack

- Four mount holes

- Dimensions 50x30 mm

SOFTWARE

- RVPC Wozmon demo code (shipped by default)

- Towers of Hanoi demo code

- TETRIS game demo code

- ch32v003fun covers you with software support for every feature of CH32V003

- Vmon is Woz like monitor for RISCV

- repository with retro games made for ch32v003


https://github.com/OLIMEX/RVPC/blob/main/DOCUMENTS/RVPC-user-manual.pdf

brucehoult:
The VGA output is made by the RISC-V CPU "bit-banging" an I/O pin at exactly the correct timing. Just like in the ancient Sinclair (Timex in USA) ZX80 and ZX81 this means the CPU spends most of its time drawing the display and can only run normal program code during the video H and V blanking periods.

Running the Towers of Hanoi demo:



Tetris:



The RVMON program (which I believe is pre-programmed into the CH32V003 when you get it) allows examining the contents of memory (RAM  or flash) in hexadecimal, entering new values into RAM, and executing RV32 machine code starting from any desired address -- which of course is very likely to crash the machine if you are not careful.

A talk on the idea https://youtu.be/YlYE9a7zsqY&t=20370s (at 5:39:30 if you are not taken there automatically)

MK14:
I can see one immediate problem.

Hand created/typed/entered machine code, has a significant risk of causing unintended crashes.  E.g. One hex digit wrong, out of the many digits for a real program, such as 500.  Could easily cause the program to simply crash and/or do nothing.

So, it could really do with some method of being able to store programs.

Example:
The Sinclair ZX81 (which this computer seems to have significant similarities to), was able to (very slowly) load and store programs to cassette tape.

Also, USB would probably be a more convenient way of powering it.  EDIT2: I think it was intentional, to allow users to easily assemble the kit, as USB connectors, can make it much harder.

But anyway, a fun kit/project/idea, just way, way too expensive for most people.   ;)

EDIT:
If it can keep the current program, in part of the flash, that would be better (I'm not sure if it currently does that).

On reflection, I think the idea is that you also buy the ESP32-S2-development-thingy (mentioned in the documents) unit, which plugs into it (via a 2 pin connector, one of which is ground), and then allows program development to take place on a PC.

brucehoult:

--- Quote from: MK14 on October 02, 2024, 11:54:58 am ---I can see one immediate problem.

Hand created/typed/entered machine code, has a significant risk of causing unintended crashes.  E.g. One hex digit wrong, out of the many digits for a real program, such as 500.  Could easily cause the program to simply crash and/or do nothing.

--- End quote ---

Yes, of course, and I SAID THAT.

Just like on Apple ][ etc, which I cut my hex machine code programming teeth on at age 17 in 1980 [1]. But, just like the Apple, if you can reset the board without powering it off then you can fix your code and try again.


--- Quote ---So, it could really do with some method of being able to store programs.

Example:
The Sinclair ZX81 (which this computer seems to have significant similarities to), was able to (very slowly) load and store programs to cassette tape.

--- End quote ---

The initial talk proposed using the very slightly more expensive 16 or 20 pin package, which would provide plenty of GPIOs to drive a cassette tape or simulation of one. They switched to the 8 pin chip to make hand soldering easier.

You could maybe output data using the audio output, and input things mechanically via the PS/2 e.g. using a KVM.


--- Quote ---If it can keep the current program, in part of the flash, that would be better (I'm not sure if it currently does that).

--- End quote ---

Certainly you can do that, given sufficient spare space in the 16k flash.


--- Quote ---On reflection, I think the idea is that you also buy the ESP32-S2-development-thingy (mentioned in the documents) unit, which plugs into it (via a 2 pin connector, one of which is ground), and then allows program development to take place on a PC.

--- End quote ---

Yes, and to download other programming e.g. the Towers of Hanoi or Space Invaders or whatever.

I haven't ordered the ESP32 board as I assume I can manage to use one of the many other boards I already have e.g. Pi Pico 2 etc.

[1] I didn't has access to an assembler at all, but 6502 machine code was significantly easier to encode by hand than RISC-V. Most people will of course run an assembler on a PC even if they then enter code by hand.

MK14:

--- Quote from: brucehoult on October 02, 2024, 01:13:49 pm ---
--- Quote from: MK14 on October 02, 2024, 11:54:58 am ---I can see one immediate problem.

Hand created/typed/entered machine code, has a significant risk of causing unintended crashes.  E.g. One hex digit wrong, out of the many digits for a real program, such as 500.  Could easily cause the program to simply crash and/or do nothing.

--- End quote ---

Yes, of course, and I SAID THAT.

Just like on Apple ][ etc, which I cut my hex machine code programming teeth on at age 17 in 1980 [1]. But, just like the Apple, if you can reset the board without powering it off then you can fix your code and try again.


--- Quote ---So, it could really do with some method of being able to store programs.

Example:
The Sinclair ZX81 (which this computer seems to have significant similarities to), was able to (very slowly) load and store programs to cassette tape.

--- End quote ---

The initial talk proposed using the very slightly more expensive 16 or 20 pin package, which would provide plenty of GPIOs to drive a cassette tape or simulation of one. They switched to the 8 pin chip to make hand soldering easier.

You could maybe output data using the audio output, and input things mechanically via the PS/2 e.g. using a KVM.


--- Quote ---If it can keep the current program, in part of the flash, that would be better (I'm not sure if it currently does that).

--- End quote ---

Certainly you can do that, given sufficient spare space in the 16k flash.


--- Quote ---On reflection, I think the idea is that you also buy the ESP32-S2-development-thingy (mentioned in the documents) unit, which plugs into it (via a 2 pin connector, one of which is ground), and then allows program development to take place on a PC.

--- End quote ---

Yes, and to download other programming e.g. the Towers of Hanoi or Space Invaders or whatever.

I haven't ordered the ESP32 board as I assume I can manage to use one of the many other boards I already have e.g. Pi Pico 2 etc.

[1] I didn't has access to an assembler at all, but 6502 machine code was significantly easier to encode by hand than RISC-V. Most people will of course run an assembler on a PC even if they then enter code by hand.

--- End quote ---

I was perhaps, partly wrong using the word 'Crash', which you did mention earlier in this thread, as regards getting the start address wrong.

I really meant the other/later forms of 'crash', such as when the software does run, but just doesn't do what it should, and outputs NOTHING.
So you are left scratching your head, as to why it is doing nothing at all.  Is it because it is actually crashing, or is it because the output parts of your software, have mistake(s), so they don't succeed in actually outputting anything (so strictly speaking not a 'crash' as such, but would appear to be the same).

Better (genuine vintage era) computer development systems, would allow independent 'soft' (i.e. nothing is cleared, except for the CPU registers), and 'hard' (RAM memory is cleared) resets.  As well as possibly single stepping, breakpoints and maybe other aids.  Which your 1980 Apple system, partly gave you, which was good!

I wonder if the included 'monitor' (I've not read up on it) does (or will in the future), include a number of useful built in routines.  Such as ones which write to the screen, accept user input, make beep sounds (via parameters), possibly even floating point arithmetic.
As well as many other useful routines, for use in peoples programs.  Such as writing to flash.

I think the 2k of RAM, would make it an interesting Forth language target, as that is one of the few (that interactively runs and allows development, on the device, without needing separate equipment) programming languages, that would still be fine with just 2k of RAM.

I suppose the original Arduino 'ONLY' had 2k of RAM, so it would still allow a tremendous amount of capabilities.

I'm still scratching my head over, how people can buy a 1 Euro dollar device, without incurring massive delivery charges and possibly VAT and maybe import/administration/fees as well.
But if it gets stocked in other suppliers, then it could be included in an order which involves buying other stuff at the same time.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod