Shop OBEX P1 Docs P2 Docs Learn Events
New Chameleon product complete and need some coders to explore possibilities — Parallax Forums

New Chameleon product complete and need some coders to explore possibilities

AndreLAndreL Posts: 1,004
edited 2009-09-21 02:21 in Propeller 1
We have been working on two new Arduino like products called the Chameleons. We are going to put them for pre-sale in a couple weeks and have them back from manufacturing in 5-6 weeks. In the meantime, we wanted to give the opportunity for a few really hard core Propeller programmers to get their hands on the systems and develop some open source stuff for them for launch.

The systems are based on a dual processor design where the primary processor is an AVR or PIC processor running C/C++ for the most part. The AVR/PIC sends commands to the Prop over a high speed SPI bus and a virtual SPI interface receives the commands and then issues them to various drivers running on the Prop on its cores. Thus, for people familiar with Arduino programming, you add a couple lines of code and you can draw text, or make sound, or read the keyboard, etc. since the Prop does all the heavy lifting and from the AVR/PIC acts like a media server.

I have designed drivers, example code, and its all working perfectly, so I thought I would give out a taste to some very special few that are interested. That said, if you want get a demo unit and code on it, all work will be open source and you will upload to our Wiki at some point is the idea.

For coders to be considered you should be a master Propeller programmer, or at least dangerous [noparse]:)[/noparse] And have worked with either the AVR or PIC processors and have a good understanding of them since you will be coding in C/C++ on the AVR/PIC side to control the Prop and write applications. Thus, your demos might be totally AVR/PIC side, OR you might decide to develop crazy drivers on the Prop side for the AVR/PIC to serve to.

In any case, the idea of the product was to be a massively powerful Arduino like product, but use the Propeller as the secret sauce and let it do what it does best which is media control and heavy lifting while using a C/C++ powered client CPU (AVR/PIC) to do the application control. All the while trying to keep the board Arduino like in design (I/O for example) so that users could jump ship from Arduino land to Chameleon country, and all the while use a product that leverages the Propeller.

If you're interested, PM me here, ask questions publicly, or email me at ceo@nurve.net. I will pick 2-3 AVR guys and 2-3 PIC guys, but everyone has to be a Prop guy [noparse]:)[/noparse] Applicants should be easy to contact, and have a lot of time to actually do something, the prototype kits are $500 each and not cheap, so this isn't for newbies or people that want to play around, its for people that really think they can deliver some cool stuff, and "get" the design from my description and see the potential of this.

Attached is a pic of an early prototype, the final versions have a break away prototyping area to right and the little debug switch is of course not there [noparse]:)[/noparse]

Thanks,

Andre' LaMothe
Nurve Networks LLC
1200 x 800 - 187K
«1

