NVMe discs, Dual boot on 4te, Family Trees, GPS Unit

RISC OS London Show

What's on show?

At the SW show in February, the first beta versions of NVMe drivers for RISC OS were being demonstrated by RISC OS Bits and RISC OS Developments. Since the show further developments have taken place and the latest versions are now version 0.03 (25-Mar-2024) from RISC OS Bits and version 0.25 (02-Oct-2024) from RISC OS Developments. Both drivers now support NVMefs (NVMe:) and drives with both 512 or 4k sectors. NVMe drives are also now marginally faster than SATA drives but the overall difference in performance between SATA and NVMe depends on the actual drives and their formatting, so I have declared a 'dead heat'.

I have posted some test results on csa announce and on iconbar and shall be bringing the 'fastest' machines to the show.

I have written up a simplified DIY solution to build one of the fastest machines, described in this 2-page leaflet.

This 2-page leaflet describes what I will be bringing to the 2024 show.

This 2-page leaflet describes how to put together the 'RTC kit for the DeskPi' which will be on sale at the show.

This 2-page article describes the story of a bug. Discriminating between fixed (eMMc) and removable (SD card) storage.

Does RISC OS run on the Compute Module 4? Yes (since the end of January 2023). But there was a development at the South West show: RISC OS Bits were selling a Waveshare PCIe/SATA board for the Raspberry Pi IO board along with a ROM that included an ADFS/SATA driver. A Compute Module 4 with this board is now the fastest computer currently running RISC OS. It is also cheaper than the Titanium, the previous fastest machine.


Another case! Bottom left is the SATA board plugged in to the PCI Express socket on the IO board. Bottom right is a USB hub and two push buttons: one is reset and the other is to select an alternative boot OS. On the top is the fixed hard drive - a 120GB BX 100 SSD - and a socket for cold-plugging a second drive.

There was a further development at the MUG Xmas Show - RISC OS Bits were demonstrating an alpha version of a NVMe filing system for RISC OS. Now is therefore a good time to describe another small computer: this is 1″ x 2½″ x 3½″ and contains 4GB (RAM) + 16GB (eMMc) + 500 GB (NVMe) storage. It is based on the Waveshare Mini-B IO board.


Here are the bits! A custom RTC/fan board, a Waveshare fan, the Wavehsare Mini-B IO board with 4GB CM4 and another Mini board (actually an A) with an NVMe drive plugged in.


All assembled: adding the fan takes the height from 18mm to 22mm and the custom board increases this to 25mm. It is all a bit of a snug fit!

I have built another miniature computer, this time it is based on a Compute Module 4 Lite on a Waveshare 'Mini IO Board B' - this is fitted with an NVMe drive, 4 USB ports, 2 HDMI sockets, an Ethernet socket, a power socket and a switch to select whether it boots into Linux or RISC OS. Linux sits on the NVMe drive (RISC OS cannot yet talk to NVMe drives) and RISC OS sits on the SD card or eMMc along with the dual boot firmware. This YASC will be on display at the show. (YASC is Yet Another Small Computer.)


A diagrammatic view of the CM4 showing the dual boot switch - Linux or RISC OS.


The CM4 can barely be seen beneath the fan and there is only just space to fit in the circuit board and the 4-pin fan header (top left of the circuit board). The CJE RTC module is moved just far enough away to clear the fan housing and mounts on a 2- and 4-pin header.. The EMC2101 board mounts on a 2- and 6-pin header. The 4-pin header between them (and the 6-pin DIL header) support the circuit board itself. Underneath an NVMe drive is plugged in to the m.2 socket.


The less-than-elegant prototype with a flying lead for power (so that it can pick up 12V). It fits on the Pi Foundation IO board but there is not enough space for it to fit on the Waveshare IO board.


Underneath an NVMe drive is plugged in to the m.2 socket. It is powered from a USB C socket on the opposite face to the USB and HDMI sockets. It has a 40 pin header (to which the switch is attached). The Lite version uses the SD card and the eMMc version of the CM4 now also works under RISC OS (since 1 February 2023).

The SatNav software has been updated so that it can receive navigation data from a USB-connected GPS unit. This is important because purpose-built units that can function as a navigation device are rather limited in what they can display. A portable computer with monitor, battery etc. all built into a compact case, with a GPS unit plugged in to one of its USB ports can now display a map of where you are. A Pinebook Pro running RISC OS with SatNav and RiscOSM will be on the stand.


