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.

Neo6502- Open Source Hardware Modern Retro Computer Project

I will admit, I have a sentiment for retro computers. This is probably because my career in IT started many years ago with the Bulgarian Apple ][ clone called IMKO2, later renamed to Pravetz 82.

This is also one of the reasons Olimex stepped into the AgonLight production.

AgonLight sparked a lot of enthusiasm and activity, not only here at Olimex. Bernardo Kastrup hit the sweet spot of the Retro Computer maniacs by offering them a small, fast, feature-packed real Z80 machine with plenty of memory. The Facebook group already has close to 1000 members!

There are a lot of posts about why not having a 6502-based machine, and Kyle (mos_8502), Rebecca (RenewedRebecca) and Bernardo (TheByteAttic) are already working on a W65C265 version using the same ESP32 FabGL-based video and audio system.

Two weeks ago, I started thinking, as an engineering challenge, is it possible to build a modern peripheral 6502 computer that is with the lowest possible cost.

Then I put the minimal requirements for my 6502 computer:

  • It must have a real 6502 processor.
  • It must have a minimum of 64KB of RAM.
  • This computer must run as fast as possible. People confirm that the W65C02 from WDC can be overclocked up to 16Mhz. On the other hand, a lot of software depends on instruction execution time for loops, so the possibility to run at a lower 1Mhz clock will ensure backward software compatibility. This can be achieved with a variable clock that can be set by 6502 software.
  • The computer must have a modern video interface like DVI/HDMI so that you can connect it to your home TV or modern monitor.
  • Support for a modern USB keyboard.
  • A sound synthesizer like the popular C64 SID.
  • The power supply should be via a USB-C connector so that you can use any phone charger with a USB-C cable.
  • A UEXT connector with modern interfaces like UART, I2C, SPI.
  • Disk storage for code.
  • The 6502 bus should be available on a slot/connector so that additional hardware can be easily added on.

The final requirement is to design such a system to be at the lowest possible price, making it an easy purchase decision, similar to what the Raspberry Pi did with a price of $25-30.

This is a good hardware engineering challenge!

After some research I have decided to use the Raspberry Pi’s new dual-core Cortex-M0 RP2040 as an emulator for everything except the 6502.

The RP2040 will emulate:

  • The RAM memory. The RP2040 has 264KB of RAM, which is plenty of RAM to hold the emulator code and at least 64KB for the 6502. As the RP2040 runs at 133 MHz, there will be no issue serving the slow 6502 with memory read/write operations. If there is more RAM left, we can implement some kind of bank switching, such as 56KB of continuous RAM from $2000-FFFF and switchable RAM banks for $0000-1FFFF. Alternatively, we can define a pointer and block size somewhere in the upper memory location, which can overlap different RAM segments at any address at any time. After all, what the RP2040 will serve at a given address depends only on the pointer, which will show where this data needs to be fetched from.
  • Initially, I thought of using the Si5153 programmable oscillator, which can clock from 250kHz up to 100MHz, but after checking the RP2040 PWM specs, I found that the RP2040 can also generate a programmable clock for the 6502 from 0 up to 100MHz. This saves us one more IC!
  • There is already a DVI generation project with RP2040 called picoDVI, which supports 640×480 pixel resolution with RGB565 16-bit color depth. This project loads about 60% of one of the cores in RP2040.
  • RP2040 has USB host capability, so there are no issues whatsoever in connecting a USB keyboard to it.
  • There are already RP2040 SID player projects that exist and can be reused for sound generation, such as picoSID.
  • Although the UART, I2C, and SPI are interfaces that the 6502 originally did not have, we can catch memory location read/write exceptions with RP2040 and emulate a classic PIA or ACIA. Alternatively, we can define some API in memory to access I2C and SPI buffers.
  • As for disk storage, RP2040 will have 2MB of external SPI flash to hold the firmware, but there will be a lot of free space. The Apple ][ 5″ floppy was holding the humble 114KB, so around 10 classic floppy discs could fit in a little more than 1MB.

One week ago, I posted my idea on the Homebrew 6502 Facebook group and received more than 100 replies with valuable comments and suggestions.

To summarize all the feedback and prevent redundant discussions, here are the FAQ:

Q: Why not emulate the 6502 with RP2040 as well?
A: Emulating memory or ACIA PIA is simple, but the 6502 is a complex state machine, and an emulator will never be 100% accurate. Even N6502 and W65C02 have differences, and we want to have a REAL processor.

Q: Have you checked the CommanderX16 project? You may get inspiration from it.
A: I have seen this project, but it is over-complicated, expensive, lacks modern peripherals, and is slower compared to what I want to achieve. This is going to be a MODERN 6502 computer. The CommanderX16 has no modern interfaces like USB keyboard, HDMI, SID Sound, or SPI/I2C. Additionally, the CommanderX16 costs $500, while we aim to target a $25-30 board.

Q: Why not make it with VGA? I have one in the basement.
A: We want Neo6502 to be a MODERN computer, and VGA is 40 years old technology.

Q: Why not use W65C265S or W65C816S, etc.?
A: These are not 8-bit and have more address lines to deal with, which will make the design more complex and far from the rock bottom price goal. For those who want a W65C625 computer, Kyle, Becky and Bernardo are already working on Agon X65.

Q: Why not Kickstart it?
A: Although Kickstarter is a great advertising platform, it has its cost. Kickstarter/PayPal combination takes 20-30% of the collected funds. We target rock bottom costs for our customers and count every cent, so we will not inflate the prices with 20-30% to use the platform.

Q: Do you have firmware developers for it?
A: Not yet, so any help and collaboration are welcome. I have already obtained all the parts together and will have a proof of concept on a breadboard this weekend. Then, we will design PCB and some prototypes in a few weeks. If you want to participate in software/firmware development for both RP2040 and 6502, you are welcome to join us! We will have some free early prototypes to send to developers. Send us email to info at olimex dot com.

Tsvetan

Who fears from the competition? RPi Foundation pressed Broadcom to stop selling BCM2835 to competing projects.

Odroid

On July 29th I blogged about the Raspberry Pi Clones which now exist and the new Odroid project which actually makes better hack friendly module based on BCM2835 including better power supply, LiPo battery support etc features.

This is pure example that no matter if your project is open or closed hardware it could be cloned if there is enough interest to do so.

Also I made speculations that due to the bad financial condition which Broadcom faces due to the Chinese SOC competitors they start selling their BCM2835 to anyone with money.

Well this must have upset RPi Foundation a lot and they should have start to pess Broadcom about stop selling the BCM2835 to others than RPi.

Today Odroid guys wrote on their G+ account: “We have to stop ODROID-W project soon since Broadcom will not supply the SoC to Hardkernel anymore.
When the first trial batch is sold out, you can’t buy the ODROID-W anymore. Sorry for the inconvenience.”

New Product in stock: SD-MMC 4GB card Class10

Image

This is Class10 fast 4GB card suitable for Raspberry Pi or as second disk on A20-OLinuXino-MICRO and A10S-OLinuXIno-MICRO second SD-MMC connector.

We also got in our webshop blank micro SD cards:

  • 4GB Class10 this is same card we use to write Android and Debian images for A13/A10S/A20 OLinuXino
  • 4GB Class4
  • 8GB Class4

all these could be found in Components->Storage section: https://www.olimex.com/Products/Components/Storage/

Does the Dog eat the pie?

Image

Electronic Design magazine had interesting interview few days ago with Jason Krinder about BeagleBone Black. The new $45 ARM board backed by the TI heavy marketing artillery.

According to Krinder they are selling now over thousand per day.

There is big silence in RPi corner since BBB release, there are no new bombastic announcements for round numbers in sales anymore, so does this means BBB ate the RPi sales? We are about to see by the end of the year.

A13-OLinuXino comparison to RPi, APC and CuBox

Image

Gareth Halfacree is Freelance tech journalist writing for Linux User & Developer UK Magazine and co-author of “Raspberry Pi User Guide” book http://www.amazon.com/Raspberry-User-Guide-Gareth-Halfacree/dp/111846446X

After the Linux Conference in Barcelona this November where Radoslav Kolev presented OLinuXino he contacted us and asked for sample A13-OLinuXino to test, we sent him A13-OLinuXino-WIFI and yesterday he posted on Twitter some interesting comparison charts.

He is comparing: Raspberry Pi, VIA APC, CuBox, A13-OLinuXino and his desktop computer AMD A10-5800K by several features performance per: price, power, size.

First chart is performance per 5W: http://freelance.halfacree.co.uk/charts/armbenchmarks-power.html as you can see here VIA-APC have worst ratio, while AMD is with best and A13-OLinuxino immediately next to it with only 11% worse performance.

Second chart is performance per price: http://freelance.halfacree.co.uk/charts/armbenchmarks-price.html here CuBox is with worst ratio while A13-OLinuXino is again next to AMD desktop followed very closely by Raspberry pi.

Third chart is performance per size, knowing A13-OLinuXino 120×120 mm size I didn’t expect here to be an leader : http://freelance.halfacree.co.uk/charts/armbenchmarks-size.html here CuBox is on top and VIA APC is with worst rate

Overall A13-OLinuXino show very good performance/features ratio on these charts!

Raspberry Pi can now work with UEXT modules

Image

In my previous post https://olimex.wordpress.com/2012/11/21/raspberry-pi-gpio-to-breadboard-and-uext-adapter/ I wrote about the Raspberry pi adapter we designed which allow Raspberry Pi to have access to the modules we have like Relay modules, Thermocouple sensor modules, 3-axis magnetometer and accelerometers, Zigbee, WiFi, GSM, GPS etc.

The RPI-UEXT adapter is already in stock and you can wire it to your Raspberry Pi with any 26-pin ribbon cable, we do offer 15 cm cable also which you can use with RPI-UEXT

On this video you can see how Raspberry PI is controlling MOD-IO 4 relays with the help of the RPI-UEXT adapter: http://www.youtube.com/watch?v=vuHU2SmLYBI

to make MOD-IO control as on above video with your RPi you should do as follows:

step 1:

sudo vi /etc/modprobe.d/raspi-blacklist.conf
The file should look like:

# blacklist spi and i2c by default (many users don’t need them)
blacklist spi-bcm2708
#blacklist i2c-bcm2708

step 2:

sudo vi /etc/modules

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with “#” are ignored.
# Parameters can be specified after the module name.

i2c-dev
snd-bcm2835

step 3:

sudo apt-get install python-smbus

step 4:

sudo vi modio.py

import smbus
import time
bus = smbus.SMBus(0)
address = 0x58

while 1:
bus.write_byte_data(address, 0x10, 0x0F)
time.sleep(1)
bus.write_byte_data(address, 0x10, 0x00)
time.sleep(1)

step 5:

sudo python modio.py

and you will see how the relays go ON and OFF 🙂

have fun!