Hi Folks, There were a few responses to my last (huge) email, I just had a few points to get back on: From: "Byron A Jeff" > > This is not trivial. Microchip is very difficult to work with in getting > > permissions for placing their tools and datasheets on third party works. > > Depending on the situation, it would save a lot of hassle just by pointing > > to http://www.microchip.com. > > That's going to be a tough problem. I'm not sure we can presume that everyone > who wants the kit will have effective Internet access. > > It always give me a small chuckle because I use the gputils tools. But it's > an issue we're going to have to address somehow. This is a discussion I've been having with McGraw-Hill for about a year now. When I did "Programming Robot Controllers", we had a lengthy discussion about putting a CD-ROM in the book. The publisher's position that virtually *everybody* has internet access now, so why spend the money on the CD-ROM? Personally, I like having a CD-ROM with a book, but being able to download the latest tools and code is an advantage. With what we're discussing here, we're talking a minimum of 20 MBytes. What are people's comments on this? > > What I have been toying around with is an RS-232 programmer circuit that can > > also be used as an RS-232 interface. The problem is coming up with > > something very simple that will work for LVP. > > A serial programmer is a tough game. You really need three usable outputs > though you can get away with only one input. I guess that one output can > be created using a zener and the others with the onboard MAX232. I prefer a 4.7k resistor, 1N4148 diode and 2N3904 NPN transistor wired as a pulled up open collector for this function. It will handle both a "real" RS-232 as well as a "simulated" RS-232 and invert the signal to boot. > > ?? Please explain. I would expect two lines (transmit and receive) for the > > boot loader unless you will allow the PICmicro MCU to use a single line for > > send and receive. This will work, but the software to control it is pretty > > complex. > > The beauty of it is that it's already done. Wouter's Wloader operates exactly > in this manner. The upshot of tying the XMIT and RECV together is that > everything the PC outputs will be echoed. Actually this can be a good thing > because the software gets automagic feedback when the programmer is properly > connected. Fair enough. > > How many pages are you thinking of? In "Programming and Customizing > > PICmicro(R) Microcontrollers", I do just that (although not in the order > > that is being discussed). With the "Introduction to Programming" and > > "Introduction to Electronics" sections printed out, this comes out to OVER > > 1,500 pages. > > I think we were all thinking in terms of digital media as trying to publish > paper will turn this from a project that can be done to one that's nearly > impossible. > > Honestly I hadn't gotten to page counts yet. I'm still trying to get on the > table the concept of offer material up to the early advanced stage, with a > key on keeping it real simple early but adding reasonable and logical > complexity as we progress. Then a newbie can stop at whatever comfort level > makes them happy, with more material to utilize later. > > Organizationally we clearly are going to have to distribute the work. > Frankly Myke, I can't see how you get it all done! How about initially putting up a set of beginner applications with some basic instructions and see what the questions are? Let the PICList come up with the answers. > > With this project, I believe that it is _very_ important to keep it well > > bounded. The programmer software, Bootloader code itself, sample projects, > > explanatory text can involve literally person-years of effort even for a > > fairly small project. > > Absolutely. And the more work that is enjoined the higher the likelyhood that > it won't get finished. Ideally I'd hope to see existing projects polished and > annotated. For example I simply published my thermostat on my web site as > raw source. But there is the basis of several projects in there: > > * Driving multiplexed LED displays > * Multiple conversions (DS1620->C->F->BCD->7segment) > * Using a pot and A/D as a control input > * Driving relays > * syncronous serial interface (DS1620) > * bitbanged async serial (via the bootloader interface) > > But organizing it isn't going to be much fun. These projects are great, but I would expect that they will generally be well down the list. I would think that you would want to start with: 1. Turning on an LED. 2. Flashing said LED. 3. Controlling LED with a button. 4. Debouncing the button and toggling the LED on and off. I haven't given this a great deal of thought, but I think this is the level you would want to start at. > I'd still vote for the bootloader/ICSP programmer concept if we can figure out > a reasonable way to either preprogram the chip or have the buyer EASILY!!! > do the initial program. Software on the PC may be able to handle it if the > initial programming interface and the bootloader interface were jumperable. Fair enough. From: "James Newton. Admin 3" > A. If you want to start newbies off with something that will help them > understand PICs, I really think that people would be better off building an > ICD. I totally agree James, but... I don't believe that a newbie could build the ICD for themselves and program the device. If they can't build the ICD themselves then somebody has to either kit it up (with a pre-programmed PICmicro MCU) or put the parts together (including the pre-programmed PICmicro MCU) and sell it. > B. MPLAB has been reverse engineered for programmer support by one outfit > that I know of: > http://www.cosmodog.com/pic/ (cached 20010402083839) picp - open source > (free) command line interface for the PICStart+ (read: It writes out the > MPLAB commands to cause the PICStart+ to work Its Open Source. Hint: If you > want to make a programmer MPLAB compatible you would.... BING!) This by the > way is the first item listed in the piclist.com FAQ for programmers. How is > it that all of you have missed it? Actually, I have seen it and I don't believe that it is appropriate in this situation for the same reasons as the ICD. > C. If you want to throw effort into YET ANOTHER PROGRAMMER... rather than > working on any one of the MANY, MANY existing open source designs, then you > are just doing it for ego and no other reason. The last thing any PIC person > needs is another choice on the list at > http://www.piclist.com/devprogs The problem with the programmers on the list (including my "El Cheapo") design is that they don't all work without some tweaking on the part of the user and a great deal of support by the person who's writing the software when new hardware and O/S's become available. What I've been discussing is trying to figure out how to get around that... > D. Put your effort into helping produce or bundle one of the existing > designs with a good tutorial or parts kit. That has been done and much > recognition was received / good was accomplished at > http://www.piclist.com/techref/piclist/biketut/index.htm > A real help (rather than all the bandwidth used to argue the point) would be > if someone would write a similar tutorial for the '877 or other newer chip. > > E. If you want something to argue over, argue over what is written on the > beginners check list. > http://www.piclist.com/begin > In fact, since the current owner of that page is not actively updating it, I > will remove him as owner and put someone else in place if anyone wants to > edit it. Just ask me. I honestly believe that this tool will be the basis for starting Newbies on their way. The current checklist needs to be expanded and thought out quite a bit better, especially in the area of initial applications for newbies. Personally, I believe that the ones on there are much too complex for most newbies and they will get very easily discouraged with them. Please don't take this as a an unreasonable flame of the work that has been done - I will be happy to pass along initial applications for the tutorial along with instructions. From: "Byron A Jeff" Replies/comments to my original checklist: > > 1. Consisting of a programmer design that can be used to program a device > > in socket. > > So we're definitely abandoning the prospect of a preprogrammed PIC with a > bootloader on board? I'm simply thinking in newbiespeak. They really aren't > too interested in the process of programming, it's a necessary evil. There > are no programming issues if a preprogrammed chip is installed. I don't think there are any definite decisions made yet. I'm recommending against a prep-programmed chip simply because of the cost and logistics involved. Some people have said that they are willing to sell the kit at cost with no profit. Does this mean that they will buy parts programmed by somebody like Future-Active or Digi-Key? If they don't, will they buy programmers and set aside bench space to do the work? How will they absorb NRE and inventory costs? How will they plan order volumes if they order parts pre-programmed? For a small company, it is one thing to hold onto 1k PCBs which are $0.25 to $0.50, it is another when you are talking 1k PIC16F877s which cost $8.00 each. NRE for pre-programming starts at $200 not including shipping costs for first articles. If you aren't prepared for them, the costs can be alarming. > > 1.2. The device will be programmed by LVP (to simplify the programmer > > circuit). > > If we go with the preprogrammed chip I'd say no. While many of us see the > utility of LVP espeically in terms of putting together a quick programmer, > in newbiespeak what will be glaring is the unavilability of I/O pins. Frankly > PORTB really sucks when RB3/RB4 unavailable. > > The device should be HVP if at all possible. This is why I'm recommending the PIC16F877 which has a plethora of pins available. I wouldn't even pass out any of the PORTB pins. I would use PORTA, PORTC and PORTD instead - These 20+ pins should be more than enough for a newbie to learn to program the chip on. > > 1.5. The programmer will be built from commonly available parts (no PLDs). > > I still thought we were talking about something assembled. So parts shouldn't > be a big deal right? I am amazed at how often a part that I can easily in North America that is impossible to find in other parts of the world (the opposite is rarely true). > > 1.6. The programmer will have a series of pins that will allow it to be > > programmed into a breadboard. > ^^^^^^^^^^ > interfaced ??? Sorry, I meant to say that I would like to see the PCB equipped with a series of pins so that it can be plugged into a breadboard, with the PICmicro MCU installed and the applications run from it. > > 2.2. Software to be written in C++ with dialog box control. > > I call for complete separation of the UI from the control software. I don't > have any problem with one UI or the other. I do have a problem with locking > an application into a particular user interface. I don't have any concerns with this so long as the newbie just has one executable file to install. Don't count on somebody that wants to learn about the PICmicro MCU being able to install a device driver before an application. > It would be preferable if something crossplatform (wxwindows, Qt) were used. > But as long as the UI can be completely removed from the control, I'd be > satisfied. Fair enough. > > 3.3. The projects will start with high level examples and then migrate to > > assembly language. > > That's a tough one. If we do high level examples, we'll need a simple, > accessible high level language. Nothing truly fits the bill though Wouter's > JAL seems to come pretty close. > > Any language that we use is going to have to have tools on the CD. That > greatly limits the choices. > > My gut says that straight assembly is going to be the simplest choice. But I'm > open to suggestions. I think you're right. From: "Brendan Moran" > 2.Use a ZIF socketed through-hole PIC on its own ICD/programmer with > a 40-pin IDC connector, and a ribbon cable to DIP connector on the > other end. This one should support the up and comming 18F parts, > despite their current unavailability. I can live with this. One last point. I've been around the block enough to know that somebody that is willing to donate their time and provide the kits without profit is going to loose money. For Shawn and the others that have offered to support this without a profit, I know I speak for all of the list when I say the gesture is appreciated, but really think about what you are saying. You have inventory costs, NREs, equipment costs, insurance, salaries, rent as well as lost opportunity time, all of which have to be paid for somehow. If and when we get something together, I strongly recommend that you come up with a strong business case that covers all the foreseeable costs as well as some reasonable contingency and some money for your time. It doesn't help anybody if providing the kits costs you so much money that you can't afford to keep going. If you have to raise your price to cover the costs and get some of your losses back you will get flamed because you are an awful person, now asking for money for something that used to be free. Back at you for round three, myke -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics