Jump to content
IGNORED

Create ICSP Programmer for Embedded Micro Controller Chips


mytek

Recommended Posts

Daniel (dmsc) was very instrumental in getting this programmer to happen. Without him, I really doubt that this would even be a reality today. He kind of came out of left field when I first started talking about the possibility of doing something like this, and then he grabbed the ball and ran with it. Really a very nice and extremely intelligent guy, and it was a pleasure working with him on this project. I kind of count myself lucky to be able to work with people like Daniel and Jon (flashjazzcat) who are phenomenal programmers, and to all the people I have on my 1088XEL beta test team as well.

 

To answer question 1: The RC networks were mainly about providing ESD protection for the inputs for the PIA 6520 chip (although they do serve the purpose of creating a crude A/D converter for the paddles). You have to remember that the Atari's were first and foremost game computers aimed at kids, who would probably set them on top of the carpet in the living room while commandeering the family TV. What happens when you walk on carpet and then touch something metallic --- ZAP!! So the resistors limited current, and the capacitor shunted the voltage to ground, thereby protecting the inputs. Now days the A8's are used by the children who grew up, and they don't tend to play with their Atari's on the floor anymore (getting too old for that).

 

Yeah on the gerber generation thing, I forked out about $45 and bought a program that exported my ExpressPCB files to gerbers. It was well worth the money, and I think I got off cheap. I've used Eagle, never really liked it, but I did quite a few projects with it. However it's FREE version has several limitations, such as only 1 sheet allowed for the schematic, and I believe the board size has to be kept fairly small, although that last part might not be an issue with a lot of the upgrades for the A8. but I also heard that recently AutoDesk bought Eagle and things are changing to some sort of subscription service? Is that true?

 

Thanks for the info on the ZIF sockets and for that AliExpress link :thumbsup: :) .

 

- Michael

  • Like 1
Link to comment
Share on other sites

Yeah that's what I loved about reading this entire story :) Daniel did some awesome stuff for sure on this !

Yes Eagle is now a "subscription" product....but the free version is still here (online) and indeed has it limits. the 1088XEL wouldn't have fitted (in fact, I don't think you can do multi-layer) but the smaller projects would. Again, I wouldn't start out with it again....I just googled and that was one of the programs with the most hits I guess....I really sometimes curse it...

 

Yeah excellent explanation about the RC...so true :) And I feel stupid for mentioning POKEY...of course the joysticks are going through PIA....

But I still wonder if bouncing is any issue on the joystick inputs....but that's for another topic ;)

  • Like 2
Link to comment
Share on other sites

Hi!

 

Daniel (dmsc) was very instrumental in getting this programmer to happen ...

Thanks for the nice words! It was really a fun project :)

 

Thanks for the info on the ZIF sockets and for that AliExpress link :thumbsup: :) .

I already bought the "3M" one at https://www.aliexpress.com/item/1pcs-New-18-Pin-Universal-ZIF-DIP-Tester-IC-Test-Socket/32809676184.html, in about two months I can tell you if it's any good ;)

 

 

Yeah that's what I loved about reading this entire story :) Daniel did some awesome stuff for sure on this !

 

Yes Eagle is now a "subscription" product....but the free version is still here (online) and indeed has it limits. the 1088XEL wouldn't have fitted (in fact, I don't think you can do multi-layer) but the smaller projects would. Again, I wouldn't start out with it again....I just googled and that was one of the programs with the most hits I guess....I really sometimes curse it...

I like Kicad ( http://kicad-pcb.org/) a lot more than Eagle, push- and interactive-routing is very powerful and it does not have any arbitrary restriction.

 

Yeah excellent explanation about the RC...so true :) And I feel stupid for mentioning POKEY...of course the joysticks are going through PIA....

 

But I still wonder if bouncing is any issue on the joystick inputs....but that's for another topic ;)

