7:43 Everytime you connect the power to the arduino the void setup code also runs which rewrites the EEPROM memory with '25'! So technically you can not say that the data you saw on the serial monitor was past data! I think you could have input the data using the serial monitor which then you have stored to EEPROM and then unplug and plug the power again to check that if the data is there or not! This might be the technically correct way of doing this! :)
@ELECTRONOOBS2 жыл бұрын
Thank you, but it was just to make an exampel of how to use the EEPROm.write function. If I use it in the void loop for that simple example, it would write it over and over again. In a read scenario, you would make an if() and decide to write or not to the EEPROM probably.
@THEELECTRICGUY2 жыл бұрын
@@ELECTRONOOBS Yea! That seems good! Thanks for the great video! :)
@wires4auto2 жыл бұрын
Also you could read the value from a POT and save it in the EEprom and just use the update. Have a print value in the setup so every time the power is connected you'll see the last value
@k0pR0LiTh0s2 жыл бұрын
Just delete the line EEPROM.write(0, 25); from the setup loop and upload again before you run for a second time.
@silverismoney2 жыл бұрын
@@k0pR0LiTh0s or use the 'update' function in the reference at 6:00, the one that only updates the value if it's not already there.
@stitchinginthebarn83072 жыл бұрын
Seriously, I was just wondering this week how to work with the EEPROM. Thanks!
@SomnathDas-bt1hi2 жыл бұрын
Me too!
@bibel2k2 жыл бұрын
As always, well edited, well explained and very well informed. Thank you! Keep up the amazing work
@uzairbukhari992 жыл бұрын
This is so helpful. I had made a robotic hand with servos with pan and tilt. and hand control. Each time I would switch to either of them the values would return to default. This will help me improve the project
@antroid40422 жыл бұрын
Let's say I want to 'put' an Integer value of 300 to address 0, I assume then the function is internally using the addresses 0 and 1 (assuming an Int takes 2 bytes). So, if I don't take care of this and 'put' another value (let's say 0) to address 1, is my previously stored 300 partially (silently?) overwritten and now i would 'get' back 44 (or 256, depending on byte-order)? So I would still have to know/keep in mind the length (-> sizeof()?) of an integer and start at address 2 for the next value to 'put'/write? I think this wasn't mentioned (or I missed it ;-/), or am I wrong with this assumption? [Update: Sorry, never mind: I just realized that it was actually mentioned at ~10:04 (-> reading/writing 2 bytes)]
@ELECTRONOOBS2 жыл бұрын
You don't have to keep in mind that because the EEPROM.get function dose that automataically. If you write EEPROM.get(0, brightness); and you defined the brightness variable as int, the function will automatically know to read 2 bytes. If you define brightness as float, it would read 4 bytes and so on. On the other side, yes, if you put 2 bytes on address 0 and 1 and then you put 1 more byte on address 0, it will overwrite it, that's obvious.
@ipadize2 жыл бұрын
@@ELECTRONOOBS im not a programmer. Does that mean, that when i write an integer (2 bytes) to adress 0 that the next integer has to be written on adress 2 or does it not matter how long an integer or float is meaning i can put one integer on address 0 and then the next float on address 1 and the next integer on address 2? basically like this: Address 0: Integer Address 1: Float Address 2: Integer Address 3: Integer Address 4: Float
@HussamAldean2 жыл бұрын
Hi, thank you for the tutorial and effort you put in those videos. On another hand, I don't recommend using eeprom,put to store more than 1 byte. It might effect a previously stored data and ending up with useless data. My recommendation is to divide the float or int to 4 byte manually by mean of shift operation and store them manually. This method will let you know where the data stored and avoid overwritten the previous values.
@sammin57642 жыл бұрын
Christ
@TechnoEveryday2 жыл бұрын
I was also wondering about this issue. But don't understand how to handle it
@conorstewart22142 жыл бұрын
You just need to know the size of everything you are storing and make sure that none of it would overlap and probably create a diagram or map to know where everything is, another way would be to have the address auto increment by the size of the data to be stored but that is most useful if you are writing a sequence or set of data sequentially and reading it sequentially.
@markgilding65006 ай бұрын
hello and Thank you. I sometimes have problems with accents but your English is superb! To an Englishman it is like being taught by a famous Spanish actor A Banderas.😸👍
@FridayHouseXYZ2 жыл бұрын
Great video! One of the best explanations of EEPROM I've seen.
@davebutler3905 Жыл бұрын
Thank you for explaining this so well !!! Using example uses and how to achieve them is so much better than just explaining theory!
@usefulelectronics2 жыл бұрын
Hi, EEPROMs are quite handy and useful to work with. However, they suffer from slow writing/reading speed (I2C) and small data storage capability. A nice improvement is to give NOR Flash ICs a try since they feature larger data storage capacity and faster to deal with. Nice tutorial keep it up !!
@HussamAldean2 жыл бұрын
Interfacing those NAND and NOR flash require special hardware that comes with STM32. They offer FMC specific to interface those type of storage beside the QSPI and OctaSPI flash system
@surajchari9715 Жыл бұрын
best eeprom tutorial by far . Thank you very much sir
@JLCPCB2 жыл бұрын
Very good explanation! 🙂
@darshananvekar53892 жыл бұрын
Awesome bro 😎 Love from INDIA 🇮🇳
@francyhacker34542 жыл бұрын
Please make more videos about this series! It's very interesting and useful, hi from italy!
@SniperUSMC2 жыл бұрын
Great videos! I'm new to arduino, so question is, can you write to USB drive and store program there or SD card rather than EEPROM?
@Steve-wx1gk2 жыл бұрын
Thank you so much I finally understand how it works and how to use it. You are the best!!!! Awesome Video👍👍👍
@ozgurege66132 жыл бұрын
Put and get like write and read function or update function
@TecSanento2 жыл бұрын
You could have told the Viewers how to Map the Content of your EEProm for the entirety Sketch - to not have conflicting Adresses and length. Also it would be important that the eeprom keeps it value’s if you reflash your development arduino for the next project - which could cause unwanted behaviour if not accounted for
@TecSanento2 жыл бұрын
I usually solve this by only writing a single union struct to eeprom with a single first static integer version - if the version doesn’t match my constraints - als eprom data is erased
@ELECTRONOOBS2 жыл бұрын
My Tools: bit.ly/3uv8bc3 Arduino Course LEVEL 2 (Spanish): bit.ly/2ZNWgqy Follow me on FACEBOOK for more: facebook.com/Electronoobs Help me on Patreon: www.patreon.com/ELECTRONOOBS
@sarathai28762 жыл бұрын
Great video, I'm going to have to watch this one a few times, lots of good stuff. Thanks
@marian200122 жыл бұрын
wow, advanced explanations. it is very nice to see deeper view.
@markvetrov39292 жыл бұрын
The arrow on poster points to the wrong place. This is Atmega32u which provides USB-to-TTL connection. EEPROM is a part of a chip, it can't be seen
@editorialbrain21 күн бұрын
your example around 8 mins doesn't actually show it recalling memory on power up since setup still had the write function. it would show it better if you changed the code to only read on loop and not write, that would prove the memory while off.
@FixTronics2 жыл бұрын
Great explanation We always learn new things here Thank you so much
@algre9772 жыл бұрын
I tried this with Attiny85 it didn't work, even after setting high fuse to D7 (instead of default DF) in bootloader! Any clues ?
@PhG19612 жыл бұрын
Interesting and entertaining ! As usual !
@cristianprocommandYT2 жыл бұрын
You are the beast!
@jeremycrouse32152 жыл бұрын
Have any videos on writing and reading eeprom without using the Arduino functions
@ranganatennakoon2 жыл бұрын
101 is the best
@aaronbadillo8018 Жыл бұрын
I want to use this to reset the model material counter on a spool of filament for a Mojo 3D Printer. The chip model is AT88SC 25616C Atmel. Any chance you can make a video on that?
@billglass51602 жыл бұрын
Thanks, nice video! EEPROM's are very useful. I use the internal or external (24C256) to log c-strings of variable size. It's for debugging my sensor code over several days. I can then connect my pc and dump the contents of the EEPROM on the serial monitor.
@stefanszabo32 жыл бұрын
Nice work ! Thank you so much. Good luck !
@narikodanhridul2845 Жыл бұрын
Sir, if I need to use a external eeprom and I'm using a development board which have multiple i2c pins. Where should I configure those pins.
@DucatiMTS12002 жыл бұрын
Excellent video. Very helpful and informative👍.
@TheUnofficialMaker2 жыл бұрын
very clear explanation and examples,well done
@AnandKumar-ym9yw2 жыл бұрын
thank you for shairing such a valuable topic.
@wires4auto2 жыл бұрын
I am working on a project where I need to store upto 4 RFID card IDs and a small encryption bit. Going to give the put and get function ago cheers
@Simcadepro2 жыл бұрын
The question remains how to extract the firmware off the chips. i use Microchip MPLab PicKit4 to extract the hex file to create another device. u can read and write to any arduino using this device. but it would be noooice to have content based on that process. especailly when u break the usb port off
@KAMIPROJECTS2 жыл бұрын
Your the best bro....thanks for the information.
@robertrobert55832 жыл бұрын
Very clear and helpful explanation. Thank you.
@rahmatselamat56222 жыл бұрын
Hi.. why arduino only can upload the program from pc to board but cannot download program from board to pc? Is it possible to make a board like that..
@undefinedman28432 жыл бұрын
Dear Electronoob, Can you tell me the difference between eeprom.write and eeprom.update function is both are same or different? Does eeprom.update function reduce the writing life cycle of micro-controller as eeprom.write function does because as mention atmega328p has 1M(million) write cycle it means if we write 1M times it writing life exaust does it is same for eeprom.update function? (Sorry for bad english)
@HussamAldean2 жыл бұрын
EEPROM update reads the current address and compare it with the value to be stored. Of they are the same, no write shall be done.
@watchvideo72256 ай бұрын
Doesn't the "put" method use up 2 adresses? how else is it going to store 2 bytes?
@ivovass1952 жыл бұрын
Very useful information, thank you for teaching me something new
@krishnareddy20422 жыл бұрын
just the one I needed
@lisandroiaffar45012 жыл бұрын
Excellent tutorial, thank you very much!!! :)
@kennethfajardo51212 жыл бұрын
hello sir, can sd card do the same thing that eeprom can do which is the getting the data/ retrie ving data?
@hadibq2 жыл бұрын
Nice video as usual! Thanks. Qst though.. in your example, you left the value assignment 25 in the setup. that would have been better to do an example that increments an eeprom byte with a button. then disconnect and reconnect to confirm the memory retention
@SyedTalhaAhmed-dg4fz8 ай бұрын
Is there any way to read/write this memory or any other option like memory faster then 3ms? Can we read/write in micro seconds? I'm using a clock of 3k, thus has a time frame of 333u. So, I want to store and read ADC value as fast as possible because I have to react as soon as possible if detect any change in analog value at A0;
@technicalgaming70562 жыл бұрын
Sir can you please tell us how to learn basics to programme a Arduino please
@technicalgaming70562 жыл бұрын
Sir i want to make Arduino project but I didn't know about coding . How to start it can you please explain it .
@conorstewart22142 жыл бұрын
@@technicalgaming7056 Look up tutorials, its not difficult to find information about arduino.
@Momo_official_7862 жыл бұрын
Well explained and we'll edited
@electronic79792 жыл бұрын
very informative video.
@s3rkanAGA Жыл бұрын
Thank you man, this video worked for me
@sanjaybatra6593 Жыл бұрын
EEPROM.write(0,60); lcd.print(EEPROM.read(0)); EEPROM is not storing values permanently. when I block this line //EEPROM.write(0,60); .... and run the program again after switch on/off power... its shows 255 value ?
@flashbondАй бұрын
Hi, I am 43 years old very very new to these things :) I want to ask one thing. I am thinking about an RFID system for my cats. Let say I write one of the tag ID to address 2 and the other tag ID to address 8. When I want to validate a tag and want to do something else, how ardunio understands which address to look up for the tag IDs? Am I clear :/
@space_engineer172 жыл бұрын
3:31 It would be more awesome if you have mentioned the size of transistor
@conorstewart22142 жыл бұрын
They will probably change size depending on how they were manufactured. Older EEPROMs will most likely use larger transistors than newer ones. Its also not really relevant information as it can change and it doesnt really change the implementation at all, might effect things like density and power consumption though.
@bheeshmavasuprasad2 жыл бұрын
Hey, I am making my own arduino uno and noticed that the price atmega328p ICs are skyrocketing and stocked out. Do you know hy is that?
@arminth2 жыл бұрын
Did you live under a stone during the last two years? Covid? Ever heard of it?
@DJ_GrenadianEmpire7 ай бұрын
Can you make a chip resetter for ricoh ri 1000 chip?
@xavier_le_x2 жыл бұрын
Very usefull and interesting video ! Thanx !
@faturahmanf30242 жыл бұрын
Can i save more than one variable using eeprom.put? For example i want to save variable on "eeprom.put(0, data1); eeprom.put(1, data2); and what data type can i use if i want to use integer variable but its more than 2 byte?
@y2ksw12 жыл бұрын
You left incidentally the write instruction in setup(). This little error voids the proof 😄
@asambleamecatronica57852 жыл бұрын
Thank you for sharing your knowledge buddy. I have a bin file that was read from 93c76 through ezp2019. When i load bin file and try to White it and click verify it's showing: "flash check error address 0h". I cannot write 93c76 eeprom. Have you experiencie issue before? I have tried with different 93c76 eeproms, diferente ezp2019 and diferente computer and still unable to write my bin file :-( have you seen this before?
@VorpalForceField Жыл бұрын
Excellent ..!!! Thank You
@gokulkrish72562 жыл бұрын
Thank you bro... Btw the ESC is working...😃😁... ♥️♥️
@ELECTRONOOBS2 жыл бұрын
Glad to hear that! What's your max RPM with it?
@gokulkrish72562 жыл бұрын
@@ELECTRONOOBS It was around 10500 RPM , I used 1100KV motor with 3S lipo. And truly you are a genius to bring up a project like this to enlighten us. Thank you so much bro.
@mhaythamabdel59292 жыл бұрын
Excellent. Cheers
@kennethfajardo5121 Жыл бұрын
Hello Sir, can I write decimal values on EEPROM?
@Andrew-rc3vh2 жыл бұрын
EEPROMs are often featured on SoC ics but if you look in the datasheet they have a limited number of writes. The chip I use, I think it is guaranteed at 100k writes. It sounds a lot, but if you program is say updating it once a second then you will end up with an unreliable program and wonder why it is so temperamental. The solution is to use a memory controller. This will mark faulty parts of the memory so the controller switches to a fresh block of memory and does all this without you worrying about it. I need a lot of flash so I now use and SD card which has a built in controller. This never fails.
@conorstewart22142 жыл бұрын
EEPROM is more used for storing settings or data that wont change for a while, not like for writing once a second, flash devices like emmc or SD cards or SPI flash have less write cycles than EEPROM, but they are bigger so wear levelling can be used to greatly increase their lifespan. I also think you may be confusing EEPROM and flash, they are similar but they are not the same. SBCs with built in storage usually use EMMC, which I think you probably mean rather than EEPROM, they are very similar to SD cards and in a lot of cases are actually more reliable than SD cards.
@Andrew-rc3vh2 жыл бұрын
@@conorstewart2214 I did mean EEPROM. With a SoC you often get a small amount of EEPROM as well as flash, and the EEPROM is supposed to have about ten times the write life. The sort of thing you may want to do a lot of writes is say when you want to record the time you switched the system off or perhaps when it crashes and you want the most up to date time or possibly other varying data. I do not have an EMMC in the Soc I use but do have and SDIO interface.
@conorstewart22142 жыл бұрын
@@Andrew-rc3vh "I need a lot of flash so I now use and SD card", you went from talking about EEPROM to flash and SD cards. Lots of modern microcontrollers and probably SoCs too dont have EEPROM, they just emulate it using flash, so you lose most of the benefits of using EEPROM, I know STM32 does this, I know teensy does this, the rp2040 doesnt have it either. You also talk about memory controllers and EEPROM, I've never seen that before, and you talk about fresh blocks of memory, which sounds a lot like flash, so you can probably see why I thought you may be confused. You also stated that sd cards never fail, they actually have a very high failure rate compared to other types of memory, for example in my phone I use an SD card for storing things like photos and about once a year the whole card fails so that it becomes unwritable, I can only read it from then on, and I use good main brand cards. If you look at forums and similar you will see that SD cards fail very often compared to the likes of EEPROMs, SPI flash, EMMC etc, it does have the advantage of being easily replaceable but it still fails faster.
@Andrew-rc3vh2 жыл бұрын
@@conorstewart2214 Hmm, it seems odd that it fails more often if it is the same memory. Perhaps that might have something to do with the connections. Actually given the choice I would have liked the small bit of memory to cope with a lot of writes because I had it so arranged that it would still work without the SD card and write to internal flash if it were not inserted. Anyhow this has to write the time once a second, so now i arrange it so the part of the memory it writes to advances as the log records data. It's a complicated thing to explain fully, but it does work 100% reliably now. I used to need to store various pointers, but that's all taken care of in the new scheme.
@conorstewart22142 жыл бұрын
Andrew it’s really not all that complicated to explain, you are pretty much just creating a log file, just recording data and moving through the storage writing it sequentially one after the other. Unless there is something else you are doing too.
@alirezaahmadian42372 жыл бұрын
great explanation
@Nebbia_affaraccimiei Жыл бұрын
7:54 LOL. of course its still there, you wrote it AGAIN during the setup. this does not prove it's not volatile.
@iracamfox2 жыл бұрын
Very nice!! Ty!
@Oshan_Dissanayaka2 жыл бұрын
Wow. Great bro... Thank You...😊
@sathishkumar-pc4gb2 жыл бұрын
hey boss can you put more tutorial in depth thing in arduino 101 series please
@lun4rkid6 күн бұрын
can't i just add value 4096 to eeprom?
@migojolo29338 ай бұрын
How to use external eeprom chip?
@Oblivianist2 жыл бұрын
Nice Content
@ΚωνσταντίνοςΡάπτης-φ4ξ2 жыл бұрын
Hi. How can I contact with you?? Thanks.
@ais_robotic3 ай бұрын
Make a video on how to program arduino driver chip
@agratx83882 жыл бұрын
Y la versión en español?.. Pa' cuando ?
@erikkalmar49652 жыл бұрын
Hi! Nice job bro! I looking for nrf rc car control, and in your channel i found the example for that. But i dont know how to put to gether because of the interference between the 3 phase motor and the nrf. Any useful tips? (sorry if i didn't write something completely understandable i don't know perfect english but i tried)
@conorstewart22142 жыл бұрын
What do you mean interference between the motor and nrf? I take it by 3 phase motor you mean BLDC, I have built drones and RC cars and never had any interference. If you are powering the ESC from the same 5V as the arduino and nrf24 then you probably shouldnt be, the ESC should be powered direct from the battery and the NRF24 and arduino should be powered from a 5V converter connected to the battery, thats the only way I can see you having problems with interference, either that or your converter is very poorly designed and doesnt have capacitors.
@erikkalmar49652 жыл бұрын
@Conor Stewart I'm thinking of emf, what can bother the receiver because the receiver has 2 communication wires and such pulses can be strong enough for the signal to be noisy enough not to work as intended, im watched a lot of video about this to understand about how it works together, but this interfearing variable is a litlebit confuseing me. Anyway thanx the information about this knowlage what u have!
@conorstewart22142 жыл бұрын
@@erikkalmar4965 Have you actually built it and tried it? If you havent built it and are worrying about it then you are probably worrying about something that wont make any difference at all.
@erikkalmar49652 жыл бұрын
@@conorstewart2214 Yes I build it and tried it, and the resoult is interesting. It is working nincely but i dont know why some times the signal is looks like a litle bit noisy. The servo is delayed if its happening, and the motor speed control is delayed too, i dont know it is just because the noise, or someting else cause this Actualy the powersuply is not a problem i use the esc power output for this, and if i try this with battery or anythig else, same thing happening, i gues if some how the communication line get more gnd wrapped around it with a thicker cable can solve the problem, but now i dont have thicker cable sadly for this. So i need to look around and see if i found something usefull for this purpose. So sorry if im not realy understandable in english😅
@conorstewart22142 жыл бұрын
@@erikkalmar4965 What signals look noisy? Are you looking at the SPI signal using an oscilloscope? The ESCs 5 V output may be the problem, especially if it is a cheap ESC. I find it surprising you have problems when I havent had any, and I used a cheap chinese fake without twisted wire pairs or anything with its wires right beside my ESC power wires and the nrf24 right beside the three wires that go to the motor and had no problem at all. Your nrf24s may be fake and that may be why you are having issues, especially if they were really cheap. Your problem with delays could be because of the arduino, depending on your code it might be too slow or if you use a lot of blocking functions, you might miss data packets. Are you using the ones with the external antenna or a built in antenna because I've heard that the cheap fakes that have the pcb antenna have a really terrible range.
@cristianprocommandYT2 жыл бұрын
Wow!!
@GrandNecro2 жыл бұрын
so if I write a 4byte float on address 0, do I put the next value on address4 or address1?
@ELECTRONOOBS2 жыл бұрын
Yes, on address 4, otherwise you would overwrite the previous data
@GrandNecro2 жыл бұрын
@@ELECTRONOOBS thank you
@7009-i1v2 жыл бұрын
Do you and great scott know eachother?
@TechnoEveryday2 жыл бұрын
Hahahaha
@prathambumb55932 жыл бұрын
Thank You
@inventorkr12 жыл бұрын
👌👌👌💛💛💛💛💛💛💛💛💛💛💛
@jagannathkulkarni2 жыл бұрын
Thanks a lot for giving such an invaluable information in such a simple way. you are simply great, :} .I cant see put and get functions for ESP8266 boards. How to deal with them ?? and one more favour, Will you enlighten us with the use of FRAM/NVRAM in detail please !!!
@sinjhguddu49742 жыл бұрын
Neat!
@demianxldc2 жыл бұрын
35p08 eeprom how
@HousseinAlDroubi16 күн бұрын
Welcome to you
@aniketkumbhar58162 жыл бұрын
make more videos on FPGA & verilog
@aleXelaMec Жыл бұрын
it doesnt work with strings!! (((( all other stuff does.
@failedengineer192 жыл бұрын
Little suggestion cause I like ur channel.🙂🙌...i recommend adding some humor along ur explaination cause ur way too seriously reading script sounds like robot.... Don't mistook my suggestion as judgement...we can use some jokes if possible...
@ELECTRONOOBS2 жыл бұрын
there's no humor in science, only science hahahaha just kidding, I'll try!
@TechnoEveryday2 жыл бұрын
@@ELECTRONOOBS i like your narration style
@ricodegallo30602 жыл бұрын
👍
@sammin57642 жыл бұрын
🌟🌟🌟🌟🌟
@sammin57642 жыл бұрын
🎖🌹🎖
@Jose-tw9bl2 жыл бұрын
Flash memory is also permanent isn't it? I didn't quite get the diference Interesting video!
@ELECTRONOOBS2 жыл бұрын
That is also permanent, yes. But that is for a different video...
@Jose-tw9bl2 жыл бұрын
@@ELECTRONOOBS thanks for the reply!
@fernandohood55422 жыл бұрын
Try doing this without a library. LOL!!!
@tyronenelson91242 жыл бұрын
eeproms constantly spit out their binary values within their memory on the data lines that they are connected to, especially in devices that need to remember settings like Christmas lighting controllers, they are like electronic reminders.
@conorstewart22142 жыл бұрын
That happens with EEPROMs that have address and data pins that you access in parallel, rather than I2C or SPI EEPROMs.