I started with PICs and really liked their capabilities. I totally abandoned PICs, because of the terrible MPLabX IDE/Compiler and PICKit programmer hassles. Microchip had long (years) been informed of the myriad of issues and did not bother to make corrections. Interestingly, IIUC, Microchip bought Atmel. And, IIUC, the 328P, the basis of Arduinos, is an Atmel product.
I started with PIC32 and loved the performance compared with the old-world 8051/Z80/6809 derivatives I had been used to back in the 80's and 90's. I bought the PIC IDE and compilers for the PIC32 and kicked things along back in 2009. Then (14 years later), I discovered the STM32 range with its FREE tools, including the CUBE IDE (Eclipse) and the MX configuration tool. This was amazing, and I did not have to spend a thousand or more dollars per tool like the PIC32. For a hobbyist like me this was revolutionary. Even the lower M4 series ran at 84 and 100Mhz, and, for a few dollars, I could get some good Chinese boards and the aftermarket STLINK interfaces that have completely replaced all the PIC32 tools for a fraction of the money ANNNND the STM32 peripherals are a snap to configure using the MX tool, which can be integrated with the Eclipse IDE. One gotcha is to understand what gets overwritten by the MX tool. I suffered there originally but I have to say that have become more comfortable with this and finally waved goodbye to PIC. I still have a number of various types of PIC232 uC's but I will probably never use them. STM32 has timer support for incremental encoders out of the box - a real selling point for me, and the ADC was VERY simple to configure and run, even with DMA. The PIC32 on the other hand, was a nightmare to configure. Then I stumbled on the Teensy 4.1, an exciting rabbit hole, but without the peripherals that I really liked in the STM32 series.
@@stephencurtis2282 for what universe you compare pic32 from this decade with 8051 from past 60 years. it is obviously that pic 32 is better light years in front of 8051 or z80 :)))))))
You really shouldn't compare a Z80 to a microcontroller. A Z80 can be used as an intelligent controller with peripheral interface adapters like the 8255 and complex programing, but no microcontroller can a run an OS and function as a computer. They really can't be compared. I used PIC controllers for over 20 years because they were the only game in town except for National Semiconductor's COP 400 series controllers. Make sure you don't become a fan boy, or you're going to miss a lot of opportunities. Try branching out to something else like a raspberry pi pico w. @@KaradevNetLtd
@@KaradevNetLtd Oh Lord I was not COMPARING. as much as I was admiring!! Please read the words. "I started with PIC32, and I loved the PERFORMANCE compared with the old-world 8051/Z80/6809 derivatives I had been used to back in the 80's and 90's." What's your point? (besides some arcane one-upmanship). Having access to the newer chips was great, and I knew what the difference was because I had experienced the old stuff - it's marvellous what you get performance-wise and tool quality that makes it all so easy. Please tell me why you think this is sooooooo obvious?? Am I not allowed to share my pleasure with what we have today? Also, the 8051 is not really 60 years old (quite), and plenty of 8051 derivates are still around. The FREE STM32 tools make it an excellent experience and one reason I waved goodbye to the PIC32. Also, what did YOU contribute to the light-years-aheadness of the modern tools?? - Are these things yours to be proud of? Or are you simply taking advantage of the accident of your time of birth? The universe I was comparing (as you so eloquently put it), was where I had 20 or 30 Eproms laying around the eraser, a 15 minute erase time for about half a dozen Eproms at a time, a C compiler and a batch sequence to compile, link and produce object code. A utility that could be used to load the new program into the Eprom programmer and thence to the erased Eprom, a ZIF socket to lug the new program into, almost no debugging tools except a serial port and some LEDS to blink, a book on the instruction set, an assembly code dump of the program and VERY slow progress. Have YOU actually developed anything in this arrangement? The 8048 development environment we had at work was then worth about $50,000 (in 1986) - completely outside the capability of a hobbyist then, and now it's simply remarkable what you have access to these days - and I like it - and I feel privileged to be able to be involved at all. That's the universe I am comparing with.
Microchip never targeted or marketed towards hobbyists (especially in the past). It is absolutely normal that you pay a price for industry standard tools, tooling and a platform that is intended to fulfill regulations, safety standards and some important certifications ( are you guys comedians, comparing Arduino ... a learning tool, a toy ... which is a great platform ... with that? RTFM!). You also get product support and industry standard education for those products, availability of the supply chain and replacement parts ... guaranteed for typical professional time periods. Also: What clown compares whole product families against each other? PIC, AVR, STM32 all provide a wide spectrum of specialized types and I/O or processing capabilities, even DSP and customer tailored applications. I tell you: That clown isn't even funny ... he has just no expertise and no clue on the matter, which is rather embarrassing. Anyways, no one is forced to use something. The market is diverse and ... why I am even explaining this ... for someone who doesn't appreciate a wide variety of MCUs available and sees this instead as his childish opportunity to "grade" something that he doesn't understand, you cannot explain that you USE THE RIGHT TOOL FOR THE RIGHT JOB (this applies also to your design and choice of MCU). Although the best in this thread is the crying. Like: "Mummy .... maaaaaah ... a Porsche is sooooo expensive that I cannot afford it. They are a bad bad company". Imagine that this is even a specialized emergency car construction, which of course costs an arm and a leg. And in fact, you can't even do anything with it, because this is not your use case (I'm not talking about delusions to be an emergency doctor), but you still complain that it isn't useful for you ... and you "totally abandoned" it. Which is maybe the only action you've done so far that made sense. MPLAB X IDE is based on the Net Beans platform - effectively a competing open source platform to Eclipse. So now we know your preferences. Do you need another tissue? Really guys, what do you hope for when you write such useless comments? Someone who listens to you, because Microchip doesn't (which they told you before, that they do not care about you 1000$ customer). Do you search for fellow sufferers so you can form a crybaby club together? Well its just that: "Hey, THIS platform is better than that (who would've guessed it ... the platform YOU use?!) ... ", is so embarrassing and tells that someone does not even know that he knows nothing. Anyways, who cares. At least you learn something which is good. And if it be only that wasting money hurts you. (I do not address this "I WANT EVERYTHING FOR FREE"- guy here, obviously). Edit: Oh and of course, ST Microelectronics has no professional tools, customer support programs and (for the clueless hobbyist) "overpriced" development environments (including plugins) ... yes? NO! They have exactly the same horrors for you in the backhand. But you would know that if you had the energy to look it up. However, I admire your self-confidence. How can someone with such great ignorance and lack of knowledge allow themselves to criticize or evaluate something? My respect! **facepalm**
Almost 2 decades ago, when I was absolutely obsessed with robotics, PIC was THE most recommended microcontroller in most books for making and programming your own robot. As a 10 year old, I though I was hot shit making a line follower following some plans and a kit. Lemme tell you when I was first exposed to working with the PIC and everything involved, I hit a huge brick wall. My electronics, and computer literacy was minimal. My only way of using the internet was a local library. Jumping from breadboarding to microcontrollers was a big misstep for me and that was further compounded trying to get the PIC working. Now, after 2 decades it isn't that bad. An afternoon of reading through some docs and I'm good to go. I have a huge amount of respect for the people that worked through these things without internet access back in the day. It makes things so much more accessible.
I had a very similar experience! I tried to make the jump to a PIC and programming in C++ after using a Basic Stamp 2 for a couple years, and that killed it for me. I think trying to learn C++ by myself from a book as a 12 year old was a tall order. It's so much fun nowadays! We have so many interesting and cheap microcontrollers to play with.
There were datasheets and books published by the chip makers back in the day. There was no barrier to understanding the devices. I developed a piece of equipment using a PIC chip decades ago.
There was another competitor, a great little company called Atmel which had the AVR line of chips. Well long story short, you were able to program an AVR with regular open source tools with really cheap requirements to get started. Enter the era of Arduino and they basically killed it for the hobby market. Microchip, whilst having a superior line of chips, kept their ecosystem closed, required expensive tools and ended up buying Atmel because that is what you do with a competitor if they threaten your business. While PIC may have been the bomb back in the day (I will agree to that), it was Atmel and the Arduino framework that unleashed the hobbyist market that it is today. The basicstamp was a nice try, but the pricepoint at 39 dollars was too high anyway for far too few capabilities. I also agree that the basic stamp provided the idea for arduino, but I personally feel that the open source part really killed it, even though it also meant that cloning boards was equally easy. Anyway, once I learned about the AVR line-up and the easiness of programming those microcontrollers, it was really easy to turn my back to the PIC.
@@patrickd9551 Yes I agree Ardunino kill the PICs .because their management cant see straign. PIC was my first microcontroller.. and I study it just by reading manual for the chip.. it was really good.. really good assmbler and backcompability in family.. perifiral.. easy to program.. actually for programm AVR you have to have programmer or use tricky thing on LPT port thich was suck, but for PIC was really easy programmers for COM port..(no debugging of course) . Microchip even do send free samples to me few times..So it was great time.. but in nowadays Arduino just wins..
EEV blog did an incredibly interesting interview with the CEO of microchip a few months back. As somebody who has used PIC microcontrollers but in school and professionally, it was great to hear. PIC microcontrollers are almost ubiquitously used in things like ventilators, among many other things (based on the CEO's claims, which are obviously biased). It is an incredibly interesting interview which I recommend listening to, a lot of it has to do with the economics of the PIC, production, etc.. Edit: The XC8 compiler is specifically for the 8-bit MCU's. X16 would be used for 16 bit ones for example.
I used Arduino mostly when I need to put together quickly something relatively simple, using the libraries and borrowed code. However when I need something more complex, requiring accurate timing and so on I still go back to PIC and raw code things, even using assembly language, rather than using ready made libraries. I still find it very difficult with Arduino, whether with ESP32 or AVR to do real time things with sub microsecond timing. That may be though just because I started with PIC and have much more knowledge and experience with it. I have tried digging down to the 'bare metal' of AVR and ESP32 but never quite managed to get things to work properly. The PIC on the other hand I find very difficult and tedious to do things such as WiFi, internet access, user interfaces and so on so I often tend to use both a PIC to do the actual work and an ESP32 as a user interface, file storage and so on.
I think this partly because they are in different layers of hardware design : 8-bit MCU to interact directly with components, while higher level MCU like 32+ bit ones like ESP32 are made to deal with communications. Very different way of design.
I work with all microcontrollers but still love the little 8 pin PICs like the 12f675 for projects. Using an MELabs programmer along with Oshonsoft Pic Basic, development is easier than Arduino and more satisfying as there is not as much code overhead. PIC assembly is fun in itself!
Started programming microcontrollers around 20 years with a Mikroe EasyPIC3(? I believe this is the model), I can't remember the IDE I was using but I remember doing everything in assembly and having printed 900+ page datasheets on my desk to reference while programming. I really enjoyed the PIC's and had chose them over the AVR's just because they'd been around longer and I had assumed that would mean more examples and better documentation. Then the Arduino's came out and I referred to them as the "Fisher Price" of microcontrollers, funny thing is that I recently started using them for rapid prototyping because it's easier to have libraries available for controls instead of having to manually write macros for things. I've found I don't have the time to sit there and play with stuff anymore and just need it to work fast so the Arduino/AVR pair has been working better for my adult life than the PIC's would have.
As a new EEE student, i wanted to become “The jack of all trades” rather than becoming the “The Master of ONE” . I bought pic16f877a,pic18f4550,pic12f675,pic12f629. Also i bought some avrs: atmega16/32/328/8,attiny25 and arduino. I am currently trying to learn all of them. But controlling servo motor is just too much challenging for pics. As it lacks a helpful number of pwm pins. So I am trying to use software pwm. Challenging and difficult it is. But that’s how we adapt, evolve and become stronger.
Back in the mid 90s I became proficient with the 8-pin PIC12CE673 with 1 input and 5 IO, 1k words EPROM and 128 bytes RAM. I plugged it into the serial port of a handheld GPS and extracted the NMEA serial data at 4800 baud. I programmed it to sound a beeper when my GF went over a preset speed but she said it was always beeping so she powered it down! Great video, brings back a lot of good memories.
I went from Arduino AVR to ESP8266 and ESP32. I was considering PIC, but the ESPs were too powerful and affordable, especially with the built-in radio system. That doesn't mean I do not use AVRs. I still do, because of the simplicity and low-power of tiny chips like ATTINY13.
The ATtiny later series 0,1,2 are very nice too, with the easy to use UPDI flashing interface. I like the 824/1624, but I am doing very generic things.
To me the biggest benefit PICs bring is the peripherals. Its pretty niche but they have a good selection of MCUs with enough software configurable analog hardware to make voltage and current feedback loops for dc power supplys that run independently of the main cpu, so it can do whatever else it needs in the background. Not many use cases but when you want an i2c controlled dc to dc supply there aren't many options as cheap as PICs
The Pickit3 and the MPLABX are buggy, but at the end of the day they float the boat. The PIC-based end products always worked really great, I've been developing such products since 2016 with great success in low cost, low power consumption, versatility and reliability. I've seen no need to change uC families so far!
MPLAB IDE is the biggest drawback by far for a lot more reasons than listed here. There are a lot of bugs which can be design breaking, like not being able to use LVP which locks you out of using the MPLAB SNAP programmer. There's other bugs as well with the compiler and the chips own settings that will prevent you from getting what is listed in their own datasheet. Also if you tell Microchip about these issues they will run you around in circles unless you're a large purchaser of their chips (manufacturer or design firm).
Good video. I was interested in the process of using PIC directly instead of Arduino system. In fact, if you plan to make an industrial project PICs are THE solution. But if, like me, you're just an enthusiastic of DIY with development speed in mind, Arduino family is absolutly inbattable.
@@SineLab we can argue with this, and i am shore that will beat any argument with just one of my simple project with my bootloader system and pcb design ;) be sure about it
PIC's used to be so good, cheap, approachable, easy to learn. But these days, they are become a bit to obscure if you need to learn from scratch, and the programming environment (mplabx) is a nightmare. They are still pretty cheap though
Really nice video - thank you. I use those buggers with MPASM/Assembler ... you need to download a historical version of MPLAB to have it included. I always tended towards PIC for its peripherals, and the small chips like 12f675 are perfect for smart wires like performing tasks in a radio controlled airplane. After trying similar things with ATTiny85 and full fledged ATMega mcus I have only returned to PIC for those small specialized things.
And just like that I was hooked and wanted back into the game ... but ... mpasm is designed to be really impolite to 64-bit systems. Not sure, but probably a trash can near me is going to be full of PIC mcus really soon. Damn, Microchip has all the tact of Apple supporting diy's and tinkering. I'll have a test run with xc and c, but I think this is over for me as unpaid xc injects tripwire blobs (doesn't "optimize") - also done with upgrading programmers every time someone at Microchip gets the urge for a new one.. goddammit! what a mess... Perhaps RiscV can do something for us?
I'm now 19 and learned assembly a few years ago on the stone age version MPLAB IDE 8.10 and it's one of the best working software I have ever known. I tested the IDE X this weekend and it's unusable total junk. I can't understand why they tried to improve something that worked really well and now it's broken
@@KetilDunaXC8 comes with an assembler- pic-as- really just a renamed mpasm. You can check the output- no tripwires, etc. You don't have to touch the C compiler/optimization at all. Writing a C compiler for the 8 bit pic is pretty hard- it doesn't really fit within the conventions of traditional C. IIRC, the AVR started out as a project to make an 8 bit device that worked well with C. Microchip has a "tradition" of supporting all the way back. Since nobody else was doing it (for free), Microchip had to do it internally. Those programmers wanted to get paid. pic-as supports current parts and back to the PIC16C54! Over 30 years old.
Excellent presentation. I'm an Arduino guy looking at the PIC stuff. I enjoy digging around in Datasheets and investigating black blobs as if I had x-ray vision. But really, the interrupt demo with three things going on, has me sold on my next rabbit hole. Thanks
Well I loved your tutorial and the fact that you are running Linux makes me even more excited. I had faced a lot of screen issues when running mplab on Linux. And speaking of PIC oh well it is really a treasure when you really want a stone/robust ADC readings! I’ve never seen any 8-bit mcu which would have such a damn spot on robust adc. I often use pic when there’s something related to high voltage meters or adc measurements! It’s just bang on! Thanks for making the tutorials it would really help be newbies and beginners to work on it. Cheers! 🎉
PIC is absolutely horrible for hobbyists. I only got good with it because I learned to use PICs in college and had a good TA who showed me the ropes. Even then, I switched to AVR for hobbyist projects because the support is so much better.
A good program writer and compiler alternative is MikroC from MikroE. It is not free, but for smaller projects you can compile with it. From my expreience, MikroC (for PIC, they have many C based tools) is the best option for PIC. You can have full control, but the advantage of C language, instead of assembly.
As much as this seems to make sense, I think it's more for mass production v. hobbyist level. At the hobbyist level arduinos are far more economical because the programming software is free and don't require an additional programmer. These pro level programmers are wayyyyyyyyyyyyyyyyy too pricey.
I have been using pics for 20 years started back when they were OTP or you had to get one pf those UV erasable pics to test. ICE2000 were $1200 each and MPLAB was horrible. I chose assembly language and programing was complicated without extensive commenting. Pic is great for production needs but microchip support for legacy chips is subpar. I still need to use MPLAB 8.92 as most legacy pic16 and some pic18 are no longer supported through MPLAB X. ICD2 and 3 are no longer supported either. ICD4 is buggy. Great information and presentation so I subscribed.
i use PIC microcontrollers for my work in small machines, the new ones are really good, i program in C with mplab ide with optimization in level 2, the MCC or mplab code configurator is amazing, it saves time making the configuration of hardware for you.
It took me forever to wean my boss off of the Atmel 8-bit microcontrollers. I finally convinced him to move to a 32-bit Raspberry Pi Pico which has Arduino support. I couldn’t convince him to get away from the Arduino IDE. I like the Arduino IDE but the latest IDE has limited debug capabilities. I did get the Raspberry Pi Picoprobe working with a special version of OpenOCD in Visual Studio Code.
MPLAB shitting the bed randomly is half the fun of PIC programming. Between using it in school and at work I’ve definitely grown to love the PICs over Arduinos, especially with the software breakpoints the ICD provides.
Iv tryed a few times to get into the PIC space but have had no end of issues with there software. Not to say i wont try again and its not a capbale platofrm, but I do prefure most of my time be spend working on a project and not debugging there IDE.
I loved PICs about 15 years ago before AVR and others became so ubiquitous, but the MPLab software was so bad I dipped as soon as I found something better. I still have tubes of PICs and a PICkit 3 but I haven't used them in years because it's just such a hassle to set up and program by comparison. Kind of sad that it's easier to solder, connect, and program a 100-pin ATxmega TQFP chip than a 20-pin PIC16F through-hole chip on a breadboard.
I’ve been programming PIC’ssince years, first with MPASM then tried C with the then absolutely crappy CCS compiler then switched back to MPASM. The worst critic, by far, i have against Microchip is their totally unacceptable, sh***y, evil MPLAB-X !!! I tried three times with deep disappointment so i switched back to MPLAB 8.92 which i keep carefully. What keeps me with PIC? Their tiny 8-pin micros for small projects. (PIC16F1840) But i know i will have to change for something much more powerful such as ATMEL 32 bit uC’s…
@ve2zzz I feel your pain my friend. I don't know which language you are programming in, but just a heads up, MPLAB 5.20 would be your last decent version that you can use Assembly language in, if that's your thing. PIC 16F1840 is one of my top 6 preferred chips for the same reason. PIC 12F1612 is also a great little chip since it's a little known fact that you can direct drive 100mah through an I/O port if need be;)
PIC: programmer (hardware piece) is expensive and obsolescence comes quick. IDE is trash .. heavy and difficult .. older more nimble version was better, but no longer supported. The chips themselves are fantastic, indestructible, capable works of art. Datasheets are done well. AVR: easy to use, internet drowns in its accolades, fanbois, and docs. Any 80 iq newbie from any random 2-bit country can put together a usable widget using an arduino. The chips themselves appear to be fine to great. But the usual packaging leads noobs to look for software solutions where they should be learning hardware components and capabilities. Most of the projects I have seen using either could be replaced with
I would recommend to use the own software for the programmer it works much better then the build in support. And i have fallen in love with the MPLAB IDE 8.1 and assembly for the pics its such a nice language. I have so honestly say it's the best working software i habe ever seen its intuitive to use and really simple and is running on everything :)
You used MPLAB X IDE 6.15 on Linux, right ? Mine having error about : - libUSBAccessLink_3_48 - libmchpusb-1.0 - mchplinusbmonitor - mchpdefport on Ubuntu 24.04.1 LTS. ** UPDATE : Fixed xD .. Now my PICKIT3 working well with latest MPLAB version.
The PIC16C71 is a fascinating potato. 36 bytes is such a laughably small amount of ram. Perhaps one day I'll get my hands on the windowed EPROM version! (Or maybe punch a hole ontop of the OTP ones (nitric acid) so UVC light can reach the die.)
Optimisations in the XC8 compiler? Let's just say the non pro version deliberately creates clunky unnecessary slow code. See for your self and look at the assembler listing it produces... I think PICs are fine if you're happy to code in assembler. Although the architecture of some of the more "primitive" devices absolutely sucks. Bank switching? Please! I eventually gave up on PICs altogether - as I got fed up with having to re-invent the wheel and switched over to the Arduino eco-system. Program those in C++ but deal with the registers directly and you're away.
Simple answer is "No". Best way to check which chips you can program with your PicKit 2 is to run through the setup sequence on MPLAB as if you were building a new project. If the MPLAB platform allows you to setup your desired microcontroller with your PICKIT 2 then it will work.
PICs are great, programmed PIC32 professionally for almost 2 years, apart from years of projects and such I did for me! I mostly work with STM32 now though. I miss the documentation of the PICs, much much more shorted than the chaotic ST ones with sometimes not so great code examples ( which are all in C?!? not C++ ). Still though as always, use whatever works. And I would be lying if I said that I don´t miss the AVR vs PIC wars of the old.
I like STM32 myself and I’m not sure why anybody would want to write firmware in anything but C as it’s way too easy for developers to bloat the code using C++. If you prefer C++, I suggest that you use the Arduino IDE with STM32 support. The libraries are written in C++ but I am not sure how much support for STM32 exists since I normally use STM32CubeIDE for development and debugging.
Thanks great video ! But I am now sure I will stick with AVR, there popularity is due to removing the grimy stuff and you don't end up re inventing the wheel. Anybody who is wondering which way to go I would say the AVR/Arduino eco system is where you want to be...cheers.
I just recently decided to actually get blink running on an old PIC16f877 that's been lying around for years, using the pickit3 that I own. Got it working but yeesh - I had to devise a series of steps to get it actually working powering the PIC. Couldn't get programming to work from MPLAB IDE at all, could get it working from MPLAB IPE if I did an elaborate dance of unplugging and plugging the programmer to get it to send power to the IC ( no idea why). Really crap, but I am just a hobbyist and I guess they make lots of money from people who aren't so ah well. I'll probably not bother with them in future.
Of course the alternative is to power it separately but I'm used to powering from the programmer, and that's a bit of a faff given it's supposed to support it. Really all the problems are poor quality software.
Arduino turned AVR into the winner because it removed 1/2 of what is shown as needed in 0:48 edit; even getting through the process of install -> program seemed like a crazy hassle even though you showed it working flawlessly. You need to know buried dropdowns and to copy code from specific boxes as a beginner? Easy to see why it doesn't gain in popularity.
What do you think about the MPlab Code Configurator (MCC)? Personally I dont like it when I have to go into a datasheet just to turn on an LED. Also the Code is not that easy to understand, when you adress the Port Bits directly. I remember that the MCC basically produces finished functions for Digital Output Pins. Such as Toggle(), TurnOn(), and other stuff. The fading led is great and was surprisingly fast made. 😲 If the PIC Software would be more user friendly, PICs would definitely be an alternativ for Arduino and co.
Both AVR and PIC uCU are good, but each to specific needs. Remember they are now the SAME company! You open minded policy is what I have, so I agree with you, and I use both depending on the need. BTW I also use Padauk for small projects, and STM32F... for big projects..
Is anyone using the mikroC platform? And if so - how would you compare it to the Arduino Eco-System in which there appear to be a significant amount of libraries and pre-made example code files - all one has to do is modify - in order to get them to do what you want. Compare that to the PIC environment in which you are basically creating the wheel from scratch every time you start coding. For me - the development platform that provides the fastest and simplest approach is probably the Arduino platform. Yes - the Arduino platform is limited to Arduino compatible devices. But isn't there an Arduino compatible device which can do pretty much what any PIC can do? Additionally - these devices appear to be coming in smaller and smaller SMD packages. When a device board shrinks down to the size of the Seeeduino XIAO - we're getting pretty close to the foot-print of the classic PIC18F4550 which is still being used as the favored device for PIC learning. Your thoughts?
I worked with the Microchip ecosystem during my time studying at university for a degree in Embedded Systems. We called the ICD programmer the "hockey puck." Unfortunately, even with our professor's deep knowledge and decades of experience with MPLAB and the PIC, the programming experience was still very rough compared to a more modern and friendly ecosystem like STM32. More money does not solve the problem of Microchip's terrible software that is MPLAB. The ICD is a nice tool that is very overpriced. My professor often has to heavily annotate the PIC32 reference materials and datasheets with his own errata and corrections to explain the setup and operation of a PIC32MX. I think any new hobbyist getting into microcontrollers should stay far away from the PIC. STM32 is the new "king" of easy to use industrial-grade microcontrollers, but there's lots of other good options out there that aren't Arduino.
neat, I got a PIC a little while back in the midst of the silicon shortage when I needed a microcontroller with a lot of IOs (but not a requirement for a lot of oomph, I just wanted a chip to translate PS/2 keyboard codes to my own codes for a homebrew machine), as well as being able to program it with a TL866II+ that I already got for programming flash chips, I set up a small makefile just to avoid mplab entirely :p it gets the job done pretty well, leaving the (in my opinion) more interesting system more time to handle interesting code, while also having a lot of IOs left for potential other interfaces
i used lot PIC mikrocontroller when i has working ABB automation corporation and we build many custom pump device whit PIC, measure liquid colour, flow meters, erc many custom systems, and other corporation i made many silo controller system whit PIC controller to around world, lot send to england and asian many factory. and home i made motorbike gear display system and pristaltic pum system filled bottles, but later come better programming AVR mikro controller and has lot better easy programmed all codes. fasten and better, ARDUINO have easy way use mikrocontrolelr today. i used first lot PLS siemens simatic, then PIC and then AVR and arduino at work before. home i build flight simulator many many stuff whit arduino, many other automation system hobby workshop. easy and lot better than old PIC or base AVR, use arduino.
I want a $0.10 8-bit MCU that I can program using its own assembly language and/or C without an extra piece of hardware (programmer) and without any IDE whatsoever. Heck if it were even $2 I would take it. Just let me send some ASCII text code from whatever text editor I like to a cheap but capable MCU.
may just be a debugging header. and the 8 pin chips need a special debugging 14pin device to physically debug. took me years to track one down for my favourite pic chip, 12f683... doubt i will ever use it. theres a debug/simulator in mplab anyway... takes some fiddling, but yeah. seems to work.
I like the look of PIC-32s... I can't be bothered with "lower" PICS (I'm an AVR fanboy and I don't see there being any gains there - just like if you're a PIC fanboy, there's no gains to using an AVR). But PIC-32s seems so attractive because you get all that 32-bit goodness like you'd expect from e.g. an STM-32... but in a DIP package. If you like breadboards, strip or pad board you can get 32 bits without needing to mess around with breakout boards to adapt to SMT. Also I'm an "assembly language pervert" and PIC-32 (unlike the "lower" PICs) uses the MIPS ISA and using a third party ISA means there's loads more reference material available (especially as they love (loved?) MIPS so much in education). Microchip's dev. tools DO completely and utterly stink. But it does seem like there ARE open source options available at least for PIC-32, if not the "lower" PICs
There is no real reason to go for PIC processors now, especially since they need an expensive programmer. It would be much cheaper and more capable MCUs if you just used a more modern arm or risc-v based MCU.
@SineLab Please, is it possible to demonstrate how to connect and program a stepper motor using a PIC? I am working with a PIC16F877A and PIC16F887 for a school project...
@SineLab Yes, we do have stepper motor driver circuits in the college lab. I have an assignment that requires me to control a stepper motor using dip switches. We can use the PIC16F877/PIC16F877A or the PIC16F887 microcontrollers.
Hi sir, I am from India .I am 12th graduate with Physics Maths and Chemistry. I want to become an engineer. I am also preparing for college. But I want to do bachelor and job in your country. Please help me for scholarship and in universities admission process. I am 19 year old .With my studies I will work with you as an assistant if you give me chance.please help me sir.
If you're going to issue a video with such a ridiculous title at least do SOME homework! If PIC's were no good, then how have they survived some forty years? Yes, the MPLAB IDE is a challenge but the CCS PIC C compiler has been around for years as have a few others, there are a number of DIY PIC programmers on You Tube also. I think you'll find that AVR's are fine, up to a point but if you want to do some "grown up" work then you'll find PIC's take over when AVR's run out of functionality and performance. It's not a matter of 'are PICs any good', the uController is chosen to deliver the functionality required within the many constraints of a design, barring functionality, cost and power consumption are usually near the top of the list.
Several years ago, I interviewed for a firmware development position at a large HVAC manufacturer. I asked them why they are still using PICs for their latest projects. I think their response had something to do with code leverage. Apparently, PIC developers don’t make very much at that company.
I started with PICs and really liked their capabilities. I totally abandoned PICs, because of the terrible MPLabX IDE/Compiler and PICKit programmer hassles. Microchip had long (years) been informed of the myriad of issues and did not bother to make corrections. Interestingly, IIUC, Microchip bought Atmel. And, IIUC, the 328P, the basis of Arduinos, is an Atmel product.
I started with PIC32 and loved the performance compared with the old-world 8051/Z80/6809 derivatives I had been used to back in the 80's and 90's. I bought the PIC IDE and compilers for the PIC32 and kicked things along back in 2009. Then (14 years later), I discovered the STM32 range with its FREE tools, including the CUBE IDE (Eclipse) and the MX configuration tool. This was amazing, and I did not have to spend a thousand or more dollars per tool like the PIC32. For a hobbyist like me this was revolutionary. Even the lower M4 series ran at 84 and 100Mhz, and, for a few dollars, I could get some good Chinese boards and the aftermarket STLINK interfaces that have completely replaced all the PIC32 tools for a fraction of the money ANNNND the STM32 peripherals are a snap to configure using the MX tool, which can be integrated with the Eclipse IDE. One gotcha is to understand what gets overwritten by the MX tool. I suffered there originally but I have to say that have become more comfortable with this and finally waved goodbye to PIC. I still have a number of various types of PIC232 uC's but I will probably never use them. STM32 has timer support for incremental encoders out of the box - a real selling point for me, and the ADC was VERY simple to configure and run, even with DMA. The PIC32 on the other hand, was a nightmare to configure. Then I stumbled on the Teensy 4.1, an exciting rabbit hole, but without the peripherals that I really liked in the STM32 series.
@@stephencurtis2282 for what universe you compare pic32 from this decade with 8051 from past 60 years. it is obviously that pic 32 is better light years in front of 8051 or z80 :)))))))
You really shouldn't compare a Z80 to a microcontroller. A Z80 can be used as an intelligent controller with peripheral interface adapters like the 8255 and complex programing, but no microcontroller can a run an OS and function as a computer. They really can't be compared. I used PIC controllers for over 20 years because they were the only game in town except for National Semiconductor's COP 400 series controllers. Make sure you don't become a fan boy, or you're going to miss a lot of opportunities. Try branching out to something else like a raspberry pi pico w. @@KaradevNetLtd
@@KaradevNetLtd Oh Lord I was not COMPARING. as much as I was admiring!! Please read the words. "I started with PIC32, and I loved the PERFORMANCE compared with the old-world 8051/Z80/6809 derivatives I had been used to back in the 80's and 90's." What's your point? (besides some arcane one-upmanship). Having access to the newer chips was great, and I knew what the difference was because I had experienced the old stuff - it's marvellous what you get performance-wise and tool quality that makes it all so easy. Please tell me why you think this is sooooooo obvious?? Am I not allowed to share my pleasure with what we have today? Also, the 8051 is not really 60 years old (quite), and plenty of 8051 derivates are still around. The FREE STM32 tools make it an excellent experience and one reason I waved goodbye to the PIC32. Also, what did YOU contribute to the light-years-aheadness of the modern tools?? - Are these things yours to be proud of? Or are you simply taking advantage of the accident of your time of birth?
The universe I was comparing (as you so eloquently put it), was where I had 20 or 30 Eproms laying around the eraser, a 15 minute erase time for about half a dozen Eproms at a time, a C compiler and a batch sequence to compile, link and produce object code. A utility that could be used to load the new program into the Eprom programmer and thence to the erased Eprom, a ZIF socket to lug the new program into, almost no debugging tools except a serial port and some LEDS to blink, a book on the instruction set, an assembly code dump of the program and VERY slow progress. Have YOU actually developed anything in this arrangement? The 8048 development environment we had at work was then worth about $50,000 (in 1986) - completely outside the capability of a hobbyist then, and now it's simply remarkable what you have access to these days - and I like it - and I feel privileged to be able to be involved at all. That's the universe I am comparing with.
Microchip never targeted or marketed towards hobbyists (especially in the past). It is absolutely normal that you pay a price for industry standard tools, tooling and a platform that is intended to fulfill regulations, safety standards and some important certifications ( are you guys comedians, comparing Arduino ... a learning tool, a toy ... which is a great platform ... with that? RTFM!). You also get product support and industry standard education for those products, availability of the supply chain and replacement parts ... guaranteed for typical professional time periods. Also: What clown compares whole product families against each other? PIC, AVR, STM32 all provide a wide spectrum of specialized types and I/O or processing capabilities, even DSP and customer tailored applications. I tell you: That clown isn't even funny ... he has just no expertise and no clue on the matter, which is rather embarrassing. Anyways, no one is forced to use something. The market is diverse and ... why I am even explaining this ... for someone who doesn't appreciate a wide variety of MCUs available and sees this instead as his childish opportunity to "grade" something that he doesn't understand, you cannot explain that you USE THE RIGHT TOOL FOR THE RIGHT JOB (this applies also to your design and choice of MCU).
Although the best in this thread is the crying. Like: "Mummy .... maaaaaah ... a Porsche is sooooo expensive that I cannot afford it. They are a bad bad company". Imagine that this is even a specialized emergency car construction, which of course costs an arm and a leg. And in fact, you can't even do anything with it, because this is not your use case (I'm not talking about delusions to be an emergency doctor), but you still complain that it isn't useful for you ... and you "totally abandoned" it. Which is maybe the only action you've done so far that made sense.
MPLAB X IDE is based on the Net Beans platform - effectively a competing open source platform to Eclipse. So now we know your preferences. Do you need another tissue? Really guys, what do you hope for when you write such useless comments? Someone who listens to you, because Microchip doesn't (which they told you before, that they do not care about you 1000$ customer). Do you search for fellow sufferers so you can form a crybaby club together?
Well its just that: "Hey, THIS platform is better than that (who would've guessed it ... the platform YOU use?!) ... ", is so embarrassing and tells that someone does not even know that he knows nothing.
Anyways, who cares. At least you learn something which is good. And if it be only that wasting money hurts you. (I do not address this "I WANT EVERYTHING FOR FREE"- guy here, obviously).
Edit: Oh and of course, ST Microelectronics has no professional tools, customer support programs and (for the clueless hobbyist) "overpriced" development environments (including plugins) ... yes? NO! They have exactly the same horrors for you in the backhand. But you would know that if you had the energy to look it up. However, I admire your self-confidence. How can someone with such great ignorance and lack of knowledge allow themselves to criticize or evaluate something? My respect! **facepalm**
Almost 2 decades ago, when I was absolutely obsessed with robotics, PIC was THE most recommended microcontroller in most books for making and programming your own robot. As a 10 year old, I though I was hot shit making a line follower following some plans and a kit. Lemme tell you when I was first exposed to working with the PIC and everything involved, I hit a huge brick wall. My electronics, and computer literacy was minimal. My only way of using the internet was a local library. Jumping from breadboarding to microcontrollers was a big misstep for me and that was further compounded trying to get the PIC working. Now, after 2 decades it isn't that bad. An afternoon of reading through some docs and I'm good to go. I have a huge amount of respect for the people that worked through these things without internet access back in the day. It makes things so much more accessible.
I had a very similar experience! I tried to make the jump to a PIC and programming in C++ after using a Basic Stamp 2 for a couple years, and that killed it for me. I think trying to learn C++ by myself from a book as a 12 year old was a tall order. It's so much fun nowadays! We have so many interesting and cheap microcontrollers to play with.
There were datasheets and books published by the chip makers back in the day. There was no barrier to understanding the devices. I developed a piece of equipment using a PIC chip decades ago.
There was another competitor, a great little company called Atmel which had the AVR line of chips.
Well long story short, you were able to program an AVR with regular open source tools with really cheap requirements to get started. Enter the era of Arduino and they basically killed it for the hobby market. Microchip, whilst having a superior line of chips, kept their ecosystem closed, required expensive tools and ended up buying Atmel because that is what you do with a competitor if they threaten your business.
While PIC may have been the bomb back in the day (I will agree to that), it was Atmel and the Arduino framework that unleashed the hobbyist market that it is today. The basicstamp was a nice try, but the pricepoint at 39 dollars was too high anyway for far too few capabilities. I also agree that the basic stamp provided the idea for arduino, but I personally feel that the open source part really killed it, even though it also meant that cloning boards was equally easy. Anyway, once I learned about the AVR line-up and the easiness of programming those microcontrollers, it was really easy to turn my back to the PIC.
@@patrickd9551 Yes I agree Ardunino kill the PICs .because their management cant see straign. PIC was my first microcontroller.. and I study it just by reading manual for the chip.. it was really good.. really good assmbler and backcompability in family.. perifiral.. easy to program.. actually for programm AVR you have to have programmer or use tricky thing on LPT port thich was suck, but for PIC was really easy programmers for COM port..(no debugging of course) . Microchip even do send free samples to me few times..So it was great time.. but in nowadays Arduino just wins..
2 decades ago PIC was taught in ours schools as one of capable, yet simple to use and capable to withstand some abuse.
EEV blog did an incredibly interesting interview with the CEO of microchip a few months back. As somebody who has used PIC microcontrollers but in school and professionally, it was great to hear. PIC microcontrollers are almost ubiquitously used in things like ventilators, among many other things (based on the CEO's claims, which are obviously biased). It is an incredibly interesting interview which I recommend listening to, a lot of it has to do with the economics of the PIC, production, etc.. Edit: The XC8 compiler is specifically for the 8-bit MCU's. X16 would be used for 16 bit ones for example.
I'll have a listen to that interview :)
I used Arduino mostly when I need to put together quickly something relatively simple, using the libraries and borrowed code. However when I need something more complex, requiring accurate timing and so on I still go back to PIC and raw code things, even using assembly language, rather than using ready made libraries. I still find it very difficult with Arduino, whether with ESP32 or AVR to do real time things with sub microsecond timing. That may be though just because I started with PIC and have much more knowledge and experience with it. I have tried digging down to the 'bare metal' of AVR and ESP32 but never quite managed to get things to work properly. The PIC on the other hand I find very difficult and tedious to do things such as WiFi, internet access, user interfaces and so on so I often tend to use both a PIC to do the actual work and an ESP32 as a user interface, file storage and so on.
I think this partly because they are in different layers of hardware design :
8-bit MCU to interact directly with components, while higher level MCU like 32+ bit ones like ESP32 are made to deal with communications.
Very different way of design.
I work with all microcontrollers but still love the little 8 pin PICs like the 12f675 for projects. Using an MELabs programmer along with Oshonsoft Pic Basic, development is easier than Arduino and more satisfying as there is not as much code overhead. PIC assembly is fun in itself!
Started programming microcontrollers around 20 years with a Mikroe EasyPIC3(? I believe this is the model), I can't remember the IDE I was using but I remember doing everything in assembly and having printed 900+ page datasheets on my desk to reference while programming. I really enjoyed the PIC's and had chose them over the AVR's just because they'd been around longer and I had assumed that would mean more examples and better documentation. Then the Arduino's came out and I referred to them as the "Fisher Price" of microcontrollers, funny thing is that I recently started using them for rapid prototyping because it's easier to have libraries available for controls instead of having to manually write macros for things. I've found I don't have the time to sit there and play with stuff anymore and just need it to work fast so the Arduino/AVR pair has been working better for my adult life than the PIC's would have.
As a new EEE student, i wanted to become “The jack of all trades” rather than becoming the “The Master of ONE” . I bought pic16f877a,pic18f4550,pic12f675,pic12f629.
Also i bought some avrs: atmega16/32/328/8,attiny25 and arduino.
I am currently trying to learn all of them. But controlling servo motor is just too much challenging for pics. As it lacks a helpful number of pwm pins. So I am trying to use software pwm. Challenging and difficult it is. But that’s how we adapt, evolve and become stronger.
@ I find your response very motivating. Thanks man.
Back in the mid 90s I became proficient with the 8-pin PIC12CE673 with 1 input and 5 IO, 1k words EPROM and 128 bytes RAM. I plugged it into the serial port of a handheld GPS and extracted the NMEA serial data at 4800 baud. I programmed it to sound a beeper when my GF went over a preset speed but she said it was always beeping so she powered it down! Great video, brings back a lot of good memories.
Wow, you have really improved with your presentation skills. Bravo! Atta-boy!
Thank you for giving advice along the way :)
Loving the quality of the video: clarity of script, shots, pace, editing. Thank you - I’m new to all this, so it’s much appreciated.
I went from Arduino AVR to ESP8266 and ESP32. I was considering PIC, but the ESPs were too powerful and affordable, especially with the built-in radio system. That doesn't mean I do not use AVRs. I still do, because of the simplicity and low-power of tiny chips like ATTINY13.
The ATtiny later series 0,1,2 are very nice too, with the easy to use UPDI flashing interface. I like the 824/1624, but I am doing very generic things.
My favorite was ATiny85 😂
Just hate Arduino IDE nowadays
MPLAB SNAP is one of the new microchip debuger/programer. Not only allows you to program pic uC but aslo AVR. It cost much less than PICKIT 5.
To me the biggest benefit PICs bring is the peripherals. Its pretty niche but they have a good selection of MCUs with enough software configurable analog hardware to make voltage and current feedback loops for dc power supplys that run independently of the main cpu, so it can do whatever else it needs in the background. Not many use cases but when you want an i2c controlled dc to dc supply there aren't many options as cheap as PICs
I agree, the PIC peripherals are really the biggest selling point.
What a totally convoluted system. I think I will stick with my AVRs (Arduino style) and simple C++
The Pickit3 and the MPLABX are buggy, but at the end of the day they float the boat. The PIC-based end products always worked really great, I've been developing such products since 2016 with great success in low cost, low power consumption, versatility and reliability. I've seen no need to change uC families so far!
MPLAB IDE is the biggest drawback by far for a lot more reasons than listed here. There are a lot of bugs which can be design breaking, like not being able to use LVP which locks you out of using the MPLAB SNAP programmer. There's other bugs as well with the compiler and the chips own settings that will prevent you from getting what is listed in their own datasheet. Also if you tell Microchip about these issues they will run you around in circles unless you're a large purchaser of their chips (manufacturer or design firm).
Makes the rather compliacted topic of interrupts understandable! Great video, thx.
If you think this was easy you should look at AVR chips as this seems overly complicated to me but I have no experience with PICS :)
Thanks for watching!
Good video. I was interested in the process of using PIC directly instead of Arduino system. In fact, if you plan to make an industrial project PICs are THE solution. But if, like me, you're just an enthusiastic of DIY with development speed in mind, Arduino family is absolutly inbattable.
There's not much that can beat Arduino's prototyping speed. :)
@@SineLab we can argue with this, and i am shore that will beat any argument with just one of my simple project with my bootloader system and pcb design ;) be sure about it
PIC's used to be so good, cheap, approachable, easy to learn.
But these days, they are become a bit to obscure if you need to learn from scratch, and the programming environment (mplabx) is a nightmare.
They are still pretty cheap though
I used Microchip PIC controllers in the 90S to make several good products for a company.
They were fast and reliable.
I would say they are good chips.
Really nice video - thank you. I use those buggers with MPASM/Assembler ... you need to download a historical version of MPLAB to have it included. I always tended towards PIC for its peripherals, and the small chips like 12f675 are perfect for smart wires like performing tasks in a radio controlled airplane. After trying similar things with ATTiny85 and full fledged ATMega mcus I have only returned to PIC for those small specialized things.
And just like that I was hooked and wanted back into the game ... but ... mpasm is designed to be really impolite to 64-bit systems. Not sure, but probably a trash can near me is going to be full of PIC mcus really soon. Damn, Microchip has all the tact of Apple supporting diy's and tinkering. I'll have a test run with xc and c, but I think this is over for me as unpaid xc injects tripwire blobs (doesn't "optimize") - also done with upgrading programmers every time someone at Microchip gets the urge for a new one.. goddammit! what a mess... Perhaps RiscV can do something for us?
I'm now 19 and learned assembly a few years ago on the stone age version MPLAB IDE 8.10 and it's one of the best working software I have ever known. I tested the IDE X this weekend and it's unusable total junk. I can't understand why they tried to improve something that worked really well and now it's broken
@@KetilDunaXC8 comes with an assembler- pic-as- really just a renamed mpasm. You can check the output- no tripwires, etc. You don't have to touch the C compiler/optimization at all.
Writing a C compiler for the 8 bit pic is pretty hard- it doesn't really fit within the conventions of traditional C. IIRC, the AVR started out as a project to make an 8 bit device that worked well with C. Microchip has a "tradition" of supporting all the way back. Since nobody else was doing it (for free), Microchip had to do it internally. Those programmers wanted to get paid. pic-as supports current parts and back to the PIC16C54! Over 30 years old.
Excellent presentation. I'm an Arduino guy looking at the PIC stuff. I enjoy digging around in Datasheets and investigating black blobs as if I had x-ray vision. But really, the interrupt demo with three things going on, has me sold on my next rabbit hole. Thanks
What are you trying to say? You like PIC's or you've just discovered interrupts?
@@icarossavvides2641 Microcontrollers in general. The interrupt is always fascinating. I should be focusing on my coding however.
Have fun :)
@@SineLab I just received 3 AT89S52-24PU.s from digikey today. I'm gunna need help.
Well I loved your tutorial and the fact that you are running Linux makes me even more excited. I had faced a lot of screen issues when running mplab on Linux. And speaking of PIC oh well it is really a treasure when you really want a stone/robust ADC readings! I’ve never seen any 8-bit mcu which would have such a damn spot on robust adc. I often use pic when there’s something related to high voltage meters or adc measurements! It’s just bang on!
Thanks for making the tutorials it would really help be newbies and beginners to work on it. Cheers! 🎉
Linux is the way to go :)
PIC is absolutely horrible for hobbyists. I only got good with it because I learned to use PICs in college and had a good TA who showed me the ropes. Even then, I switched to AVR for hobbyist projects because the support is so much better.
A good program writer and compiler alternative is MikroC from MikroE. It is not free, but for smaller projects you can compile with it. From my expreience, MikroC (for PIC, they have many C based tools) is the best option for PIC. You can have full control, but the advantage of C language, instead of assembly.
Great overview, looking forward to learning more about the USB functionality.
Coming soon!
I'm so thankful for the open source nature and user-friendliness of Arduino.
As much as this seems to make sense, I think it's more for mass production v. hobbyist level. At the hobbyist level arduinos are far more economical because the programming software is free and don't require an additional programmer. These pro level programmers are wayyyyyyyyyyyyyyyyy too pricey.
I agree, those pro programmers are really only within reach for corporations.
@@SineLab with my bootloader system and software for win10+ will not need programmer. just usb cable and C# software for win 10. libs included inside
I have been using pics for 20 years started back when they were OTP or you had to get one pf those UV erasable pics to test. ICE2000 were $1200 each and MPLAB was horrible. I chose assembly language and programing was complicated without extensive commenting. Pic is great for production needs but microchip support for legacy chips is subpar. I still need to use MPLAB 8.92 as most legacy pic16 and some pic18 are no longer supported through MPLAB X. ICD2 and 3 are no longer supported either. ICD4 is buggy. Great information and presentation so I subscribed.
Interesting to hear about the lack of support for legacy chips.
Congratulations. This is a really good video and content.
i use PIC microcontrollers for my work in small machines, the new ones are really good, i program in C with mplab ide with optimization in level 2, the MCC or mplab code configurator is amazing, it saves time making the configuration of hardware for you.
I always preferred AVR over PIC - but that was 20 years ago. I switched to STM32 around 2011 and don't see why I would ever use a 8-bit micro again.
There are PIC32.
It took me forever to wean my boss off of the Atmel 8-bit microcontrollers. I finally convinced him to move to a 32-bit Raspberry Pi Pico which has Arduino support. I couldn’t convince him to get away from the Arduino IDE. I like the Arduino IDE but the latest IDE has limited debug capabilities.
I did get the Raspberry Pi Picoprobe working with a special version of OpenOCD in Visual Studio Code.
Cost
stm32 --> $25 , pic18FQ --> $1
@@bcar456 You must be kidding me. The cheapest STM32 is less than 1$ if you buy a single part and even cheaper in larger quantities.
MPLAB shitting the bed randomly is half the fun of PIC programming. Between using it in school and at work I’ve definitely grown to love the PICs over Arduinos, especially with the software breakpoints the ICD provides.
Thanks for this. I've always wondered about PICs.
For high level language, consider the MikroElektronika BASIC, Pascal and C compilers (about $200).
Thanks for making a video on this interesting topic.
Thank you for watching the video :)
These are very nifty chips. For much more user friendly programming platform I opted for PickAxe myself.
Next video, you can use the code generation tool. It's GUI to choose how to use the pheripherals. Very good tool.
I'll take a look at the GUI tool.
Iv tryed a few times to get into the PIC space but have had no end of issues with there software. Not to say i wont try again and its not a capbale platofrm, but I do prefure most of my time be spend working on a project and not debugging there IDE.
I loved PICs about 15 years ago before AVR and others became so ubiquitous, but the MPLab software was so bad I dipped as soon as I found something better. I still have tubes of PICs and a PICkit 3 but I haven't used them in years because it's just such a hassle to set up and program by comparison.
Kind of sad that it's easier to solder, connect, and program a 100-pin ATxmega TQFP chip than a 20-pin PIC16F through-hole chip on a breadboard.
I’ve been programming PIC’ssince years, first with MPASM then tried C with the then absolutely crappy CCS compiler then switched back to MPASM.
The worst critic, by far, i have against Microchip is their totally unacceptable, sh***y, evil MPLAB-X !!!
I tried three times with deep disappointment so i switched back to MPLAB 8.92 which i keep carefully.
What keeps me with PIC? Their tiny 8-pin micros for small projects. (PIC16F1840)
But i know i will have to change for something much more powerful such as ATMEL 32 bit uC’s…
@ve2zzz I feel your pain my friend. I don't know which language you are programming in, but just a heads up, MPLAB 5.20 would be your last decent version that you can use Assembly language in, if that's your thing. PIC 16F1840 is one of my top 6 preferred chips for the same reason. PIC 12F1612 is also a great little chip since it's a little known fact that you can direct drive 100mah through an I/O port if need be;)
I have been working on an Arduino to pic converter and a USB bootloader for pic microcontrollers, nearly ready to share.
PIC: programmer (hardware piece) is expensive and obsolescence comes quick. IDE is trash .. heavy and difficult .. older more nimble version was better, but no longer supported. The chips themselves are fantastic, indestructible, capable works of art. Datasheets are done well.
AVR: easy to use, internet drowns in its accolades, fanbois, and docs. Any 80 iq newbie from any random 2-bit country can put together a usable widget using an arduino. The chips themselves appear to be fine to great. But the usual packaging leads noobs to look for software solutions where they should be learning hardware components and capabilities.
Most of the projects I have seen using either could be replaced with
I would recommend to use the own software for the programmer it works much better then the build in support.
And i have fallen in love with the MPLAB IDE 8.1 and assembly for the pics its such a nice language. I have so honestly say it's the best working software i habe ever seen its intuitive to use and really simple and is running on everything :)
Very cool channel and thank you for this tutorial!
Thanks for watching!
You didn't compare the power consumption and minimum circuit design with the ATmel chips. Has one have the advantage?
Microchip also makes a budget version of the PICkit4 called the "MPLab Snap."
NOTE :
So what PIC > AVR is [ Priority Interrupt ] feature ?
You used MPLAB X IDE 6.15 on Linux, right ?
Mine having error about :
- libUSBAccessLink_3_48
- libmchpusb-1.0
- mchplinusbmonitor
- mchpdefport
on Ubuntu 24.04.1 LTS.
** UPDATE : Fixed xD .. Now my PICKIT3 working well with latest MPLAB version.
The Picaxe educational simple basic can be very effective. I now use Mikroe PICBasic quite happily.
The PIC16C71 is a fascinating potato.
36 bytes is such a laughably small amount of ram. Perhaps one day I'll get my hands on the windowed EPROM version!
(Or maybe punch a hole ontop of the OTP ones (nitric acid) so UVC light can reach the die.)
Optimisations in the XC8 compiler? Let's just say the non pro version deliberately creates clunky unnecessary slow code. See for your self and look at the assembler listing it produces... I think PICs are fine if you're happy to code in assembler. Although the architecture of some of the more "primitive" devices absolutely sucks. Bank switching? Please! I eventually gave up on PICs altogether - as I got fed up with having to re-invent the wheel and switched over to the Arduino eco-system. Program those in C++ but deal with the registers directly and you're away.
Microchip bought Atmel, so it's kinda like not making a difference what laundry soap you buy, the same people get the money.
I use the pic18f4525 for most of my work. Adruino has every things ready done. However MPLAB has a lot of options to make life easier.
ruclips.net/video/mFrTFCtfj_Y/видео.html
Not bad. Break this thing up into several videos in a playlist. That would make this better for inexperienced viewers.
The only good thing PICs have is nice peripherals such as USB. I hope they bring these features to the ATmega chips since Microchip bought Atmel…
The peripherals really are the PIC selling point.
USB 2.0 is already supported on for example the ATmega32.
This is the first MCU available I have seen in a DIP package that supports USB communication.
USB and DIP don't often go together.
"AVR's old rival" is a pretty funny thing to say, considering that PIC bought AVR.
there are some dsPICs that have vectored interrupts which are super whammy and cool
Can we program it in python lang ? 😮
pic kit 3 is not available in my area... can i program any pic microcontrollers using pic kit 2???
Simple answer is "No". Best way to check which chips you can program with your PicKit 2 is to run through the setup sequence on MPLAB as if you were building a new project. If the MPLAB platform allows you to setup your desired microcontroller with your PICKIT 2 then it will work.
@@rwatson2609 ok i got you....
PICs are great, programmed PIC32 professionally for almost 2 years, apart from years of projects and such I did for me! I mostly work with STM32 now though.
I miss the documentation of the PICs, much much more shorted than the chaotic ST ones with sometimes not so great code examples ( which are all in C?!? not C++ ).
Still though as always, use whatever works. And I would be lying if I said that I don´t miss the AVR vs PIC wars of the old.
I like STM32 myself and I’m not sure why anybody would want to write firmware in anything but C as it’s way too easy for developers to bloat the code using C++.
If you prefer C++, I suggest that you use the Arduino IDE with STM32 support. The libraries are written in C++ but I am not sure how much support for STM32 exists since I normally use STM32CubeIDE for development and debugging.
Thanks great video ! But I am now sure I will stick with AVR, there popularity is due to removing the grimy stuff and you don't end up re inventing the wheel. Anybody who is wondering which way to go I would say the AVR/Arduino eco system is where you want to be...cheers.
I agree, AVR is definitely a better place to start.
@@SineLab for kids yes. for industrial and automation home/office/villa/yard pic is 100 better then any sum of atmel mixture :) be sure about it
I don't understand the title? The creator of my controllers in question?
I use a PIC when I need ultra low power.
Can these chips be programmed with a raspberry pi or Arduino?
Potentially if you are willing to put in that kind of effort.
"Pic kit 3 is discontinued"
Me using an Altronics K 9505 over RS232 since 2005.
I just recently decided to actually get blink running on an old PIC16f877 that's been lying around for years, using the pickit3 that I own. Got it working but yeesh - I had to devise a series of steps to get it actually working powering the PIC. Couldn't get programming to work from MPLAB IDE at all, could get it working from MPLAB IPE if I did an elaborate dance of unplugging and plugging the programmer to get it to send power to the IC ( no idea why). Really crap, but I am just a hobbyist and I guess they make lots of money from people who aren't so ah well. I'll probably not bother with them in future.
Of course the alternative is to power it separately but I'm used to powering from the programmer, and that's a bit of a faff given it's supposed to support it. Really all the problems are poor quality software.
Surprised how much they jacked up programmer prices after buying Atmel. The free sample program of 20 years ago is the only reason anyone uses PIC.
Brother,which major should i do to become an engineer like you?(mechatronics or electronic)
I'm working on an electrical engineering major.
If god is good to me I will never work with PIC again in my life
Why ?
Facts lol
great video...very informative....than you for sharing..
Arduino turned AVR into the winner because it removed 1/2 of what is shown as needed in 0:48
edit; even getting through the process of install -> program seemed like a crazy hassle even though you showed it working flawlessly. You need to know buried dropdowns and to copy code from specific boxes as a beginner? Easy to see why it doesn't gain in popularity.
Indeed, Great video but I can't be bothered with all that I'll stick with AVR.
What do you think about the MPlab Code Configurator (MCC)?
Personally I dont like it when I have to go into a datasheet just to turn on an LED.
Also the Code is not that easy to understand, when you adress the Port Bits directly.
I remember that the MCC basically produces finished functions for Digital Output Pins. Such as Toggle(), TurnOn(), and other stuff.
The fading led is great and was surprisingly fast made. 😲
If the PIC Software would be more user friendly, PICs would definitely be an alternativ for Arduino and co.
Both AVR and PIC uCU are good, but each to specific needs.
Remember they are now the SAME company!
You open minded policy is what I have, so I agree with you, and I use both depending on the need.
BTW I also use Padauk for small projects, and STM32F... for big projects..
I use PIC, learned to remember God every time I click the program button and see the message "Program/Verify Complete" 😂
who did this captioning?
Is anyone using the mikroC platform?
And if so - how would you compare it to the Arduino Eco-System in which there appear to be a significant amount of libraries and pre-made example code files - all one has to do is modify - in order to get them to do what you want.
Compare that to the PIC environment in which you are basically creating the wheel from scratch every time you start coding.
For me - the development platform that provides the fastest and simplest approach is probably the Arduino platform.
Yes - the Arduino platform is limited to Arduino compatible devices.
But isn't there an Arduino compatible device which can do pretty much what any PIC can do?
Additionally - these devices appear to be coming in smaller and smaller SMD packages.
When a device board shrinks down to the size of the Seeeduino XIAO - we're getting pretty close to the foot-print of the classic PIC18F4550 which is still being used as the favored device for PIC learning.
Your thoughts?
I worked with the Microchip ecosystem during my time studying at university for a degree in Embedded Systems. We called the ICD programmer the "hockey puck." Unfortunately, even with our professor's deep knowledge and decades of experience with MPLAB and the PIC, the programming experience was still very rough compared to a more modern and friendly ecosystem like STM32.
More money does not solve the problem of Microchip's terrible software that is MPLAB. The ICD is a nice tool that is very overpriced. My professor often has to heavily annotate the PIC32 reference materials and datasheets with his own errata and corrections to explain the setup and operation of a PIC32MX. I think any new hobbyist getting into microcontrollers should stay far away from the PIC. STM32 is the new "king" of easy to use industrial-grade microcontrollers, but there's lots of other good options out there that aren't Arduino.
neat, I got a PIC a little while back in the midst of the silicon shortage when I needed a microcontroller with a lot of IOs (but not a requirement for a lot of oomph, I just wanted a chip to translate PS/2 keyboard codes to my own codes for a homebrew machine), as well as being able to program it with a TL866II+ that I already got for programming flash chips, I set up a small makefile just to avoid mplab entirely :p
it gets the job done pretty well, leaving the (in my opinion) more interesting system more time to handle interesting code, while also having a lot of IOs left for potential other interfaces
the optimizations stuff is kinda shitty, might fuck around and write an assembler for this instead
Nice work avoiding MPLAB :)
Assembler seems to be popular with these PICs because of the compiler.
Love the pics
The picit 3 debacle tho…
It's the Arduino-Platform that makes the difference... Not PIC or AVR. I hope uChip will not ruin it.
i want a picduino.
That would be handy :)
PIC always works stable for me
Is there anyone here that could clone my PIC16C58B 04/P from my washing machine's motor controller?
i used lot PIC mikrocontroller when i has working ABB automation corporation and we build many custom pump device whit PIC, measure liquid colour, flow meters, erc many custom systems, and other corporation i made many silo controller system whit PIC controller to around world, lot send to england and asian many factory. and home i made motorbike gear display system and pristaltic pum system filled bottles, but later come better programming AVR mikro controller and has lot better easy programmed all codes. fasten and better, ARDUINO have easy way use mikrocontrolelr today. i used first lot PLS siemens simatic, then PIC and then AVR and arduino at work before. home i build flight simulator many many stuff whit arduino, many other automation system hobby workshop. easy and lot better than old PIC or base AVR, use arduino.
I want a $0.10 8-bit MCU that I can program using its own assembly language and/or C without an extra piece of hardware (programmer) and without any IDE whatsoever. Heck if it were even $2 I would take it. Just let me send some ASCII text code from whatever text editor I like to a cheap but capable MCU.
The countless series of PICs is their undoing, I think
Wow good video i like it❤❤❤
2.3, and 4 are now obsolete and no longer supported by MPLabs
Somebody gave me a MicroChip red board with a built-in debugger but I have never used it.
may just be a debugging header. and the 8 pin chips need a special debugging 14pin device to physically debug. took me years to track one down for my favourite pic chip, 12f683... doubt i will ever use it.
theres a debug/simulator in mplab anyway... takes some fiddling, but yeah. seems to work.
I like the look of PIC-32s... I can't be bothered with "lower" PICS (I'm an AVR fanboy and I don't see there being any gains there - just like if you're a PIC fanboy, there's no gains to using an AVR).
But PIC-32s seems so attractive because you get all that 32-bit goodness like you'd expect from e.g. an STM-32... but in a DIP package. If you like breadboards, strip or pad board you can get 32 bits without needing to mess around with breakout boards to adapt to SMT.
Also I'm an "assembly language pervert" and PIC-32 (unlike the "lower" PICs) uses the MIPS ISA and using a third party ISA means there's loads more reference material available (especially as they love (loved?) MIPS so much in education).
Microchip's dev. tools DO completely and utterly stink. But it does seem like there ARE open source options available at least for PIC-32, if not the "lower" PICs
There is no real reason to go for PIC processors now, especially since they need an expensive programmer. It would be much cheaper and more capable MCUs if you just used a more modern arm or risc-v based MCU.
You mean for a hobbyist? Sometimes there are excellent reasons for one platform or another.
❤
Is a PIC a microcontroller or a microprocessor? I thought it was a microprocessor...
The PIC I showed in the video is a microcontroller.
@SineLab Yep because it had internal peripherals. That makes sense. Thank you.
@SineLab Please, is it possible to demonstrate how to connect and program a stepper motor using a PIC? I am working with a PIC16F877A and PIC16F887 for a school project...
Do you have a stepper motor driver IC?
@SineLab Yes, we do have stepper motor driver circuits in the college lab. I have an assignment that requires me to control a stepper motor using dip switches. We can use the PIC16F877/PIC16F877A or the PIC16F887 microcontrollers.
👍
CCS C is easier than mplap
Hi sir,
I am from India .I am 12th graduate with Physics Maths and Chemistry. I want to become an engineer. I am also preparing for college. But I want to do bachelor and job in your country. Please help me for scholarship and in universities admission process. I am 19 year old .With my studies I will work with you as an assistant if you give me chance.please help me sir.
I'm not sure how you want me to help you. Which part of the process are you struggling with?
Ok sir
If you're going to issue a video with such a ridiculous title at least do SOME homework! If PIC's were no good, then how have they survived some forty years? Yes, the MPLAB IDE is a challenge but the CCS PIC C compiler has been around for years as have a few others, there are a number of DIY PIC programmers on You Tube also. I think you'll find that AVR's are fine, up to a point but if you want to do some "grown up" work then you'll find PIC's take over when AVR's run out of functionality and performance. It's not a matter of 'are PICs any good', the uController is chosen to deliver the functionality required within the many constraints of a design, barring functionality, cost and power consumption are usually near the top of the list.
The CCS PIC C compiler was a godsend. I think I paid for it, back when pirating everything was the norm..
PICs are trash for hobbyists or for learning purposes. might be good for big corps, but not for entry level companies.
It can be trash for lazy people who can't read a datasheet.🙄
Several years ago, I interviewed for a firmware development position at a large HVAC manufacturer. I asked them why they are still using PICs for their latest projects. I think their response had something to do with code leverage. Apparently, PIC developers don’t make very much at that company.
It's trash for anyone who is working under a time deadline and expects coherent documentation and errata correction, along with decent ide quality.
Pic is the best platform for embedded systems after stms Arduino is trash :*