As a new (old) guy to arduino's I've been watching a lot of videos to learn. I recommend those from a guy called "Julian Ilett". He showed me how to use a Uno to burn optiboot bootloader onto a nano so I don't have to use "old bootloader" in the IDE and it compiles much faster=) Please continue with more arduino stuff. Love your videos, they help useless old gits like me, immensely!
Ha ha - how easily we forget stuff. At the time, the only benefit of the 'new' bootloader was its size (1/4 the size IIRC). But if it also speeds up compilation, that's cool :)
Just went thru the exact same thing with the 'old' boot loader, I'm 67, so....... I guess I'm just an old boot loader too!! Keep up the Arduino projects .
I remember all the fun of having a random mix of bootloaders a few years ago. IIRC the "new" one (at least at the time) was the Optiboot one. I got so annoyed I built a dedicated bootloader flasher so I could go round and just make everything "new". And guess what... Even to this day I occasionally still find an old one! lol!
It's not just you. The programming in general these days is more like fashion - what's good today is crap tomorrow, so you have to completely rewrite your code. I hate this bullshit. If you think arduino is hard to compile in few years try developing for android...
Oh my god thinking about android must be an absolutely utter nightmare. Like every 6 months another new android version with yet another newer sdk version. And on top of all of this google will force programmers using newer sdks every now and then so that they keep movin on. Not even mentioning the IDE, libraries and so on...
I have been fighting should I go more to arduino or keep "bare metal" stuff. Arduino is fine for quick testing and if you don't plan to change it after or don't need new features after few years.
@@LimbaZero I hate Arduino. I use Avr studio. A proper debugger etc, but so many people release libraries for Arduino you'd think it was some kind of Panacea for professional coding.
@@rowifi I think only thing I have done with arduino was usb volume control buttons for index headset (STM32 bluepill). Now checking WLAN stuff with ESP8266/32. Most fun was with Zynq chips. VHDL and C with linux. VSCode will allow debugging for arduino. I currently have AVR Dragon and plan to get pickit4. Discovery boards are nice for STM32 debugging. Note: I also hated arduino at first. Now I think is ok for those who don't want to learn embedded software, deeper functionality of chip or protocol and they want something quick. I usually use it to cut corners.
Due to this I have started storing libraries with the sketch, then include them with «library.h» in stead of . It does not solve everything, but at least removes the risk of the library not working x months/years from now.
So happy to see an Arduino vid! Glad that it’s not just me who has these issues. I thought it was down to my inexperience at first but it turned out, some software/lib had been updated.
Julian, no it's not just you. I'm continually driven insane by people changing libraries and not making things backward compatible! So dear library writers, when you add a new feature (which might require a new parameter), either overload the function definition so it'll work with old code, or create a new function call. Even Microsoft manage to do this. It's common sense. How would you feel if one day your local petrol gas station suddenly defined the new pump nozzle standard as being 3 inches across and square? That's exactly what you're doing!
I always deprecate methods and wait a few years before I remove them. Anyone can write code. ANYONE can write code. Takes a lot more to write backwards compatible code that is free of bugs.
It is not just Arduino -- it happens to every SDK and library... I read once that "Backwards compatibility is the source of all evil". I didn't agree at the time but I guess I was young and naive. Now I am older and wiser, and most bugs I discover in my day job are due to so called "clever" backwards compatibility. So now I tend to agree -- most of the time it's "better" to break things as to force a rewrite of apps using re-designed libraries rather than trying to keep things working with unforeseen side-effects, code compilable but introducing serious bugs. Worse case, programs depend on side-effects of the old libraries that no longer exist in the new libraries can cause serious subtle bugs later... If you want your old projects to keep working, better never upgrade the SDK, or keep a backup of the old SDK. (If a new type of petrol could cause serious harm to old cars, then petrol stations would for sure use incompatible nozzles. It is a safety feature! :))
@@hugovangalen in big software projects I could agree with you to an extent (but as I said, Microsoft managed by adding the _EX functions to later versions of windows, with a threat to depreciate the old ones after several years - although I've seen many supported for over 10 years!). For small projects like a library to drive an LCD panel, or communicate with a particular IC, there really should be no need for change unless the panel or IC change, in which case it's a new library or function. @Haze - I know, and unfortunately many do! Just some of us have done it professionally for 20+ years ;-)
@@juststeve5542 Steve Evans Microsoft was notorious for producing a very crash prone operating system for decades, so I am not sure that is the best example, its old APIs are still a source of vulnerabilities :) But yeah, small changes could be dealt with more end-user friendly but in most cases, especially after years, libraries are overhauled due to poor initial design choices. Choices that later prevent adding support for newer hardware or implementation of new features. Hindsight is 20/20 vision, but it's impossible to design a stable API from the get-go and maintain that infinitely. That is a pipe-dream. Better to just freeze the old API and release a new library with a major version increase. Then old code still works and new code can use new libraries and features...
That’s not only library writers. Even Arduino itself with this “old bootloader” non sense. I wonder what will be their plan if they upgrade it again... “old old bootloader”? “Older”? “Ancient”?
You should get Visual Studio Code installed (not to be confused with Visual Studio) and add the PlatformIO plugin. As a programming environment it is so much better than the Arduino IDE, you get things like Intellisense - variable name checking and things. In PlatformIO all the Arduino libraries, boards, 3rd party libaries and a shed load of compatible boards, like the Teensy are included.
I remember moving from dos/unix based programming to windows. And you hit teh nail on the head. Too many libraries to remember and keep up to date. Embedded was always 6502 or 8088. About to play with arduino for a hall-effect analogue joystick (which I think it might be fun to make into a digital joystick!), so the intro on the frustrations I am about to hit is most welcome!
Dependencies will always break ... the great part about libraries is all the functionality you get. The price you pay is having to update it continually for as long as you depend upon it. I am traditionally a software engineer -- I assure you, all software runs this way. We are getting better at it though. ;)
LOL - Thank you for the early morning chuckles! I too am in my mid 60's and spent a serious amount of time programming using machine language, BASIC and FORTRAN. Thank you for the heads-up as I was just getting back into some of my ARDUINO projects and I'm sure I will have more than one surprise when I upload some old sketches!
That is amazing - that is exactly what I did a few weeks ago - go back to the Arduino after about a year and a half. I have all the stuff but having to remind myself of how to use it - hence I am on this channel .....again. I am actually looking forward to doing it all over again.
guess i saw this coming like years.... before and thats why i archived every existing IDE releases i used and the added cores directories back then. hell.... i even wrote batch script for the recovery 👍👍👍
Don't spell your files/folders wrong! They can be hard for YOU to spot later so just rename them with "OLD" or whatever best describes it. If you rename _library_ to _OLD-library_ it will be easy to spot and find later. Sort by name or search for OLD and you will find ALL your changed old files and folders. A year from now you will be wondering why someone spelled those wrong but the OLD ones you will know why.
The hazards of installing new versions of the IDE, compiler toolchain (AVR toolchain is bundled with the current generation of the Arduino IDE), and libraries... things are no longer compatible with each other! :( This was one of the main reasons I have switched to PlatformIO + VSCode. VSCode provides the IDE, and PlatformIO does the compilation - and allows explicit control over versions of the toolchain and libraries used. End result, I have the choice of following the trends and latest version, or locking off the version of stuff for extended support and reliability. Your first error about the build.board preference is because in your hardware folder you had a custom board definition for the "ATmega328 on a breadboard (8 MHz internal clock)" which because of it's age doesn't set that preference. I added that on my copy, but have also renamed the hardware folder 'hardware.old' in the past ;) You can actually do away with that board entirely now if you use MCUdude's MiniCore board support package, as that provides the 8Mhz RC oscillator option, and is a up-to-date package. The later linker plugin are most likely because you have an old version of the AVR toolchain still installed locally, but the build scripts are newer, so it's using parameters that weren't valid before. A Tools -> Board -> Board Manager and an update of any out-of-date toolchains would most likely have fixed that. btw, library examples are in the File -> Examples menu. I'm sure it'll all start coming back to you... just need to liven those cells up a bit again! ;)
You can always make backup copies of your libraries if you are concerned that the interface might change. Of course the risk in that is that you will miss out on bug fixes and updates.
I had a really bad development experiance with the original arduino IDE. My code sometimes complied sometimes not, even when nothing changed. Like once i had to ctrl+x out the whole code then paste it back to complie... unstable AF.... In my opinion the Visual Studio Code IDE with PlatformIO extension is the best adruino development tool ever. You can install specific version of libs, update on demand. it supports a load of boards (including esp8266). has code auto completion and you can dig into library code with F12 on funcion calls.
Very happy you've got a bit of rain. We've got a weekend of wall-to-wall sunshine - but it does mean having to scrape ice off the car windscreen first thing in the morning :)
@@JulianIlett Yeah the rains came just in the nick of time for quite a few people, they are predicting a fairly wet Fab so that's a good thing. I would trade you our heat for your cold anytime, it got to 34°C here today.
Need to nip to the loo and find myself clicking furiously on your open page X in the video, having had my brain melt a bit and saved this in favorites for later. Maybe it's not my loo I need, maybe I should just go to bed! Hope you do a bit more arduino stuff. I have my first UNO in a box, waiting for my Rolson head eyes to arrive so I can see the breadboard.....
When I was putting together my WS2812B led array illumination system for an n-gauge Ferris Wheel last year, I decided to just use 2 PIC12F675s to handle all the outputs that I needed. (At one point I was going to use a 16F616, but was having trouble getting my PICKit1 programmer to flash the chip - this was later sorted out when I got a PICKit3 that runs on my Ubuntu machine - after fiddling around with a few bits and pieces such as the voltage level - it wanted something like 4.6875v - I was happy to be finally able to program the chip on the breadboard, but for now I won't be using this processor, although the stripboard circuit does have 2 14 pin sockets just in case I change my mind). Needless to say, I did not compile anything, because with 35 instructions, what'd be the point (also, considering the strict timing requirements, pure machine code would be the logical choice). The only other thing I would say is that why 24 bits are needed for each LED (I'd sooner have just 256 colours like in the GTIA modes of the Atari 8 bit)...er...the PWMing on the 8050 doesn't appear to realistically address 16.7 million colours - and the higher luminances just are blinding...also, amusement park illuminations don't really need anything like all that...no arduino libs needed, thank you! Incidentally, the bits and pieces used for the led arrays are 8 led 'struts' (Adafruit 8 led segments), an Adafruit 'jewel' for the centre piece, and two TruOpto strips for the outer rim lighting. I thank you for demonstrating how to connect the 16Mhz crystals to the 12F675s...
same with PlatformIO, I hate it. Reinstalled VSCode, Python and PlatformIO twice today and it still only shows "loading" when I try to create a new project 😤 These Software stacks that rely on thousand libs break all the time with no meaningful error... 20 years ago an IDE was one exe file and it just worked.
Is for that I save the old libraries in my project folders, just in case, and sometimes even the old IDEs (TASM, Turbo C++, Arduino IDE, ...). I still use the older versions of "LiquidCrystal" and "CountUpDownTimer-master" Arduino libraries, they work just fine for me. Thanks for sharing !
The way to solve the code breaking is to use dependency management, and you need to include both the arduino and other libraries you used. The Arduino IDE has something like that but it's global, and unless you plan to always use the same version of the same libraries in all your projects present and future, it's not a good solution. The simplest form of this is having a git repository with git-submodules of each external bit of code your depends on. The best way of doing this is with dependency management software, aka package managers. Some more professional environments allow this like PlatformIO (for Arduino and many others) with the lib_deps option, and mbed (for ARM) which does it by default. Saving your project references with a specific version or even commit from a library and you only upgrade if you want to. Also having the option to have a local copy of the files you depend without taking for granted that the repository (or even github itself or whatever) will exist in 5 years from now when you need that project again.
This is like watching a recording of myself 😂 is it worth just reinstalling the software so it's all new and no old archive folders that can cause errors. I haven't worked with Arduino yet literally soldering a nano when my cable comes for my ts100 tomorrow so idk if reinstalling the Arduino software would help. Anyway great video
Arduino IDE should have a save project function where it stores copies of the libraries into the sketch folder and alter the pointers in the sketch to that.
This problem tends to happen a lot in software industry. Usually the fix is to use strongly named versions of libraries and of the environment. For this to be achieved, you usually require a dependency management software (mix for elixir, gradle for java). The thing you mentioned about assembly code is simply not achievable nowadays, when you can program arduino on a big variety of chips that have different architecture, not to mention how complicated would be to understand some of the more advanced code with tricks done to optimize it.
In the Old School, your vendor build a system for you, and since you would complain a lot if they changed everything out from under you, they worked hard to think things through up front. This didn't always mean major changes, your experience people might see relatively small changes which will make it easier to backfill new features without having to break everything all the time. Roll forward to The Internet Age, and the solution is to just ship and iterate. Sure, things change, but it's free, quit complaining! Worse, some opensource projects assume their users are experts, so they'll have problems like this where nobody spent time making sure upgrades are clean. Just tell the user to rename some buried directory! Because users clearly want to read 35 pages of release notes before proceeding...
What is with the hate of "open source" here? That has nothing to do with. Especially that ship-and-patch-later thing affects proprietary stuff more than open source projects. How many triple A games have been released the last few years that required updates only days after their release? Every single one of them. (Updates are sometimes queued on the exact same day of release.) That is because of the pressure of corporate deadlines, something that (most) open source projects are not affected by. Closed source things also send you 35 pages of release and deprecation notes... They don't assume you are an expert, it's just that going too deep into the specifics would make the documents unnecessarily lengthier too. So just Google the details and school yourself. It's the breaks of software development. It's a very quick developing field. Changes happen. :)
I've noticed that some open source projects are developed with the sale of consulting services being the business model. These are the kind of projects that lack documentation coincidentally enough.
@@hugovangalen Opensource was just an example. When I was working at one of the FAANG companies, something which sorely tested me about the internal tools was idea of "Here's the new thing! It's amazing! Read the source code if you want to know how it works. BTW, the old working thing is no longer supported." It made me pine for the 90's, when I was working in the ecosystem of a different FAANG company ... but they also ship-and-iterate rather than finishing things, these days. To be clear, I'm not saying everyone used to completely finish things. That never happened. But it was VERY expensive to update things in the field, so at least an attempt was made. These days, there's almost no friction at all, because people (falsely) believe that updates are free.
I can make enough of my own mistakes. Sorry Julian, but I don’t need to watch a video of you making mistakes. Ill come back where you’re ready to teach again.
Yes, this is happening to me, and its sketches I really need. The main one is the scope error. I put the was it declarations line in a different spot and got another error. This sketch must have worked when it was written ? Frustration to the max because I had a great plan for this sketch.
As my old boss said: Change control - change control - change control Without it your a**e will get bitten. Do not worry though - its the modern style and we all suffer for it - I got caught badly with Python and eInk libraries when the new models came out as the supplier of the driver (a certain company in a steel town) took away most of the functions my code used leaving me with a big retro update! Python has environments to lock down development versions and I think you can set versions in the IDE but not sure. Really glad my professional programming life is over :-) It could be a con to keep programmers in a job with statements like 'Boss its going to take me months to rewrite this to use the new library to give you that new user function'.
There's a lot to be said for using gcc-avr with a makefile the old way. Being also 58, I am one of those old geezers who sees change as just an excuse to fix things that aren't broken.
Hey Julian, In your Postbag #66 you mention a viewer sent you a clever way to isolate the li ion chargers. You said you will address it in a future video. I haven't been able to find that video. What is the clever method?. Cheers!
Maybe I've missed it in the video, but why not roll back the library version? Even if you've imported the library such that you're not getting versioning, you can still go to the source repo and roll back to the time you originally used the library
you need to define what you are programming too, so, identify the board and look under tools>boards menu, add a new board that matches what you are using. first error is the only one to solve, errors after it are usually based in that error. what i like to do is put an empty "portable" folder into the fresh Arduino directory from a zip (not installed), that will allow you to keep a fully isolated directory for individual projects with boards and libraries for a working final product archive. i also have a custom blink (timelord heartbeat) so i know its "blink"
Welcome to Library Hell, Julian! Yeah, like in the good old DLL-Hell days, that's a major problem for longer term projects. I have several Arduino IDEs on USB Sticks, and I normally do a Version Freeze for all those programs, that may be needed in the future. The gets even worse when you're using non-Arduino MCUs like an ESP8266. On Arduino - newer isn't always better.
It might be good practice to create a new folder for every of your projects where you put your complete (portable) Arduino IDE, libraries and code inside. This way you can start later, where you stopped previously withtout fiddling around.
Some years ago i had an arduino uno (clone, i think) in my hands to program it for someone with a script found on internet. The computer didn't see the arduino. It seemed that the ic for the usb was not programmed. I ended up programming the arduino using a cable between the parallel port and the icsp connector.
Pure frustrationion, hmm and when I saw this video, I thought for my self: let's revisit Arduino after few years. Now I end up with so many memories. Similar to those in the video.
I recommend you to use Visual Studio Code with PlatformIO, it allows you to keep the version of the different IDE and libraries for each project, so it doesn't matter how many years and updates has passed, you still keep it as the day you wrote it (and to share it it's perfect, for the very same reason, and you can keep programing something with the old libraries if u're used to them)
Nice! Have you done or considered using Atmel Studio to program arduino. Since the main chip is from atmel. Atmega255p if i remember correctly. In uni we used atmel microcontrollers, but I managed to be able to program cheap arduino knock-off with pure C. Using atmel studio.
atmega328p in this case and every even half genuine atmel chip i came across was programmable in pure c (just like just about every other platform on the planet) only you have to get an isp since atmelstudio and avrdude while being able to work together are just a bit annoying as a combination... but yes i can only advocate for that route. if you want something done the right way do it yourself.
It is not only Arduino... Other targets / MCU's also may also be susceptible to changes nowadays and some provide info on how to upgrade to new compiler / IDE version . the macros #ifdef .. #endif comes handy for this situation to be compatible . As IDE on arduino use the VScode with Arduino MS extension for atmega328p only and for others the PlatformIO :P The important is make thru it :D. Like the compact sensor + OLED + Batt + Arduino combo :D
If this ever happens to me I just use an app on my phone instead. There are 2 available ArduinoDroid and Bluino Loader usually one will work. Both apps are surprisingly good and quicker to compile than the official laptop IDE.
That stuff happens to me all the time, especially when I'm about to show someone a "new" project I worked on a while ago, or add details to my blog!! About three years ago I built and installed an RD ID Tag front door release. I bet the code would not compile now! lol p.s. I'm 68!!
1.6.7 here. Original install when I got into it. Never had a problem so I won't change it until I do. I need continuity as I often revisit old code on things I've made.
you can update the boot loader to new using another arduino but in my case i didnt have so i connected it to a rpi and did through that so that would be an interesting video
das ist doch trivial... daten und takt an spi latch signal an io pin und dann einfaches spi byte senden. ... gibt im übrigen auch schon jede menge solche videos
Hello Julian, Yes, lots of things change with Arduino, I have several versions of Arduino IDE on my PC as some libraries such as the LoRaWAN LMIC library only works on Arduino that's 2 major versions behind. Also, it is annoying that libraries are sometimes not versioned very well... BUT for properly versioned libraries you should look at PlatformIO. In the manifest for your project, you can pin the Arduino.h file and the library versions, which is super tasty. Also, your linker errors are probably related to the bootloader on your ATMega chip, this is an issue with the Pro Mini, as the name suggests its aimed at the pros (Arduino pros, I already recognise you as a pro in other ways) so you get all sorts of weird and wonderful behaviour and cutting edge stuff, the Uno and more hobbyist style Arduinos are much more stable in terms of bootloader version etc... Best Regards, Rob
Ooops, sorry just watched the rest of it and realised you figured all this magic out... But seriously check out PlatformIO I think you'll like it, finally a "proper IDE" for Arduino.
I DESPISE Arduino for this very reason. You see a project you like and get the parts and fight with libraries and IDE versions and it's a complete nightmare.
Having the same issues with ESP8266 - I have a project that's been working for over a year and needed to make a small adjustment. Original code compiles but doesn't perform as expected - back to square one...
That's why I feel so lost! I bought hundreds of dollars worth of components, but I struggle to do anything that works. It is so frustrating! Since I didn't understand it before I'm truly lost now. There's no way I would have figured that you could rename all of those folders and they would just recreate themselves. I too used to do all kinds of programming back in the day, but that day was decades ago. I think I should just consider giving up. I'm getting no where. It's super frustrating when it comes to the ESP(families) of chips. I can never seem to find the board definition that will work with either the ESP8266 or the ESP32.
C and C++ are relatively lucky in this manner. Higher level languages change so often everything stops working after months sometimes. It's very frustrating.
It's not you, and it's not really the modern world. It's mainly the wonders of the open source development paradigm. The freedom to innovate is good. The freedom to constantly break everything and exist in a constant state of complete chaos is not good. Linux as an OS (with the trivial exception of Android) is the same way, which is why I find it hard to stomach. Googling for error messages and having to ask a guy is the new normal, and it is not good.
I challenge you to install Linux and find a compiler in the available packages to build your old assembly code, even if it was 8086 asm. Even more illustrating: take a C program that is 10 or 20 years and try to build it on the stock GCC of your latest Fedora or Mint... it won't compile! The reason is that even the tools have the same kind of problem that you're ranting about: new features are added, older ones are removed, in a nutshell things change. For C programs, you can (and should) check for those capabilities of the compiler (a bit like C99 for example)... but it's more true with libraries: in a proper software engineering world (which linux tends to follow, ymmv) version numbers tell if it will work or not, I mean major and minor versions have semantics that every proper software engineer will follow, and provided there's a way of specifying dependencies (for example library XYZ version 2.x) then you should be good. My experience with arduino is limited but it seems there's no such semantics in place and it's like the wild west, just more brutal :)
I've never had a problem with Arduino, but then I don't ever upgrade it. Still using the same one I installed years ago: 1.6.7. I don't like patching ever, for this very reason. When Microsoft updates Windows I find things stop working, which is why I stuck with 7, which lets you choose which updates you want. If it isn't broke.....
every microcontroller has since that is not a Problem of any particular microcontroller and rather the community behind it that uses it and writes libraries for it. anyway libraries that are backwards compatible for ever are either those that are either feature complete, deprecated, or just orphaned...
So that is one reason I graduated to VSC and PlatformIO. Even so, the libraries for these things are crap and you end up re-inventing the wheel over and over. The Arduino project is wonderful, but filled with traps and an IDE that really stinks. I guess experience is the only solution.
seven minutes in and im already beyond the point where id just whack out atmel studio and just write pure c for everything from scratch. no libraries needed (well avr-libc is fine though) and get a icsp its way more fun than this upload via usb and bootloader stuff also im always amazed how much code and ram usage you get with that arduino stuff its so bloated
a few months ago my 82 year old neighbour asks me to check his internet. wasnt working cause of some maintenance. i told him to wait a few hours. so he asks me kindly , can you help me with another thing. he shows me a box with about 15 small digital videotapes. the minidv kind. i would like to see those on my computer he says. in the vox was his camera too. along with a video audio capture usb device. so i am thinking in the back of my head, this will take some time. though i have a similar camera and lot of tapes too. my camera has a direct usb out and both cameras had a micro firewire output. my camera always worked fine exporting video over usb. what can be the problem i thought. also i have 2 computers running macos and 3 laptops with windows 7 and windows 8.1. an old plotterserver running xp. i have the resources, the knowledge and it was almost christmas. i had some time to help him out . so i though lets be friendly. help the old man so he coukd watch his vacations on a nirmal screen. approach was simple. lets install my own software which came with my camera. run it under windows 7 in compatible mode and import the stuff. put is un a usb stick or dvd and return the stuff to the neighbour. well that didnt work. after reading two days about enforcing a driver install none of the computers recognized the camera. lets go firewire on macos then.. same problem no recognition on the mackintosh. also not through an adapter through thunderbolt. well lets get analog then , the neighbour presented the capturecard without driver cd. i was sure to find the right driver in minutes... took me 3 days ! now al you need is capture software ! i ended up with some software which only imported the video. the audio was interleaved.stuttering bs. i ended up reviving my old plotter cutter server which was laying around because the plotter wasnt supported on windows 7.( an old t shirt labeling hobby i had) . so i used that computer installed my old xp software on that. and guess what... it finally worked.. it took me a complete workweek to help the guy with his videos probable because our operating-system-creators somewhere pas 2000 had the idea of making the data path inside the operating system ‘secure’ .. if you really think about this: when i bought my camera , it was to capture these family moments with my kids. to have a digital archive just like an old skool photo book. opposite is true . i think since we have cloud and digital video and photos and cameras we are not that able to enjoy those family moments like we did with the old skool photobook. how many of you have lost digital photos because of harddisk crashes, cellphones falling in water, lost or stolen cellphones, dying cellphones. no backups made and gone it is.. i have a good understanding of computers but the story above shows how difficult it is to keep your data with you. since this happend i bought a synology network attached storage.. i am stopping all of my cloud computing and am taking control of keeping my data . nice thing is i have imported my own videos too now. and enjoyed those moments with my kids again.
You should consider buying a new PC if it's too slow for what you are doing. You can get a good one using Skinflint for around 500 GBP that will work much better than your current one. Unfortunately I cannot share wish list links here, YT deletes comments with links IMMEDIATELY. But here we go: AMD Ryzen 3 3200G, 4x 3.60GHz, boxed (YD3200C5FHBOX) MSI B450M Bazooka V2 (7A38-026R) Patriot Viper Steel DIMM kit 16GB, DDR4-3200, CL16-18-18-36 (PVS416G320C6K) Intel SSD 660p 1TB, M.2 (SSDPEKNW010T801/SSDPEKNW010T8XT/SSDPEKNW010T8X1) be quiet! Straight Power 11 Platinum 550W ATX 2.51 (BN305) DeepCool Matrexx 30, glass window (DP-MATX-MATREXX30) Currently for 427 GBP excluding shipping Would make for a nice PC building video, too!
or...... esp32 and micropython :) Then the files/libraries live on the board, and send the data straight to a database on a raspberry Pi for pretty plots :)
@@JulianIlett Only a good few late nights of easyness ;) database side actually really is quite easy, just install influxdb & grafana(or chronograf) to view then send the data as UDP. Really quickly! Then admire the nice plots and dials in your dashboard.
How did renaming the files correct the problem ? Recompiling the Code using the New er IDE corrected the issue. You Rebuilt the code That is what corrected the Code. Renaming would have done just that . Rename using the new IDE. They keep screwing with the dang IDE all the time. That's our problem. Every fix should be backwards compatible. Bad Programing on Arduino's side. So basically we have to Recompile (build) the code every time they alter the library or IDE.
Man what a coincidence. that happened to me with all my old code that I wrote for my Arduino. when I install the new IDE to my laptop a lot of my codes didn't work. I managed to get some of them working again but a lot of them aren't. I don't know if it's the libraries or what. especially when I was using the ATTiny85
As a new (old) guy to arduino's I've been watching a lot of videos to learn. I recommend those from a guy called "Julian Ilett". He showed me how to use a Uno to burn optiboot bootloader onto a nano so I don't have to use "old bootloader" in the IDE and it compiles much faster=)
Please continue with more arduino stuff. Love your videos, they help useless old gits like me, immensely!
Ha ha - how easily we forget stuff. At the time, the only benefit of the 'new' bootloader was its size (1/4 the size IIRC). But if it also speeds up compilation, that's cool :)
Is that the same Julyan Ilett form the How to use smart L.C.D.s article?
@@trinidad17 - different guy, you are thinking of Julian Lyet, the popular youtuber
Just went thru the exact same thing with the 'old' boot loader, I'm 67, so....... I guess I'm just an old boot loader too!! Keep up the Arduino projects .
I remember all the fun of having a random mix of bootloaders a few years ago. IIRC the "new" one (at least at the time) was the Optiboot one.
I got so annoyed I built a dedicated bootloader flasher so I could go round and just make everything "new".
And guess what... Even to this day I occasionally still find an old one! lol!
@@juststeve5542 so of you update the bootloader, then everything should start running with no problems using the new libraries?
It's not just you. The programming in general these days is more like fashion - what's good today is crap tomorrow, so you have to completely rewrite your code. I hate this bullshit. If you think arduino is hard to compile in few years try developing for android...
So true.
Oh my god thinking about android must be an absolutely utter nightmare. Like every 6 months another new android version with yet another newer sdk version. And on top of all of this google will force programmers using newer sdks every now and then so that they keep movin on. Not even mentioning the IDE, libraries and so on...
I have been fighting should I go more to arduino or keep "bare metal" stuff. Arduino is fine for quick testing and if you don't plan to change it after or don't need new features after few years.
@@LimbaZero I hate Arduino. I use Avr studio. A proper debugger etc, but so many people release libraries for Arduino you'd think it was some kind of Panacea for professional coding.
@@rowifi I think only thing I have done with arduino was usb volume control buttons for index headset (STM32 bluepill). Now checking WLAN stuff with ESP8266/32. Most fun was with Zynq chips. VHDL and C with linux. VSCode will allow debugging for arduino. I currently have AVR Dragon and plan to get pickit4. Discovery boards are nice for STM32 debugging.
Note:
I also hated arduino at first. Now I think is ok for those who don't want to learn embedded software, deeper functionality of chip or protocol and they want something quick. I usually use it to cut corners.
I spent two evenings and then this morning following this rabbit hole. your work is always great and I appreciate the work you put into this videos.
Julian, you crack me up. Love your videos. I've learned so much over the years. Please keep them coming.
Due to this I have started storing libraries with the sketch, then include them with «library.h» in stead of . It does not solve everything, but at least removes the risk of the library not working x months/years from now.
This
Smart man
you mean "library.h" right? but yeah that works just fine
Yes, I do the same. Been caught too many times.
So happy to see an Arduino vid! Glad that it’s not just me who has these issues. I thought it was down to my inexperience at first but it turned out, some software/lib had been updated.
Julian, no it's not just you. I'm continually driven insane by people changing libraries and not making things backward compatible!
So dear library writers, when you add a new feature (which might require a new parameter), either overload the function definition so it'll work with old code, or create a new function call.
Even Microsoft manage to do this.
It's common sense. How would you feel if one day your local petrol gas station suddenly defined the new pump nozzle standard as being 3 inches across and square? That's exactly what you're doing!
I always deprecate methods and wait a few years before I remove them. Anyone can write code. ANYONE can write code. Takes a lot more to write backwards compatible code that is free of bugs.
It is not just Arduino -- it happens to every SDK and library...
I read once that "Backwards compatibility is the source of all evil". I didn't agree at the time but I guess I was young and naive. Now I am older and wiser, and most bugs I discover in my day job are due to so called "clever" backwards compatibility. So now I tend to agree -- most of the time it's "better" to break things as to force a rewrite of apps using re-designed libraries rather than trying to keep things working with unforeseen side-effects, code compilable but introducing serious bugs. Worse case, programs depend on side-effects of the old libraries that no longer exist in the new libraries can cause serious subtle bugs later... If you want your old projects to keep working, better never upgrade the SDK, or keep a backup of the old SDK.
(If a new type of petrol could cause serious harm to old cars, then petrol stations would for sure use incompatible nozzles. It is a safety feature! :))
@@hugovangalen in big software projects I could agree with you to an extent (but as I said, Microsoft managed by adding the _EX functions to later versions of windows, with a threat to depreciate the old ones after several years - although I've seen many supported for over 10 years!).
For small projects like a library to drive an LCD panel, or communicate with a particular IC, there really should be no need for change unless the panel or IC change, in which case it's a new library or function.
@Haze - I know, and unfortunately many do! Just some of us have done it professionally for 20+ years ;-)
@@juststeve5542 Steve Evans Microsoft was notorious for producing a very crash prone operating system for decades, so I am not sure that is the best example, its old APIs are still a source of vulnerabilities :)
But yeah, small changes could be dealt with more end-user friendly but in most cases, especially after years, libraries are overhauled due to poor initial design choices. Choices that later prevent adding support for newer hardware or implementation of new features. Hindsight is 20/20 vision, but it's impossible to design a stable API from the get-go and maintain that infinitely. That is a pipe-dream. Better to just freeze the old API and release a new library with a major version increase. Then old code still works and new code can use new libraries and features...
That’s not only library writers. Even Arduino itself with this “old bootloader” non sense. I wonder what will be their plan if they upgrade it again... “old old bootloader”? “Older”? “Ancient”?
You should get Visual Studio Code installed (not to be confused with Visual Studio) and add the PlatformIO plugin. As a programming environment it is so much better than the Arduino IDE, you get things like Intellisense - variable name checking and things. In PlatformIO all the Arduino libraries, boards, 3rd party libaries and a shed load of compatible boards, like the Teensy are included.
That what I use very intuitive
Also and most relevant you can make it use specific versions of you dependencies instead of relying on the Arduino IDE.
I remember moving from dos/unix based programming to windows. And you hit teh nail on the head. Too many libraries to remember and keep up to date. Embedded was always 6502 or 8088. About to play with arduino for a hall-effect analogue joystick (which I think it might be fun to make into a digital joystick!), so the intro on the frustrations I am about to hit is most welcome!
Dependencies will always break ... the great part about libraries is all the functionality you get. The price you pay is having to update it continually for as long as you depend upon it. I am traditionally a software engineer -- I assure you, all software runs this way. We are getting better at it though. ;)
I suppose it's a bit like being dependent on your parents when you're a young kid. It has its benefits, but also its downsides :)
Julian Ilett - more like it when your parents move out constantly and you have to make new friends every time.
LOL - Thank you for the early morning chuckles! I too am in my mid 60's and spent a serious amount of time programming using machine language, BASIC and FORTRAN. Thank you for the heads-up as I was just getting back into some of my ARDUINO projects and I'm sure I will have more than one surprise when I upload some old sketches!
I loved this whole video. I forgot how much I enjoyed you videos.
That is amazing - that is exactly what I did a few weeks ago - go back to the Arduino after about a year and a half. I have all the stuff but having to remind myself of how to use it - hence I am on this channel .....again. I am actually looking forward to doing it all over again.
guess i saw this coming like years.... before and thats why i archived every existing IDE releases i used and the added cores directories back then.
hell.... i even wrote batch script for the recovery 👍👍👍
Don't spell your files/folders wrong! They can be hard for YOU to spot later so just rename them with "OLD" or whatever best describes it. If you rename _library_ to _OLD-library_ it will be easy to spot and find later. Sort by name or search for OLD and you will find ALL your changed old files and folders. A year from now you will be wondering why someone spelled those wrong but the OLD ones you will know why.
Possibly, but my mind does work in peculiar ways :)
The screen was a perfect size. I like being able to see all the screen at once like that! Great video and it's nice to see you back!
The hazards of installing new versions of the IDE, compiler toolchain (AVR toolchain is bundled with the current generation of the Arduino IDE), and libraries... things are no longer compatible with each other! :( This was one of the main reasons I have switched to PlatformIO + VSCode. VSCode provides the IDE, and PlatformIO does the compilation - and allows explicit control over versions of the toolchain and libraries used. End result, I have the choice of following the trends and latest version, or locking off the version of stuff for extended support and reliability.
Your first error about the build.board preference is because in your hardware folder you had a custom board definition for the "ATmega328 on a breadboard (8 MHz internal clock)" which because of it's age doesn't set that preference. I added that on my copy, but have also renamed the hardware folder 'hardware.old' in the past ;) You can actually do away with that board entirely now if you use MCUdude's MiniCore board support package, as that provides the 8Mhz RC oscillator option, and is a up-to-date package. The later linker plugin are most likely because you have an old version of the AVR toolchain still installed locally, but the build scripts are newer, so it's using parameters that weren't valid before. A Tools -> Board -> Board Manager and an update of any out-of-date toolchains would most likely have fixed that.
btw, library examples are in the File -> Examples menu. I'm sure it'll all start coming back to you... just need to liven those cells up a bit again! ;)
Yay! An arduino video!!
Boo. Software headaches.
Welcome back Julian you've been missed bud.
Thanks :)
You can always make backup copies of your libraries if you are concerned that the interface might change. Of course the risk in that is that you will miss out on bug fixes and updates.
I had a really bad development experiance with the original arduino IDE. My code sometimes complied sometimes not, even when nothing changed. Like once i had to ctrl+x out the whole code then paste it back to complie... unstable AF....
In my opinion the Visual Studio Code IDE with PlatformIO extension is the best adruino development tool ever. You can install specific version of libs, update on demand. it supports a load of boards (including esp8266). has code auto completion and you can dig into library code with F12 on funcion calls.
The only issue with VSCode is it has a very nasty habit of bloating your source directory. I use Atom Editor with PlatformIO instead.
Glad you're back with the Arduino mate. Sending some charred wet love from Aussie land!
Very happy you've got a bit of rain. We've got a weekend of wall-to-wall sunshine - but it does mean having to scrape ice off the car windscreen first thing in the morning :)
It's heartbreaking to see the devastation. Be safe dude.
@@JulianIlett Yeah the rains came just in the nick of time for quite a few people, they are predicting a fairly wet Fab so that's a good thing. I would trade you our heat for your cold anytime, it got to 34°C here today.
Let's invent BitWeather where warmth and cold can be traded using blockchain. But seriously, here's hoping you have a Fab wet Feb :)
Wow what a coincidence i just got back to arduino and the same lcd last night and just saw your video!
Need to nip to the loo and find myself clicking furiously on your open page X in the video, having had my brain melt a bit and saved this in favorites for later. Maybe it's not my loo I need, maybe I should just go to bed! Hope you do a bit more arduino stuff. I have my first UNO in a box, waiting for my Rolson head eyes to arrive so I can see the breadboard.....
I'm with you Julian. I just rebuilt some PIC code from 15 years ago and it built exactly as it did all that time ago.
When I was putting together my WS2812B led array illumination system for an n-gauge Ferris Wheel last year, I decided to just use 2 PIC12F675s to handle all the outputs that I needed. (At one point I was going to use a 16F616, but was having trouble getting my PICKit1 programmer to flash the chip - this was later sorted out when I got a PICKit3 that runs on my Ubuntu machine - after fiddling around with a few bits and pieces such as the voltage level - it wanted something like 4.6875v - I was happy to be finally able to program the chip on the breadboard, but for now I won't be using this processor, although the stripboard circuit does have 2 14 pin sockets just in case I change my mind). Needless to say, I did not compile anything, because with 35 instructions, what'd be the point (also, considering the strict timing requirements, pure machine code would be the logical choice). The only other thing I would say is that why 24 bits are needed for each LED (I'd sooner have just 256 colours like in the GTIA modes of the Atari 8 bit)...er...the PWMing on the 8050 doesn't appear to realistically address 16.7 million colours - and the higher luminances just are blinding...also, amusement park illuminations don't really need anything like all that...no arduino libs needed, thank you! Incidentally, the bits and pieces used for the led arrays are 8 led 'struts' (Adafruit 8 led segments), an Adafruit 'jewel' for the centre piece, and two TruOpto strips for the outer rim lighting. I thank you for demonstrating how to connect the 16Mhz crystals to the 12F675s...
same with PlatformIO, I hate it. Reinstalled VSCode, Python and PlatformIO twice today and it still only shows "loading" when I try to create a new project 😤
These Software stacks that rely on thousand libs break all the time with no meaningful error...
20 years ago an IDE was one exe file and it just worked.
Examples are in the File menu. You can update boards in Tools | Board > Boards Manager
Is for that I save the old libraries in my project folders, just in case, and sometimes even the old IDEs (TASM, Turbo C++, Arduino IDE, ...). I still use the older versions of "LiquidCrystal" and "CountUpDownTimer-master" Arduino libraries, they work just fine for me. Thanks for sharing !
I understand your frustration. I hate it when these Oompa Loompas keep changing things, for no apparent reason. Damn annoying.
The way to solve the code breaking is to use dependency management, and you need to include both the arduino and other libraries you used. The Arduino IDE has something like that but it's global, and unless you plan to always use the same version of the same libraries in all your projects present and future, it's not a good solution.
The simplest form of this is having a git repository with git-submodules of each external bit of code your depends on. The best way of doing this is with dependency management software, aka package managers.
Some more professional environments allow this like PlatformIO (for Arduino and many others) with the lib_deps option, and mbed (for ARM) which does it by default. Saving your project references with a specific version or even commit from a library and you only upgrade if you want to. Also having the option to have a local copy of the files you depend without taking for granted that the repository (or even github itself or whatever) will exist in 5 years from now when you need that project again.
This is like watching a recording of myself 😂 is it worth just reinstalling the software so it's all new and no old archive folders that can cause errors. I haven't worked with Arduino yet literally soldering a nano when my cable comes for my ts100 tomorrow so idk if reinstalling the Arduino software would help. Anyway great video
Julian!! You heard me!! Arduino!
Arduino IDE should have a save project function where it stores copies of the libraries into the sketch folder and alter the pointers in the sketch to that.
This problem tends to happen a lot in software industry. Usually the fix is to use strongly named versions of libraries and of the environment. For this to be achieved, you usually require a dependency management software (mix for elixir, gradle for java).
The thing you mentioned about assembly code is simply not achievable nowadays, when you can program arduino on a big variety of chips that have different architecture, not to mention how complicated would be to understand some of the more advanced code with tricks done to optimize it.
In the Old School, your vendor build a system for you, and since you would complain a lot if they changed everything out from under you, they worked hard to think things through up front. This didn't always mean major changes, your experience people might see relatively small changes which will make it easier to backfill new features without having to break everything all the time.
Roll forward to The Internet Age, and the solution is to just ship and iterate. Sure, things change, but it's free, quit complaining! Worse, some opensource projects assume their users are experts, so they'll have problems like this where nobody spent time making sure upgrades are clean. Just tell the user to rename some buried directory! Because users clearly want to read 35 pages of release notes before proceeding...
What is with the hate of "open source" here? That has nothing to do with. Especially that ship-and-patch-later thing affects proprietary stuff more than open source projects. How many triple A games have been released the last few years that required updates only days after their release? Every single one of them. (Updates are sometimes queued on the exact same day of release.) That is because of the pressure of corporate deadlines, something that (most) open source projects are not affected by.
Closed source things also send you 35 pages of release and deprecation notes... They don't assume you are an expert, it's just that going too deep into the specifics would make the documents unnecessarily lengthier too. So just Google the details and school yourself. It's the breaks of software development. It's a very quick developing field. Changes happen. :)
I've noticed that some open source projects are developed with the sale of consulting services being the business model. These are the kind of projects that lack documentation coincidentally enough.
@@hugovangalen Opensource was just an example. When I was working at one of the FAANG companies, something which sorely tested me about the internal tools was idea of "Here's the new thing! It's amazing! Read the source code if you want to know how it works. BTW, the old working thing is no longer supported." It made me pine for the 90's, when I was working in the ecosystem of a different FAANG company ... but they also ship-and-iterate rather than finishing things, these days.
To be clear, I'm not saying everyone used to completely finish things. That never happened. But it was VERY expensive to update things in the field, so at least an attempt was made. These days, there's almost no friction at all, because people (falsely) believe that updates are free.
I can make enough of my own mistakes. Sorry Julian, but I don’t need to watch a video of you making mistakes. Ill come back where you’re ready to teach again.
Hope you also get back into Buck and Boost converters... This was my goto channel for step-up/down modules. You do a great job reviewing them. Cheers!
Yes, this is happening to me, and its sketches I really need. The main one is the scope error. I put the was it declarations line in a different spot and got another error. This sketch must have worked when it was written ? Frustration to the max because I had a great plan for this sketch.
58 You still in your prime. Love your videos.
As my old boss said:
Change control - change control - change control
Without it your a**e will get bitten.
Do not worry though - its the modern style and we all suffer for it - I got caught badly with Python and eInk libraries when the new models came out as the supplier of the driver (a certain company in a steel town) took away most of the functions my code used leaving me with a big retro update!
Python has environments to lock down development versions and I think you can set versions in the IDE but not sure. Really glad my professional programming life is over :-)
It could be a con to keep programmers in a job with statements like 'Boss its going to take me months to rewrite this to use the new library to give you that new user function'.
There's a lot to be said for using gcc-avr with a makefile the old way. Being also 58, I am one of those old geezers who sees change as just an excuse to fix things that aren't broken.
Hey Julian,
In your Postbag #66 you mention a viewer sent you a clever way to isolate the li ion chargers. You said you will address it in a future video. I haven't been able to find that video. What is the clever method?.
Cheers!
arduino ecosystem is a mixed blessing, 1 its helping get new people in development, 2 its trash and produces slow horrible bloated code....
Maybe I've missed it in the video, but why not roll back the library version? Even if you've imported the library such that you're not getting versioning, you can still go to the source repo and roll back to the time you originally used the library
stick with old libraries and you’ll get left behind
Have exactly the same issues with arduino myself, you're but a youngster, I'm 20 years older than you.
That's great you are doing this as a hobby now. Me too.
you need to define what you are programming too, so, identify the board and look under tools>boards menu, add a new board that matches what you are using. first error is the only one to solve, errors after it are usually based in that error.
what i like to do is put an empty "portable" folder into the fresh Arduino directory from a zip (not installed), that will allow you to keep a fully isolated directory for individual projects with boards and libraries for a working final product archive.
i also have a custom blink (timelord heartbeat) so i know its "blink"
Welcome to Library Hell, Julian!
Yeah, like in the good old DLL-Hell days, that's a major problem for longer term projects. I have several Arduino IDEs on USB Sticks, and I normally do a Version Freeze for all those programs, that may be needed in the future. The gets even worse when you're using non-Arduino MCUs like an ESP8266.
On Arduino - newer isn't always better.
It might be good practice to create a new folder for every of your projects where you put your complete (portable) Arduino IDE, libraries and code inside. This way you can start later, where you stopped previously withtout fiddling around.
Post bags! Post bags more post bags Julian! Weird gadgets, new eBay stuff. More, please more...
Next video :)
Some years ago i had an arduino uno (clone, i think) in my hands to program it for someone with a script found on internet.
The computer didn't see the arduino. It seemed that the ic for the usb was not programmed. I ended up programming the arduino using a cable between the parallel port and the icsp connector.
Pure frustrationion, hmm and when I saw this video, I thought for my self: let's revisit Arduino after few years. Now I end up with so many memories. Similar to those in the video.
I'm not old but still have the same issues, let's go back to 8080 /8085.
I recommend you to use Visual Studio Code with PlatformIO, it allows you to keep the version of the different IDE and libraries for each project, so it doesn't matter how many years and updates has passed, you still keep it as the day you wrote it (and to share it it's perfect, for the very same reason, and you can keep programing something with the old libraries if u're used to them)
Nice! Have you done or considered using Atmel Studio to program arduino. Since the main chip is from atmel. Atmega255p if i remember correctly.
In uni we used atmel microcontrollers, but I managed to be able to program cheap arduino knock-off with pure C. Using atmel studio.
atmega328p in this case and every even half genuine atmel chip i came across was programmable in pure c (just like just about every other platform on the planet) only you have to get an isp since atmelstudio and avrdude while being able to work together are just a bit annoying as a combination...
but yes i can only advocate for that route.
if you want something done the right way do it yourself.
It is not only Arduino... Other targets / MCU's also may also be susceptible to changes nowadays and some provide info on how to upgrade to new compiler / IDE version . the macros #ifdef .. #endif comes handy for this situation to be compatible . As IDE on arduino use the VScode with Arduino MS extension for atmega328p only and for others the PlatformIO :P The important is make thru it :D. Like the compact sensor + OLED + Batt + Arduino combo :D
If this ever happens to me I just use an app on my phone instead. There are 2 available ArduinoDroid and Bluino Loader usually one will work. Both apps are surprisingly good and quicker to compile than the official laptop IDE.
Oh boy, it's been a few years since i tinkered with arduino. Not relishing re learning what should be a base line.
That stuff happens to me all the time, especially when I'm about to show someone a "new" project I worked on a while ago, or add details to my blog!! About three years ago I built and installed an RD ID Tag front door release. I bet the code would not compile now! lol p.s. I'm 68!!
I don't know why, but under linux Arduino compilation is far faster than in windows...
Havent updated since 1.8.5 for this reason - i have a problems as it is without introducing more issues.
1.6.7 here. Original install when I got into it. Never had a problem so I won't change it until I do. I need continuity as I often revisit old code on things I've made.
Very typical Arduino experience. Grin and bear it ;)
Haha the usual arduino struggle 😩
Oh for an Arduino you could program with Z80 Machine Code!
I fully expected an ArduPIC after Microchip bought Atmel. But I'm led to believe the PIC is not optimised for C. ArduZ80 would be superAwesome :)
Very funny video. Like my father allways says: "If it was easy everyone could do it" :-)
Some with more success, than others!
Many arduinos come with Blink loaded. I guess it’s a factory test.
you can update the boot loader to new using another arduino but in my case i didnt have so i connected it to a rpi and did through that so that would be an interesting video
Hi, could you make a Video about how to use the 74hc595n with Arduino Uno
das ist doch trivial... daten und takt an spi latch signal an io pin und dann einfaches spi byte senden. ...
gibt im übrigen auch schon jede menge solche videos
Yaaaay new video!! 😊😁😁
Hello Julian,
Yes, lots of things change with Arduino, I have several versions of Arduino IDE on my PC as some libraries such as the LoRaWAN LMIC library only works on Arduino that's 2 major versions behind. Also, it is annoying that libraries are sometimes not versioned very well... BUT for properly versioned libraries you should look at PlatformIO. In the manifest for your project, you can pin the Arduino.h file and the library versions, which is super tasty. Also, your linker errors are probably related to the bootloader on your ATMega chip, this is an issue with the Pro Mini, as the name suggests its aimed at the pros (Arduino pros, I already recognise you as a pro in other ways) so you get all sorts of weird and wonderful behaviour and cutting edge stuff, the Uno and more hobbyist style Arduinos are much more stable in terms of bootloader version etc...
Best Regards,
Rob
Ooops, sorry just watched the rest of it and realised you figured all this magic out... But seriously check out PlatformIO I think you'll like it, finally a "proper IDE" for Arduino.
I DESPISE Arduino for this very reason. You see a project you like and get the parts and fight with libraries and IDE versions and it's a complete nightmare.
To be fair, PIC has the same problem.
Having the same issues with ESP8266 - I have a project that's been working for over a year and needed to make a small adjustment. Original code compiles but doesn't perform as expected - back to square one...
That's why I feel so lost! I bought hundreds of dollars worth of components, but I struggle to do anything that works. It is so frustrating! Since I didn't understand it before I'm truly lost now. There's no way I would have figured that you could rename all of those folders and they would just recreate themselves.
I too used to do all kinds of programming back in the day, but that day was decades ago. I think I should just consider giving up. I'm getting no where. It's super frustrating when it comes to the ESP(families) of chips. I can never seem to find the board definition that will work with either the ESP8266 or the ESP32.
Working on an Uno programming an SD card today..I know how you feel Julian....
Hope you get some ESP32's to play with. Would be excellent for monitoring the status of all of your batteries and charge controllers remotely
C and C++ are relatively lucky in this manner. Higher level languages change so often everything stops working after months sometimes. It's very frustrating.
Libraries should be backwards compatible but I found that very few are.
It's not you, and it's not really the modern world. It's mainly the wonders of the open source development paradigm. The freedom to innovate is good. The freedom to constantly break everything and exist in a constant state of complete chaos is not good. Linux as an OS (with the trivial exception of Android) is the same way, which is why I find it hard to stomach. Googling for error messages and having to ask a guy is the new normal, and it is not good.
I challenge you to install Linux and find a compiler in the available packages to build your old assembly code, even if it was 8086 asm.
Even more illustrating: take a C program that is 10 or 20 years and try to build it on the stock GCC of your latest Fedora or Mint... it won't compile!
The reason is that even the tools have the same kind of problem that you're ranting about: new features are added, older ones are removed, in a nutshell things change. For C programs, you can (and should) check for those capabilities of the compiler (a bit like C99 for example)... but it's more true with libraries: in a proper software engineering world (which linux tends to follow, ymmv) version numbers tell if it will work or not, I mean major and minor versions have semantics that every proper software engineer will follow, and provided there's a way of specifying dependencies (for example library XYZ version 2.x) then you should be good. My experience with arduino is limited but it seems there's no such semantics in place and it's like the wild west, just more brutal :)
it probably would compile with the right flags set
I've never had a problem with Arduino, but then I don't ever upgrade it. Still using the same one I installed years ago: 1.6.7.
I don't like patching ever, for this very reason. When Microsoft updates Windows I find things stop working, which is why I stuck with 7, which lets you choose which updates you want. If it isn't broke.....
Can't you choose which version of a library release to download?
all those kids on your digital lawn are messing with your librarys!
Which microcontroller has libraries that are backward compatible forever?
every microcontroller has since that is not a Problem of any particular microcontroller and rather the community behind it that uses it and writes libraries for it. anyway libraries that are backwards compatible for ever are either those that are either feature complete, deprecated, or just orphaned...
@@GigaPlaya appearently you can not read since my words are clear...
Good video
Sounds like something you'd say on a trip to Spain . . .
So that is one reason I graduated to VSC and PlatformIO. Even so, the libraries for these things are crap and you end up re-inventing the wheel over and over. The Arduino project is wonderful, but filled with traps and an IDE that really stinks. I guess experience is the only solution.
This is surprising *:* *)*
This is why I NEVER upgrade the IDE mid project.
seven minutes in and im already beyond the point where id just whack out atmel studio and just write pure c for everything from scratch. no libraries needed (well avr-libc is fine though)
and get a icsp its way more fun than this upload via usb and bootloader stuff
also im always amazed how much code and ram usage you get with that arduino stuff its so bloated
C is for noobs. Just write machine code. Ha. Ha, I'm just mashing your taters. 6 bucks. LOL
@@trottx wtf your even talking 'bout
a few months ago my 82 year old neighbour asks me to check his internet. wasnt working cause of some maintenance. i told him to wait a few hours. so he asks me kindly , can you help me with another thing. he shows me a box with about 15 small digital videotapes. the minidv kind. i would like to see those on my computer he says. in the vox was his camera too. along with a video audio capture usb device. so i am thinking in the back of my head, this will take some time. though i have a similar camera and lot of tapes too. my camera has a direct usb out and both cameras had a micro firewire output. my camera always worked fine exporting video over usb. what can be the problem i thought. also i have 2 computers running macos and 3 laptops with windows 7 and windows 8.1. an old plotterserver running xp. i have the resources, the knowledge and it was almost christmas. i had some time to help him out . so i though lets be friendly. help the old man so he coukd watch his vacations on a nirmal screen. approach was simple. lets install my own software which came with my camera. run it under windows 7 in compatible mode and import the stuff. put is un a usb stick or dvd and return the stuff to the neighbour. well that didnt work. after reading two days about enforcing a driver install none of the computers recognized the camera. lets go firewire on macos then.. same problem no recognition on the mackintosh. also not through an adapter through thunderbolt. well lets get analog then , the neighbour presented the capturecard without driver cd. i was sure to find the right driver in minutes... took me 3 days ! now al you need is capture software ! i ended up with some software which only imported the video. the audio was interleaved.stuttering bs. i ended up reviving my old plotter cutter server which was laying around because the plotter wasnt supported on windows 7.( an old t shirt labeling hobby i had) . so i used that computer installed my old xp software on that. and guess what... it finally worked.. it took me a complete workweek to help the guy with his videos probable because our operating-system-creators somewhere pas 2000 had the idea of making the data path inside the operating system ‘secure’ .. if you really think about this: when i bought my camera , it was to capture these family moments with my kids. to have a digital archive just like an old skool photo book. opposite is true . i think since we have cloud and digital video and photos and cameras we are not that able to enjoy those family moments like we did with the old skool photobook. how many of you have lost digital photos because of harddisk crashes, cellphones falling in water, lost or stolen cellphones, dying cellphones. no backups made and gone it is.. i have a good understanding of computers but the story above shows how difficult it is to keep your data with you. since this happend i bought a synology network attached storage.. i am stopping all of my cloud computing and am taking control of keeping my data . nice thing is i have imported my own videos too now. and enjoyed those moments with my kids again.
What a load of drivdl
Probably because the old config/old install folders still exist might be better to do fresh install with new version (kind of a pain).
You should consider buying a new PC if it's too slow for what you are doing. You can get a good one using Skinflint for around 500 GBP that will work much better than your current one. Unfortunately I cannot share wish list links here, YT deletes comments with links IMMEDIATELY.
But here we go:
AMD Ryzen 3 3200G, 4x 3.60GHz, boxed (YD3200C5FHBOX)
MSI B450M Bazooka V2 (7A38-026R)
Patriot Viper Steel DIMM kit 16GB, DDR4-3200, CL16-18-18-36 (PVS416G320C6K)
Intel SSD 660p 1TB, M.2 (SSDPEKNW010T801/SSDPEKNW010T8XT/SSDPEKNW010T8X1)
be quiet! Straight Power 11 Platinum 550W ATX 2.51 (BN305)
DeepCool Matrexx 30, glass window (DP-MATX-MATREXX30)
Currently for 427 GBP excluding shipping
Would make for a nice PC building video, too!
or...... esp32 and micropython :) Then the files/libraries live on the board, and send the data straight to a database on a raspberry Pi for pretty plots :)
Hmm, you make it sound easy :)
@@JulianIlett Only a good few late nights of easyness ;) database side actually really is quite easy, just install influxdb & grafana(or chronograf) to view then send the data as UDP. Really quickly! Then admire the nice plots and dials in your dashboard.
How did renaming the files correct the problem ? Recompiling the Code using the New er IDE corrected the issue. You Rebuilt the code That is what corrected the Code. Renaming would have done just that . Rename using the new IDE. They keep screwing with the dang IDE all the time. That's our problem. Every fix should be backwards compatible. Bad Programing on Arduino's side. So basically we have to Recompile (build) the code every time they alter the library or IDE.
The problem is with the uninstaller. It doesn't uninstall added libraries, hardware and it doesn't remove your preferences.
Man what a coincidence. that happened to me with all my old code that I wrote for my Arduino. when I install the new IDE to my laptop a lot of my codes didn't work. I managed to get some of them working again but a lot of them aren't. I don't know if it's the libraries or what. especially when I was using the ATTiny85
That's pretty much why I keep older versions of IDE installed.
aka "Old man forgets how to properly set up the Arduino IDE"
'You never forget how to ride a bicycle'. This is proof you can forget 😊
Especially if they change the bike from standard to recumbent, add GPS navigation, and change which side of the road you're supposed to ride on...
@@Markus0021 Without your knowledge, or consent. That's what p*sses me off.
Turns out they moved the pedals to a new library.
@@AndyCallaway Exactly. Been there. Since I only mess with Arduino on rare occasions, it seems to happen every single time I try to do something.
You are 58 years YOUNG!!!
My mind is 58 years young - my body is 58 years old :)
@@JulianIlett Shame mate! You need to come to Aus and get all of this glorious sun... and smoke and fire and hail.
Ok now make one that will fit in a model rocket.