Shop OBEX P1 Docs P2 Docs Learn Events
Propeller Cerberus hybrid — Parallax Forums

Propeller Cerberus hybrid

Dr_AculaDr_Acula Posts: 5,484
edited 2012-11-01 05:37 in Propeller 1
Blue sky brainstorming here with combining a .net board and a propeller, with both the propeller as a 'master' or as a 'slave' and I'd appreciate some thoughts from the brains trust.

Board is here http://www.ghielectronics.com/catalog/product/349

The sockets are all 10 pins and the pinouts are here http://wiki.tinyclr.com/index.php?title=FEZ_Cerberus_Developer

Formal description of socket types here http://gadgeteer.codeplex.com/wikipage?title=.NET%20Gadgeteer%20Socket%20Types

There are lots of addon boards here http://www.ghielectronics.com/catalog/category/275/

So - first thing. Scroll down that last link to near the bottom and they are charging $124.95 for a VGA addon board. Immediately the propeller springs to mind as a much cheaper option. It would be a propeller, eeprom, VGA socket, some resistors, and a 10 pin header socket. Power comes down the socket which makes things easy. Could use I2C or serial or SPI as the comms protocol. The propeller could do the same job for maybe 1/4 of the price.

Second idea - those touchscreens seem a little expensive. I'm still trying to find out how fast a pin can be toggled in C# - someone posted some code saying it was only 8khz but I'm sure they can go faster as I2C is 400khz. But that involves a custom driver. Someone else posted some code showing an update for a screen taking over a minute. Averagejoe and I started with times like that too, but when we added external ram and ported the code into pasm we got an update down to only 30ms. So there is definitely scope for a lower priced and faster touchscreen with the propeller as the driver.

And then there is the idea of using the propeller as a 'master' and having some of those 10 way headers on a board and tapping into the mass produced prices of peripheral boards.

I might fire up Eagle and design a few boards and see where it leads :)

Thoughts would be most appreciated.

