P-P-PIC up a TFT with chipKIT and DisplayCore

Did you know that chipKIT boards are probably the best choice for controlling a TFT screen?… Considerably better than most Arduino boards, that is for sure! I say that with confidence for three reasons:

  1. chipKIT boards typically have far more memory and computing power than many Arduino boards, and as a result, they are so much better at manipulating graphics and data for display.
  2. chipKIT boards can get the data out to the TFT screen so much faster though high-speed interfaces, so less time is spent redrawing things on the screen. You’ll find that images appear instantly, as opposed to being drawn out slowly.
  3. Finally my favourite reason: professional-grade library support. I say it’s my favourite because I designed and wrote the library myself, but I’ll tell you more about that journey later on.

First let me introduce you to a little friend of mine:

picadillo

This here is the Picadillo-35T developed by 4D Systems in Australia (also available from microchipDIRECT). The Picadillo is essentially a chipKIT MAX32 board with a nice, high-resolution TFT touch-screen strapped to the back. The meaty PIC32MX795F512L chip (also used on the MAX32) boasts plenty of RAM (128KB) and Flash (512KB) and all the other bells and whistles you have come to expect from chipKIT boards. The board also has the same connectors as the popular chipKIT Uno32, uC32, WF32 etc., so all your shields should just plug in and work. You also get sound thrown in to the mix with an on-board speaker, and of course you get an SD card slot–what self respecting board would be without one these days anyway?!

Ok, enough said about that. The main reason I write this post is to tell you of the most useful part of this Picadillo board: the TFT touch-screen. And let me tell you, it’s not just any TFT screen. It’s an above-average 3.5″, 320×480 resolution, crisp-image delivering screen. Not only that, but the way the TFT is wired to the PIC32 chip is also “above average.” The TFT connection boasts a 16-bit parallel interface, not the normal slow SPI interface that most cheap Arduino TFT screens give you–meaning that it takes one bus clock operation to output a pixel as opposed to 16 (a considerable speed increase!).

But that’s still not all! (I’m starting to sound like a TV salesman now. “Buy now and we’ll throw in this amazing clock radio and set of saucepans absolutely free!”). The TFT’s 16-bit interface has been directly connected to the “Parallel Master Port” (PMP) of the PIC32. The PMP is a bit like the old internal bus of early computers; you get an address bus, a data bus, and a bunch of control signals, meaning there’s no messy twiddling of GPIO pins with the likes of digitalWrite() (or even direct port manipulation using registers). Writing data to the screen takes just one instruction. That’s right – ONE instruction. And that means even greater speed. But wait, there’s more! (Here comes the gold-plated nose-hair trimmer…) It’s called DMA: Direct Memory Access. Guess what that can do! DMA can send data through PMP, and this essentially allows for direct communication with the TFT display, all without the MIPS CPU’s involvement! In effect, you can be outputting data to the screen whilst doing other things! All-in-all it’s really a thing of beauty… if you like that kind of thing, of course.

So what does all that mean to the layman? It means you have a well-designed, well-built bit of kit in a nice compact package with all the power you could ever want to make your perfect user interface. But isn’t programming user interfaces and drawing graphics on a TFT screen a hard job? Isn’t it fairly skilled and in-depth? Don’t you have to write reams and reams of code just to get it to print “Hello World”? Well, yes, you do. However I have already done all that for you. And that is where the journey to the core begins.

Continue reading P-P-PIC up a TFT with chipKIT and DisplayCore

VN:F [1.9.22_1171]
Rating: 9.7/10 (6 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

chipKIT Pro and Stepper Motors

A typical stepper motor
A typical stepper motor


Stepper motors seem to be the thing these days! As a follow-on to a couple of posts regarding the use of chipKIT Pro with I/O control and Delays, we want to share Learn.Digilentinc’s chipKIT Pro with Stepper Motors project, which builds upon the knowledge learned in the two previous projects and teaches you how to apply a software-based state machine approach to control the speed, rotation direction, and operation mode of stepper motors. It requires knowledge of C or C++ programming, MPLAB X IDE, finite state machines, and the two previously mentioned projects. Go get your learn on!

VN:F [1.9.22_1171]
Rating: 8.3/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)

chipKIT Pro and Delays

Screen capture for 20 ms delay (using Digilent WaveForms on Microsoft Windows 7).
Screen capture for 20 ms delay (using Digilent WaveForms on Microsoft Windows 7).

As a follow on to a recent post about chipKIT Pro and I/O Control, the Learn.Digilentinc site has put together a chipKIT Pro and Delays project to teach methods for using software delays in your code. Because the microcontroller executes code so quickly, you may want to slow down the processor to meet the needs of your application. This project includes a background on timing of microcontrollers and requires knowledge of C or C++ programming, MPLAB X IDE, binary math, Boolean algebra, bit manipulation, and I/O Pin Control.

Get your Learn on! 🙂

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

chipKIT-Board Microcontroller Specs

A typical description for the specs of a microcontroller
A typical description for the specs of a microcontroller

Integrated circuits (ICs), microprocessors, microcontrollers (MCUs)… These are all similar names for devices like the PIC32 device that is the main IC on your chipKIT board. Such devices have many specifications that might make your head spin if you’re new to this sort of thing. If you’ve ever found yourself intimidated when you see a spec list like the one to the left, or perhaps hopeful that someone might explain to you, in layman’s terms, what all the technical jargon about microcontrollers REALLY means, then look no further. Josh Woldstad at Digilent has put together a quick explanation of the specs of an MCU, namely the one on board the chipKIT Max32 board. Hopefully, he helps dispell some of that fear!

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Digilent Learn – Debouncing Circuits with chipKIT Uno32

Digilent Learn - Debouncing Circuits with chipKIT Uno32 Microcontroller
Circuit with a button and an LED – Learn how to Debounce with chipKIT Uno32

Digilent’s Learn site provides tutorials for learning various hardware and software concepts, and you can choose “projects” (tutorials) based on topic, difficulty, or your personal area of interest. They also group projects together to form modules of related content, and they group modules to form courses, which are structured like college courses.

Today we’re sharing their “Debouncing Circuits with Microcontrollers” module, providing four distinct ways to learn how to debounce circuits, with chipKIT Uno32, whether in your software sketch, by using a library, via RC filter, or with force buttons.

VN:F [1.9.22_1171]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)