The CFA-10036 lets you easily use the powerful ARM9 based i.MX28 processor running Linux for your embedded GPIO intensive project.
What is the CFA-10036?
The CFA-10036 is a small, highly functional ARM9 based Linux SOM (System On Module). Our goals when we designed the CFA-10036 were low cost, ease of use, and lots of GPIO.
Crystalfontz is an OEM display company. How did you end up developing a SOM?
We created a high-end Linux based intelligent display that included a few fine pitch BGA parts and many larger pitch, lower density parts. To reduce overall cost, we found it made sense to move the fine-pitch high-density (BGA) parts onto a small, relatively costly PCB (CFA-10036) and move the rest of the parts onto a larger, lower cost PCB (CFA-10037).
Every tech geek who saw a prototype of the CFA-10036 quickly had an idea for a project that could use it. They wanted to use it in a test fixture, in another display design, in a motion control project, or in an automotive control project.
So the design just fell out of thin air?
Our unofficial motto is “If it's worth doing, it's worth overdoing.” We ended up spending hundreds of hours updating our knowledge of high-speed PCB design, and designing and laying out the CFA-10036 to maximize the performance and minimize the cost. We think the result is beautiful:
Neat hardware. Since you used the i.MX28 and Freescale has Linux running on their EVK, the software must have been cake, right?
It turns out the existing Linux port for the i.MX28 is a few versions back (2.6.x), and not exactly all of their code was pushed back to the community maintaining the branch. If we used that as our base, we would be stuck on a frozen and outdated branch of Linux. We hired Free-Electrons to create a device tree for the CFA-10036 under the current mainline kernel version 3.7. This means that Linux kernel support for the CFA-10036 will be maintained right along with the Linux you would install on your PC.
Why not 0.1” center headers? Why use the SODIMM socket?
To bring out 200 pins at 0.1” centers would require a 10-inch long dual row connector. Ouch. The SODIMM footprint does this in less than 3 inches.
It is all about getting the micron-size paths on the silicon chip out to the level where the user can access them. The first step is from the silicon to the 289 ball BGA package:
The next step is from the dense BGA package to the high-density, fine-pitch, multi-layer CFA-10036 PCB. The next step is to spread those out again to a lower density, larger pitch, and lower cost PCB. The SODIMM connector is a great way to get a lot of signals from the CFA-10036 to the main PCB. SODIMM sockets are designed for high speed signals, low cost and high reliability.
To get the mechanical stability expected in embedded systems, we slightly extend the JDEC SODIMM form factor and add two mounting holes. These mate perfectly with the nifty little blind threaded SMT standoffs that hold the CFA-10036 securely to its carrier PCB:
There are already quite a few i.MX28 based SOMs out there. What makes the CFA-10036 special?
Most contain flash memory soldered as chips onto the SOM PCB for nonvolatile storage. We think that it makes more sense to use a microSD card:
Much like booting a PC, the embedded Linux image is loaded to RAM from the SDcard mounted as a Linux disk. Remember, you are working with 128MB of RAM, not 128KB!
The microSD opens up fantastic user data and logging possibilities. How many temperature points can you store in 16GB?
We also added a small-but-pixel-dense 128x32 OLED for easy status display:
and a micro USB connector for simple communications:
I only need one. I suppose I have to buy some kind of an expensive development system just to get it to power up.
All you need is a standard micro USB cable, which we will include.
You gotta be kidding.
Nope. You can access the file system and command terminals using the gadget driver over the USB cable. Keep in mind that the CFA-10036 has a 128x32 OLED you can use for status or debugging messages.
There is also 0.1" center access to the i.MX28's DUART (Debug UART) available on both the CFA-10036 and CFA-10037. You can connect a "TTL to USB" cable to this connector.
What kind of fancy power supply and connector do I need on my PCB?
Thanks to the i.MX28's advanced integrated power circuitry, you only need to supply the CFA-10036 with 5v. The only connector you need is a standard, widely available 200-pin SODIMM.
All this sounds good so far, but I'm not much of a Linux geek. Can I program for the CFA-10036 without having a dedicated Linux machine?
Yes. We have detailed instructions to create user programs for the CFA-10036 on a Windows 7 or Windows 8 box, including how to get your own “Hello World” message to display on the OLED. Of course, you can also use a Linux box as the host. Most users will never need to rebuild the Linux image from scratch, but if you wanted to do that you would need a Linux box or a VM (virtual machine) running Linux.
Enough of the feel-good marketing drivel. What is the geek cred?
454MHz Freescale i.MX283 (optionally i.MX287) processor:
289-ball BGA 17x17 grid on 0.8mm pitch
16-Kbyte instruction cache, 32-Kbyte data cache
2x CAN interfaces (i.MX287 only)
Four synchronous serial ports
10/100-Mbps 802.3 Ethernet MAC (1x on i.MX283, 2x on i.MX287)
USB 2.0 OTG (connected to microUSB AB on CFA-10036)
USB 2.0 host controller and PHY
5x UART plus one dedicated debug UART
2x I2C (OLED shares one of these)
LCD, touch screen, keypad, and rotary encoder support
RTC with 32KHz crystal (requires continuous power)
4x 32-bit timers
5x 12-bit 428KS/s ADC channels
1x 12 bit 2MS/s ADC channel
In short, all peripherals available on the i.MX28 are available on the CFA-10036 expansion connector except the OTG USB, which is brought out to its own dedicated connector. For details, refer to the Freescale i.MX28 data sheet.
128MB (optionally 256MB) DDR2
MicroSD/microSDHC/microSDXC socket: up to 64GB of nonvolatile storage
91 GPIO (i.MX283) or 126 GPIO (i.MX287)
6-layer impedance-controlled PCB, gold SODIMM contacts
On-board micro USB AB connector
Only a single 5v supply needed (3.3v/1.8v/1.5v supplies internally generated)
Here are the specifications of the CFA-10036 SOM:
Why Kickstarter? Why not just offer it for sale on your regular site?
We want to know if there is interest in this module outside of our company. To gain interest, we need to have a low price. To get the price low, we need to have volume. Kickstarter will allow us to judge interest and decide which variants will be most popular, and allow us to make enough volume that the price is acceptable. If the Kickstarter does not fund, we will continue to make small (costly) runs for in-house projects. Larger volume lower cost runs will have to wait until we have a volume product that uses the CFA-10036 as its controller.
Does this have HDMI and audio? Can I use it as a media center PC running XBMC?
No. This is a GPIO intensive SOM intended to be designed into embedded applications. The Raspberry Pi might be a good choice if you are looking for features like these.
Is this just some kind of a souped-up Arduino?
The CFA-10036 has some things in common with an Arduino; they are both single board microcontrollers with good access to their GPIO. Programming on the CFA-10036 is done in C as a Linux application. Programming on the Arduino is done using Wiring, which is arguably simpler than C. There is no reason that Wiring could not be ported to the CFA-10036, and that may happen in time. Comparing raw hardware specs, the CFA-10036 is light years ahead of the AVR based Arduinos. Where the Arduino design using 0.1” center connectors lends itself to benchtop prototyping, the low profile and high density of the CFA-10036 makes it a good candidate to be embedded as part of a larger design.
So how can I easily prototype a CFA-10036 based design?
For prototyping, we offer the CFA-10037:
The CFA-10037 gives access to all the port pins of the CFA-10036, and by extension the port pins of the i.MX28. It also has a prototype area with solid power distribution. All of this is offered in a prototype-friendly 0.1" center format. We made a set of holes that line up with shields designed for an Arduino Uno R3.
By using 0.1" center headers and socketed hook-up wire, you can connect any of the pins on the CFA-10036 to any location on the prototype area.
We did give you a hand with the Ethernet PHY and USB A connector, since those will commonly be used, and their PCB layout can be fussy.
For serious hardware-level debugging, signals are brought out for connection to a compatible JTAG debugger:
You say "Open, Hackable". How open?
We will release the full schematic (PDF, PADS) and layout (gerbers, PADs) of the CFA-10037 prototype board.
For the CFA-10036 we will release the schematic in PDF format, as well as PDF or spreadsheet documentation of all the pin functions.
We think most users will run Linux on the CFA-10036 hardware, and we have gone to great lengths to make that happen by writing/porting drivers for the GPIO/Ethernet/USB/I2C/OLED etc.
If that is not enough, you can load programs straight to the "bare metal" with no OS at all, or you could port an RTOS.
Can Crystalfontz produce this product?
Yes. We have a well-developed supply chain for our LCD modules and cables. Our PCB contract manufacturer is highly capable and has proven to be very reliable. We have lots of experience sourcing parts, managing outside manufacturing and we are set up in-house for final assembly, custom configuration and testing.
US SHIPPING: US FedEx Ground shipping is included in the basic pledge levels.
INTERNATIONAL SHIPPING: There is not a great way to add a variable shipping charge to the pledges. We do not want to do a flat rate, since international shipping rates vary greatly by country.
Please choose the "INTERNATIONAL SHIPPING" reward and pledge a small amount ($1), then message through Kickstarter with your address and the reward level you would like. We will message you back with a pledge amount that will cover the reward and the shipping. You can then "Manage Your Pledge" and and change the amount to match the quote we provided.
Please note that some countries will impose an import duty or custom fees. You will be responsible for all customs fees, duties, VAT or other taxes imposed by your country. We cannot predict those fees, and they are sometimes billed separately after the shipment has been received.
Risks and challenges Learn about accountability on Kickstarter
We are currently validating the 3rd prototype revision of the CFA-10036. The prototypes have proven to be stable and reliable. We feel that the critical hardware design is mature and robust.
We have completed much of the software development: we have a full Linux kernel up and running. We have ported or written many drivers. There are still some drivers that we have not tested (CAN comes to mind).
Our hope is that by making this project open, the interfaces we do not use (such as CAN) will be supported and used by the community as they are needed by specific projects.
Due to Linux's driver architecture, we do not currently have the GPIO speed that we would like to see under Linux. We have an approach to give us better real-time GPIO access, but we have not coded and tested that method yet.
As with any product, there may be unforeseen supply chain issues. The biggest risk would be if the i.MX28 went long lead time. Most of the other components can be sourced from multiple sources.
Have a question? If the info above doesn't help, you can ask the project creator directly.