Shop OBEX P1 Docs P2 Docs Learn Events
Prop2 Open-source Computer Project — Parallax Forums

Prop2 Open-source Computer Project

m00tykinsm00tykins Posts: 73
edited 2014-11-05 12:18 in Propeller 2
Hi everyone,

I'm just going to make this thread for ideas regarding the open-source hardware computer I'll be working on based on the propeller 2. I know it's really ambitious but even if I fail I'm sure I'll learn a lot and have fun, so I'm quite excited and dedicated to work on it. I'm starting out as a CS-major college student and I'm planning on working on this in my free time for the next few years... :D

My inspiration for this was the Novena open-source laptop, which was made partly as an open hardware development platform and partly as a secure device which, because it's based on completely open hardware and software, will have almost no chance of containing backdoors. However, it is not *truly* open-source in my opinion, since it uses many proprietary components in silico (ARM processor, Atheros wifi, etc...) and therefore is not open-source down to the transistor.

I've done a lot of research into this and I'm convinced it is possible to make a fully open-source computer, capable of very basic internet browsing, with the Propeller 2. The open-source OS, contiki, can run on MMU-less processors (even as basic as the msp430), featuring a basic GUI and internet browser, using only 30kB of RAM and EEPROM. See http://en.wikipedia.org/wiki/Contiki for more details. Right now though, I'm still not sure whether to use Contiki (includes GUI and Web Browser), RIOT (easily portable, POSIX-compliance in development), or eChronos (formally verified, more secure). None of these OSes require an MMU.

The main issue so far is that finding external open source hardware for the P2 is rather difficult. For example, the only external RAM I know of that is open source is from the 74xx-series ICs, which only go up to 1kB, meaning I would need 512 of them to increase RAM to 1MB. I was thinking, though, if additional RAM is required I would just use a second P2, and the extra cogs would be redundant. I would like to make an external open-source dot-matrix LED display and open-source keyboard for it, but those will be stretch goals. The first step will be to get a basic system up and running.

So, the current questions I have are:

Which OS would be easiest to port to the prop 2? And which one will make the ultimate goal of being a basic web browser easiest?

Is there any other silicon, besides the Prop 2 and 74xx ICs, which is open-source that I could use? FPGAs and CPLDs are actually very closed-source in silico, so they're out...

Would using a programming language besides C increase security very much? The lack of an MMU in the propeller is my main worry, so I'm trying to make the code as bug-free as possible. Would you recommend Cyclone, Ada, Spark, or perhaps something else for this?

And, for stretch goals:

Would a hybrid OS be possible as a second stage goal? For example, taking the GUI and Internet connectivity of contiki, the POSIX-compliance of RIOT, and the security of the eChronos kernel and making a new OS?

Would using a hexagonal/honeycomb dot-matrix display increase resolution very much? And what programming challenges are there for using a hex display? I need to use discrete LEDs since the display will need to be open-source as well, so low resolution is an issue.

Would porting cjdns to the OS be possible as a ridiculously impossible stretch goal?

And most importantly, would RMS approve? XD

Thank you very much!

