Oct 312014
 

Happy Halloween to you ghouls and goblins from the latest, coolest Kickstarter, called tweeq, a micro-sized, Arduino-compatible platform based on chipKIT! At smaller than an M&M, most of these boards fit on the tip of your finger, and yet there is so much potential to make great things with them! Why not give them a gander and give ‘em a quid or two; they have various pledge quantities, but hurry! There’s only one month left to show your support!

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

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Aug 102014
 

So you have a chipKIT Pi, which you have dutifully attached to a Raspberry Pi, and you’d like to deploy it “in the field” (with the cows). That’s fair enough. What you’d like to be able to do, though, is upgrade the firmware on the chipKIT Pi without having to go into the field (those cows are scary, man!).

pi-on-pi

So how would you do that? You can’t program the chipKIT Pi without pressing the RESET and BOOTLOAD-EN buttons (and you’re not about to train cows to do that for you), so what are your options?

Well, UECIDE has the answer for you.

pi-modFirst you will need to modify your chipKIT Pi. Don’t worry, it’s only a simple small modification. Basically you need to connect the BOOTLOAD-EN signal to one of the GPIO pins on the Raspberry Pi header.

Connect pin 8 of the chipKIT Pi pass-through header (GPIO17 on the Raspberry Pi) to the nearest pin of JP6 with a piece of fine wire. I use 30AWG wire-wrapping wire. This will allow the Raspberry Pi to trigger the bootloader automatically (hopefully future versions of the chipKIT Pi will have this modification in place already).

Now you can enter programming mode from the Raspberry Pi by setting GPIO 17 to an output and driving it LOW, then setting GPIO 4 to an output and driving that low too (it is connected to RESET), then releasing both the GPIO lines in reverse order. It’s good to put a short delay between releasing GPIO 4 and GPIO 17.

To make things even easier we have a chipKIT Pi support package in our Debian repository. Add the repository to your /etc/apt/sources.list file:

$ sudo nano /etc/apt/sources.list

Add the line:

deb http://dist.majenko.co.uk/ wheezy main contrib

You can also add our signing key so it doesn’t ask if you want to install unauthorized packages:

$ wget -O - http://dist.majenko.co.uk/autobuild.key | sudo apt-key add -
The package is called “ckpi-support” and it sets up all you will need in order to program the chipKIT Pi remotely from UECIDE. It will:
  • Install avrdude
  • Install avahi-daemon
  • Configure a “ckpi” user
  • Install scripts for controlling the chipKIT Pi:
    • ckpi-reboot (reboots the chipKIT Pi)
    • ckpi-program (reboots the chipKIT Pi and triggers the bootloader)
  • Install an mDNS service so UECIDE can find the board on the network

So go ahead and install the package now:

$ sudo apt-get update
$ sudo apt-get install ckpi-support

If all goes well it will have asked you for a new password to give to the “ckpi” user. Remember this, as you will want it again later.

One more small modification you will need to make (if you haven’t done it in the past) is to disable the “getty” process on /dev/ttyAMA0 (the serial port). Edit the file /etc/inittab

$ sudo nano /etc/inittab

and look for the line:

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

It is most probably right at the end of the file. Comment the line out by placing a # at the start of it and save the file out. You can now either reboot to enable the change, or trigger a reload of the file:

$ sudo kill -HUP 1

Now you’re good to go!

You’ll need the latest beta version of UECIDE as it has the networking support you’ll be using, so if you aren’t already running it then go ahead and download it. This is the version for your PC of course, not for the Pi. You don’t need it on the Pi.

Load UECIDE up, ensure the chipKIT Pi board is installed (and the latest version), and after a few moments it should detect the Raspberry Pi for you:

detected

You should now be able to select the board from the “Discovered Boards” menu:

discovered

And there should now be a suitable entry in the “Programmers” menu:

bootloader

Now you can just compile and upload your sketch as if you were directly connected to the chipKIT Pi. The first time you upload it will ask you for the password for the “ckpi” user – the password you entered when installing the support package. If you want you can tell UECIDE to save the password forever (it puts it in your preferences.txt file), but even if you don’t do that it will still remember it for the rest of your session so you won’t need to re-enter it again until you next load UECIDE.

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

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Oct 112013
 

