Coming soon: chipKIT Lenny!

chipKIT Lenny Development Board
The new chipKIT Lenny!

We have some great news for USB lovers! A new board, chipKIT Lenny, is in final prototype stages and preparing for production. If you haven’t already guessed, the chipKIT Lenny is the PIC32 equivalent of the Arduino Leonardo, only considerably advanced, with more peripherals and overall power.

The Lenny features a direct USB connection that provides a separate USB serial connection in addition to the two UART serial connections provided on the GPIO headers. Advanced users can use the Microchip Harmony framework in MPLAB X IDE to emulate further USB devices such as HID keyboards and mice. For chipKIT core users, enhanced support for emulation is being actively worked on and can be previewed by using the chipKIT Harmony core in UECIDE.

The PIC32 microcontroller on the chipKIT Lenny is a PIC32MX270F256D MCU at 40 MHZ with 256K of Flash and 64K of RAM. This board features the following, and much more!

  • Two I2S/SPI modules for Codec and serial communications
  • Parallel Master Port (PMP) for graphics interfaces
  • Charge Time Measurement Unit (CTMU)
  • Two UART and I2C™ modules
  • Five 16-bit Timers/Counters (two 16-bit pairs combine to create two 32-bit timers)
  • Five Capture inputs and Five Compare/PWM output

Keep your eyes peeled for the chipKIT Lenny release, coming soon!

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

Trophy for chipKIT WF32 Controlled iPad Mount for the Sight Impaired!

chipKIT Controlled iPad Mount for the Sight Impaired
chipKIT WF32 Controlled iPad Mount

In a Digilent-sponsored senior design competition, Kaitlyn Franz’s team won a second place trophy for their project. The team created a Wi-Fi controlled iPad mount for assisting the sight impaired to find lost items. To accomplish this, the team utilized a chipKIT WF32, which has a Wi-Fi capable PIC32 microcontroller on board.

To check out more details, head over to Digilent’s Blog.

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

Trouble with Arduino IDE v1.6.8

Note: This problem was repaired in version 1.6.9 of Arduino IDE

The latest release of Arduino IDE (v1.6.8) has introduced a problem that prevents sketches from running on many chipKIT boards, in addition to some Arduino boards. It appears that any board using an FTDI chip for serial bootloader communications is adversely affected.

A temporary solution is to re-install the previous version, Arduino IDE v1.6.7, which has been well-tested and known to work fine with chipKIT-core selected in the Boards Manager. For more information about installing Arduino IDE and chipKIT-core, refer to the chipKIT-core Wiki page.

When the problem with v1.6.8 occurs, the sketch compiles and downloads from the IDE just fine, but does not appear to execute on the chipKIT board. This is because the serial DTR line between the FTDI chip and MCU is being toggled approximately once per second. DTR is typically tied to the MCU’s RESET line, causing the board to reset before the sketch has had a chance to execute.

The reason for toggling DTR is not currently known, but appears to be a consequence of enumeration of the USB bus. One of our team members writes:
On further investigation it is my belief that the Arduino IDE is not explicitly toggling DTR, but rather enumerating the USB bus repeatedly. As a byproduct of USB enumeration the FTDI chip toggles DTR. This may be the reason the Arduino boards are not affected as they have their own USB/Serial chip and it may not have the same effect on USB enumeration. This “side-affect” is specific AND annoying with to FTDI chip. In theory, DTR should only be toggled when commanded to do so on the COMM port; or maybe (but I don’t think it should) when the COMM port is opened. Just USB enumeration should not toggle DTR, but the FTDI chip/driver has always done this. I have noticed this for a long time as if you plug in any USB device to any port on the same hub as a chipKIT board, the board gets reset. So for example, if you plug in a memory stick, all chipKIT boards on the hub reset due to the USB enumeration.
At the time of this writing (4/20) a temporary solution is to avoid using Arduino IDE v1.6.8. The previous version (Arduino IDE v1.6.7) works fine with chipKIT-core selected in the Boards Manager. chipKIT team members are looking into this problem and will submit a detailed report to the Arduino IDE bug list at the earliest opportunity.
VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

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: 10.0/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

New FAT File System in chipKIT-core

microSD cards are supported on several chipKIT boards
microSD cards are supported on several chipKIT boards
Did you know that a robust FAT file system is now available in chipKIT-core? Keith Vogel of Digilent recently ported the file system library by ChaN at elm-chan.org. You can use this library to create and access files on microSD cards, as shown in the photo above.

