About this project
I'm a master's student at Texas A&M University, and I've been working with microcontrollers and physical computing for a few years now. I've built several interesting projects, many of which you can find on my portfolio, including one you may have seen on TV.
Like many of you, I got started with an Arduino, but I found myself limited by the inflexibility of the platform: too little bandwidth over the UART, too few analog inputs, too few digital outputs, etc.
That's why I decided to create the freeSoC, an open hardware platform for the best microcontroller in the world: Cypress Semiconductor's PSoC 5. I hope this project will enable makers around the world to explore the world of possibilities enabled by the PSoC microcontroller. Never let your tools get in the way of your imagination again.
We're kickstarting this project to raise funds for the first big production run of these boards. We've already had several small prototype runs, and we're currently developing a test harness for functional verification after production. Your money will help support this cause, and also help build the freeSoC community at http://freesoc.net.
Pick Your Poison
freeSoC offers 60 general purpose I/O pins, 8 special I/O pins, and a direct USB connection to the PSoC 5 microcontroller on board. It has an Arduino compatible pinout, as well as five 10-pin expansion headers, each breaking out 8 GPIO, power, and ground.
freeSoC Mini offers 24 general purpose I/O pins and 8 special I/O pins. It's dimensioned exactly to fit in 40-pin DIP sockets, and can act as a drop-in replacement for an 8051 microcontroller. The Mini will ship with 2 pairs of 20-pin machine pin headers, which you can install yourself, or choose to leave off. (Note: freeSoC Mini does NOT have a direct USB connection to PSoC, just a programer)
Both boards feature the top-of-the-line Cypress CY8C5568 PSoC Microcontroller (specs listed below), and have a built in programmer that works directly with PSoC Creator for both programming and in-circuit debugging.
Break Free from Inferior Microcontrollers
Never again find yourself short on analog I/O, or bouncing off the limits of UART over USB. freeSoC enables you to focus on your design, instead of the limitations of your microcontroller.
Design your Hardware, in Software
PSoC Creator, the free IDE for freeSoC enables you to build your hardware functionality graphically, without grabbing any hookup wire. Need a 16 channel multiplexer? Just drag and drop. Need a couple op-amps to buffer that high-impedance signal? Drag and drop. Want to put USB in your design? Drag and drop.
Any Pin, Any Purpose
With freeSoC, you can use any GPIO pin for any function. Need 16 SPI controllers? No Problem. 24 PWMs? freeSoC has you covered. How many other microcontrollers on the market can act as a 32 channel analog multiplexer?
Debug like a Pro
Using the free PSoC Creator software, you can easily debug your designs directly from your computer. Just like visual studio, or any other modern IDE, you can set breakpoints, break conditions, watched variables, and more!
Made by Hobbyists, Made for Hobbyists
Unlike the Cypress Semiconductor PSoC development kits, freeSoC is geared around the needs of hobbyists. With an Arduino compatible pinout and five 10-pin expansion ports, freeSoC has the flexibility you need.
freeSoC's board layouts and schematics are released under a CC-BY-SA license. Download them here and create your own design today!
Download PSoC Creator today! It's completely free, and you can get it now! Don't wait til your freeSoC board arrives to begin designing, just download the software, play around with it for a few minutes, and you'll be hooked.
Here's a pin diagram, as requested by several of the backers. All General Purpose I/O Pins can be used for any purpose. Special I/O are digital only, but allow for higher current drive. Both boards have a USB programmer, but only the freeSoC allows you to use Full-Speed USB communication in your design.
We've also upgraded the regulator to a National/TI LP2989, which will accept input voltages up to 16V, and has an unbelievably-fantastically-low output noise of 18uV RMS. This is nearly 3 orders of magnitude better than most linear regulators, and will ensure you can make full use of PSoC's precision analog components.
Hole Diagram and New Board Layout
Feature junkies, prepare for your fix.
32-bit Arm Cortex M3
The Cortex M3 MCU in freeSoC offers DC to 67MHz Operation, 256KB Flash Memory, and 64KB SRAM, more than enough for your most complex projects. Hardware multiply and divide operations ensure you'll never be limited by your microcontroller's capabilities.
A graphically configurable external memory interface allows you to expand the storage of your device with up to 1GB of external memory, directly mapped in the 4GB address space of the Cortex M3.
Dual SAR ADCs
Dual 12-bit, 700ksps SAR ADCs offer unparalleled speed in conversion, even for the most demanding applications
Delta Sigma ADC
The onboard Delta Sigma ADC can be used at any resolution from 20 bits to 8 bits. At 20 bits of resolution, it offers 180 sps, useful for thermocouples or strain gauges. At 16 bits, it will convert at 48000 sps, perfect for audio applications. At 8 bits, it will convert at 384ksps, almost equaling the SAR ADC in conversion speed.
Quad 8-bit DACs
Quad 5.5Msps IDACs allow for extremely fast, extremely precise digital to analog conversion. IDACs can be configured as current sources or current sinks. Alternatively, you can configure them as voltage DACs, for a speed of 1Msps on each DAC.
Four built in comparators can be routed to any analog component.
Quad Rail-to-Rail OpAmps
Four OpAmps, spec'd at 3MHz GBW and 10mA drive, can be used to buffer any incoming analog signal, or you can directly connect them to external components in your design. OpAmp outputs can be used through dedicated pins for full current capability, or routed to any internal signal or external pin on the freeSoC.
Capacitive Sensing on all GPIO, Sliders, Buttons, and more. Cypress in a leader in capacitive sensing technology, and provides a built in auto-configuration utility, so you can easily implement your capacitive sensing design without the headache of manually configuring the sensitivity.
Quad Multifunction Analog Blocks
These multifunction analog blocks can be configured as programmable gain amplifier, transimpedance amplifier, or for sample and hold. Need a precision current measurement from your photodiode? Just plug it straight into freeSoC, run it through a transimpedance amplifier, pump up the gain with a PGA, and use your delta-sigma ADC for a 20-bit conversion.
Advanced I/O Routing Network
Route any analog peripheral to any GPIO pin on freeSoC. Use your freeSoC as a 32 channel analog multiplexer. Or a 16-channel differential mux. Inputs and outputs both can be routed to any GPIO on the PSoC.
All GPIO can be configured as high-impedance analog, high-impedance digital, open drain (both source and sink configurations), resistive pull up, resistive pull down, or strong drive.
24 PLD based Universal Digital Blocks (UDBs)
These are the heart of freeSoC's digital flexibility. Can be configured graphically with built in components like PWM, SPI, I2C, LIN, CAN, SPDIF, I2S, Quadrature Decoders, Counters, CRC, and standard digital logic gates.
OR, roll your own components with verilog, tie them into your block diagram like any other component, and get hardware-accelerated speed for your custom digital application. It's like having a built-in FPGA without all the hassle of having an FPGA.
Full Speed USB
A full speed USB transceiver is built in to freeSoC. Graphically configure your USB endpoint and device descriptors. PSoC Creator has built in support for Audio Descriptors, HID, MIDI, UART, and more. Don't waste your time reading the USB spec, just drag and drop and you're done. freeSoC has a built in 24MHz oscillator for full USB compliance.
Built-in Timer, PWM, and Counter Components
In addition to the flexible UDBs, freeSoC has four dedicated 16-bit counter/timer blocks, and four dedicated 16-bit PWM blocks. These can be used without using any of the UDB blocks, and can also be routed to any pin on the freeSoC.
The freeSoC includes a real-time clock crystal running at 32.768kHz. Use this with the built-in RTC component in PSoC Creator to instantly create a digital clock, with built-in methods for generating year/month/day/hour/minute/second data.
PSoC Creator lets you configure DMA channels graphically. You can use any digital signal as a trigger for a DMA request, and totally bypass the CPU bottleneck for ultra-high bandwidth applications.
Each board has 8 special I/O pins that can be used for high-current drive applications.
All boards are RoHS compliant.
We expect to ship boards approximately one to two months after funds clear.
Risks and challenges
We have been through 3 iterations of the PCB design, and are already manufacturing the first run of freeSoC boards through our manufacturer in low volumes.
The only risky thing about this project is the potential yield rate of production boards. We are countering this risk by putting together a test harness for each board that will allow the manufacturer to run a quick functional test on the boards, and fix any that have issues, before we have them shipped to us.
I have done PCB design and low-volume manufacturing of prototype boards for a number of years now. I recently incorporated a functional testing step into our manufacturing process with ZeroTouch, and I'm very comfortable designing effective test harnesses and procedures.Learn about accountability on Kickstarter
For the freeSoC board, absolutely yes. The freeSoC Mini, however, doesn't have room for any mounting holes.
Probably not. We chose to use 3.3V as our default voltage level. The reasons for this are varied, but it comes down to one main factor: USB doesn't provide an easy way to get clean 5V power.
Typical USB voltage coming out of your computer can range from 4.5 - 5V. If we used a 5V LDO regulator, this doesn't allow for the dropout voltage of the regulator. The other solution, as Arduino has adopted, is to use the USB voltage to directly power the boards. We find this solution insufficient for the freeSoC. PC USB voltage rails are typically very noisy, and the freeSoC has been designed to maximize the analog potential of the PSoC hardware.
We use a 4-layer board design to ensure a full ground plane under all traces and components, leading to a lower noise floor. We are also using a low-noise regulator with high PSRR to ensure a clean voltage for all the components. Using USB power directly would render these optimizations ineffective, and lead to lower precision analog performance, which directly contradicts our desire for a high-performance, low-cost board.
We are considering routing the USB voltage straight to the 5V connection on the Arduino shield connector, as suggest by a backer, which would perhaps resolve compatibility issues with most shields, but this is so far undetermined. We will be testing as many Arduino shields as we can in the meantime to determine the best course of action.
PSoC Creator is a Windows-based IDE.
However, I exclusively use Macs, and I use Virtualbox for my development with PSoC Creator. I've used both Windows XP and Windows 7 successfully, and I actually prefer doing this to a pure-Windows approach.
The reason for this is that when developing a USB project, I can program and debug in Virtualbox, and then use libusb and PyUSB (both mac/linux compatible) to communicate with the freeSoC without having to go through the hassle of installing a driver for the device.
The system requirements are pretty minimal (1GB RAM, Pentium 4 processor or better), so any modern computer will run it no sweat.
Support this project
- (30 days)