A few professionals have published a research paper “A novel concept for configuring online laboratories” with the use of PIC kit in the Experiment International Conference.  (See below abstract)

They are interested in doing this with chipKIT in the future. Abstract—Embedded online laboratories are becoming frequent nowadays, because they can include both the functionality of a data acquisition device and the functionality of a webserver and this, in turn, results in lower implementation costs. However, while it is easy to configure a laboratory server which is located on a computer, the local configuration and control of an embedded laboratory is more challenging, because of the lack of interactive peripherals (such as the keyboard is to a computer). This paper introduces a novel concept which allows administrators to easily achieve the local configuration of the embedded (on-chip) laboratory parameters (including network settings) by using a mobile device.

Reference: B.Deaky, T. F. Andrade, L. Parv, “A novel concept for configuring online laboratories”, in Proceedings of the 2nd Experiment@ International Conference — Online Experimentation (exp.at’13), Coimbra, Portugal, September 18-20, 2013, pp. 79 – 82.

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

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Feb 162013
 

Running on Microchip Starter Kits

MPIDE has been expanded explicitly to support all of the Microchip starter kits such as:
  • PIC32 Starter Kit
  • PIC32 USB Starter Kit
  • PIC32 Ethernet Starter Kit
  • Explorer 16 Starter Kit