Well, bouncing is not really a problem for joystick inputs as the OS samples once per frame (in the VBI) and stores the state to the shadow registers, so any fast change in the inputs can't be noticed by most software.

Edited by dmsc
  • Like 4
Link to comment
Share on other sites

  • 2 weeks later...

Hey Daniel....

 

Would it be a lot of work/possible to add the PIC16F870P or 16F883 to the supported PICs ?

Asking because of this:

 

http://www.norre.dk/TTPSU/TTPSU.html

One of my other passions apart from A8's is music and I have a pretty decent audio set-up including a Pro-Ject turntable with very nice Ortofon cartridge but one of the drawbacks of this turntable is that you have to lift up the platter to change the belt for 33 or 45 rpm speeds.....
There are costly "speed boxes" available which solve this problem and also produce a much more stable frequency for the motor but I wondered if there weren't any DIY projects around so I googled a bit and here is this great project (including design in.....Eagle) to make one yourself :)

 

Would be very cool to be able to program the required PIC for it with the A8 :D

Edited by Level42
  • Like 1
Link to comment
Share on other sites

yea other than "you can" one can get generic programmers from the candy store that do ISCP and parallel programming of thousands of chips (micro's, roms, pld's etc) for less than a broken 800

 

or if your worried about firmware updates on a atari targeted product, should be using a serial bootloader anyway

Edited by Osgeld
Link to comment
Share on other sites

I did not read all the pages, but why, just because you can? I program PIC's with a PICkit3 and I think those are cheaper than a 800 these days.

Wel maybe you -should- read all the pages before commenting. Or maybe, if you really can't spare the time, read this: http://ataribits.weebly.com/joy2pic.html

 

Why ?

 

Why do I still run original Atari 8 bit computers while there's sooooooo much more powerful hardware ?

 

Why do I upgrade a 1050 floppy drive with a MegaSpeedy while I can load programs through SIO2 SD, USB and even Bluetooth these days ?

 

Why do people drive classic cars ?

 

Why do people develop stuff, that maybe is already available somewhere else, maybe in a better way ?

 

The answer is: FUN.

 

But apart from that.....I cannot think of anything more stable than an A8 machine. The Joy2Pic doesn't need any drivers, is insanely simple, is fun to build yourself and it doesn't give me worries about drivers, stuff not working on my Mac etc. etc.

 

By the way, I had a lot of fun reading all the pages in this thread. I only discovered it a week or two ago. I found it great to see one guy launch the idea, some other guy from another part of the world pick it up, some other making suggestions and in the end there's a nice project that is available for anyone to download freely. I like that.

 

I like that a lot more than buying a Chinese programming device that has to work it's way through lots of complicated software layers to work properly and has zero emotional value to me.

Edited by Level42
  • Like 2
Link to comment
Share on other sites

With a group buy of materials, this could be built for probably around $12, and unlike the PICkit clones, this is completely ready to roll for either programming chips out of socket or via ICSP.

 

joy2pic-stik-assembly_1_orig.png

You'd be hard pressed to match that price even with a Chinese PICkit clone (including all the required accessories to be able to program chips out of circuit). And this one will program all the chips used in all of my upgrades, whereas some of the other popular cheap programmers can't even program a PIC16F1847, which is required in several of my projects.

 

But as Level42 pointed out, this one requires absolutely no installation what-so-ever, and no potential incompatibility issues with drivers (and yes you'll be lucky if you don't encounter some issues). Basically with the JOY2PIC you just plug it into your A8, auto load a specific ATR for the firmware you wish to flash, and push START to program. That's it, end of story!

 

So in my opinion you'd be challenged to do better with something else, especially when it concerns flashing PIC's for any of my upgrades (which was the original intent behind designing this). And then of course there is the enjoyment of assembling it yourself, and the ability to use your A8 for flashing embedded MCU's that didn't even exist when the computer was first built.

 

And to both posts that stated you could buy an old 800 for less... That's a pretty silly thing to say in the 8-bit area of AtariAge where most people probably have at least one or more A8's in their possession. So it's not like they would have to go out and specifically buy one in order to use this programmer. And what makes that statement even more ridiculous, is that the JOY2PIC was aimed at people wishing to upgrade... yeah you got it, their existing A8 system with DIY boards that use embedded PIC chips ;) .

 

 

 

if your worried about firmware updates on a atari targeted product, should be using a serial bootloader anyway

 

Sometimes that's easier said then done. But I'll tell what, show me what you've designed that uses that method, and I'll consider adding it into my next project if you would be so kind as to share it.

 

- Michael :)

  • Like 3
Link to comment
Share on other sites

Thanks, although I don't know why you guys are so hostile. I asked an honest question, I don't have an A8 (and all I ever read is failing systems), so how much would it cost me to get one of those huge things, with all connections and this adapter board, after shipping?

 

I use one with actual ICSP spring loaded pins, for my PIC projects, like the A7800 MCP IO board. Doesn't even require a pin header soldered into the product.

 

 

 

 

IMG_2598.jpg

  • Like 3
Link to comment
Share on other sites

Thanks, although I don't know why you guys are so hostile. I asked an honest question

 

Hmm... :ponder: So if you look at what you posted (quoted below), you asked a question, and I gave an honest, and what I thought was a complete answer as to why would something like this have been created. That was your question after all, unless I misread something in the original post you made. Although the last part about you using a PICkit3 because of it being cheaper than an 800, was kind of suggesting that buying a commercial programmer made more sense than to use mine which requires an A8. Am I totally off base on that assumption?

 

I did not read all the pages, but why, just because you can? I program PIC's with a PICkit3 and I think those are cheaper than a 800 these days.

Now please don't take the following as being hostile, but I can only conclude that you weren't kidding about not reading all of the pages. So I apologize for being dismissive, since it is now apparent that you truly just wanted to know why I developed this hardware. Hopefully you now have the answer :) .

 

In a nutshell, I created the JOY2PIC-STIK (and the original JOY2PIC) with considerable help from AtariAge member dmsc, for the express purpose of making firmware updates for the PIC's used in my DIY projects as easy as possible, while still being quite affordable.

 

But I am a bit perplexed about this...

I don't have an A8 (and all I ever read is failing systems), so how much would it cost me to get one of those huge things, with all connections and this adapter board, after shipping?

 

Ok so you don't have an A8, which you've read somewhere that they are failing systems, but yet you want to know how much the JOY2PIC costs???

 

And you think this is something huge with all kinds of connections and an adapter board???

 

Well first of all I don't sell anything, since all my projects including this one, are aimed at DIY people to build, so I freely give away the designs. As to the part about it being huge and such, I'm not really sure where that is coming from. Because if we are still talking about the JOY2PIC-STIK (which is what is shown in my last few posts) that is not much bigger than a PICkit3, and is in fact a bit skinnier, while not requiring any cables or an adapter for flashing the 8-18 pin PIC chips used in my DIY projects. However it does still have the means to program via ICSP, having a connector and pin-out like a PICkit3.

 

From a DIY perspective, if I had to estimate the cost, if done as part of a group buy it could be as cheap as $10, but if done independently the per board cost would likely be as much as $20 (including parts) due to having to purchase a minimum quantity of PCB's.

 

As to the other fellows suggestion, I was sincere in wanting to see an example of how he would do what he was suggesting, because quite frankly I don't see how that would be possible without adding a lot of complexity in those projects that this would have related to. However if there was a simple way, I really am all ears, seriously :) .

 

- Michael

  • Like 2
Link to comment
Share on other sites

No, I was interested in what you think, EVERYTHING (working A8, PSU, video cable, storage medium for the software and the adapter) costs, to do the same thing. Regardless, whether I can put it on a laptop keyboard (and take a picture), or not.

