mailto: blog -at- heyrick -dot- eu
Looking for Ovation v1.55?
Secure connection failed?
I seem to be getting this a lot with Google these days. Side effect of government spying, or Google not as omnipotent as they'd like us to think?
Raspberry Pi Zero
I noticed that Pimoroni had one in stock. £4 for it, £4 for some connection cables, and £4 for postage. With the post-Brexit UKP crashing through the floor, the price in euros wasn't so much different...
The first one got itself lost in the post. After some patient waiting and emails back and forth to Pimoroni, they sent out a replacement. This one arrived. ☺
Damn! It's tiny!
The specification is as follows:
- Processor - single core ARM11 clocking 1GHz (basically a sped up Pi Model B)
- Memory - 512MiB RAM (same a later issue Model B; twice that of my Model B)
- Video - miniature HDMI connection (not the Pi's small DVI socket); option for composite video (it is provided as two pads on the board)
- Audio - only available via HDMI
- I/O - 40 pin GPIO (etc) (same as the B+ etc), header not fitted as standard
- Storage - Micro SD
- USB ports - 1
- Ethernet - none
- Indicators - one "ACT" LED that flashes for SD card access
- Other - has a camera interface
While the lack of ethernet and USB ports might be a deal breaker for some people, what seems evident to me is that this Pi is not intended for those sorts of applications. I can see this as being a "smarter" microcontroller board. You can develop a project on a compatible Pi with more capabilities (such as the B+) and then switch to the Zero for the device itself.
Ideas? Well, one I had in mind was a washing machine controller. A standard washing machine will have several sensors - temperature and water level. These tend to be binary state, not analogue. A varying output temperature sensor is not helpful when the mechanical control mechanism only wants to know if the temperature has been reached - yes or no. As for outputs, we have three(ish). The first is the heater element. The second is the bilge pump. The rest are the motor. I say "rest" in plural because the motor is capable of operating in both directions and varying speeds. For instance the drum spins slowly in the delicates cycle, a bit harsher for the normal cycles, and may have multiple speed settings for the spin - typically around 300rpm for general spin, and may be anything up to 1200rpm for final spin.
There may or may not be an output to latch the lid/door closed. On my machine, it's hardwired to the power button, but it may be preferred to place this under software control so one can stop the machine for that "last minute addition" without having to turn it off (and set it up again afterwards; not forgetting the small but noticable delay as the machine boots itself).
The software will need to handle problems in a safe way, so we don't arrive at situations such as the heater on while there's no water, or the drum doing 1200rpm with the door lock disengaged. This extends to software failure where it is imperative that a crash forces everything off - within RISC OS this is perhaps best handled as a watchdog hanging off TickerV so it will still be running if the foreground has frozen for whatever reason ("Disc full" error box, for instance).
The rest? The rest is just programming a sequence of timed actions to follow and then obeying them. And we can be smarter here than some devices. Consider a bread maker. Have you noticed that many bread makers on the market have a countdown timer that tells you when the bread will be ready? Have you noticed that the times are always the same for the same type of bread? That's because there is zero intelligence or sensing. The bread maker doesn't care what the starting temperature of the ingredients is. It just knows to beat the dough to hell and back for this amount of time, then run the proving cycle for this amount of time, beat the dough some more, then bake it for this amount of time. If we were going to be a little smarter, we could keep an eye on how long it takes to reach temperature or maybe how often the heater needs to kick in, and tweak things for better results. A cold kitchen won't behave the same way as a hot kitchen, for instance.
I have, actually, seriously considered this. A few buttons for control, a serial LCD (one of those 24x2 ones)... The problem is, a few years ago I pinched the motor capacitors from the second washing machine to replace the one in the Zanussi that we use; and later for the pump of the poop grinder. And stupidly, I never made a note of which wires went to which capacitor nor the ratings. No problem, I thought. Pretty much every washing machine I've seen the inside of has a schematic stuck to the inside somewhere. Doesn't seem to be the case with this machine. Ho hum.
My initial trial was going to be to install NOOBS and get OSMC running. I downloaded NOOBS, unpacked it to a fresh SD card. And nothing. Well, something, but nothing useful. NOOBS is broken, it just won't give a video display.
I have an older copy of RaspBMC running via an older NOOBS. Powering up with
Shift held will go into the recovery console. Pressing
2 (HDMI safe mode) followed by
1 (HDMI normal mode) a bunch of times will coax a display out of it. But this new NOOBS? Nothing worked. The LEDs had lit up, the ethernet was on, so booting was successful. But no video. At all. Not even composite video.
So I gave up with that, downloaded OSMC's installer and dumped OSMC directly onto the Micro SD card. Then I hooked up everything:
The Pi Zero is hooked to a power USB hub, which is itself powering the Pi (not backpowered, a power lead connection). Attached also is a keyboard and a card reader with a 32GB SD card installed.
I had amended the CONFIG.TXT file to force HDMI, and a 1280×1024@75Hz mode, so I'd be certain to see something on-screen. Accordingly, OSMC started up, formatted the rest of the SD card, and did a bit of housekeeping before asking me some configuration questions.
That done, it was testing time. As expected of the Pi, it pretty much failed to cope with a 720P HEVC H.265 video. That's not a surprise, my quad core phone clocking 1.4GHz can't do it either; nor can a 2.8GHz P4 (actually the phone manages better than the P4!). And I'm not having much luck finding something able to transcode this elitist-bastard nonsense into something more mainstream that, you know, stuff can play.
Regular video played as expected. Semi-HD (960×720 - the HD version of 4:3) versions of the Cloud9 Adventure Series (downloaded from YouTube) looked good, albeit with that slight fuzziness that you get from film originals. The 720P animé of Planetarian looked lovely. And it coped with subtitles just fine, in the animé and in Marumo no Okite. The latter, I muxed myself.
Some screenshots of this - first, the Adventure series, and a kind of boring picture but it's what I was looking at when I thought to take a screenshot. It is odd looking at a 4:3 aspect HD picture, but you really can see quite a bit more detail than a 480P equivalent. Well, us Europeans have a 576P intermediary, but sadly the prevalence of Americanism means we're stuck with lame-ass 480P as our "SD" resolution, despite it having nearly 100 scanlines less resolution than PAL could achieve.
Now Planetarian. This is the only series that I am following this season. And it's a short. Episodes under 20m each (including titles) and running for something like five episodes. That said, it is an interesting story, and it looks really good.
And finally, Marumo no Okite, a Japanese drama where two children who have lost their parents live with a friend of the parent because they wanted to stay together and other family members only wanted one or the other but not both. I guess it says a lot about the difference in Japanese values that such a thing is possible. If this was the United Kingdom, we'd surely have Andrea Leadsom looking at a 38 year old single guy looking after a 6 year old girl and 6 year old boy and implying he's a paedophile...
Obviously this is only a little test. I didn't try Raspbian or RISC OS, although I have no reason to believe either will present problems given the Pi Zero is a cut-down Model B (maybe they should have called it the Pi Electron?). At any rate, I think it is pretty incredible to have a functional non-connected media centre that's only a little larger than two SD cards side by side.
What you can't mistake, however, is the price. Four quid. Four quid for a proper tiny computer, not some microcontroller part.
It is also very efficient. As you can see from the second photo, it is drawing 0.04A. Actually, in playing a video it bounced between 20mA and 40mA. The most I saw was 60mA (0.06A) during system boot. That's about a tenth of what my Pi Model B takes. Which means a battery rated around 8000mAh at 5V should be able to run it for... bloody ages.
And, really, as much as the capabilities of mobile phones seem incredible to a child of the eighties, as does fitting 64GB into something about the same size as the glass bit on a 16K EPROM, I have to say that until recently I'd not have expected that it would be possible to have a gigahertz and GPU and half a gigabyte of memory for four quid.
The only sad part is that Pimoroni restricts you to one per customer, and everywhere frequently says "Sold out". Right now (as I write this) Pimoroni has them in stock. Will you be lucky?
心♥心♥ Ovation 1.55RM - sanity brought to colours! ♥心♥心
When Colin Ferris was testing his GIF "transloader" (which, incidentally, works with Ovation), he noticed that the colours were appearing really wrong. This much wrong:
That's a lot of wrongness.
Seeing that the original picture was of a blue bike, the amount of green and red clued me in to a potential palette problem. That's exactly what it was - the sprites created by the GIF translator were 256 colour but were "unusual" in that they were using a full 256 colour palette. This makes perfect sense, the 256 colour palette of GIFs could map directly onto an equivalent palette in a RISC OS sprite. That's a fair bit more efficient than ChangeFSI's method (dither, or create a deep sprite with millions of colours). Thing is, although RISC OS can use these sorts of sprites, they are less known because a traditional 256 colour sprite is actually a 64 colour sprite, with four shades of each colour. That's because of how the Archimedes era video hardware worked.
There is, usefully, a flag available in RISC OS 3.5 (RiscPC era) and later which can instruct the sprite plotter to read the palette entries from the sprite when plotting to 'deep' (64K/16M) modes. So fixing this was a matter of detecting if the sprite had a full palette, and if so, telling the system to use it. A lot simpler than mucking around with ColourTrans and the like.
While looking for the origin of the sprite problem, I noticed as an aside that the colours of frame borders were wrong in deep modes. This was because the colour entries are byte wide (from 0-255) in old modes; but this does not hold true in modes with more colours. So the colour numbers are 16 bit in 64K modes, and 32 bit in 16M modes. Well, I presume they're 24 bit, but they're word aligned to make things simpler.
As you can expect, trying to stuff a 16 or 32 bit colour reference into a byte is not going to work, so things went awry.
The fix was to work out the display mode, what sort of colour entries would be expected, and build an appropriate palette. Here's a test file in a 16M colour mode:
Ovation v1.54 was never officially released, although some people pulled the archive from my home server. So to recap, v1.54 changes the long-standing behaviour of clicking Adjust on the Ovation icon opening a blank document (just like Select). Instead it does the logical action of opening the New document dialogue instead.
Additionally, when you are holding down Select to drag a frame's grab-handles or holding down Adjust to move the entire frame, you can use the cursor keys to move the frames more precisely. This works by (cheating and) nudging the mouse position.
If you want to move a greater distance quickly, hold down the Alt key as well to speed things up.
Here's the release notes version of the above:
* When holding Select to move a frame grab handle, you can use the cursors
to nudge a frame into position. It does this by moving the pointer, so
it moves pretty slowly. Holding either Alt key will speed it up.
* Right-click on the icon bar icon will open the New Document dialogue
instead of creating a default blank document.
2016/06/23 v1.55RM *released*
* Now correctly displays 256 colour sprites that have a full 256 colour
palette (normally 256 colour sprites have a 64 colour palette with 4
shades of each colour).
Bug reported by Colin Ferris who was testing his !TransGIF software.
* Now correctly displays the specified frame colour in 64K and 16M colour
* Both of the above changes tested on-screen in 256/64K/16M colour modes
on a Pi1; and when printing to PDF using the standard PostScript
driver and PrintPDF.
[note that the standard driver has a horrible way of printing sprites]
Now for the downloads:
- The application! (349KiB, zip) - unzip it, run it, enjoy it.
(this should be a complete, self contained, version of Ovation; tested on my Pi...)
- The source code! (418KiB, zip) - this is one for the geeks.
(note that this version of the source builds as a DDE application from a MakeFile; it is a bit different to David's original code)
Please note that while I check this page every so often, I am not able to control what users write; therefore I disclaim all liability for unpleasant and/or infringing and/or defamatory material. Undesired content will be removed as soon as it is noticed. By leaving a comment, you agree not to post material that is illegal or in bad taste, and you should be aware that the time and your IP address are both recorded, should it be necessary to find out who you are. Oh, and don't bother trying to inline HTML. I'm not that stupid! ☺
You can now follow comment additions with the comment RSS feed. This is distinct from the b.log RSS feed, so you can subscribe to one or both as you wish.
|Anon, 27th July 2016, 23:24|
I've used a Pi Zero with a pHAT DAC, a USB flylead with a wi-fi dongle and a 5V regulator to build a small audio player based on piCorePlayer. This is fitted inside a 1980s ghetto blaster and wired to power up when you switch to the CD/Line In setting. The output of the pHAT DAC is hardwired to the line inputs.
It appears as a Squeezebox player on LMS and can be controlled with either a tablet app or the Squeezebox controller. The whole thing was about £15. It's amazing.
|(Mrs.) Tonnie Demarteau, 27th November 2016, 21:51|
Hi. David Pilling pointed me to "your" Ovation. My oldest is before Xmas 1992 - I have a OvnStyle for a Xmas card of that year. Next year 25th Anniversary. This olkdy stilll in good working order. I am still an active user of Ovation Pro for RO (in Win 10, Red Squirrel 0.6, RISC OS 4.02)and of OPW. Main interest: fonts. In any way. I was the one involved with the conversion (and extension to more than Latin 1) for the Beebug fonts to TrueTypes for OPW. Note: All rights for these by David Pilling. Of course, in Windows it's all Unicode. I also made some fonts in !FontEd. Now also available for me in Windows.
In Red Squirrel I have all my stuff from the early days till what can be done in RISC OS 4.02.
What attracts me most in your Ovation 1.55RM is the UTF-8 support offered ... however ... I can't get Ovation started in Red Squirrel using the Alt Right key. Or any other key / key combination I tried. Problem can be 4.02 or what Windows20/RedSquirrel/Ovation 1.55RM expects ...
Maybe you can offer a solution? And no, a Raspberry Pi isn't what I am after. Thanks for your attention.
|Rick, 7th December 2016, 21:52|
Please confirm - you are using RISC OS 4.02 on RedSquirrel? Not one of the VirtualAcorn family?
I'm afraid I don't have any emulator installed on my current PC (as I have the Pi), however I can tell you that the program will attempt to open the font "Homerton.Medium\EUTF8" and if that fails it won't work in UTF-8 mode. Does 4.02 fully support UTF-8?
|Rick, 7th December 2016, 21:55|
In BASIC, you can try the same test Ovation uses:
SYS "Font_FindFont",, "Homerton.Medium\EUTF8", (16*16), (16*16), 0, 0
To see if it works or if it throws an error.
(note the two commas at the start)
|(Mrs.) Tonnie Demarteau, 8th December 2016, 11:59|
Thanks for the replies.
I confirm: I am using (SA) RISC OS 4.02 on RedSquirrel 0.6. It calls itself "Acorn - Archimedes emulator". I use it by deliberate choice.
The commercial VirtualRPC-SE and SA work with RISC OS 4.02, VirtualRPC AdjustSA with RISC OS 4.39, accordingly the virtualacorn.co.uk website.
No idea, whether Red Squirrel runs for example RISC OS 5.22. Maybe, maybe with correct ROMS and !Boot and !System. It can run RISC OS 4.29i
I don't think 4.02 support UTF-8. Language choices are needed (like Latin 1), when a Base0 font is in use.
I did the test in BASIC.
Result: "Unknown or missing variable".
BTW: to be able to enter correct 'text' in Red Squirrel !Chars is needed. Especially things like quotes. Of course, in Windows10 not the correct Keyboard available as expected by RISC OS 4.02/Red Squirrel.
Ovation Pro dpd made in Windows10 with level 4, displays correct chars, when opened in Red Squirrel OPRO.
Best wishes, Tonnie
|Rick, 8th December 2016, 17:54|
I don't think RedSquirrel can run RO5. There is probably not much call to fix that since RPCEmu can.
If the base OS doesn't support UTF-8, Ovation won't be able to do it. ;-)
|(Mrs.) Tonnie Demarteau, 8th December 2016, 19:19|
I still be happy with the RedSquirrel/RO4.02. Even without UTF-8 in there. ;-)
RPCEmu with UTF-8 ... but it doesn't know mounts, from where all discs can be accessed from within the emulator.
Thanks for your time. Best wishes, Tonnie
|Rick, 10th December 2016, 21:54|
I have had feedback that RISC OS 4.02 does not support Unicode. The test program should have replied "utf8 encoding not found".
However, Acorn were working on a Unicode Font Manager and my installation of RISC OS 3.7 under RedSquirrel happens to have this installed.
It is FontManager v3.54 and a quick way to check is to type "*Alphabets" and see if UTF8 turns up as one of the choices.
I find it interesting that this is an add-on for 3.7, yet 4.02 doesn't have it. Hmmm...
|« July 2016 »|
| || || || ||1||2||3|
List all b.log entries
Return to the site index
PS: Don't try to be clever.
It's a simple substring match.
Last read at 05:03 on 2020/04/07.
© 2016 Rick Murray
This web page is licenced for your personal, private, non-commercial use only. No automated processing by advertising systems is permitted.
RIPA notice: No consent is given for interception of page transmission.