Trouble with Arduino IDE v1.6.8

 chipKIT Users  Comments Off on Trouble with Arduino IDE v1.6.8
Apr 202016
 
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)
Mar 292016
 

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 »

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

New FAT File System in chipKIT-core

 chipKIT Users, Intermediate User, Libraries  Comments Off on New FAT File System in chipKIT-core
Mar 042016
 
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 Users  Comments Off on chipKIT Parking Obstacle Sensor
Mar 012016
 
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

 chipKIT Users, Displays (LCD/LED), Intermediate User  Comments Off on chipKIT Uno32 and Nokia 5110 LCD
Jan 292016
 

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: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

chipKIT-core is released for use in Arduino IDE

 chipKIT Developers, chipKIT Users, MPIDE Alternatives, Software Interface  Comments Off on chipKIT-core is released for use in Arduino IDE
Jan 192016
 

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

 chipKIT Developers, chipKIT Users, Internet of Things, WiFi/Ethernet  Comments Off on chipKIT Wi-FIRE: An EDN Hot 100 Product of 2015
Dec 152015
 
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)

External Interrupts for chipKIT

 chipKIT Users  Comments Off on External Interrupts for chipKIT
Nov 132015
 

Interrupts with chipKIT DP32

Jay Weeks of Digilent is back with another very useful “Instructable” about external interrupts. Armed with a chipKIT board, a USB cable, and a piece of wire, he guides you through some example code, so that you can see for yourself how interrupts really work! Using very simple explanations, he discusses polling vs. interrupts, and then he delves deeper into the topic to discuss debouncing, interrupt service routines, volatile variables, and more. Check it all out at Instructables.

Interrupt away!

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 WF32 Tutorials for Projects in LabVIEW LINX

 chipKIT Users, Software Interface  Comments Off on chipKIT WF32 Tutorials for Projects in LabVIEW LINX
Nov 062015
 

Connect your LabVIEW™ projects to the real world! LINX from LabVIEW MakerHub is a free, open-source add-on for LabVIEW software. In this series of video tutorials, learn how to use LINX with the Digilent LabVIEW Physical Computing Kit in projects based on the chipKIT WF32™ board.

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