Link to comment
Share on other sites

No, I was interested in what you think, EVERYTHING (working A8, PSU, video cable, storage medium for the software and the adapter) costs, to do the same thing. Regardless, whether I can put it on a laptop keyboard (and take a picture), or not.

 

Just so you know I added a bit more info to my last post apparently after you made this reply. However it's nothing really relating to what you have now asked.

 

So if I understand the question correctly, you want me to estimate how much a complete A8 system inclusive of my JOY2PIC-STIK board and whatever else was minimally required to use it would cost. Since I haven't bought any A8 equipment in years, I would have to do some research to be able to answer that properly, and of course it all depends upon what a person is interested in getting, since there are multiple versions of the computers, drives, and/or modern substitutes (i.e., SIO2PC-USB). And I'm curious as to why do you ask this of me?

 

- Michael

Link to comment
Share on other sites

Wow......now I've been challenging Michael (mytekcontrols) a bit before on these forums and all he's been is extremely patient and kind and took all the time in the world to explain why he did certain things ....(like putting an ugly switch (temporarily) on his extremely beautifully done 1088XEL case.....which he totally got "revenge" on by replacing it with his definite (pic controlled :) ).

 

Just wanted to say he's a good guy and IMHO one of the most contributing guys for the A8 community. In fact, I think he's a little bit too kind to "give it all away".....it would be more than fair to ask a little in return for all his hard work on all his projects but this is his choice of course and I fully respect it (and like it).

 

So....I hope your remark of us being hostile was mainly pointed at me but if so, that was never my intention either. I just tried to explain from my perspective why Joy2Pic is a great thing...or similar things like this....

 

Michael's remark about being able to program modern day stuff (OK PIC's have been around for a while, but they're not as old as the A8) with a machine designed in 1979, with EXTREMELY simple hardware and a relatively elegant software way of programming them...is exactly what I feel about projects like these. These projects and new software keep these ancient machines alive :)

 

So yeah, maybe it -is- a case of "because you can".

 

But just buying an A8 for programming PICs of course is not very economical. You also still need a means to get the data from a PC or Mac to the A8. So yeah, a complete setup for just that would be huge. It also would be a complete to use an A8 just for that.

 

I was also surprised to see you're a moderator here but still have the view that "all you see is failing systems".

This indicates you are not into A8's at all. I think that the A8 is probably one of the best built 8 bit computers ever. The 400/800 are built like tanks. The only common issue is keyboard Mylar. It is actually surprising how robust they are, seeing they use multi voltage RAM (which fail a lot in arcade machines) and because they have a modular set-up with loads of connectors between everything.

The XL's are probably the most reliable of all A8's because of their single PCB design and high quality. Problems simply are rare. I've picked up machines from all places including flea-markets and usually the things simply work. Even if there are problems, usually chips are socketed on XL's making repairs a breeze.

 

The least reliable and hardest to repair are the XE's. This is mainly caused by one type of bad quality RAM and also keyboard Mylar issues. And since all chips are soldered they are not as easy to repair for most people.

 

Let's assume these machines were designed for an economical life span of 5 years. They are now anywhere between 25 and 38 years old. The basic hardware is rock solid. Unlike Commodore 64's for instance, with its poorly designed PSU which overheats, it's poorly designed VIC and SID chips which die of overheating, and cheap construction. I am very sure the A8 has a much much lower failure rate.

 

But if you have a view like "they are all failing" from a member ....I mean moderator of Atariage forums then this is something we should worry about because apparently this is one of the, or -the- reason for not giving the system a chance.

 

it is also something that opened my eyes that "occasional" viewers of the A8 forum may get that perception. But like with anything, systems that work just fine don't get many threads....so what you see posted here are exceptions to the rule.

Not many people open a thread "here is my fine working 30 year old A8" :)

 

Not sure what you are into, I assume 2600/7800 ?

 

I have two 2600's but mostly for nostalgia. The vast majority of the games are unplayable today. Not so with the A8 games IMHO.

 

The 7800 may have better graphics than the A8, the TIA sound completely turns me off from that machine though. I love music and good sound, and this is at least as important for me as visuals. Also, these machines can hardly be tinkered with....which I find most enjoyable of the A8. It's a computer that is also a fantastic games console. Best of both.

 

But......I hope this all doesn't draw the attention from my question to Daniel away too much :):)

  • Like 1
Link to comment
Share on other sites

It was just hypothetical, jeez. Forget it, cool project for people who are totally into A8's, that is all that matters. Fun.

I think I may have discovered more fumes.

 

I had no problem answering any of your questions. I was just curious as to why someone that already expressed a disinterest in Atari 8-bit systems wanted to know so much about this particular project of mine and it's requirements. I assure you that's all there was to it on my part.

 

Edit: My conversations held via forum posts sometimes don't fully convey what it is I'm trying to get across emotionally. So for instance when I use an exclamation point, it is for the purpose of expressing excitement, not anger. Multiple ??? is meant to suggest confusion. And perhaps I also misinterpreted some of your comments as well (wouldn't be the first time I did that).

 

BTW, I really like your idea of using spring loaded pins for establishing a temporary ICSP connection to flash a chip. That is brilliant in my book. So where can I get something like that?

 

- Michael

Link to comment
Share on other sites

Hey Daniel....

 

Would it be a lot of work/possible to add the PIC16F870P or 16F883 to the supported PICs ?

 

Asking because of this:

 

http://www.norre.dk/TTPSU/TTPSU.html

 

One of my other passions apart from A8's is music and I have a pretty decent audio set-up including a Pro-Ject turntable with very nice Ortofon cartridge but one of the drawbacks of this turntable is that you have to lift up the platter to change the belt for 33 or 45 rpm speeds.....

There are costly "speed boxes" available which solve this problem and also produce a much more stable frequency for the motor but I wondered if there weren't any DIY projects around so I googled a bit and here is this great project (including design in.....Eagle) to make one yourself :)

 

Would be very cool to be able to program the required PIC for it with the A8 :D

 

Wow I completely missed this post (sorry :( ).

 

Some of the newer PIC series such as the 18F are not possible in Daniel's present source code, but I think it's doable to add the ones you mentioned since they are still in the older series. I can do this pretty easily and recompile a new READHEX program that can be used to create the flasher. However I'm waiting on Daniel (when he gets the time) to make a small improvement to the C code, before adding any more PIC devices.

 

Of course please keep in mind that the way this presently works is best suited for dissemination of firmware, and not very good for development of code since you have to go through quite a few steps to create the flasher. So in other words, it creates a very easy to use fool proof program to flash a specific version of firmware to a specific chip. But before that can be done, Daniels program would need to be used to 'build' a flasher from your PIC hex file. For development of code you would really be better off to use something like a PICkit2 or PICkit3 which can directly flash a PIC from a hex file.

 

Edit: Cool project BTW :thumbsup: :) .

 

- Michael

  • Like 1
Link to comment
Share on other sites

BTW, I really like your idea of using spring loaded pins for establishing a temporary ICSP connection to flash a chip. That is brilliant in my book. So where can I get something like that?

 

- Michael

 

They are called pogo-pins, you can make your own for cheap.

 

https://www.ebay.com/sch/i.html?_odkw=atari&_sc=1&_sop=10&_sticky=1&_trkparms=65%253A12%257C66%253A2%257C39%253A1%257C72%253A2464&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313.TR3.TRC2.A0.H0.Xpogo+pins.TRS0&_nkw=pogo+pins&_sacat=0

  • Like 4
Link to comment
Share on other sites

 

Those would certainly make a lot of sense for situations where those signals aren't doing double duty, meaning they have no other use besides re-flashing the chip. However I have been trying to arrange things in such a way that where a header is required to connect to something in normal use, that it is arranged in such a way that the programmer can also plug into it. I did this on my TK-II-Stereo board and also on a recent Mouse Port Select board.

 

Thanks for the link :thumbsup: :) .

 