Comments

  • rwgast_logicdesignrwgast_logicdesign Posts: 1,464
    edited 2012-10-30 20:57
    Im not sure I quite understand this is just arm cortex breakout board and you want to make a pin for pin compatible version using a propeller? Exactly how does .net fit into the whole equation? Are the boards programmed using MSVS.net, if so how would you do that with a propeller?
  • rod1963rod1963 Posts: 752
    edited 2012-10-30 21:27
    It's clear to me.

    He wants to offer a low cost Prop based alternative to the overpriced VGA board GHI offers. Basically poach sales from them. The trick is, is to make it easy to use. That means not learning Spin or Pasm. Just be able to send commands and data to it.

    The Gameduino does it with the Arduino via Include files for the C compiler. Makes it very easy to do graphics.
  • rwgast_logicdesignrwgast_logicdesign Posts: 1,464
    edited 2012-10-30 21:40
    Ahhh I see, i missed that I thought it was the main board and VGA client that he wanted to rework with a propeller. I think thats an excellent idea!
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-10-30 21:49
    yes, rod has the idea - use the propeller to do things faster and cheaper. Plus, it might introduce the propeller to a new group of people.

    The VGA board would be the same as the Propeller PocketTerm from brielcomputers, but maybe instead of a RS232 as the comms link you use the TTL signals and a 10 pin header as this saves two max3232 chips. And the onboard regulators on the pocketerm would not be needed either. So the board would be smaller.
  • average joeaverage joe Posts: 795
    edited 2012-10-31 01:45
    I've looked at this thread 5 times today and not had a chance to leave a comment. From initial view it sounds feasible, and could be fairly interesting. I need to read up on the Cerberus a bit more to really give a sound opinion on the way to do it.


    It looks like a lot of fun, and there's some really cool ideas I was brainstorming. Take the "music production" app I've been kicking around. It would be way smarter to use something like the Cerberus as the "control" and have propeller's running the sound emulators.

    I look forward to seeing what you come up with. Keyboard,video,mouse are always handy breakouts and the propeller could handle this quite well IMO.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-10-31 05:24
    This is a quick motherboard design for the propeller.

    It is a simple board, as power would come from elsewhere so no regulators needed. This leverages off all those peripheral boards that are already available, joysticks, SD card etc etc.

    Missing things not available and which the propeller could do well:

    A VGA board would be a VGA socket and some resistors.
    A TV board which is a RCA socket and 3 resistors
    A keyboard/mouse board which is a PS2 DIN connector and some resistors*
    A touchscreen board which would be two ram chips and 5 161 chips and a few gates.

    The * for keyboard is that cerberus can run USB host mode so would probably use USB keyboards rather than PS2 ones.

    Comms to the cerberus board would be via a TTL serial link.

    There are some other synergies too.

    I've got a Cerberus board on order. The IDE looks clever. You connect up the modules to the main board within the IDE and it automatically works out the pin allocation and writes the code accordingly. No reason that couldn't be done for the propeller version too.

    The touchscreen one is the one I'd like to really think about. I am wondering about moving the SPI for the touch sensor off to the cerberus SPI port, but keep the SD on the propeller board as that allows faster transfer of data from the SD card to the display. Then abstract the spin code into some simple commands that you pass down a serial link, eg open file, read n bytes, move to ram location, dump to display. I think the propeller will do this better than the cerberus as it can multi task with all the cogs.
    934 x 592 - 220K
  • RsadeikaRsadeika Posts: 3,837
    edited 2012-10-31 08:28
    ... Plus, it might introduce the propeller to a new group of people.


    Below is a recent quote from a post on the GHI Electronics forum. I have been to the GHI Electronics site quite a bit, and you would be surprised how often the Propeller comes up, but everybody considers it to be a specialized device. I think a lot of people know about the Propeller, but consider it to be to different to really start using it?
    ... You can also use other specialized hardware like propeller chip or an FPGA.

    Ray
  • rod1963rod1963 Posts: 752
    edited 2012-10-31 10:40
    The hard part IMO coding a C# wrapper for the Prop-VGA like the Gameduino supplies a C++ wrapper for the Arduino compiler to abstract a lot of the grunt work.
  • average joeaverage joe Posts: 795
    edited 2012-10-31 11:25
    Dr_Acula wrote: »
    This is a quick motherboard design for the propeller.
    The touchscreen one is the one I'd like to really think about. I am wondering about moving the SPI for the touch sensor off to the cerberus SPI port, but keep the SD on the propeller board as that allows faster transfer of data from the SD card to the display. Then abstract the spin code into some simple commands that you pass down a serial link, eg open file, read n bytes, move to ram location, dump to display. I think the propeller will do this better than the cerberus as it can multi task with all the cogs.


    I think you've made a great point here. I've not had a chance to check the Cerberus specs for serial comms. I'm wondering if there's hardware handshaking available, because if there is it may be possible to use a similar methodology to that I'm exploring with the touchburger and expansion board.

    The big problem I'm facing right now is shutting the serial cog on the Touchburger down before screen refreshes / memory access. I think the easiest way is to FORCE de-assert of the RTS pin using the main program's cog. Then empty the buffer before shutting serial cog down.

    I keep getting cool ideas as to what could be done, it will be interesting to see what develops!
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-10-31 15:10
    Looking at the Gadgeteer pinouts http://gadgeteer.codeplex.com/wikipage?title=.NET%20Gadgeteer%20Socket%20Types there are two serial ones - type U which is a 2 wire interface, and type K with 4 wires - Tx Rx CTS and RTS. So that could make things easier for fast comms and avoiding buffer overruns.

    For a Prop/VGA interface, there is some discussion at the moment on the N8VEM site regarding a driver with individual colors for each character. I think Kuroneko wrote a driver, but what is missing (I think) is the code to run the ANSI escape sequences. ANSI would be a good protocol as it has been around for years.
  • AntoineDoinelAntoineDoinel Posts: 312
    edited 2012-10-31 16:44
    Dr_Acula wrote: »
    For a Prop/VGA interface, there is some discussion at the moment on the N8VEM site regarding a driver with individual colors for each character. I think Kuroneko wrote a driver, but what is missing (I think) is the code to run the ANSI escape sequences. ANSI would be a good protocol as it has been around for years.

    Doc, look at this article OBC posted on instructables:

    http://www.instructables.com/id/Calling-Bulletin-Board-Systems-BBS/step7/Catching-the-BBS-bug/

    ansiterm.bin has color per cell and it has (nearly) full ANSI capabilities.

    It's based on code borrowed from Vince Briel's Pocketterm, VGA driver by Pulmoll, plus some work to extend ANSI sequences and make the color palette more RGBI-like. There is a version for TV also, with similar capabilities, using Potatohead's text driver.

    I think Pulmoll also had ANSI processing in one of his emulators, but he used PASM in a separate cog, while in ansiterm.bin it's done in spin.

    Now it would be worth trying to replace the VGA driver with the one from Kuroneko, as that should save one more cog.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-10-31 20:51
    Thanks Antoine. Very interesting reading. That could run on the boards below.

    Ok, here are 4 boards.

    1) The motherboard - changed slightly from the previous design so there is an SPI, SD card, two serial links and I2C down the right side of the prop, and P14 and P15 can be used for audio out. That leaves 14 pins for a data plus address plus rd plus wr bus.

    2) A programmer/regulator board. Use either switchers or linear regs. Power from a wall wart. Or use a USB to header adaptor on ebay for $13 which brings out 5V so you can power everything off the USB port.

    3) A board with resistors and sockets for TV VGA Mouse and Keyboard

    4) A touchscreen board. The touchscreen uses a few more chips than previous designs and will be slightly slower as data is sent out to the ram in bytes rather than in words. Dumping data from ram to the screen is the same speed though. The upside is that the touch SPI port and the SD port have dedicated propeller pins, so that makes the code easier, and also those two cables could either go to a Cerberus board or to a Propeller board.
  • blittledblittled Posts: 681
    edited 2012-11-01 05:37
    Yes, the Propeller has come up a couple of times at GHI Electronics. I am not associated with them but I did independently get involved in a FEZ Domino - Propeller project they had that did something similar to what Dr. Acula proposes but they killed it fairly early in its development. Some one else developed an interface in their Code Share site http://www.tinyclr.com/codeshare/entry/291 which may be of help for ideas.
Sign In or Register to comment.