Page 1 of 1

Update on the Pi project

PostPosted: Tue Mar 28, 2017 10:49 pm
by alanh
A quick update on the Pi project. I'm getting really close to being able to send out boards to folks to start testing.

These will be essentially beta hardware. There is one minor hardware related feature that still needs some testing and I now have a partner in crime helping me. He's a hardware engineer that wanted to make a performance focused PATA <-> SDCARD bridge. He's paralleling my Pi efforts but with a focus on more modern systems. He likes the Pi approach but we'll add a direct micro-SD socket in future board spins. None of that matters for now. He is actively testing PIO operation with IRQ generation with modern PATA motherboards. Assuming no hardware changes are needed, the hardware is good to go for beta.

Long-term Hardware:
All of the software: the DOS utilities, the new BIOS re-write I'm also working on, and all of the Pi side utilities/server can all be built on the Pi thanks to compiling OpenWatcom 2.0 natively on the Pi. I'd like to eventually do the same for the hardware. That means moving from a Lattice XO2 FPGA to a ice40 and using the IceStorm open-source synthesis chain. Before I make a production run, I want to get this done. So that bit may take a while.

ATA Image Serving:
This works perfectly atm w/ support for two drives. The only thing I need to finish up before pre-release is writing support for a descent config file to replace all my hard-coded testing defaults.

DOS Redirector:
This is going slow. I'm nearly functionally done but there are lots of bugs and weird behavior. I'm not going to let bugs hold this up however. As soon as I get 100% functional, beta is ready.

Serial Console:
This is 'done enough' for now. It works. You run and you get a terminal session connected to the Pi's console UART. There is no flow control and everything is being pushed though the DOS con driver one character at a time. On the up-side, with ANSI.SYS loaded, the terminal emulation 'just works'. But the Jr is horribly inadequate keeping up with 115200 console speed. It needs to be re-written to go direct to VRAM. However it's good enough for now for beta. *volunteer cough*

Packet Driver, Linux bridge interface, and RNDIS:
Not even started. It's getting lower and lower priority really for me as the possibilities of mounting a Pi directory as a DOS drive letter via and that Pi directory could be (eg) an auto-mount point for USB, a SAMBA share over WiFi, a SAMBA mount exported over WiFi, a top level directory containing all three, .. is just amazing. I'll leave this one to Mike's indulgence. It should be possible to bridge a virtual NIC on the DOS side (via packet or RNDIS driver) to either a wired or wireless interface on the Pi side. And the best thing about is the resident size will be 3-4KB! Try fitting network drivers and MS-LAN manager, PC-NFS, or mTCP in that footprint! The down-side is, at least for now, it requires DOS 5.0+.

Setup/Config Utilities:
I really need a DOS utility that allows you to configure the Pi's networking including browsing for and selecting discovered WiFi SSIDs, entering authentication credentials, etc. I'm not sure if getting this done will hold up a beta. It depends on finding a volunteer. :)

This is the only thing that is really holding up beta. On the way to New Jersey, I'm going to try and dump a stream of consciousness that will turn into a wiki page documenting the project. The only thing that critically needs to be there is a very robust how-to guide on setting up your newly purchased $10 Zero w/ Wireless or $5 zero - including soldering the 40-pin connector. I can't supply people with zeros as if I buy them in bulk, they are no longer that cheap.

I'm close close close... stay tuned!

Re: Update on the Pi project

PostPosted: Wed Mar 29, 2017 6:44 am
by Vorticon
I must have been living under a rock... What exactly is the Pi project again?

Re: Update on the Pi project

PostPosted: Wed Mar 29, 2017 7:49 am
by alanh
It started out from a discussion of how to best add networking to the Jr. In it's current state, its a fairly cheap bridge board that plugs into the JR-IDE's IDE header and carries a connected Raspberry Pi Zero or Zero Wireless module on top. Refer to this photo:

It was meant to provide 2 basic high level features without being such a new design it obsoleted the investment people already have in JR-IDE boards.

1) It emulates 1 or 2 IDE disks as if it were a hard drive but using raw image files on on the Pi's file system via the Pi's SD card or other pluggable storage (eg USB, optical drives, etc). The nice thing about this is you can have as many virtual disks as you want and swap them in and out ad-hoc based on your immediate use case. You can send images to friends. You can use DOS tools in Linux to manipulate them. Etc, etc. They can be any CHS geometry up to 8GB each in size - as long as you have a big enough SD card to hold them. Heck eventually even the BIOS boot up menu could be made aware and allow selecting different virtual hard disks each boot as master/slave before booting them. It also allows for super easy remote back-up of your data on virtual disks using ssh/rsync/nfs/samba/etc...

2) Provide general networking. The IDE spec allows for vendor commands. These can be used to pass raw 802.1 Ethernet frames to/from the Pi over the IDE interface. On the Pi, the virtual NIC for the PC Jr can be bridged with a real networking device to allow a DOS packet or RNDIS driver to talk to the real world using higher level software like Mike's mTCP or Microsoft LAN manager.

A couple easy or accidental goals came out of my early efforts:

3) Provide a DOS redirector service so that any directory on the Pi can be mapped to a drive letter. This allows endless connectivity benefits w/o a lot of overhead of running a full networking stack inside DOS. Most of the networking functionality is moved to the Pi and all file/directory operations for the DOS drive letter are forwarded across the IDE interface using vendor commands and serviced by a user space application daemon on the Linux side.

4) Add a UART accessible in the IDE register space so that you can access the Pi's console w/o any of the other above business configured. This allows easy debugging and setup of Raspian, et al.

Running a high level OS on a 700 MHz processor on a PC Jr seems a bit perverted. But is does open up some interesting use cases with all a Pi has to offer. Performance is also maintained. I'm still getting upwards of 400 KBytes/s transfer rate from the Pi server.

I'm hoping to expand this out to the general vintage community eventually with a more practical module form-factor and some support for much higher speed systems. I'm also entering it in the HaD Prize contest and plan to promote it through a few other venues. I'm hoping to launch it to the broader public later in April. But Jr folks will be the early beneficiaries.

I hoping this will be as or more popular than even the XT-IDE project and truly change the way most people deal with using and maintaining vintage systems that can support a basic IDE interface. And it's fairly cheap. I estimate the bridge board can be made for under $25 with a bring your own $5 Pi. I'm working on a companion project that will also be as useful to the community. I hoping to tie them both together at VCF-MW with a talk titled 'The Completely Wireless Peanut' (hint I haven't yet mentioned the HDMI port or hardware accelerated h.264 encoding abilities yet!)


Re: Update on the Pi project

PostPosted: Wed Mar 29, 2017 8:13 am
by Vorticon
Oh man! This will revolutionize how we use the Jr...
Looking forward to the final product!

Re: Update on the Pi project

PostPosted: Wed Mar 29, 2017 9:09 am
by Brutman
I'm looking forward to having a Linux co-processor on board. It opens up a lot of possibilities.