Currently for all of these boards you will need some sort of USB to serial adapter. For all but the Exp-16 I use an FTDI cable that breaks out to pins. I connect those to pins on the expansion board for uart1. The PIC32 USB Starter Kit and PIC32 Ethernet Starter Kits are also compatible with the USB PIC32 bootloader. The Explorer-16 has an on-board DB-9 RS-232 connector. This is connected to UART2. The bootloader is configured to use UART2 for the Explorer-16 and the Serial ports for Arduino are remapped so that Serial.print goes to uart2 and Serial1.print goes to uart1. This is all done automatically so the user does not have to worry about it at all. In order to install the bootloader on any of these boards, you have to have one of the Microchip compatible programmers such as the MPLAB ICD 3 or PICkit 3. Ideally you should download MPLAB X IDE from microchip (http://www.microchip.com/mplabx) and use that to compile and burn the bootloader. The bootloader source and pre-compiled hex files are all on github. (https://github.com/chipKIT32/pic32-Arduino-Bootloader)

Using other PIC32 boards

As far as using MPIDE with other boards, the answer is YES, it should work with ANY PIC32 there is. The only limit might be it won’t work on chips smaller than 32K, And that’s because it hasn’t been tried on anything smaller. To get it to work on other boards, a few things have be be done.
  • First, the bootloader has to be burned onto the target board. The source is on github and MPLAB is used to compile and burn the bootloader. The multi-platform MPLAB-X was used on a Mac, but other versions should work as well.
  • If you using a chip that has not already been added to avrdude.conf, that has to be done.
  • You need to add a new entry to boards.txt and then you will be able to program the board directly from MPIDE.
VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Feb 162013
 
This is a dump of the interrupt vector from the Max32 (32MX795F512L) It gives you an idea what is available and what is already in use.
Arduino-32MX795F512L>V show interrupt Vectors
FLASH_PROG_BASE=9D000000
EBASE          =9D000000
IntCtl         =00000020
VectorSpacing  =00000001
+++ 0= 02 00---0B4017F0 jump 9D005FC0  _CORE_TIMER_VECTOR
+++ 1= 00 00---FFFFFFFF unused         _CORE_SOFTWARE_0_VECTOR
+++ 2= 00 00---FFFFFFFF unused         _CORE_SOFTWARE_1_VECTOR
+++ 3= 00 00---FFFFFFFF unused         _EXTERNAL_0_VECTOR
+++ 4= 00 00---0B401E5A jump 9D007968  _TIMER_1_VECTOR
+++ 5= 00 00---FFFFFFFF unused         _INPUT_CAPTURE_1_VECTOR
+++ 6= 00 00---FFFFFFFF unused         _OUTPUT_COMPARE_1_VECTOR
+++ 7= 00 00---FFFFFFFF unused         _EXTERNAL_1_VECTOR
+++ 8= 00 00---FFFFFFFF unused         _TIMER_2_VECTOR
+++ 9= 00 00---FFFFFFFF unused         _INPUT_CAPTURE_2_VECTOR
+++10= 00 00---FFFFFFFF unused         _OUTPUT_COMPARE_2_VECTOR
+++11= 00 00---FFFFFFFF unused         _EXTERNAL_2_VECTOR
+++12= 00 00---FFFFFFFF unused         _TIMER_3_VECTOR
+++13= 00 00---FFFFFFFF unused         _INPUT_CAPTURE_3_VECTOR
+++14= 00 00---FFFFFFFF unused         _OUTPUT_COMPARE_3_VECTOR
+++15= 00 00---FFFFFFFF unused         _EXTERNAL_3_VECTOR
+++16= 00 00---FFFFFFFF unused         _TIMER_4_VECTOR
+++17= 00 00---FFFFFFFF unused         _INPUT_CAPTURE_4_VECTOR
+++18= 00 00---FFFFFFFF unused         _OUTPUT_COMPARE_4_VECTOR
+++19= 00 00---FFFFFFFF unused         _EXTERNAL_4_VECTOR
+++20= 00 00---FFFFFFFF unused         _TIMER_5_VECTOR
+++21= 00 00---FFFFFFFF unused         _INPUT_CAPTURE_5_VECTOR
+++22= 00 00---FFFFFFFF unused         _OUTPUT_COMPARE_5_VECTOR
+++23= 00 00---FFFFFFFF unused         _SPI_1_VECTOR
+++24= 00 00---0B401B67 jump 9D006D9C  _I2C_3_VECTOR _UART_1A_VECTOR _UART_1_VECTOR _SPI_1A_VECTOR _I2C_1A_VECTOR _SPI_3_VECTOR
+++25= 01 00---FFFFFFFF unused         _I2C_1_VECTOR
+++26= 00 00---FFFFFFFF unused         _CHANGE_NOTICE_VECTOR
+++27= 01 00---FFFFFFFF unused         _ADC_VECTOR
+++28= 00 00---FFFFFFFF unused         _PMP_VECTOR
+++29= 00 00---FFFFFFFF unused         _COMPARATOR_1_VECTOR
+++30= 00 00---FFFFFFFF unused         _COMPARATOR_2_VECTOR
+++31= 00 00---0B401BDD jump 9D006F74  _UART_2A_VECTOR _I2C_2A_VECTOR _SPI_2_VECTOR _SPI_2A_VECTOR _I2C_4_VECTOR _UART_3_VECTOR
+++32= 00 00---0B401C53 jump 9D00714C  _UART_2_VECTOR _SPI_3A_VECTOR _I2C_3A_VECTOR _UART_3A_VECTOR _SPI_4_VECTOR _I2C_5_VECTOR
+++33= 00 00---FFFFFFFF unused         _I2C_2_VECTOR
+++34= 00 00---FFFFFFFF unused         _FAIL_SAFE_MONITOR_VECTOR
+++35= 01 00---FFFFFFFF unused         _RTCC_VECTOR
===36= 00 00---FFFFFFFF unused         _DMA_0_VECTOR
===37= 00 00---FFFFFFFF unused         _DMA_1_VECTOR
===38= 00 00---FFFFFFFF unused         _DMA_2_VECTOR
===39= 00 00---FFFFFFFF unused         _DMA_3_VECTOR
===40= 00 00---FFFFFFFF unused         _DMA_4_VECTOR
===41= 00 00---FFFFFFFF unused         _DMA_5_VECTOR
===42= 00 00---FFFFFFFF unused         _DMA_6_VECTOR
===43= 00 00---FFFFFFFF unused         _DMA_7_VECTOR
===44= 00 00---FFFFFFFF unused         _FCE_VECTOR
===45= 00 00---FFFFFFFF unused         _USB_1_VECTOR
===46= 00 00---FFFFFFFF unused         _CAN_1_VECTOR
===47= 00 00---FFFFFFFF unused         _CAN_2_VECTOR
===48= 00 00---FFFFFFFF unused         _ETH_VECTOR
===49= 00 00---0B401BA2 jump 9D006E88  _UART_4_VECTOR _UART_1B_VECTOR
===50= 00 00---0B401C18 jump 9D007060  _UART_6_VECTOR _UART_2B_VECTOR
===51= 00 00---0B401C8E jump 9D007238  _UART_5_VECTOR _UART_3B_VECTOR
VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS