Bolt Beginners Board

Discussion on Microchip's wide line of Evaluation and Demonstration Boards.

Re: Bolt Beginners Board

Postby Joseph Watson » Sun Jun 15, 2014 6:51 am

I once had a concern over the lack of an ICSP connector on the BOLT. For a while I gave thought to trying to find an easy way to add one. However, having the high speed bootloader available via USB lets me program and test new versions of programs far faster than my previous experiences with an ICSP programmer. I know there are better ICSP-based systems available now, especially for professional developers and those who can justify the cost.

You may have noticed on my BOLT page that I made mention of a problem I had encountered with the USB port and a proposed update to the board that I have made to my boards. When that problem first arose, I blew out one of the I/O pins of a PIC18F2550 chip that is associated with the USB interface. That rendered the bootloader useless for that chip since the USB port could no longer be used. For one small experiment, I moved the PIC chip by itself to a breadboard and rigged up a temporary ICSP port that I did use to program that chip one more time via one of my older ICSP type programmers. It was very simple to do. Not much more is needed than power and ground, a cap across power and ground pins, a trivial circuit to create a Reset pulse, and the 6 pins of the ICSP itself. Therefore, that chip is no longer much use for developing new applications but is not useless either. I can store a program into it if I wish. However, having a bootloader that hooks up my PC to the BOLT with nothing more than a USB cable is pretty handy.

I acquired a new PIC18F2550 for that particular BOLT board and continued on. Using the bootloader, I have generated hundreds of versions of programs using the bootloader to download them. When I want to try a new version of an assembly language program, I can change the source on the PC, assemble it within a few seconds, and then cause it to be stored into the PIC's flash memory. The steps required for that last step probably take between 5 seconds and 10 seconds. I have been very happy with that convenience and not found a need for the ICSP programming port. I also know that not everyone does things the same way and wishes for the same features. I first used some PIC chips in 1997. I was away from them for many years and now have been back to them in the past few years, working up from PIC12F, PIC16F, and now PIC18F. I have a friend in Nevada who also plays with PIC chips sometimes. He also has expressed his pleasure with the BOLT.
NCR once refused to hire me because I was too short. I'm still waiting on my growth spurt.
User avatar
Joseph Watson
 
Posts: 49
Joined: Sat May 31, 2014 8:06 pm
Location: Ohio, USA
PIC experience: Experienced Hobbyist

Re: Bolt Beginners Board

Postby Ian.M » Sun Jun 15, 2014 2:51 pm

You are clearly a satisfied BOLT customer and obviously find the board suitable for your needs, but it certainly wont suit everyone, and I believe, for most of us, the more hardware oriented you are the less satisfactory you will find it.

I assume your previous ICSP experiences were *NOT* with a USB programmer supported by MPLAB?
For a user not to have (or have access to) a real ICSP capable programmer is a false economy as PICs preloaded with bootloaders always come at a cost premium. It doesn't take many projects built or damaged chips to justify the cost even without the benefits of ICD. Your programming jig sounds over-complex. The bare minimum is to connect all Vdd and Vdd pins with 0.1uF decoupling at each pair and hook up to an ICSP capable programmer, letting the programmer manage the /MCLR pin and supply power. However perhaps you built it to be more general purpose?

While Microchip In Circuit Debugging is not a whole lot of use(*)for debugging USB applications, it is absolutely invaluable for breaking out of the old-skool build-burn-crash development cycle when working with non-USB code. Unfortunately the ICSP/ICD pins are not easy to access on the BOLT board without significant hardware hackery. If I had been designing it I would have wired the LCD for 4 bit mode on the lower nibble of port B and added: a jumper between the RB6,RB7 LEDs cathodes and Vss, a 4K7 isolation resistor between the reset switch and /MCLR and an ICSP/ICD header. The cost would only have been a few cents extra, and ZERO on the lite version if a solder blob pad was placed across the unpopulated jumper.

The presence of an on-board relay, without corresponding opto-isolated inputs, and the lack of any prototyping area or easy access to all pin signals for breadboarding + the other features or lack thereof that have already been discussed clearly indicates its target market of formal education microcontroller labs, where the student is strongly discouraged from connecting anything except for the official assignments.

* The PC side USB stack times out while the PIC is paused in the debugger so it is really only any good for post-mortem examination of SFRs and variables and at best you need to reset the PIC before resuming debugging.
Ian.M
Verified identity
 
Posts: 95
Joined: Wed May 28, 2014 12:47 am
PIC experience: Professional 1+ years with MCHP products

Re: Bolt Beginners Board

Postby Joseph Watson » Fri Jun 20, 2014 6:08 am

I don't think everyone is using PIC chips in a professional capacity. I only use PIC chips for experimenting and for fun.

After more than 42 years as a professional software engineer, I retired. Now my professional days are in the past. For more than 30 years, most of my programming experience related to the real-time control of large multi-axis servo-driven machines as well as the collecting and analysis of data gathered by those machines. The processors ranged from early minicomputers to mid-sized machines, a variety of personal computers, and early microprocessors (8080, 6502, 680X, 80X86, etc.). I have used many assemblers, compilers, debuggers, version control systems, more high-level languages than I can remember (but not C, I don't like C), and perhaps a dozen different assembly languages over the years. I created two specialized high-level languages myself to allow people who were not really computer programmers to create programs to control the automated machines.

I left that job in 2000 and then worked for a decade on election systems for most of the county boards of elections in Ohio. I am only mentioning all this to demonstrate that I am no stranger to software development and especially in a professional setting.

Nevertheless, I still very much enjoyed programming computers in the early days when things were quite simple. There were no in-circuit debuggers. There were no version control systems. The computers were not large enough do much of anything at all using a compiled language so nearly everything was written in assembler. I personally do not need all of that professional-level setup to keep myself happy. I am sure there are many others, and especially those who program PIC chips for a living, that make great use of all that. I find that messing around in a small scale way with these things is great therapy. It keeps my mind busy while many others my age are lapsing into dementia.

It is my belief that a PIC forum like this one should encourage the expression and exploration of the ideas and needs of a wide variety of users from beginners to professionals (and even the old coots like me).

I play with a minimal budget. I don't think I made a claim that the BOLT was the best development board for anybody's particular purpose. It should be clear by looking at my BOLT web page that I was not totally satisfied with it just the way it comes as I have documented multiple changes that I have made to it. There are more that I have since made and just not added to the page yet. Still, I don't think we should just totally dismiss it as a pointless system. Just as you see weaknesses in the BOLT's design, so do I but I learned long ago to get along well with much less than the BOLT.

No doubt some see the BOLT in only the way it is presented. They see an interface for a 16-button keypad, a port for a 1-line character LCD display, 8 LEDs, a relay, a temperature sensor, a serial port, and a USB port, and a facility for powering it from an external supply. And let us not forget the 4 DIP switch pack. But that is not what I see. I played with all that. Now I do other things with the BOLT. I find the 8 LEDs useful and, on occasion, I have found many of the other supplied interfaces useful. I connect lots of things via the port intended for the LCD display as well as via the small auxiliary port. For example, I have had the BOLT generating composite video while running an external 32K RAM chip (parallel, not serial). Obviously, that took some degree of seeing the BOLT as something other than its collection of built-in interfaces.

My first hobbyist experiences with the PIC chips began in 1997. I have built and used PIC ICSP programmers in the past that used a parallel printer port to drive them (several different kinds actually) and at least one serially driven version. I have a commercial USB-based PIC programmer which can accept a PIC chip directly or program one via ICSP.

I like things simple and cheap. It reduces the complication factor. I acquired my two BOLT Lite boards for about $6 and $8 and my full BOLT board for about $19. It seemed like a good deal to me and I have not yet been unhappy with my investment. For me, there is no concern of the slight extra cost related to buying PIC chips with the bootloader already in them because so far, I have purchased only two such extra chips and I don't plan to buy more at the moment.

Some of the previous comments here remind me of a pervasive question that repeatedly arose at a couple of computer clubs that I helped charter in the mid-1970s. Over and over, we heard this same question, "Which microprocessor chip is the best one?" Of course, not everybody's needs are alike. The resulting answer usually sounded something like, "It depends on what you want it to do and even then it is often difficult to say." In many ways, these things are decided as a matter of taste.

I am seriously not about to fault anyone who uses the fancier development systems. Obviously, they exist in order to fill a need and there are many who can afford to spend the money for them and live in the busy world of professional style PIC development where time is money. No doubt many hobbyists choose that style of development as well, especially those who are preparing themselves to move into professional work. But not everyone falls into those categories. I would hope this PIC forum does not discourage those who see PIC chips as a way to simply have a good time rather than as a way to make a living or to develop a professional skill. I simply contend that the BOLT board is capable of serving the needs of some people. It is always up to all of us to choose how we want to go about things. Just like in the 1970s, "Which PIC development board is the best one?". Not everybody's needs are alike. "It depends on what you want it to do and even then it is often difficult to say."
NCR once refused to hire me because I was too short. I'm still waiting on my growth spurt.
User avatar
Joseph Watson
 
Posts: 49
Joined: Sat May 31, 2014 8:06 pm
Location: Ohio, USA
PIC experience: Experienced Hobbyist

Re: Bolt Beginners Board

Postby Tom Maier » Fri Jun 20, 2014 3:13 pm

"I still very much enjoyed programming computers in the early days when things were quite simple."

JOSEPH! How can you say that? Things were not simple in those days, they were much more difficult. We had limited hardware resources and development resources, but were still expected to get the job done. These kids got it easy now-a-days with their fancy-schmancy debuggers and simulators and libraries and wide selection of compilers.

That reminds me of the old joke when people asked Ginger Rogers how she liked the dancing skills of Fred Astare. She said "yes, that's great, but I have to make the same dance moves only backwards with high heels on!".

I still tend to use the old technique of using output pins and a uart connection as my debugger. I can pull status out of the running micro with very little overhead of added complexity and not have to deal with the bugs in the debugger and simulator. I've seen people get caught in loops of debugging thinfs for weeks on end that actually were not there, and were just artifacts of the debugger or simulator. My distrust of them comes from having 35 year of experience and back in the old days the debug tools were just terrible or non-existant.

And this forum is for both professionals and hobbiests, so there are no restrictions on fun, that I know of. :lol:
User avatar
Tom Maier
Verified identity
 
Posts: 179
Joined: Mon May 26, 2014 2:37 pm
PIC experience: Professional 5+ years with MCHP products

Re: Bolt Beginners Board

Postby Joseph Watson » Sat Jun 21, 2014 7:30 am

What I mean by things being simple actually relates to the lack of complications that were added by operating systems, libraries, compilers, debuggers and simulators. The problem first arose for me with the use of small operating systems. The documentation would say that issuing some command to the system would do this or that. The problem was that what actually happened would sometimes not exactly turn out to be what it said or what it said was vague enough to leave one unsure what to expect. As long as we were writing our own drivers, our own file management, our own debugging tools, etc., we could see exactly what was going on. It was always the uncertainties that led to the most pulling out of hair.

Granted, we had to develop our own tools in many cases but we knew exactly what they did and what they didn't do. When we ran into problems for which our tools were ill equipped, we updated the tools to match the problem at hand.

Of course, with time the systems became larger and more complex and one just could no longer afford to dedicate the resources necessary to write an operating system or other elements to suit. We learned to use the tools provided by the computer manufacturers and to put up with their shortcomings.

Another factor that tends to promote the feeling that things were simple is that memory capacity was very limited. For several years, nearly every computer we used had a magnetic core memory capacity of 6 kilobytes. That was the total memory capacity in the entire system. There were no additional storage devices. No hard drives. No magnetic tapes. No floppies. Nothing. With so little memory, just how complex could things be?
NCR once refused to hire me because I was too short. I'm still waiting on my growth spurt.
User avatar
Joseph Watson
 
Posts: 49
Joined: Sat May 31, 2014 8:06 pm
Location: Ohio, USA
PIC experience: Experienced Hobbyist

Re: Bolt Beginners Board

Postby ric » Sat Jun 21, 2014 10:21 am

Joseph Watson wrote:What I mean by things being simple actually relates to the lack of complications that were added by operating systems, libraries, compilers, debuggers and simulators. The problem first arose for me with the use of small operating systems. The documentation would say that issuing some command to the system would do this or that. The problem was that what actually happened would sometimes not exactly turn out to be what it said or what it said was vague enough to leave one unsure what to expect. As long as we were writing our own drivers, our own file management, our own debugging tools, etc., we could see exactly what was going on. It was always the uncertainties that led to the most pulling out of hair.
...

Agreed. Probably why I still have a deep distrust of Microchip library functions. Inevitably it takes longer to figure out how to use them correctly than it does to just write the equivalent yourself.
Latest test project, an LED matrix display made from one reel of addressable LEDs. here
User avatar
ric
Verified identity
 
Posts: 659
Joined: Sat May 24, 2014 2:35 pm
Location: Melbourne, Australia
PIC experience: Professional 5+ years with MCHP products

Previous

Return to Evaluation and Demonstration Boards

Who is online

Users browsing this forum: No registered users and 5 guests

cron