Comments

  • evanhevanh Posts: 15,187
    edited 2014-10-30 12:47
    m00tykins wrote: »
    Is there any other silicon, besides the Prop 2 and 74xx ICs, which is open-source that I could use? FPGAs and CPLDs are actually very closed-source in silico, so they're out...

    External SRAM/DRAM/Flash/whatever chips, are unsuitable?
  • Heater.Heater. Posts: 21,230
    edited 2014-10-30 14:15
    m00tykins,

    Your project as outlined and predicated on the existence of and open source processor is total fantasy at this time.

    Currently there is no such device as a P2. Further if the P2 ever comes to be we have no idea if it will be open sourced or not.

    I'm not sure where you get the idea that there are any open source peripheral chips. A cannot think of any. From ethernet chips to USB chips etc, etc.

    As it stands the best approach to building a totally opensource computer is the FPGA. Use the OpenRISC CPU design, use whatever peripherals you need that people have contributed. Checkout opencores.org for all the good stuff.

    Yes of course the actual FPGAs and their dev tools are not in anyway open source but given that you have come up with an opensource design for your machine it can then be synthesised down to hardware for Altera or Xilinx or whatever comes along. Much the same way that the open source Linux is actually run on closed source Intel, ARM, MIPS, whatever machines.

    You clearly have enthusiasm but a limited experience of what you are up against here. Perhaps it's best to dedicate your time and energy to your CS program. Whilst hacking away on some lesser projects in any free time. Contiki on the P1 would be very cool as a start:)
  • jmgjmg Posts: 15,144
    edited 2014-10-30 14:37
    m00tykins wrote: »
    The main issue so far is that finding external open source hardware for the P2 is rather difficult. For example, the only external RAM I know of that is open source is from the 74xx-series ICs, which only go up to 1kB, meaning I would need 512 of them to increase RAM to 1MB
    ....

    Is there any other silicon, besides the Prop 2 and 74xx ICs, which is open-source that I could use? FPGAs and CPLDs are actually very closed-source in silico, so they're out...

    I'm not following the logic here ?
    ANY silicon is Fabbed, so is not open source. P2 is not open source.

    Some people choose multi-source, if they want longevity and lowest risk, and there are plenty of Multi-Sourced SRAMS much larger than 1k.

    The silicon of FPGAs is closed source, but the code you run on that, can be open source, and made relatively portable.
    What an FPGA does buy you, is flexibility, and greatly reduced PCB re-spins.

    So it may be smart to start with a P2+FPGA mix, that you then reduce to P2+Minimal parts, once it is proven.
    You could also look at P2 + P1V running in FPGA combination.
  • m00tykinsm00tykins Posts: 73
    edited 2014-10-30 18:15
    Thanks heater...

    The subject of open-sourcing the p2 was brought up before, and iirc Chip said it would probably be open-sourced. Like I also said, I do realize what I am up against. It will be extremely difficult, if not impossible, for one person to do. I still plan on attempting this just because I will learn a lot even if I fail :). The purpose of my post was to get extra ideas on how to do this, not for discussion on the feasibility of it. Finally, I never said I believed there were any other open-source ICs, but was just asking if anyone knew of other ones.

    I apologize if this seems like vaporware, but I am quite sure it is possible and am eager to work on it once the p2 is released. I was just asking for suggestions. TY.
  • Heater.Heater. Posts: 21,230
    edited 2014-10-31 00:33
    m00tykins,

    Certainly one will be able to build a computer from a P2.

    I'm looking forward to getting a Z80 emulation up and running on the P2 hand hence running CP/M. The P1 has already done that but the P2 will make a much nicer solution, especially as it will not require an external RAM.

    What kind of computer do you have in mind?

    You mention the Novena as a source of inspiration. That is serious machine with Quad-core Cortex A9 CPU running at 1.2GHz and accelerated graphics and so on.

    A computer built with the P2 will be some thousands of times slower, perhaps akin to the original IBM PC in speed, memory space and I/O performance.

    contiki and such like tiny operating systems seem like they are worthy of investigation.
  • TorTor Posts: 2,010
    edited 2014-10-31 02:42
    RMS had a laptop which he described as only running free software. I think that meant that all drivers were open source, no binary blobs or otherwise tainted software. I didn't get a close look at it, but I guess that's the best thing possible for an 'open' computer if that's the best even he could find.
  • mklrobomklrobo Posts: 420
    edited 2014-10-31 05:38
    :cool: I applaude your enthusiam, "vaporware" or no.:cool:
    Every great idea has to start somewhere, in which this forum helps to inspire.
    The P2 is not here yet, but that does not have to stop you.If you asked Ken Gracy
    for some of the expectations of the P2, he may give you the general guidelines. Having
    this, you could program a FPGA (theoretically) to base some code on.
    I have started on making a whole linux OS, the Maelstrom, to support the
    programs involving programming the propeller in a friendly linux enviroment, and
    maybe some related parallax products. While I am I am in the begining stages,
    It helps to get input from the forum to streamline the project. Good Luck!
  • thejthej Posts: 232
    edited 2014-10-31 15:14
    Sounds like you want to do some programming

    A port of Contiki would be really cool! Contiki is used extensively for low power wireless sensor nets.

    Another thought would be to get something working quickly (so people can use it and get excited !!) such as implementing a Prop2 version of GraFORTH.
    GraFORTH is a multimedia forth for the Apple 2. (Video link at bottom). I would be super cool to have a modern version :-)

    There are already 2 actively developed Forths (PropForth v5.5 and TACHYON 2.4) for the P1 that will be ported as soon as there is an FPGA version of the P2 (hopefully FPGA by x-mas). The “Multimedia” pieces of GraForth could be built on top of these existing Forth kernels. I don’t know what has been added to the existing Propeller Forths as far as multimedia capabilities.
    Pieces from other projects, like Contiki could be added to that too. Contiki’s light weight TCP/IP stack for example !!
    How about a “simple” GUI too.

    Some of GraFORTH’s main features are:
    -Fonts (custom characters)
    -2D graphics (logo style and Block)
    -3D graphics
    -Built-in editors (text, character set, 2D graphics, 3D graphics)
    -Interactive development (it’s Forth !)


    Video Demo of GraFORTH
    http://www.youtube.com/watch?v=4Fay38pUU7Y

    Intro to TACHYON Forth
    https://docs.google.com/document/pub?id=1bEH0DfGmu99M1SqCbmlzl991Ssv2J5m6XWmkJX0XSl8

    PropFORTH Wiki
    http://code.google.com/p/propforth/
  • m00tykinsm00tykins Posts: 73
    edited 2014-11-02 00:26
    Heater:

    Yes, I realize it will have an order of magnitude poorer performance than the novena, but the main purpose here is to get a web browser up and running on the p2. So really it would be more of an internet appliance than a full-featured computer. I plan, first of all, to port an OS to a minimalist setup on a breadboard, and go from there. The main feedback I need right now is people's opinions on which OS should be ported... Should it be riot, which claims to be easily portable, contiki, which is more fully-featured, echronos, which is more secure, or something else altogether, like symbos or a custom OS? Once I have the OS ported to a breadboard I'll go from there.

    mklrobo:

    The maelstrom sounds very interesting, please keep me posted!

    thej:

    I agree, graforth would be cool, but that is another whole can of worms and I need to take this one step at a time so I don't go in over my head... XD
  • Heater.Heater. Posts: 21,230
    edited 2014-11-03 01:41
    m00tykins

    I think today has brought forth the operating system you want to get running on the Propeller.

    It's "Fusix" a System 5 Unix for small systems by Alan Cox of Linux fame.

    Fusix may get some discussion here:
    http://forums.parallax.com/showthread.php/158019-Alan-Cox-releases-quot-Fusix-quot-SYS5-UNIX-in-40k-initial-target-platform...-Z80.
    Where you can find a link to the release.
  • m00tykinsm00tykins Posts: 73
    edited 2014-11-05 12:18
    Thanks for the suggestion heater, but AFAIK fuzix is still alpha software without very basic features, such as TCP/IP, which I will need. I'll keep an eye on it though. I'm still leaning towards either riot or contiki, though I can't decide ATM...
Sign In or Register to comment.