The Pinebook Pro screen showing SatNav 2.54 running with a USB GPS device that cost about £15 from Amazon. The yellow dots show the position in the sky for each satellite that can be seen (North at the top, horizon at the circumference and the central dot is overhead). On the map the GPS symbol shows position and bearing, just West of North and the bearing is repeated as a red dot on the SatNav window and as a red pointer on its icon bar icon. Only four satellites are being tracked because the GPS unit is on a table about 12 feet from the window. In the open air with a clear view of the sky it would be tracking more than four satellites.

The SatNav unit has been updated: with the hardware design now stable the previous 'breadboard' approach has been turned up a notch with a purpose built circuit board, seen here with the components soldered onto it. It has four sockets for the four modules: OLED, power, ADC and GPS.


The unit has been tested and works, adapting itself to the modules it finds to be present.

The printed circuit boards will be on sale for £10 each, complete with full instructions for building your own GPS unit.

Also on sale, for £25, will be a User Manual (printed in full colour) for Impression covering Style, Publisher and Publisher Plus - the few sections of the manual which cover features not present in Style are marked. Provided with the manual, courtesy of ROD, is an exclusive download link for the Impression Publisher Plus software at version 5.13, the last version issued by Computer Concepts. This represents extremely good value for money.


Only £25? For a full colour printed manual and the software iself?

Another manual on sale is the guide to the other software provided with Impression: TableMate, Equasor, Wordworks and SepEd2. This manual is on sale for £12 - it is printed in full colour. Both manuals have been completely upgraded to show screen shots on current machines.


The manual is shown with handy tabs to jump to particular sections.

Now for a bit of a gimmick - also on show is some software, RingBind, which will display a manual on the desktop as if open on the table. As each page is turned, an animated view of it turning is provided. One example provided is the current RISC OS User Manual, now released under the Apache licence. Full instructions for converting your own manuals are provided.


The current User Guide for RISC OS 5.28 is shown here with the animation, with handy tabs to jump to particular sections.

A 4té machine fitted with a switch so that it boots into either RISC OS or Linux depending on the position of the switch. It has an Elesar WiFi board and so should connect using the hotel's WiFi.


Fitting a small circuit board and a switch allows the unit to dual boot into RISC OS or Linux.


Now the logo can be interpreted as a legend for the switch - to the right and RISC OS will start up. To the left and then to the right, RISC OS will reset and reboot. To the left, Linux will start up.

My !FamTree software will be demonstrated at the show. It is priced at £15 and allows a graphical family tree layout to be produced. Also on show is a data monitor running RISC OS 5.26 designed to monitor the health of signalling circuits. This was described in the January 2019 issue of WROCC.

A printed copy of the User Manual for Impression-X (and Style and Publisher) will be on sale at a special show price of £25 (it is normally £29 inclusive of P&P) - purchasers of this manual will also get an exclusive download link for the Impression Publisher software. This is a bargain price for an excellent desktop publisher package. Also on sale will be a printed manual for the 'add-ons' Equasor, TableMate and WordWorks - this is priced at £12.

A regular newsletter about Impression-X is available:

I had the idea that relationships could be defined by means of the directory structure: each directory would represent an individual or couple and there would be a sub-directory for each child of the relationship. A tree‘ structure could then be produced, arranged vertically. Each directory would contain a text file providing the detailed information that would appear in the box and I would arrange some form of editing on screen to move the boxes around to make best use of the space.

When this directory structure is loaded into the application !FamTree, a draw graphic of the implied family tree is produced with the boxes widely spaced to be out of each other‘s way. This is shown in a work area window and will recognise mouse clicks on the individual boxes interpreting such clicks as demands to move left or right. With SHIFT held down, the movement is up and down. Holding CTRL as well magnifies the movement. After a little bit of editing, the graphic appears as given below. It uses space economically allowing a quite complex family tree (going back to 1750) to be created on 297mm x 1200mm paper, which I can print on my A3 colour laser printer.

The FamTree application also supports the import of files in the standard GEDCOM 5.5 format.

GPS Unit

I'll also be exhibiting the latest version of my SatNav application now running in a 3½″ x 2¼″ x 2″ box with a small internal battery which can float charge itself if an external battery or other 5V power source is attached. Although I will have a monitor connected to this device at the show showing a full RISC OS desktop with both SatNav and RiscOSM running, the unit is designed to provide sufficient information on an OLED display and an optional electronic-ink display.


