New Raspberry Pi Zero
pik33
Posts: 2,387
I already tested a (bare metal programmd) Pi Zero as a good companion for a P2
Now they released a new version: Pi Zero 2 - with 4x A53 on board. The rest (the form factor, connectors, etc) remained the same. $15 - or rather $21 here when including VAT - still one of the cheapest things with a CPU.
Ordered, to be tested as soon as I receive it.
https://www.raspberrypi.com/news/new-raspberry-pi-zero-2-w-2/
Comments
This is unexpected and great news.
How far did you get with bare metal programming?
What tools are required to "bare metal program" the Pi? Is it relatively easy to coordinate the multiple cores? I have an application that needs Bluetooth as well as USB host and it would be nice to avoid the long boot time of Linux.
Ultibo - www.ultibo.org
We have a lot of control on what we do with cores. including to free a core and make it do realtime tasks
We have no bluetooth yet (work in progress)
We have a lot of things working over USB (keyboard, mice, serial devices, hubs, storage)
I didn't tried USB gadget yet, but it seems to be possible too. USB subsystem is open to make a driver if someone know how to do this, most of low lewel things are done
We have VC4 available including a camera and openGLES. Also, on bigger Pis Ethernet works, too.
New RPi Zero works as I tried it yesterday.
The compiled code (kernel7.img) is small (up to several MBs) and starts in seconds (3..5) After that you can even remove the SD card (if you don't want to use it as a storage)
Too bad about the lack of Bluetooth support. I actually need BLE not just traditional Bluetooth. I'm kind of surprised it takes 3-5 seconds to boot. I figured it would be almost instantaneous. That's certainly better than the Linux boot speed though. Even when I got rid of the GUI, Linux took forever to boot on a Pi Zero. I only need USB serial so I guess that's supported.
The Raspberry Pi has to load the firmware first. Then the firmware loads kernel7.img. There is one second internal delay, which can be switched off. Also, the rainbow splash screen takes about a second, too and can be switched off, too.
The boot time on RPi4 is much slower as it needs about 5 seconds to display the rainbow splash screen.
Bluetooth is work in progress: https://ultibo.org/forum/viewtopic.php?f=10&t=1379&p=9550&hilit=bluetooth#p9550
Has anyone reported serial practical upper UART speeds yet ?
I did a quick trawl and info on higher usable BAUD rate is sparse, seems limited by small FIFOs in the UARTS.
With 4 cores now, the Pi Zero 2W could dedicate one core to UART manager, or maybe even one for USB, one for UART RX and one for UART TX ?
UART HW seems to be PeriphCLK /16 so 15.625MBd or 31.25MBd peak baud rates.
FT232H boards start at the same ~$15, and are limited to 12MBd, so something that can go faster would be nice to have.
FWIW: I am using the Picomite as a front-end to my P2. It's just nice to have a BASIC interpreter with on-board editor (coloured text supported) to facilitate rapid, on-machine development.
This is the first release of Micromite BASIC that is 100% open source.
At the default 125MHz, it executes ~100,000 lines/sec. It can be overclocked to 250MHz, however.
Startup is instant and such things as PWM are set and forget.
Datasheet states that UART BAUD is up to 921600 bps.
https://geoffg.net/picomite.html
https://github.com/UKTailwind/PicoMite
In the robot project using P2+RPi4/Linux I tested 4 Mbps (maximum I can set without messing with HW registers). The RPi and the P2 are connected using 1m long RJ45 Ethernet cable (UART is connected to the RJ45 socket on the custom daughterboard)
When using standard "breadboard type" 20 cm connectors between RPi and P2 3 Mbps was the maximum. Higher speeds caused transsmission errors.
Thanks. Were those results using the Ultibo bare metal pgm, mentioned in #4 ?
I think the Pi series also suffers somewhat, because they decided the primary UART is shifted to support Bluetooth, leaving a lower performance UART for the user.
No, this is Linux powered RPi4 as it has to process data from L515 lidar/depth camera. No way I can do this in bare metal. I can (and I did) connect a standard RPi camera using Ultibo, but not this USB3 (no support for USB3 in Ultibo yet) thing with very complex libraries/API.
Using Ultibo you have more freedom with setting serial clock/speed/etc, so maybe more can be achieved
Raspberry Pis with Bluetooth use the primary serial port to service Bluetooth chip. If Bluetooth is not needed, the primary port can be used at its standard pins. This can be done using an entry in config.txt
Raspberry Pi 4 has 6 UARTs, one "secondary" and 5 "full" so there is no more problem with the primary UART used by Bluetooth; you have 4 more of them - they have to be set up in config.txt.
Raspberry Pi 4 uses 750 MHz PLLD instead of 500 MHz which means theoretical speed can be up to 375 Mbps - I don't think any real cable can pass such a signal - USB and Ethernet use more sophisticated physical protocols, low voltage, differential pairs.
Update: we have working wifi for Ultibo. Still work in progress and not yet an official part of it, but it is there.
https://ultibo.org/forum/viewtopic.php?f=9&t=1602