But wait… what is a FAT file system, anyway?

FAT stands for File Allocation Table. It’s a method of organizing data on disk drives. Designed way back in 1977, FAT was the standard file system used on disk drives for at least two decades. While modern computers now use more sophisticated systems, FAT is still the standard for USB sticks, Flash drives and solid-state memory cards.
DSDVOL example in Arduino IDE
DSDVOL example in Arduino IDE


Several chipKIT boards (such as the FubarinoSD, WF32, Wi-FIRE, and WiFi Shield) include a microSD card slot where a solid-state memory card can be inserted. The new library allows your sketch to create and access files stored on the memory card. Files can be used for serving up web pages, storing large amounts of data collected from sensors, or anything else you can think of.

chipKIT-core combines the FAT file system with improvements to the DSPI and SoftSPI libraries. (DSPI uses the hardware SPI ports, while SoftSPI uses any combination of unused I/O pins to create a virtual SPI port.) When a microSD card is inserted, your sketch can easily mount it as a disk volume to access files. An example sketch is included with chipKIT-core, and appears as DSDVOL under the File:Examples menu item. Here is a snippet of code from DSDVOL:
Mounting a volume using the new FAT file system
Mounting a volume using the new FAT file system
Up to 5 volumes can be mounted and used at the same time. While most chipKIT boards have only one microSD card slot, virtual disk volumes in RAM or MCU Flash will be supported soon.
VN:F [1.9.22_1171]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: -1 (from 1 vote)

chipKIT Parking Obstacle Sensor

chipKIT_Range_Sensor Seth Stoothoff recently published a detailed tutorial on Instructables, for a chipKIT Parking Obstacle Sensor. The project uses a chipKIT Pro MX4 dev board from Digilent, and a Maxbotix Ultrasonic Range Finder.

The obstacle sensor uses an LCD to display the distance in inches, cm, or mm depending on the “units” variable selected in the code. It also displays a bargraph along the bottom of the LCD, indicating the effective range of about 6 to 255 inches.

Seth modified a cat5e Ethernet cable to run from the dash-mounted pcb and display to the rear bumper where the range sensor was attached. This project is an effective demonstration of range sensor technology and a great way to hack your favorite ride!
VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

chipKIT Uno32 and Nokia 5110 LCD

I have just finished writing up a new tutorial on using the Nokia 5110 graphical LCD with the chipKIT platform. Nokia 5110 LCD was used in Nokia’s popular 5110 and 3310 model cell phones and is a very popular display among the Arduino community because of its low cost (~$3 on eBay). It is a 48×84 pixels matrix LCD driven by the low-power PCD8544 controller chip. It is powered by 3.3V and includes on-chip generation of LCD supply and bias voltages, thus requiring minimum external components for its operation. This tutorial explores the PCD8544 serial bus interface and its connection with chipKIT Uno32 board for displaying text, graphics, and bitmap.

 

chipKIT Uno32 and Nokia 5110 LCD

Read the full tutorial!

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

chipKIT-core is released for use in Arduino IDE

How to use your chipKIT board in Arduino IDE

Did you ever wish you could program your chipKIT board in Arduino IDE? Well, your prayers have been answered! The chipKIT development team is very excited to announce the release of v1.1.0 of the chipKIT-core software! This is the latest version of the chipKIT software, and it has support for all existing chipKIT boards. It is installed into the Arduino 1.6.7+ IDE, just like any of the other available cores.

Kudos to everyone who helped make this possible!

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

chipKIT Wi-FIRE: An EDN Hot 100 Product of 2015

EDN's Hot 100 Products for 2015

Extra extra! Read all about it! The EDN online community has named chipKIT Wi-FIRE one of their Hot 100 Products of 2015 in their Wireless and Networking category! Although they had posted a glowing review of the chipKIT Wi-FIRE back in February, we were pleasantly surprised to have stayed in their good graces. They said, and we quote “Digilent’s chipKIT WiFire board is an awesome little beastie. Powered by Microchip’s latest 32-bit 200 MHz MCU, the Wi-Fi equipped Arduino-compatible platform has been paired with Imagination Technologies’ Flow Cloud service development tools in an effort to make creating cloud-powered embedded applications practical for the average developer.”

Check it all out on the EDN Hot 100 Wireless and Networking Products of 2015!

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