- Michael

  • Like 2
Link to comment
Share on other sites

You're welcome. I think you can just stick them into female pin headers.

 

This devkit / homebrew cart, allows for 144K games + POKEY, something Atari didn't manage to pull off, but PacManPlus wrote a game that required it !

 

So I not only made the PCB happen for the game release, but also a devkit, which allows people to upload 144K binaries to a non-modified 7800, and have access to POKEY. It also uses NVRAM, so you can just take your cart with the uploaded binary, and plug it into anyone's 7800.

 

I use that pogo-pin rig to flash these devices, I designed for the 7800...

IMG_2604.jpg

  • Like 4
Link to comment
Share on other sites

Wow I completely missed this post (sorry :( ).

 

Haha no worries......I completely understand :)

 

For development of code you would really be better off to use something like a PICkit2 or PICkit3 which can directly flash a PIC from a hex file.

 

Edit: Cool project BTW :thumbsup: :) .

 

- Michael

Well the files are ready to download so I wouldn't be coding myself (yet ) so that's just fine.

  • Like 1
Link to comment
Share on other sites

You're welcome. I think you can just stick them into female pin headers.

 

This devkit / homebrew cart, allows for 144K games + POKEY, something Atari didn't manage to pull off, but PacManPlus wrote a game that required it !

 

So I not only made the PCB happen for the game release, but also a devkit, which allows people to upload 144K binaries to a non-modified 7800, and have access to POKEY. It also uses NVRAM, so you can just take your cart with the uploaded binary, and plug it into anyone's 7800.

 

I use that pogo-pin rig to flash these devices, I designed for the 7800...

I've followed your 7800 stuff. I did not know you weren't an 8-bit guy. Please - come join the dark side for a while :)

  • Like 2
Link to comment
Share on other sites

I think you can just stick them into female pin headers.

 

Out of curiosity, I tried that, since I have 4 of these pogo-pins laying around (there are different kinds as well), they don't just insert. They do however fit into regular protoboard holes, so you can use the half insert method, with a pinheader, to make your own. I am shocked you can't just buy these readily and when you can, they cost a shit ton.

  • Like 2
Link to comment
Share on other sites

I use a metric shit ton of pogo pins for work related activities since I shifted from "secondary test engineer and pcb layout designer" to "lead test engineer and pcb layout designer", I pay about 2.35$ a pin from a supplier

 

I dunno if they have a minimum cause I usually get a minimum of 100 but they come in a about a million different configurations, down from 0.025 to 0.187 inch centers, 4 different stroke lengths, about 50 different tip geometries and 3 different spring pressures

 

just in standard pogo pins, without getting into bga configurations, flying lead stuff, sockets that have pogo pin ends on them (which I use a TON effectively making a double ended pogo pin), or even pneumatically actuated ones (which SUCK btw)

 

admittedly I never have tried using them in a female socket, its always on male pin headers or testpoints on board, which is a simple thing that most hobbiest neglect ...DFM (design for manufacture, it so easy to spend 30 seconds in cad to save your self hours of faffing about)

Edited by Osgeld
  • Like 2
Link to comment
Share on other sites

Michael and Daniel:

 

Please dont rush of with my request to support the PICs Ive mentioned.....I did a little bit more googling and found this project:

 

http://mate-labs.de

 

This works with an Arduino and looks to be a bit more polished than the Danish project I found earlier. The main reason for searching a bit further is that the Danish project didnt have any feedback from the turntable about its actual running speed. This German project does and also has some other better features.

 

So Im probably going with this project.....hope you guys didnt invest any time in supporting those PIcs I mentioned yet....

Edited by Level42
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...