Tag: PIC
Microchip purchased Atmel – Some background and what this could mean to the Maker community
Traditionally if engineers needed a small microcontroller that was easy to use and program, they would likely choose a Microchip PIC. A design was still required to couple the microcontroller together with a power supply, clock, and I/O, but that was relatively simple for any engineer. The software was a little more difficult since the PIC was programmed using Microchip RISC assembly language.
This was less useful to the Maker community, who could understandably find hardware design and the Microchip PIC environment to be very confusing.
Then in 1992 the Basic Stamp 1 by Parallax came along. This device used a Microchip PIC on a small circuit board with its own clock, I/O, and power supply. It also had FLASH memory. The PIC ran an interpreter program, and the user could program it in a version of Basic (PBASIC). The most important aspect of the Basic Stamp is that it allowed the fledgling Maker community to create real microcontroller-based projects. But the Basic Stamp has always been too expensive for Makers.
In 2005 the Arduino was invented as a lower cost alternative to the Basic Stamp. Based on open-source hardware Arduino boards could be manufactured by anyone. It was originally designed to use the ATMEL AVR microcontrollers, and this tradition has continued on from 8-bit to 16 and 32 bit AVRs. Manufacturers have created Arduinos based on different microcontrollers too, which isn’t a problem as long as the board is compatible with the Arduino IDE and libraries.
Arduino boards have a wide range of abilities and features and can be programmed in multiple languages. A simple Arduino board can be purchased for under $20. These features make the Arduino a very handy device for the Maker community.
Microchip is still the 800-pound Gorilla in the microcontroller and memory marketplace. And this marketplace has been consolidating as margins grow tighter. Microchip just purchased Atmel for $3.6 billion.
What does this mean for the Maker community?
Microchip has always tried to be attractive to the Maker community. Its parts are very inexpensive, and it provides explicit guides of “how to” build a complete circuit board based around its PIC microcontrollers. For a while the Maker community seemed to be moving toward Microchip, with books like “Easy PIC’n” becoming somewhat popular. Microchip had a market share in the Maker community as long as they were competing with the Basic Stamp and its expensive counterparts. That seemed to fall away when the Arduino arrived.
Microchip, along with Digilent and Fubar Labs, decided to create their own open source hardware platform to compete with the Arduino and Raspberry PI. Billed as “Arduinos on Steroids” this platform is called the chipKIT, and it uses the very powerful PIC32 series of microcontrollers as its engine. The chipKIT boards were introduced in 2013 at $20 for the low-end boards. These boards were supposed to be able to port code created for the Arduino right into the chipKIT.
However, increased raw power and a different microcontroller have created problems with library compatibility. This isn’t a big problem for programmers who are used to tweaking libraries for their own use, but the Maker community values greater compatibility and ease of use, and many do not have a need for the power available in the chipKIT. The chipKIT has a decent market niche, but the Maker community really loves Arduino.
Now that Microchip owns chipKIT and Arduino, it will be interesting to see if a pathway is created to urge Makers on to more powerful products. A partial pathway already exists since chipKIT can be programmed with either the Arduino IDE or with MPLAB and its In-Circuit Debugger.
Microchip shines with excellent product support and online designer forums. But these tend to cater to engineers more than Makers. ChipKIT questions do not get the immediate response that other PIC questions elicit. Some engineers on the Microchip forums have a dismissive attitude toward the Maker community too.
It would be to Microchip’s advantage to create a Maker community forum as part of their otherwise excellent forums, with Maker-friendly moderators and assistance. They could combine this community with the Arduino and the chipKIT Makers. Maybe Makers can be encouraged to join the engineering career fields.
From a personal note – I’ve always loved the Microchip PIC, and have programmed it in RISC and C++. I’ve also programmed the Arduino in C++. If Microchip can make the libraries easier to use, the PIC32 has some serious power I’d love to play with in an Arduino environment.
NTSC / PAL Field Counter Test Fixture
Due to corporate confidentiality, I’m not allowed to show much of what I’ve worked on. The Field Counter is one of the exceptions to this rule since it was never designed for sale.
This simple Microchip PIC based test fixture was used to insert a time stamp on every field of an NTSC / PAL video signal. Since video signal frames consist of even and odd fields, it would be convenient to label each field with a unique identifier.
In my original code I concentrated on the NTSC signal. I determined the field output by sending the FIELD pulse from the 1881 synch separator to the Microchip PIC. This gave me an even/odd field determination. With a 20 Mhz clock giving me 5 million PIC program cycles per second, I had a very comfortable margin of program cycles to play around with.
The processor would determine the next number in the sequential time stamp, and would send that to the NEC uPD6450 character display chip. When the next field was displayed the character display would include the time stamp as the overlay.
The software would then “count up” to 99 hours, 59 minutes, 59 seconds, and then roll over. I figured that 4 days of continuous testing would be overkill, and didn’t code the ability to count any higher.
The original field counter saw quite a lot of use. It was used to figure out when our equipment was digitizing video out of order, getting fields or frames “confused” and exactly how.
It was also used to test the promises of products sold by original equipment manufacturing companies who wanted our company to resell their products. This is how we learned that one company was only digitizing the odd fields of incoming video, or how another company averaged the odd / even fields together in a very lossy manner.
This tool was so useful that I built version 2.0. This is the hardware I’m showing here. This newer version included a serial EEPROM and an RS-232 transceiver, giving it the ability to communicate to a PC using Hyperterminal and add text to the video screen to indicate the test being performed.
I also included menu navigation buttons, and some hardware hooks to allow this tester to “watch” an SVGA signal and send a trigger output on any given SVGA scan line. The buttons were very useful, but when I determined that video was moving away from SVGA I never bothered to implement that function.
The field counter became very useful in other ways. I would hand these devices to our interns and have them modified for various purposes. There was even a prototyping area on the circuit board that allowed for easy modifications.
One modification by a very bright intern allowed the device to control the PAN/TILT/ZOOM functions of a camera by the use of a standard television remote controller. This was a proof of concept idea, that a cheap controller could be used to control a security system. Unfortunately Marketing didn’t approve.
Another modification allowed the platform to monitor a thermocouple while controlling the heat in a standard $30 toaster oven. This would allow the toaster oven to be used as an electronics reflow oven. I have used this oven to successfully reflow a couple of boards that I’ve made.
Unfortunately, since this was simply test equipment I’ve never been good about source control for the firmware. Over the years several interns have hacked up the source code, and I no longer have my original. You can see that in the code here.
I still have one of these units to play with. I may re-write the code in C++ and upgrade my reflow oven. But there’s a lot of other things on my plate these days, and this is not a high priority.