The box is now pocket-sized.


The box is now quite a bit smaller.


A trip from Bristol to Milton Keynes was recorded using SatNav in GPX format and then passed to RiscOSM for analysis. The logging included information in the format below:

<trkpt lat="51.48479185" lon="-2.612334261"><time>2017-10-06T09:18:18.56Z</time><extensions><satnav:odo>2183</satnav:odo><satnav:dxy>10/26</satnav:dxy></extensions></trkpt>
<trkpt lat="51.48522501" lon="-2.611908333"><time>2017-10-06T09:18:29.00Z</time><extensions><satnav:odo>2240</satnav:odo><satnav:dxy>29/48</satnav:dxy></extensions></trkpt>

Development

The development of this project has been described in Archive magazine:

At the show you can see that a power boost board has been added to extend battery life, software-controlled power switching has been added (either using 'on' and 'off' push buttons or a Witty Pi and real time clock/alarms) and GPX logging has been added to internationalize Satnav, now at version 1.90.


The power boost board allows an internal 3.3V LiPo battery to be float charged by an external 5V powerbank or mains adapter. It produces an output of 5.2V from either the internal battery (3.3V) or the external power supply (5V), whichever is the higher voltage and will float charge the internal battery from the external source. If the internal battery becomes discharged or the external ENABLE line goes low, the unit will turn off.


The power control circuitry on the ProtoPAL board. The ‘on’ and ‘off’ buttons cause q and /q to change state. The ‘on’ button forces /q to go high (provided the ‘off’ button is open circuit, q will then stay low forcing ENABLE high). This turns on the power. During the boot process GPIO 4 is set to active output high. Holding the ‘on’ button down causes GPIO 19 to be low (which can be read by software, for example to download the log) and will light the LED if Vs is 5V - i.e. if there is an external power supply connected.
The ‘off’ button forces q to go high (provided the ‘on’ button is open circuit, /q will then stay low, which can be read in software via GPIO 26). With q high, this allows GPIO 4 to control the ENABLE signal: unless GPIO 4 is active output high, ENABLE will go low, turning off the power.
Once the ‘off’ button has been pressed, GPIO 26 will remain low, will be read by software, logging will be completed, the displays updated and a shutdown/restart cycle will be initiated. This updates the CMOS ‘last on’ time so that any subsequent start up will be with a time and date no earlier than this. The restart cycle resets the ROM modules, returning GPIO 4 to inactive and thus removes the power.

Making the breakout board is a bit fiddly. The first step is to wire up the board and test for shorts:


then carefully solder on the 74HC00 chip:

The ProtoPAL board now plugs onto a Pi model A+ and has a header for a PaPiRus display. Five flying leads, plus power and ground, are then soldered as in the diagram below:

the wiring diagram for the ProtoPAL board.

And just when I thought I had finished, the ProtoPAL board is discontinued. So here it all is again on a smaller breakout board. First solder on a few wires:

Then a few more, finishing off with a few diodes, resistors and a 74HC00 chip:

so that it looks like this design layout:

and here it is, fully functioning:

it has magnetic feet, a PaPiRus display on top, with OLED and GPS module on the front face.

a view from the rear, showing the power meter, sockets for USB, HDMI and a mains adapter or supplementary powerbank and the 'on' and 'off' push buttons.

A simpler and smaller unit without the power meter and the PaPiRus display. Is this the smallest RISC OS portable? The battery life is over 12 hours in a case 90mm x 60mm and 50mm high.

Testing the small unit in a short car trip shows the unit acting as a speedometer. The NMEA sentences it uses to derive its position are also shown - the demonstartion is running at about the correct speed with updates about every 2 seconds (the NMEA data are updated every 2s). The serial data arrive with no handshaking so occasional errors occur - thus the display may occasionally blank out (as it will have no new NMEA data to log and thus think it is lost or in a tunnel).

What you would see if you had RiscOSM running as well as the unit showing the speed on an OLED display. NMEA messages are also shown but you would not normally see these.

Loading the 'gpx' file log from the unit and analysing it in RiscOSM gives the results below:

RiscOSM 1.45 analyses the log file for the journey but speeds are a bit spiky.

RiscOSM 1.50 analyses the log file for the journey much more accurately now.