About this project
High Resolution version of our video on youtube!
Come find us at the NY Maker Faire on September 20 & 21 at the NY Hall of Science
The RPiSoC is an electronics development platform that allows your software to interact with the physical world with a unique combination of power, flexibility, and accessibility. It allows you to easily interact with and control various sensors, motors, and even the Raspberry Pi (RPi) so that your ideas can truly be brought to life.
So what benefits does the RPiSoC provide to you? If you've ever been interested in getting into programming or electronics now is your chance to give it a try. And now you can interface millions of existing web and Linux applications with the real world, allowing for powerful projects that you won't have to start from scratch. With the tools and software we provide, the barrier to entry has never been lower!
Here are some examples of projects you can make as soon as you get your RPiSoC:
We believe that a project should only be limited by one's creativity, and never by the resources available to you. The board layout, schematic, and all of our software are open source and will be available to download. in case you find inspiration in making your own embedded hardware, or want to further contribute to the boards design. We will also have step-by-step user guides for every project we create, so you can put them together as soon as you get your RPiSoC!
The board utilizes Cypress Semiconductor's PSoC 5LP, a programmable system on a chip, which according to Cypress is the world's first programmable embedded design platform that integrates discrete analog and programmable logic along with memory and a microcontroller. Our board can be used as a standalone device or in conjunction with the Raspberry Pi. This opens up endless possibilities that combine the Pi’s breadth of available Linux software and increased compute power, with the various interfaces the RPiSoC provides. The RPiSoC provides the Pi with several on board peripherals and features that expansion boards would be hard pressed to match, not to mention providing all the functionality that is PSoC specific.
We are Robert Barron and Brian Bradley; engineers by profession, but makers by hobby. Together we formed Embedit Electronics with the goal of bringing the flexible RPiSoC platform into the hands of others like us.
We are both recent graduates of Rensselaer Polytechnic Institute, and studied Electrical and Computer Systems Engineering. The RPiSoC started as a senior design project but it quickly gained so much momentum that we had to share it with the world. That's where you come in!
As you may have already heard, the Raspberry Pi is a tiny and powerful computer with the powerful advantage of Linux support. But as you might have already discovered, Linux is not a real time OS, and the pi simply isn't well equipped for interacting with physical devices. This makes it a very disadvantaged embedded platform!
Our project aims to extend the functionality of the Raspberry Pi by providing it with an almost overwhelmingly large set of dedicated hardware capable of precise, real time tasks. With our board the Raspberry Pi has access to PWMs, high resolution DACs and ADCs, Opamps, DSP, Pmod and Arduino Shield interfaces, and much more! Our board and the RPi can communicate to each other in real time over UART, I2C, or SPI. We have even developed an easy to use Python API that makes all this functionality easy to utilize. Below you can see all the peripherals you would need to buy to even approach the amount of resources built in to our board - and it still doesn't come close!
The strength of this combo becomes apparent when you watch some of our project demonstrations. The RPi can be programmed in Python using our API to send and receive commands from the RPiSoC. This allows for endless possibilities, from something as simple as controlling servo motors, to home automation through a webserver. This also means you can use Python exclusively to control and dynamically reconfigure a lot of RPiSoC's functionality, through the Raspberry Pi.
Complex embedded applications through Python, with access to Linux software? That is powerful!
You might be wondering though, just how easy is it to get the two boards working together? For the sake of total transparency with our backers, we have come prepared with documentation for our API so you can see everything you can do right away. Or even better, check out some simple example code!
And for more advanced projects, where you might decide that the Raspberry Pi isn't needed, do not fear! You can do that too, and we have many examples which you'll find on our website and soon on our github!
So with all that said, while the Raspberry Pi gives the RPiSoC a whole world of opportunity, we still must urge you to not be fooled into thinking this is a fixed function Raspberry Pi accessory! We have several projects that demonstrate what our board can do on its own, and in a lot of ways, this is where the RPiSoC really shines. It's hard to describe exactly how much really is packed into that tiny little chip, but I'll at least say this: don't be surprised if you learn something new every single time you play with it! We will keep you updated through Kickstarter and our website as we begin to publish some of this "standalone" software for you to play with and make your own.
Utilizing the abundance of powerful resources available to the RPiSoC is designed to be accessible to inexperienced users, but it does this without compromising the potential for complex projects. Making your own stand alone projects with the RPiSoC is simple through utilization of the PSoC Creator software.
PSoC Creator is a free, GUI-based design environment for Windows that can free the user from the elements of embedded design that might seem arbitrary or unimportant, like some of the intricacies of an initialization routine. It simply requires the placement of “components” that serve as reconfigurable libraries. Use of these components within a project is easily achieved through each component's API’s, all of which are well documented in datasheets available for each component. These components can be connected to others using the GUI and they can be utilized or reconfigured with C code. You can also create your own components or download community developed ones, including some that we've already developed specifically for this board. Just drop them into your schematic, double click them to quickly change some configuration parameters if you want, then jump into the c-code and start playing with them.
You can go ahead and download PSoC Creator from Cypress right now and experiment with it or look at example projects, even without the board. Make sure to take a look at all the components to see just how much you can do right out of the box. Examples include analog multiplexers, digital filters, pwms, logic gates, UART, and so much more!
You can also program the board over USB using PSoC Creator. We have published a full user guide (PDF) that will walk you through usage of the board and PSoC Creator. Additionally, you can use the Cypress MiniProg3 for programming and debugging using the 5 pin header.
• The RPiSoC features 58 GPIO pins, and in contrast to currently available embedded devices, the vast majority of these can be configured for any of several different purposes.
• These reconfigurable I/O pins include Digital I/O, Analog I/O, PWM, UART, CAN, I2C, I2S, and SPI.
• USB HID and Host capabilities. You can use the communications micro USB port as a keyboard, mouse, joystick, serial communications device and more.
• Ability to interface with the Raspberry Pi using the Python API and by attaching a standard 26 pin ribbon cable (or a 40 to 26 pin downgrade cable for the Raspberry Pi B+) between the RPi and RPiSoC.
• Pin to Pin compatibility with Arduino Shields and Digilent Pmod Daughter boards.
• Never start from scratch with over 200 ready to use PSoC Creator components for creating the ultimate project.
• Onboard 32.768kHz crystal for using a real-time clock. PSoC Creator has an easy to use component for configuring and using the real-time clock.
• On board Analog peripherals including: ADCS, DACs, multiplexers, opamps, mixers, comparators, and more.
• Digital Filter Processor. Configure the easy to use Filter component for signal processing. This is done independently from the CPU, allowing for high quality results without slowing your project down.
• Programmable logic device (PLD) based Universal Digital Blocks (UDB). UDB allows you to automatically allocate resources where you need them. This lets you use large amounts of peripherals at once, such as 24 PWMs or 7 bi-directional UARTs, without bogging down the CPU.
You can even implement logic gates and state machines with these UDB's, and that allows you to turn this mess:
into this neat and tidy schematic, where it will be hardware implemented by the RPiSoC.
In addition to all the digital power the RPiSoC has to offer, it also has several on board analog peripherals. This gives you increased design flexibility by largely eliminating the need for external components. Want to make a quick and dirty 16-channel ADC? No problem, just drop the Analog multiplexer into your project, configure it for 16 inputs, and connect its output to the ADCs input. Want to buffer a Voltage DAC? Easy. Just connect it to an Op-amp in the follower configuration.
There you have it. It really is as simple as that.
But that isn't even the half of it. Check out some of the other analog components that our board has to offer.
We utilized this functionality to make a cheap and effective tensile tester out of a bathroom scale, with little more than an RPiSoC and some 80/20 framing. A "Lab-in-a-box" with a two channel oscilloscope and waveform generator has also been made using this functionality. Possibilities are endless!
The RPiSoC board contains the following user accessible hardware:
- 58 reconfigurable GPIO pins
- 8 SIO pins with higher current sink
- Communication micro USB port with USB Host capabilities
- 5V micro USB port
- Arduino shield and ICSP compatible headers.
- Two Digilent Pmod compatible headers.
- 26 pin ribbon cable connector for use with the Raspberry Pi
- Reset push button
- Programming switch which will indicate that the user intends to load a new bootloadable program onto it. This switch can be re-purposed as an input during run time.
- User accessible LED
- 5-pin MiniProg3 header; Allows for flash programming through the MiniProg3 device (90 of which we'll be giving away to early backers!)
- 32-bit ARM Cortex M3 CPU at 67MHz
- 256 KB Flash Program Memory, with user configurable write protection
- 64KB SRAM
- 24-channel DMA
- Up to 24 16-bit PWM channels
- SPI, I2C, UART, I2S, CAN, and LIN 2.0 interfaces
- 24 UDBs; Reconfigurable digital circuits
- Digital Filter Processor
- Delta-sigma ADC with up to 20-bit resolution
- 2 Successive approximation register (SAR) ADCs with 12-bit resolution at 1Msps
- 4 8-bit DACs, which can be used as Voltage DACs, Current DACs, or "Wave DACs"
- 4 comparators
- 4 Opamps with up to 25-mA drive
- Programmable gain amplifier (PGA)
- Transimpedance amplifier (TIA)
- Sample and hold
- up to 64-channel Analog multiplexers and de-multiplexers
- Capsense support
You can find more detailed tech specs on the PSoC 5LP chip from the Cypress datasheet.
The RPiSoC is ready for production but we need your support to take it to the next level. We need initial funding to support a first production run at a reasonable cost. If we are successful, we intend to continue selling these boards to hobbyists, but we ultimately intend to bring this board into the classroom. We believe that giving engineering students exposure to a commercially viable embedded solution, the PSoC, early on in their educations will be looked favorably upon by employers. And we believe that due to the incredible breadth of applications inherent to the RPiSoC, they will be able to benefit from it within nearly every class in a core engineering curriculum.
So that is our plan going forward past the Kickstarter, but while this Kickstarter is still happening we will continue to develop software for the board for YOU to use, and we will provide frequent updates on this page and on our website.
We have a bootloader developed for USB programming, and have user guides and example code for getting the board up and running on the Raspberry Pi. We will continue to generate documentation for each of the demonstration projects we made, all of which will be open source, and available on our github.
Risks and challenges
Delivering on time. No matter how far we plan in advance, it is always possible the boards will not be delivered to you on time for various reasons. Manufacturing, part sourcing, and fulfillment delays are all possible. With that said, we have made sure all of our parts are available from multiple distributors, and we are using the very same manufacturing facilities that they Raspberry Pi uses. We have also talked to numerous people about their fulfillment experiences, so we should be able to avoid their mistakes!
Finally, we have been testing the RPiSoC for many months under a number of unique usage conditions, but as is the case with every product coming to market, it is always possible that there might exist a flaw that we didn't notice. To that end, we have been making sure to get our test batches into as many hands as possible to ensure it is as solid as it can be. The board has been reviewed by Cypress PCB design engineers, engineering professors and consultants at RPI, and we have even sent a batch of 22 boards to Element 14 where they are being reviewed by their "resident hacker" and engineers, as well as being used in their "Forget Me Not" Challenge where participants are challenged to make great and sophisticated Internet of Things projects. If there happen to be any problems that we didn't catch, our intention is that they are caught by one of these many test groups, and the problems will be resolved before we begin the fulfillment process.Learn about accountability on Kickstarter
Support this project
- (35 days)