Comments

  • trodosstrodoss Posts: 577
    edited 2009-07-21 15:53
    @AndreL,

    Great design!· Seems·to follow the·trend of Prop + (either another Propeller, AVR, PIC, etc.).· Should get·the attention of the Arduino/Uzebox crowd, and hopefully a lot more·smile.gif

    Will the final product have an SD card slot (like the new XGamestation consoles), or is that a target for a "shield" product?· Seems like it is a "must have" for a lot of people.

    I have used both Propellers and AVR's in designs (not together though), but I am not a "master programmer" type that you are looking for like Baggers, Bamse, PotatoHead, etc -- at least yet.· I need a few more projects "under the belt"··on the Propeller.·

    ·[noparse][[/noparse]Edit:] lft (Linus Åkesson) would be *the* guy to get for the·AVR+Prop design, as he has pushed both to their limits with his Craft and Turbulence demos.· You probably knew, but thought I would mention it [noparse];)[/noparse]

    http://www.linusakesson.net

    Post Edited (trodoss) : 7/21/2009 4:24:57 PM GMT
  • AndreLAndreL Posts: 1,004
    edited 2009-07-21 19:57
    @trodoss - No SD, the idea is the follow the arduinio I/O as much as possible so sheilds are compatible if possible. IF you want SD then you just plug in a sparkfun microsd card -- also, the design has a 1 MB flash on board, more than enough to do cool stuff [noparse]:)[/noparse]
  • trodosstrodoss Posts: 577
    edited 2009-07-21 20:36
    @AndreL,
    If it is compatable to existing Arduino shields, then there is a lot of possibilities, so probably moot to ask about other features [noparse];)[/noparse]

    Having a 1MB flash on board would certianly make it "friendly" for a lot of things--probably definately beyond what you would normally use an Arduino board for. Any plans for an imbedded OS like Contiki being released with it? [noparse][[/noparse]Edit:] It is·"built for greater things" than just an Arduino-compatable board.

    Post Edited (trodoss) : 7/21/2009 8:47:33 PM GMT
  • AndreLAndreL Posts: 1,004
    edited 2009-07-21 21:11
    Software is up to other people. I created the design to give the same people that like arduino 100x more capabilities by tying in the Props. So there is no OS, so big book, no nothing, you get the board, my design docs, some tutorials, examples and the rest is up to the community. The idea is that you can immediately get things on the NTSC, VGA going , read keyboards, mice, and make sound. This ties to the huge user base of AVR and PIC programmers makes the product very synergestic. I love playing with it, I am using them for a number of new projects as the controller. ALSO -- if you dont want to use the Prop, don't -- if you don't want to use the AVR/PIC - don't ! They are accessible seperately, so its a killer dual dev kit as well -- but the idea of this product is not for development, its to solve problems in industrial control, projects, etc. there are enough Prop dev kits out there already. My hopes are that we get all the ardunio people and ALL the PIC people that have been left out in the cold. Then they all become Prop people without knowing it -- [noparse]:)[/noparse]

    Andre'
  • trodosstrodoss Posts: 577
    edited 2009-07-21 23:15
    Sounds great to me!
    From the PIC/AVR perspective, you get an Arduino-like board that has onboard video/VGA/Audio/USB/etc. with an SPI interface.

    From the Propeller perspective, it is a platform for learning how to interface with another microcontroller (AVR/PIC), and/or a platform to expirament with the Arduino shields.

    Certianly it will be capable of a lot more, with good community support.·

    Had it existed a while ago I probably would have not learned Spin/PASM ...or at least not right away [noparse];)[/noparse]

    Post Edited (trodoss) : 7/21/2009 11:32:30 PM GMT
  • AndreLAndreL Posts: 1,004
    edited 2009-07-22 08:06
    What I like is that already I am using it for actual products and solutions where I needed a very powerful embedded controller board, but with with video, audio, and I/O all programmed in C/C++. I have a new project for example, that I was going to have to use a really expensive board that did graphics, or frankenstein something, now I can just use the Chameleon. My hopes are that it becomes a nice commodity board to do "stuff" and get projects and work done.

    Andre'
  • trodosstrodoss Posts: 577
    edited 2009-07-22 13:51
    I thought of a few more questions:

    Are you are using the 6MHz crystal (like the Hydra) on the Propeller, and, a 16MHz crystal on the 368p (AVR version)?

    Are the final boards using a DIP socket for the AVR/PIC chips, or is that just on the prototype?

    Are you using a 'smaller' (ie: 32K/64K) EEPROM for the Propeller, or are you using a larger (512K?) EEPROM? With the 1 MB flash chip on the board, I could see not having as much EEPROM available.

    --Thanks!
  • Spork FrogSpork Frog Posts: 212
    edited 2009-07-22 14:03
    Andre',

    I have to say already that this looks like an AMAZING product, and I think I will be one of the first on the list to buy one once you release them! I've been tossing ideas like this around in my head for a while, but having neither the tools or the knowledge to be able to make something, this will be borderline revolutionary, I believe.

    Like trodoss, I would enlist my help as well but I don't think I'm quite the material you're looking for. I have enough experience with C, but not with any micros besides the Prop.

    I do have a question, though... will it have a Hydra-compatible expansion slot, so that we can use the 512K expansion card or could one be added easily enough?

    Also, what about programming? Will a seperate AVR/PIC programmer have to be used?
  • trodosstrodoss Posts: 577
    edited 2009-07-22 17:57
    @SporkFrog,
    Certianly have to agree that it looks like a great product [noparse];)[/noparse]· There would be a few of us "in line" I think.
    Even when I got started working with the Propeller example code was in Spin/PASM.· Now the OBEX has C objects, and RossH is working hard on Catalina.· So, even the "Propeller side" of the Chameleon should not be near as intimidating as it once would have been.

    Although the Propeller+PIC version of the Chameleon sounds like it will be powerful, I plan on working with the Propeller+AVR version, when it is available.· I have non-game project/apps that it would come in handy.
    Spork Frog said...
    Also, what about programming? Will a seperate AVR/PIC programmer have to be used?
    ...I saw this posted on the other Chameleon thread:
    AndreL said...
    Also, one little tidbit, you can program either the Prop or the AVR/Prop over the same USB serial connection (a switch directs traffic) which is nice (of course the AVR/PIC has to have one of the bootloaders loaded), but its pretty sweet being able to just plug in a single USB cable (power the systems) and code.
    Also, in the picture of the prototype there is an AVR ISP port, so it·likely supports·ISP/JTAG programmers as well.


    Post Edited (trodoss) : 7/22/2009 6:07:42 PM GMT
  • AndreLAndreL Posts: 1,004
    edited 2009-07-22 20:15
    Right, so there are a number of configurations for programming.

    - The propeller is always programmed via the serial port.
    - The AVR/PIC can always be programmed directly thru its ISP port OR via the serial port if you have a bootloader like Arduino, or the one we mod'ed for the PIC.

    But, if you hammer the AVR/PIC bootloader you need an ISP programmer ($20-30), so its a good idea to have one of those anyway for normal development with the manufacturer tool chain and or debugging.

    Andre'
  • trodosstrodoss Posts: 577
    edited 2009-07-23 14:57
    It sounds like you will be able to program it 'out of the box' with a just a USB cable (assuming the bootloader comes 'pre-loaded'), and that you would need a Prop Plug and an ISP programmer if you were wanting to 'customize' the board ...or you hammer it [noparse];)[/noparse] I tend to hammer things often, so good that I already have the tools necessary to fix it.

    @AndreL,
    From what I have gleamed so far, it sounds like making it 'layout compatable' with the Arduino (shields) is not part of the design and likely woudn't matter (considering the number of generic breakout boards available).· [noparse][[/noparse]Edit:] Is the 'shield' layout public yet, or is that being published when the product is available?· The prototype looks like it has about·the same number of pins as the·Arduino (different config)·and then what looks like 8 pins brought out on the Propeller side, and a port for an antenna (label "ANT1", behind the video RCA jack)?·

    Exciting stuff!

    Post Edited (trodoss) : 7/23/2009 7:22:03 PM GMT
  • AndreLAndreL Posts: 1,004
    edited 2009-07-23 19:39
    Actually, you don't need a prop plug, the prop side is always programmable from the USB port, so Prop programming is built in. But, yes the bootloader(s) must be loaded to program the AVR/PIC without an ISP programmer, but we are going to deploy them with bootloaders, so customer can play immediately.

    I tried to match the sheild I/O as much as possible, so that at worst case you can run wires easily. But, I will sell a converter that sits on top of the Chameleon that will make it exactly compatible for a few bucks, but the IO from the arduino was right in the wrong pace and would have been in the way of my connectors, so I wanted to make the Chameleons small as the first goal.

    ANT1 is just the antenna out lead for the Prop video transmitter mode.

    Andre'
  • JT CookJT Cook Posts: 487
    edited 2009-07-24 03:52
    I think this will be pretty sweet. I can't wait to get my hands on it and I am looking forward to working with the Propellor again.
  • AndreLAndreL Posts: 1,004
    edited 2009-07-24 20:17
    Your units will be on their way soon JT, we need to build more prototypes and had to keep the last ones for photos etc. until they are done.

    Andre'
  • RobertMRobertM Posts: 10
    edited 2009-07-30 22:53
    Hi,
    Is it related to new book? Thanks.

    RM.
  • AndreLAndreL Posts: 1,004
    edited 2009-07-30 23:43
    The Chameleon has nothing to do with the book. The Chameleon is a new dual processor Ardunio type device, but superior in every way. Additionally, there are both AVR and PIC version and both version use the Prop as the media co-processor.

    Andre'
  • RobertMRobertM Posts: 10
    edited 2009-08-22 12:18
    Andre,

    Any update?

    Thanks
    RM.
  • AndreLAndreL Posts: 1,004
    edited 2009-08-22 17:55
    Yes, we are seeing the end of the tunnel with the docs, and have the cost worked out, so I will put them up for pre-sale in 2 weeks, $49 for the AVR 8-bit version, $59 for PIC 16-bit, we may change that, but this will be the introductory price, we will see how it goes.

    But, frankly, I am having too much fun writing this driver, I need to my pencil down and leave it alone and ship it.

    The box is going to have:

    1. Chameleon
    2. white mini solderless board
    3. DVD (with eManual / 2 page quick start

    All in a DVD case or small box, still deciding.

    We should probably sell them for $69, $79, probably $59, $69 will be final price -- what do you think?

    Andre'
  • FredBlaisFredBlais Posts: 379
    edited 2009-08-24 12:46
    I think the price will have a lot of influence... If you want·people·to·get into·it, and to get known·by the community, the·price should be the nearest possible of the arduino, so they can look at it like a second, but better choice (a lot more for a bit more). (Sometimes, people don't want to spend some dollars for added quality, like the ones who wanted to build their own hydra!) By the way,·publicity is really important, so being on hobbyists site like sparkfun·is a must.·Lots of persons are admired·by the colors of the boards, please don't make it·green, lol, a flashy red could·attract some youngster.
    I hope my opinion helps [noparse]:)[/noparse]
  • FredBlaisFredBlais Posts: 379
    edited 2009-09-09 13:15
    I've just found three video of the Chameleon... http://www.youtube.com/user/XGSDEV

    regards,
    Fred
  • AndreLAndreL Posts: 1,004
    edited 2009-09-09 22:51
    Yes, we thought we might post these to give people something to look at [noparse]:)[/noparse] They are just our internal "testing" videos that the chinese manufacture watch to help understand the test procedure. With every product there is a 30-50 manual we write that explains how to build and test the units. This explains how to install tools etc. and of course these have to be written as if you were speaking to a child due to the language barrier, so we create videos so they can "watch" the process and go "ah haaa". Anyway, I thought customers might like to see the units in action a bit, so we posted them last night ---

    Andre'
  • Jesse DruehlJesse Druehl Posts: 25
    edited 2009-09-10 01:45
    This is on my Christmas list. Not sure of AVR vs PIC though, I have PIC experience with 16f628 16f877 asm et al.

    - Jesse
  • AndreLAndreL Posts: 1,004
    edited 2009-09-10 02:25
    Hmmm, that's a tough one -- the AVR is compatible with the Arduino, the PIC is 16-bit and faster etc. But, I usually like to learn new things, so I would pick the one I don't have experience with -- however, if you want to solve a problem with the Chameleon then get the one you are familiar with -

    Andre'
  • FredBlaisFredBlais Posts: 379
    edited 2009-09-10 12:52
    Any dates?
  • AndreLAndreL Posts: 1,004
    edited 2009-09-10 19:31
    Going to put the Chameleons for pre-sale this week --

    Andre'
  • Brandon C.Brandon C. Posts: 106
    edited 2009-09-11 15:16
    Hi Andre,

    I am quite excited about the Chameleon. I have a few questions.

    1. Is it sold in a kit form?

    2. is there any equipment needed (such as programmers)?

    Thanks,

    Brandon C.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    No purchase necessary. See back panel for more details.

    Tired of the same old robot brains? not enough processing power? Get the Propeller Robot Module now!!

  • AndreLAndreL Posts: 1,004
    edited 2009-09-11 20:29
    1. Its not a kit, its a board pre assembled, its ultra small 603, so you wouldn't want to build it. Plus, its not a learning tool, its an application made to do work.

    2. Yes and no. You can program the Propeller with just a serial cable, but to program the AVR/PIC you need a programmer. HOWEVER, both systems have bootloaders loaded on them, so you can program them without. In the case of the PIC, we have a little setup so you can use a text editor and then download with the command line compiler and programmer. With the AVR, its got the ardunio bootloader, so you can use the arduino toolchain to program and download. But, I suggest you spend $20-40 and get an official programmer for either unit; pickit2 or the AVR ISP MKII respectively. We will sell them as well for a reduced price if you buy them with the systems. Or you can buy a clone off sparkfun etc that is compatible with AVRstudio, MPLAB etc.

    Andre'
  • FredBlaisFredBlais Posts: 379
    edited 2009-09-11 22:58
    Will we have access to the datasheet and docs before buying?
    I wonder how we can control parallax graphics driver from the pic/avr·and to call functions like plot() etc...
    Do we have to program the propeller for that, or all of this is accessible through c/c++ on the other uC?

    Fred
  • AndreLAndreL Posts: 1,004
    edited 2009-09-12 02:50
    Well, when I put it up on the site for sale everything we have will be posted, but its a work in progress (the manual). But, the idea is very simple. You have the master (AVR/PIC) and the the slave (propeller). They are connected by 3 lines (a spi interface). Now, do what you want to do with it ...

    Of course, to start you off I have written software that runs on the AVR (or pic) that has an API to send commands thru the SPI interface, then running on the Prop I have written a spi virtual peripheral that listens for packets, then it gets them. Then another processor parses the packets and then issues commands to the other objects that you have loaded in. And of course you are free to re-write the driver, use other objects ,etc. the point is this is a "model" or template of how to use the Prop as a slave. Think of it as an X-terminal slave, same idea.

    Here's an excerpt from the top level prop driver:

    
     COMMENTS: This is the Chameleon generic driver "Default 2". It's not meant to be fast or sexy, but simple a
     good example of interfacing to multiple drivers on the Propeller chip. This version of the driver "Default 2", uses
     my HEL tile engine to augment the graphics on the NTSC screen and give you more "gaming" opportunities. Other than that
     this driver is the same as the "Default1" driver. This driver simply has more commands. However, the same simple Terminal I/O
     commands that work on the NTSC Default driver work here. Thus, as long as you don't need more than 32x24 characters on the screen
     you should use the higher performance Default2 version. But, bottom line is you can use any objects you want and make you own drivers
     these are just examples! 
     
    
     This drivers supports the following capabilities:
    
     0. COG 0 - runs SPI channel message dispatch and MCP (master control program).
     1. COG 1 - runs ASSEMBLY language "virtual" SPI interface that AVR/PIC communicates with.
     2. NTSC video (1 COG) - simple "terminal" or more advanced graphics tile engine.
     3. VGA video (1 COG).
     4. Multi-channel audio (1 COG).
     5. Keyboard or mouse (0/1 COG).
     6. I/O to the Propeller "Local" I/O 8-bit port. (Uses COG 0, runs in main thread for now).
    
     Total COGS 5-6
     
     From the AVR/PIC side you can write a lot of interesting programs that leverage these simple drivers, then as your needs change
     follow the documentation tutorial on how to modify this driver, so you can alter and enhance its functionality and try different "Objects"
     from the Parallax Object Exchange or other sources. 
    
     ARCHITECTURAL OVERVIEW:  This system works by the host (AVR/PIC) sending commands over the SPI interface to the virtual
     SPI driver running (launched by this object), then as commands come thru the SPI data stream they are parsed and dispatched
     to the proper drivers running on other COGS. Here's a visual of what's going on:
    
      AVR/PIC  <--------> SPI <-----------> Prop (virtual SPI Interface ASM language)
                                                      |   |   |   |   |  
                                                      |   |   |   |   |--NTSC driver -----> TV monitor
                                                      |   |   |   |
                                                      |   |   |   |------VGA driver  -----> VGA monitor
                                                      |   |   |   
                                                      |   |   |----------Keyboard driver -> PS/2 keyboard
                                                      |   |
                                                      |   |--------------Mouse driver ----> PS/2 mouse
                                                      |
                                                      |------------------Sound driver ----> Audio amp or TV
                                                                            .
                                                                            .
                                                                            . (more drivers)
    
    
    



    Then here's an example function from the AVR/PIC API I developed that you call from C/C++ to send the commands to thru the SPI channel:

    int Mouse_Read(gid_event_ptr mouse)
    {
    // this reads the mouse delta position and button state and stores the results in the sent mouse record
    
    #define MOUSE_DELAY_SCALE 1 // this local scale factor helps tune this delays for a longer critical path thru the driver
                                // use larger number if things get funky
    
    _delay_us(MOUSE_DELAY_SCALE*SPI_PROP_DELAY_LONG_US);
    
    // read delta x position first
    SPI_Prop_Send_Cmd( MOUSE_CMD_DELTA_X, 0x00, 0x00); 
    _delay_us(MOUSE_DELAY_SCALE*SPI_PROP_DELAY_LONG_US);
    
    // now read data from SPI buffer
    mouse->x = SPI_Prop_Send_Cmd( READ_CMD, 0x00, 0x00); 
    _delay_us(MOUSE_DELAY_SCALE*SPI_PROP_DELAY_LONG_US);
    
    // read delta y position 
    SPI_Prop_Send_Cmd( MOUSE_CMD_DELTA_Y, 0x00, 0x00); 
    _delay_us(MOUSE_DELAY_SCALE*SPI_PROP_DELAY_LONG_US);
    
    // now read data from SPI buffer
    mouse->y = SPI_Prop_Send_Cmd( READ_CMD, 0x00, 0x00); 
    _delay_us(MOUSE_DELAY_SCALE*SPI_PROP_DELAY_LONG_US);
    
    // read delta z position 
    SPI_Prop_Send_Cmd( MOUSE_CMD_DELTA_Z, 0x00, 0x00); 
    _delay_us(MOUSE_DELAY_SCALE*SPI_PROP_DELAY_LONG_US);
    
    // now read data from SPI buffer
    mouse->z = SPI_Prop_Send_Cmd( READ_CMD, 0x00, 0x00); 
    _delay_us(MOUSE_DELAY_SCALE*SPI_PROP_DELAY_LONG_US);
    
    // read buttons 
    SPI_Prop_Send_Cmd( MOUSE_CMD_BUTTONS, 0x00, 0x00); 
    _delay_us(MOUSE_DELAY_SCALE*SPI_PROP_DELAY_LONG_US);
    
    // now read data from SPI buffer
    mouse->buttons = SPI_Prop_Send_Cmd( READ_CMD, 0x00, 0x00); 
    _delay_us(MOUSE_DELAY_SCALE*SPI_PROP_DELAY_LONG_US);
    
    // return success
    return(1);
    
    } // end Mouse_Read
    
    



    Thus, from your point of view as a programmer on the AVR/PIC to control the mouse on the Prop all you do is a single line of code:

    Mouse_Read(...) !!!!

    The Prop boots up, ready to go during power, default driver is loaded, and its just waiting for commands like this one --

    Andre'

    Post Edited (AndreL) : 9/12/2009 2:57:07 AM GMT
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-09-12 06:42
    Andre:

    This sounds like an interesting piece of Propeller code. Any chance that you have released the Propeller Source/Binary,
    along with some schematics in the package like you did with the Hydra product? I'm not really interested in programming
    a PIC/AVR, but this sounds like an interesting setup for multi-Propeller setups as well.

    I could imagine a very nice dual Propeller setup along the same lines....

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
Sign In or Register to comment.