Programming eeprom
I have been trying to program an atmel 25040 eeprom with a superpro3000, it accepts the program,but when I click on the verfy option an error message appears. Can any one please help?
Topic by jimenazo | last reply
I have been trying to program an atmel 25040 eeprom with a superpro3000, it accepts the program,but when I click on the verfy option an error message appears. Can any one please help?
Topic by jimenazo | last reply
Hello friendsanyone can help me how to save water flow meter in arduino mega eeprom
Question by ahmedhodhod
Hi This is Eabul. i want to save data to eeprom from press button . when TemperatureUp button press. increase float data like as 0.01> 0.02--------30.10> 30.61 and this value save to eeprom. and when TemperatureDown button press . decrease float data like as 30.60>30.59-----29.10 and update minus value eeprom and increase and decrease valud view lcd display . but when press button save int number not float. and show me lcd display int value. please help how to write and read float value from eeprom. press button. hear my code. //For Display #include // 3wire display LiquidCrystal595 lcd(4, 3, 2); // DS, ST_CP, SH_CP //For time #include #include RTC_DS1307 RTC; //for humidity #include "DHT.h" DHT dht; //for stor tempereratur and humidity #include int SetHumidity; int HumidityUp = 10; // switch up is at pin 10 int HumidityDown = 11; // switch down is at pin 11 float fix = 0.01; float settemp; // make a variable called temp float TemperatureUp = 12; // switch up is at pin 12 float TemperatureDown = 13; // switch down is at pin 13 //result view int led = 0; // led is at pin 0 void setup() { //For timer Wire.begin(); RTC.begin(); //For welcome screen lcd.begin(16,4); lcd.setCursor(0,0); lcd.print("Welcome Elab"); delay(2000); lcd.clear(); //for dht-11 pin setup dht.setup(A1); // data pin 2 } void loop() { //For tempererature up / down float temp[3]; getTemp(temp); float tempererature = temp[1]; settemp = EEPROM.read(1); // read the settemp on the eeprom if(digitalRead(TemperatureUp) == 1 ) { settemp+=fix; settemp++; EEPROM.write (1, settemp); /* write the most recent settemp in eeprom data stoage*/ } else {} if(digitalRead (TemperatureDown) == 1) { settemp -= fix; settemp--; EEPROM.write (1, settemp); /* write the most recent settemp in eeprom data stoage*/ } if (tempererature >= settemp) { digitalWrite (led, 1); } else { digitalWrite (led, 0);} //else { }; lcd.setCursor(0,0); lcd.print("T:"); lcd.print(tempererature); lcd.setCursor(8,0); lcd.print ("ST"); lcd.print (settemp); lcd.print((char)223); //End tempererature controll //For humidity up / down SetHumidity = EEPROM.read(2); int humidity = dht.getHumidity(); if(digitalRead(HumidityUp ) == 0 ) {SetHumidity++ ; } // add one to the settemp else {} if(digitalRead (HumidityDown) == 0) { SetHumidity--; } // Reduse settemp else { }; lcd.setCursor (0, 1); lcd.print ("CH:"); lcd.print (humidity); lcd.print ("%"); lcd.setCursor (8, 1); lcd.print ("SH:"); lcd.print (SetHumidity); lcd.print ("%"); delay (1); // wait 100 milliseconds EEPROM.write (2, SetHumidity); /* write the most recent settemp in eeprom data stoage*/ //End tempererature controll controll } //analog temperature void getTemp(float * t) { const int analogPin = 0; // replace 0 with analog pin const float invBeta = 1.00 / 3380.00; // replace "Beta" with beta of thermistor const float adcMax = 1023.00; const float invT0 = 1.00 / 298.15; // room temp in Kelvin int adcVal, i, numSamples = 5; float K, C, F; adcVal = 0; for (i = 0; i < numSamples; i++) { adcVal = adcVal + analogRead(analogPin); delay(100); } adcVal = adcVal/5; K = 1.00 / (invT0 + invBeta*(log ( adcMax / (float) adcVal - 1.00))); C = K - 273.15; // convert to Celsius F = ((9.0*C)/5.00) + 32.00; // convert to Fahrenheit t[0] = K; t[1] = C; t[2] = F; return; }
Topic by esumon | last reply
I am making an 8-Bit Computer for a science fair project. I have everything working, but there is one problem. Everything action has to be done manually. It could work this way but I want to be able to write a program, press a button, and the computer will do the rest. To do this I have to use a control matrix to control the Input/output of each device to the bus. To do this I will use an EEPROM. However, I am using TTL logic and the AT28C64B is CMOS, but it has TTL and CMOS logic compatible Inputs and Outputs. When I programed it, I did WE low OE high and CE low. When I read from it I had WE high, OE low and CE low. When I had CE plugged into nothing which I think is High-Z, I noticed just a brightness difference between 0 and 1 on the LEDs. When I plugged the Chip Enable(CE) into ground it made every LED the same brightness so that you could not tell the difference. For my TTL logic I need either voltage or ground to control 1 or 0. Am I doing something wrong? Please help me! I really need the help.
Question by BeauH3 | last reply
Hi, can any one help on programming a atmel 25040 eeprom? I have a superpro3000. This chip accepts the program, but when i verify it a error message appears.
Topic by jimenazo | last reply
Hi,I want to make a device that has a few audio tracks avalible to be played from the press of a button. I want to have the audio tracks stored on something like an EEPROM because pcpartpicker I am not going nba reddit to be changing them very often. What is the best way to use an external EEPROM that is large enough to store an audio track (about 700kb)? Would I be better off trying to use some other type of storage device? reverse phone lookupThanks!
Topic by MonilGomes | last reply
Hello all Ive got a query about the simulator in MPLAB. I'm using a PIC16F628A-IP and Ive written a couple of subs to run the EEPROM functions, but when I try and run the program in the simulator and observe the registers, I'm noticing that EECON1 is not accepting bit changes, and when reading from the EEPROM, i get as far as getting the correct value into W register (MOVFW EEDATA), then the next step, simply a RETURN command, for no reason wipes the W register back to 0 and hence the routine always returns a 0 Can somebody have a look and see whats going wrong, this is one of the easiest routines to write as there are so many examples on the web, Ive even used code straight from Microchip's Code Library and that didnt work either, its driving me MAD!!! All I am trying to do with the following code is simply read the EEPROM contents of address 05, display the returned contents to PORTB, wait a second, then increment the contents by 1 and resave into the EEPROM at address 05, so by rights on power up I should see FF then 00 then 01 then 02, etc, incrementing every second, on PORTB....I'm a bit of a stickler for custom keywords so sorry if its a bit confusing, makes perfect sense to me of course! ; GENERIC PROGRAMMING HEADER LIST P=16F628A ; DETERMINE CORE TYPE INCLUDE "P16F628A.INC" ; INCLUDE DEFAULT ASSEMBLY FILE FOR THIS CORE ORG 00H ; START PROGRAM AT LINE 0 RADIX HEX ; ASSUME HEX UNLESS SPECIFIED ERRORLEVEL -302 ; NO BANK WARNINGS DURING ASSEMBLY ; SET BURN CONIFGURATION FOR NO WDT AND INTERNAL OSC AT 4MHZ __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_OFF &_INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _LVP_OFF ; CONSTANTS AND VARIABLES OPT EQU 81H ; OPTION REGISTER NN EQU 02AH ; GENERAL N REGISTER FOR COUNTING DELAYS XX EQU 02BH ; GENERAL X REGISTER FOR COUNTING DELAYS YY EQU 02CH ; GENERAL Y REGISTER FOR COUNTING DELAYS TEMP EQU 02DH ; GENERAL TEMPORARY FOLDER 1 TMP EQU 02EH ; GENERAL TEMPORARY FOLDER 2 FLAGS EQU 020H ; MISCELLANEOUS PROGRAM SPECIFIC FLAGS N EQU 021H X EQU 022H ; GENERAL TEMP STORES Y EQU 023H ; CUSTOM INSTRUCTIONS #DEFINE BANK0 BCF STATUS,RP0 ; Sel Bank 0 #DEFINE BANK1 BSF STATUS,RP0 ; Sel Bank 1 #DEFINE READNVM CALL READ #DEFINE WRITENVM CALL WRITE #DEFINE W10MS CALL DELAY #DEFINE W1S CALL DELAY1S ;----------------------------------------------------------------- ; INITIALISE MICRO ;----------------------------------------------------------------- INIT BANK1 CLRF TRISB ; PORT B DEFINED ALL OUTPUTS MOVLW 0FFH MOVWF TRISA ; PORT A ALL INPUTS BANK0 ; SET TO MIMIC 16F84 BY TURNING OFF COMPARATOR MOVLW 07H MOVWF CMCON ; PURGE GENERAL RAM FILES CLRF NN CLRF XX CLRF YY CLRF TEMP CLRF TMP CLRF FLAGS CLRF N CLRF X CLRF Y CLRF PORTA CLRF PORTB CLRF OPT CLRF INTCON ;------------------------------------------------------------------- ; MAIN PROGRAM ;------------------------------------------------------------------- MAIN; ORIGIN MOVLW 05 READNVM MOVWF PORTB W1S MOVLW 05 MOVWF EEADR MOVF PORTB,W INCF W,1 MOVWF EEDATA WRITENVM GOTO MAIN ;--------------------------------------------------------------------------- ; END OF MAIN PROGRAM BODY ;--------------------------------------------------------------------------- GOTO FINISH ; PROGRAM LOOP FALLOUT ;--------------------------------------------------------------------------- ; SUBROUTINES ;--------------------------------------------------------------------------- ; LIST OF AVAILABLE SUBS: ; DELAY = 10mS DELAY ; DELAY1S = 1 sec DELAY ; WRITE = WRITE TO EEPROM, MUST BE LOADED WITH EEDATA AND EEADR B4 ENTRY ; READ = READ FROM EEPROM ADDRESS HELD IN W BEFORE ENTRY, RETURN RESULT IN W ; 10mS DELAY DELAY MOVLW 0AH MOVWF XX OUTER MOVLW 0C7H MOVWF YY INNER NOP NOP DECFSZ YY,1 GOTO INNER DECFSZ XX,1 GOTO OUTER NOP NOP NOP NOP NOP NOP NOP RETURN DELAY1S ; 100x10mS DELAYS MOVLW 064H MOVWF NN D1L W10MS DECFSZ NN,1 GOTO D1L RETURN WRITE BANK1 CLRF EECON1 BSF EECON1,WREN ; enable write W10MS W10MS BCF INTCON,GIE MOVLW H'55' ; magic sequence MOVWF EECON2 MOVLW H'AA' MOVWF EECON2 BSF EECON1,WR W10MS W10MS eeloop BTFSC EECON1,WR ; wait for WR to go low GOTO eeloop ; not yet BCF EECON1,WREN BCF INTCON,GIE ; clear the interrupt flag BANK0 W10MS W10MS RETURN READ BCF EECON1,WREN MOVWF EEADR ; set up eeprom address from W BANK1 BSF EECON1,RD ; set the read bit BANK0 MOVFW EEDATA ; return value in W RETURN ; PROGRAM ENDS FINISH END Note, this will probably make more sense if its copied and pasted into an ASM in MPLAB, as the tab stops and comments become more apparent THanks for looking
Topic by whitebakecase | last reply
Hey, I'm still semi new to Arduino, but I can read/write to analog/digital pins and communicate via I2C and SPI with other devices and micro controllers, but those are more widely known and I have here with me a ton of 8 PIN DIP, CAT35C104 Serial EEPROM IC's.. And with all that EEPROM lying around I wanted to put it to some use. But I am still not an expert and don't know how to begin to interface it to my Arduino UNO R3.. :L Specifically it shows: CAT35C104 Serial EEPROM 4kb data storage, 512 x 8 bit registers, 256 x 16 bit Can anyone help me get this to work? I also have trouble with "opcodes" kinda confused.. right now I know the times it takes to read/write, and the clock frequency (1MHz) And the pin diagram.. Any help would be appreciated!!!!!
Question by Mudbud | last reply
Hi everyone, first question on instructables! I have an Arduino Deumilanove, a Sparkfun RGB Matrix with backpack, and an EEPROM chip (24LC256). I have the Arduino all hooked up to the matrix and have been able to mess around with some basic images and colors, but I have a lot of questions. So far, to display letters I have been setting up sections of code that light up each LED separately. I know there has to be a more efficient way to do this and was wondering how? Also, I have an EEPROM chip that is setup with the Arduino and Matrix but can't figure out how to use it. I have looked at the code for it on the Arduino website and I can't really figure out how it all works. So basically, here's what I want to be able to do: - Store the alphabet in the EEPROM - Be able to recall letters from the EEPROM - Display marquee messages Thanks in advance!
Question by xlivewire7x | last reply
I was wondering if you could store an arduino library on an eeprom chip because the sound library for the waveshield kit is very large (~10KB according to ladyada.net). she had also stated under the waveshield tutorial that it is too much to store on the ATMEGA328's eeprom. she didn't say anything about other eeprom chips. i was wondering if it is possible to do this because she had stated that there is not enough eeprom on the arduino chip.
Question by kroq-gar78 | last reply
Hi everyone! I have some EEPROMS I would like to burn (27C512, 27C256, 24C256). I have a Parallax Propeller, a Z80, a 6502, and an Arduino Uno to help me make an EEPROM burner. I know that EEPROM burners run $40+ commercially (even on EBAY!), so I would like to try building my own at home. I have an abundant supply of 74XXXX chips at home, as well as a good supply of capacitors and resistors. I don't have a Parallel Port on my computer, but I have a USB port as well as an RS232 to USB converter. I'm running Windows XP and Ubuntu - Lucid Lynx 10.04, so if I need a specific OS to burn these EEPROMS, I have Windows and Linux. I need an EEPROM burner that could erase/burn the 27CXXX EEPROMS/EPROMS/PROMS. I know through using the Propeller that I can write to the 24C256 through the Propeller, but could someone please help me in building a homebrew EEPROM burner?
Question by prrgg14935 | last reply
// Port for the I2C #define I2C_DDR DDRD #define I2C_PIN PIND #define I2C_PORT PORTD // Pins to be used in the bit banging #define I2C_CLK 0 #define I2C_DAT 1 #define I2C_DATA_HI()\ I2C_DDR &= ~ (1 << I2C_DAT);\ I2C_PORT |= (1 << I2C_DAT); #define I2C_DATA_LO()\ I2C_DDR |= (1 << I2C_DAT);\ I2C_PORT &= ~ (1 << I2C_DAT); #define I2C_CLOCK_HI()\ I2C_DDR &= ~ (1 << I2C_CLK);\ I2C_PORT |= (1 << I2C_CLK); #define I2C_CLOCK_LO()\ I2C_DDR |= (1 << I2C_CLK);\ I2C_PORT &= ~ (1 << I2C_CLK); void I2C_WriteBit(unsigned char c) { if (c > 0) { I2C_DATA_HI(); } else { I2C_DATA_LO(); } I2C_CLOCK_HI(); delay(1); I2C_CLOCK_LO(); delay(1); if (c > 0) { I2C_DATA_LO(); } delay(1); } unsigned char I2C_ReadBit() { I2C_DATA_HI(); I2C_CLOCK_HI(); delay(1); unsigned char c = I2C_PIN; I2C_CLOCK_LO(); delay(1); return (c >> I2C_DAT) & 1; } // Inits bitbanging port, must be called before using the functions below // void I2C_Init() { I2C_PORT &= ~ ((1 << I2C_DAT) | (1 << I2C_CLK)); I2C_CLOCK_HI(); I2C_DATA_HI(); delay(1); } // Send a START Condition // void I2C_Start() { // set both to high at the same time I2C_DDR &= ~ ((1 << I2C_DAT) | (1 << I2C_CLK)); delay(1); I2C_DATA_LO(); delay(1); I2C_CLOCK_LO(); delay(1); } // Send a STOP Condition // void I2C_Stop() { I2C_CLOCK_HI(); delay(1); I2C_DATA_HI(); delay(1); } // write a byte to the I2C slave device // unsigned char I2C_Write(unsigned char c) { for (char i = 0; i < 8; i++) { I2C_WriteBit(c & 128); c <<= 1; } //return I2C_ReadBit(); return 0; } // read a byte from the I2C slave device // unsigned char I2C_Read(unsigned char ack) { unsigned char res = 0; for (char i = 0; i < 8; i++) { res <<= 1; res |= I2C_ReadBit(); } if (ack > 0) { I2C_WriteBit(0); } else { I2C_WriteBit(1); } delay(1); return res; }
Topic by Blixxer | last reply
I have the eeprom, I have copies of the E and C drives, I just need help starting over! Please, if this doesn't get fixed my brother is going to hate me for ruining our xbox! (Original xbox)
Question by furrysalamander | last reply
Hello! i am building a college project irrigation monitoring device which monitor soil moisture and send that data to mobile via sms. the number to which the sms is send is initially feed into arduino sketch. i want to change that no by sending a sms to arduino . that sms must contain a password followed by new mobile no i have tried but it could not read that no from sms and put it into eeprom. on aduino forum also their is no clue about how to do.sorry for such english.please help .
Question by pratikpitale
I'm using an ATMega 328 chip (Arduino duemilanove), if that matters at all. Ask me if you need the chip name for the EEPROM. Also, if you happen to know, would a magnet mess up flash memory?
Question by kroq-gar78 | last reply
Here is the code for a breathnalayzer using picaxe14m2 ignore the if b2= as i have to experiment and get the values and i havent done so. the code stores messages in eeprom and in the starting it operates a rgb led to create effects the code: low B.0'initialise lcd outpu pause 500'wait for lcd to initialise 'load messages in eeprom EEPROM 0,("NO ALCOHOL") EEPROM 10,("ONE OR TWO DRINKS") EEPROM 27,("BUZZED") EEPROM 33,("DRUNK") EEPROM 38,("WASTED") EEPROM 44,("BLOW ON THE SENSOR FOR 5 SEC") high b.2'red pause 2000 low b.2 high b.3'green pause 2000 low b.3 high b.4'blue pause 2000 low b.4 pause 1000 high b.3,b.4'sky blue pause 2000 low b.3,b.4 pause 1000 high b.2,b.4'pink pause 2000 low b.2,b.4 pause 1000 high b.3,b.2'yellow pause 2000 low b.3,b.2 pause 1000 high b.2,b.3,b.4'white pause 2000 low b.2,b.3,b.4 pause 1000 for b0=45 to 75 'print blow on the sensor read b0,b1 serout B.0,n2400,(254,1,b1) next b0 main:readadc B.1,b0 if b2=54 then main1 if b2=45 then main2 if b2=45 then main3 if b2=45 then main4 if b2=245 then main5 goto main main1:high b.3'on green led for b3= 0 to 9'print no alcohol read b3,b4'read eeprom locations 0to10 serout b.0,n2400,(254,1,b4) next b3 low b.3 goto main main2:high b.4'on blue led for b5= 11 to 27 read b5,b6 serout b.0,n2400,(254,1,b6) next b5 low b.4 goto main main3:high b.3'sky blue high b.4 for b7= 28 to 33 read b7,b8 serout b.0,n2400,(254,1,b8) next b7 low b.3 low b.4 goto main main4:high b.3'yellow high b.2 for b9= 34 to 38 read b9,b10 serout b.0,n2400,(254,1,b0) next b9 low b.3 low b.2 goto main main5:high b.2'red danger for b11= 39 to 44 read b11,b12 serout b.0,n2400,(254,1,b12) next b11 low b.2 goto main
Question by robot1398 | last reply
I have a proyect with a MLX90614 (an ir infrared thermometer with I2c), and the output temperature is displayed in a oled 128x64 I2c, I am using an arduino pro mini, the code works well, but i want to add a function: I want to press a button that saves the temperature shown, in the right down corner of the screen, and if I press it again to save again the temperature. It is like a memory function, I searched on the internet and I discovered that there is a memory in the arduino called eeprom but i have problems combining that function with the code. Any help appreciated. Thanks. Code: #include "U8glib.h" // U8glib library for the OLED #include // Wire library for I2C communication #include // MLX90614 library from Adafruit Adafruit_MLX90614 mlx = Adafruit_MLX90614(); U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C void draw(void) { u8g.setFont(u8g_font_profont15r); // select font u8g.drawStr(1, 12, "Object Temperature");// u8g.setFont(u8g_font_profont29r); // select font for temperature readings u8g.println("°C"); // prints C for Celsius u8g.setPrintPos(35, 55); // set position u8g.println(mlx.readObjectTempC(), 0); // display temperature from MLX90614 Serial.println(mlx.readObjectTempC(), 0); // u8g.drawRFrame(15, 20, 100, 30, 10); // draws frame with rounded edges } void setup(void) { Serial.begin(9600); mlx.begin(); //Receive data from the sensor } void loop(void) { u8g.firstPage(); do { draw(); } while( u8g.nextPage() ); delay(1000); // Delay of 1sec }
Question by tmercados | last reply
I am really having a big problem with that EEPROM AT28C64B how i can load the data from this IC ? .. i am not sure if i programmed it right ? .. i tried to connect the output to LEDS but none of them worked .. can someone explain how to write into the data ?! .. and the important thing how to read the data i wrote ?! .. how to use them ? .. thanks in advance
Question by mac00 | last reply
Hi- I am interested in suggestions for starting points to build a programable flashing LED. The intervals of dark/light should be configurable, kind of like morse code. But not subject to what I recall as requirements for Morse- dashes are 2x as long as dots, or something- duration will vary for both. Maximum total length of sequence is 10 seconds. There are a lot of flashing LED circuit Instructables, some very old and referencing 7 yr old chips- unsure if I can get those chips. In an ideal world, when I am done, I could have multiple EEPROMs that I could switch out to configure the flash sequence I wish. One sequence per EEPROM. Or another means to accomplish this. My background: I can solder a little, I can program and shell script a little, I have not much idea about electronics at all. Thank you for pointers to a jumping-off spot for me!
Question by bmcewen | last reply
Hello everyone. I'm new here and I have a quick question about processors. I'm working on a project that requires a device to take inputs piezo buzzer elements and trigger an LED. The catch is I need a programmable chip so I can have pre-set outputs on the LEDs. I'd need something that can be rewritten (like an EEPROM) I've been thinking abuot using a PIC or a BASIC Stamp but I'd though I'd do a bit of research first.
Topic by mrpaps | last reply
Can I import a BlogSpot Blog to create an instructable?I am currently writing a blog on googles BlogSpot about how I added more memory to one of my Arduino projects and compressed G-Code to save the plots on the EEPROM.I was thinking it may be a good instructable for those that write there own programs, and to entre it into the current Arduino contest.I haven't finished it yet: My BlogIt's quite long so an import would be better than copying and pasting
Question by Palingenesis | last reply
Ok, so I have decided to make an EPROM programmer so I can upload NES games to cartridges ( home-brew, not pirated. ) Does anyone know how to do this? I am a novice at coding, and, when it comes down to wiring, I can't really discern which resistor goes here and there and what value it should be, things like that. When I google "arduino eprom writer" All I get is EEPROM writers. I just want to know if someone on instructables has done it, and how.
Question by Krayzi99 | last reply
It would be REALLY NICE if when people posted a question in the forums, they put some useful information in the subject line so that people who might answer the question would have a quick clue as to whether they can help. Here are some particularly bad recent examples:Please tell me if this will workI need some help on a project.I need some helpQuestion?And to be fair, here are some subject lines that were OK to excellent (I was only interested in half, but at least I could tell from the other subject lines that I wasn't interested!):Help programming a 8 pin eepromAirsoftJoule Thief Troublesyour favorite song?
Topic by westfw | last reply
Hello All - I am attempting to repair an Emergency Dash Light for a friend of mine. It has blue LED lights it is similar to the one pictured in this link: http://www.1topstore.com/product_info.php?language=en¤cy;=USD&products;_id=11981 Initially the unit had all 4 LEDs burned out I fond a source for them and replaced same all worked fine. After reassembling the unit I discovered in final test that the controlling chip went bad. I think the chip is a EEPROM at least the package is a DIP-8. The device has a function select push button and there are 4 flashing formats; wig-wag, flash twice wig-wag, all steady on; all on flash. Any suggestions?
Topic by Foxtrot70 | last reply
The Propeller Platform Module (pictured below) includes an 80Mhz, 160 MIPS Parallax Propeller microcontroller, 32kb of EEPROM with space for a second EEPROM, 5V and 3.3V Voltage Regulators and the pin sockets to add additional Gadget Gangster Platform modules like the LCD UI Module or the Prototyper Module.All Gadget Gangster Platform Modules utilize .1" pin spacing and are breadboard compatible. Here's a little video demonstration of the LCD UI and Propeller Modules: What is the Gadget Gangster Platform?The Gadget Gangster Platform is a lot like the Arduino with a few improvements on the basic idea;-Modules (a.k.a. shields) can be connected to each other on top and bottom. For example, you might have a Propeller module in the middle, an LCD UI on the top, and a prototyper on the bottom. We've got a few initial modules to start, and we'll continue to expand on the selection with more modules and microcontrollers.-Pin spacing is .1". This makes the Platform compatible with breadboards, and it lets you use Platform modules in combination with other project boards.-The board footprint is 3.8" x 2.5", which is the same footprint as ExpressPCB's MiniBoard service. This makes it easier to add your own custom module.-Because they're featured in Jon Williams' Spin Zone column in Nuts and Volts, they're well documented. The Propeller Platform Module will be the basis for many of projects described in his upcoming columns and the LCD UI module will featured in his September '09 column. -Platform Modules are licensed under the MIT license (essentially public domain), giving you the flexibility to use the design in commercial products or anything else without restriction.[/list]I'm super-excited about these new project boards. There's more info on Gadget Gangster but if you have any questions, you can just reply to this thread.
Topic by Gadget Gangster | last reply
I found an old robot that was part of one of those 'build it yourself' magazine series. I was gonna eBay it but found there was actually quite alot of cool stuff in there so I've compiled a list and I'm gonna make an instructable using some of the parts, But I need ideas / help.Here are (the best) parts.2x sets of ultrasonic emitters / receivers2x LDRs large2x smaller photoresistors (used for line following)2x set of inrfa red emitter& reciever leds2x bright white leds + various others2x 9v motors & gear housingsLCD display 5cm squreeepromspeed controllers selector switches etcand a load of pre programmed processors that can't be reused.some more technical details here
Topic by madmanmoe64 | last reply
Hi everyone! I'm wondering what are some good resources to learn how to build a simple programmable CPU from 74XX logic chips. I'd like to build one where I use DIP switches to program the CPU. I don't have an EEPROM/EPROM/PROM burner, so using those are out of the question. I've seen some CPU's already that run an internet server, but they are too complicated/expensive to build and understand. I want to learn how a CPU can be built and the principles behind it. I have about 150 74XX chips, including a 74LS181 ALU unit. I also have enough capacitors and resistors for the project. Thank you!
Question by prrgg14935 | last reply
Hi all, I've been searching both this forum and the internet in general and strangely have not come across what I'm looking to do even though to me it seems very simple. Here are the specifications/requirements of the device that I am trying to create: -extremely tiny form factor (ideally a ring sized device but I'll settle for a thin bracelet) -unobtrusive/inconspicuous (I guess a thin bracelet that could hide under a sleeve might be best) -battery powered/untethered (This is essential. The device would be useless if depended on a connection to a computer or wall socket) -battery life must last a full day -data logged is just a simple time/day stamp that would indicate when a button was clicked by the wearer (wearer would manually click the button during the day when certain thoughts came up for him/her) This requirement indicates that the micro controller chosen would need a clock built in and some kind of storage - be able to upload the data to a computer I did my preliminary research considering these requirements and I came up with the following electronic components that might work: - teensy 3 (has real time clock and 2K EEPROM which should be plenty of memory for storing date stamps) - ulog (1MB of usable space across 3 analog channels, couldn't find anything about a built in clock) - Pro Micro - 3.3V/8MHz (not sure about built in real clock but storage is 32K flash space) - OpenLog (wasn't clear about how much built in storage and didn't see any build in real time clock) These are the best I could find. If anyone has better suggestions please let me know? My idea is to connect a Mini Push Button Switch to one of the digital inputs on one these micro controllers/data loggers and write a simple sketch that records the time the button was pushed in a MMDDYYhhmm format (10 bytes per click). To power any of these micro controllers/data loggers I was planning to use a Coin Cell Battery - 12mm. I was going to sew the micro controllers/data loggers on one side of a thin piece of material that would serve as a bracelet and sew the battery on the other side. Although I'm not sure how to fix the battery to the cloth and how to connect it to the micro controllers/data loggers. I'm guessing I could find some kind of battery holder for the 12mm cell battery? Other Questions about my assumptions: Will I have enough storage left over on the flash space or EEPROM to store the data click after the sketch code has been loaded in? Will a watch battery provide enough energy to run this device all day? Is the Coin Cell Battery - 12mm the correct external power source for this project? I encourage any feed back, criticism, comments, help of any kind to move me along with this preparation so that I can move forward and purchase the parts I need. Thanks! Michael
Topic by mhussar | last reply
I want to get started using PICAXE microcontrollers after using both PICs and AVRs before, and I have already learned the BASIC language, it's pretty easy, as the name would suggest. My main interests with them are that they can be easily programmed with two resistors and a 3-pin serial cable, they are easy to program and have ADC inputs, and also audio functionality. What would be a good place to get started, I was looking at the 08M, but it looks like it was recently discontinued and replaced by the M2. The reason I don't really want to move on is because I have just learned the pinouts and functions for the 08M, and also a lot of projects here on instructables utilize it. I was looking at building the tic tac tunes.I also noticed that it has the markings "12F683", so does this mean I could just buy a pic 12F683 chip and use it as a picaxe? Are they identical or is there a subtle difference in them. I also noticed that the audio functionality seems to be very limited in that the smaller chips only do polyphonic notes, and the mid sized chips only do mp3 from eeprom, and only the very large 40 pin chips do audio. What is the smallest chip that supports a full range sound file. Memory shouldn't be too much of a problem as the clip is only about a second long, so one with 256k should be fine, as long as it features internal audio. My last question is what should I buy, as in chips (universal and common experimentation chips), and any other accessories I may need. By the looks of things, all I need is the chip, a headphone socket, resistors, and a download cable.
Question by andy70707 | last reply
I have pic12f675. i have the neccessary asm and the header files.but i cannot compile it. please can you send me the hex file after compiling the program? as iam a student of class 8, idon't know how to compile. can you also send me the required steps? The required files are posted ;******************************* ;;LED FX.asm ; 11-3-2010 ;******************************* list p=12F629 radix dec include "p12f629.inc" errorlevel -302 ; Dont complain about BANK 1 Registers during assembly __CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT ;Internal osc. ;_MCLRE_OFF - master clear must be off for gp3 to work as input pin ;**************************************************************** ; variables - names and files ;**************************************************************** temp1 equ 20h ; temp2 equ 21h ; temp3 equ 22h ; temp4 equ 23h ; jump equ 24h ;jump value for table1 fadeUp equ 25h fadeDwn equ 26h sequences equ 27h sw_duration equ 28h testing equ 29h ;**************************************************************** ;Equates ;**************************************************************** status equ 0x03 rp1 equ 0x06 rp0 equ 0x05 GPIO equ 0x05 status equ 03h option_reg equ 81h ; bits on GPIO pin7 equ 0 ;GP0 LED C pin6 equ 1 ;GP1 LED B pin5 equ 2 ;GP2 LED A pin4 equ 3 ;GP3 Sw A pin3 equ 4 ;GP4 Sw B pin2 equ 5 ;GP5 Sw C ;bits rp0 equ 5 ;bit 5 of the status register ;**************************************************************** ;Beginning of program ;**************************************************************** org 0x00 nop nop nop nop nop SetUp bsf status, rp0 ;Bank 1 movlw b'11111000' ;Set TRIS GP0,1,2 out GP3,4,5 input movwf TRISIO ; bcf status, rp0 ;bank 0 movlw 07h ;turn off Comparator ports movwf CMCON ;must be placed in bank 0 clrf GPIO ;Clear GPIO of junk call _memory btfss gpio,5 ;SwA to: "record new sequence" goto record btfsc gpio,3 ;SwC removes attract sequence goto $+.10 movlw 0FFh bsf status,rp0 ;select bank1 movwf EEDATA bcf status,rp0 ;select bank0 movlw .101 bsf status,rp0 ;select bank1 movwf EEADR bcf status,rp0 ;select bank0 call write movlw .101 bsf status,rp0 movwf EEADR bsf EECON1,0 ;starts EEPROM read operation storing result in EEDATA movf EEDATA,w ;move read data into w bcf status,rp0 xorlw .8 ;look for 8 - for Attract mode btfsc 03,2 goto Attract_Seq ;selected sequence will appear first goto Main ;**************************************************************** ;* Tables * ;**************************************************************** table1 addwf PCL,F ;02h,1 add W to program counter retlw .10 ; retlw .50 retlw .30 ; retlw .50 retlw .100 ; retlw .40 ; program starts at bottom of table retlw .10 ; retlw .50 retlw .30 ; retlw .50 retlw .60 ; retlw .10 ; retlw .50 retlw .10 ; retlw .50 retlw .100 ; retlw .20 ; retlw .50 retlw .30 ; retlw .50 retlw .70 retlw .60 ; retlw .100 ; retlw .50 retlw .100 ; retlw .50 retlw .100 ; retlw .70 ; retlw .50 retlw .30 ; retlw .50 retlw .70 ; table2 addwf PCL,F ;02h,1 add W to program counter goto seq1 goto seq2 goto seq3 goto seq4 goto seq5 goto seq6 goto seq7 goto seq8 goto seq9 goto seq10 goto seq11 goto seq12 ;**************************************************************** ;* Delays * ;**************************************************************** _xuS movwf temp2 _uS movlw .10 movwf temp1 decfsz temp1,f goto $-1 decfsz temp2,f goto _uS retlw 00 _ZuS movwf temp2 goto $+2 goto $+2 decfsz temp2,f goto $-3 retlw 00 _xmS movwf temp2 _x nop decfsz temp1,f goto _x decfsz temp2,f goto _x retlw 00 ;5mS delay for increments in timing for "New Sequence" _5mS movlw 05h movwf temp2 _5 nop decfsz temp1,f goto _5 decfsz temp2,f goto _5 retlw 00 _10mS movlw 0Ah movwf temp2 _10 nop decfsz temp1,f goto _10 decfsz temp2,f goto _10 retlw 00 _50mS movlw .50 movwf temp2 _50 nop decfsz temp1,f goto _50 decfsz temp2,f goto _50 retlw 00 _100mS movlw .100 movwf temp2 _100 nop decfsz temp1,f goto _100 decfsz temp2,f goto _100 retlw 00 _150mS movlw .150 movwf temp2 _150 nop decfsz temp1,f goto _150 decfsz temp2,f goto _150 retlw 00 ;**************************************************************** ;* Sub Routines * ;**************************************************************** _memory movlw .48 movwf temp1 movlw 2Fh movwf fsr incf fsr,f movlw 0FFh movwf indf decfsz temp1,f goto $-4 retlw 00 ;SwB puts current sequence into EEPROM for turn on. ;and puts "marker" in location 101 Attract movf sequences,w ;put sequence number into w bsf status,rp0 ;select bank1 movwf EEDATA bcf status,rp0 ;select bank0 movlw .100 bsf status,rp0 ;select bank1 movwf EEADR bcf status,rp0 ;select bank0 call write movlw .8 bsf status,rp0 ;select bank1 movwf EEDATA incf EEADR,1 bcf status,rp0 ;select bank0 call write nop goto $-1 ;Project must be turned off ;Seq selected as Attract will be displayed when project turned on Attract_Seq movlw .100 bsf status,rp0 movwf EEADR bsf EECON1,0 ;starts EEPROM read operation. Result in EEDATA movf EEDATA,w ;move read data into w bcf status,rp0 movwf temp4 movf temp4,w call table2 goto $-2 ;record new sequence - looks for "no switch pressed" for 1.25 seconds to exit ;uses files 30h to 5Fh (48 files) ;three files per "step" 1st file = LEDs, 2nd = Off time, 3rd = on time ;15 steps allowed - look for 5Dh record btfss gpio,5 ;wait for release of button A goto $-1 movlw 30h movwf fsr ;start storage at file 30h ;look at keys being pressed - identifies 2 or 3 keys pressed together _r1 clrf sw_duration _r1a call _5mS incfsz sw_duration,1 ;5mS x 256 = 1.25seconds goto $+2 goto Store ;time out! store files 30h to 5Fh in EEPROM btfss gpio,5 ;see if one or more Sw is pressed goto $+5 btfss gpio,4 goto $+3 btfsc gpio,3 goto _r1a ;no sw pressed create 2.5 sec timing ;1,2,or 3 sw pressed call _10mS ;delay to detect 2 or 3 switches incfsz sw_duration,1 goto $+2 goto Main btfsc gpio,5 ;SwA goto $+2 bsf gpio,0 ;turn on LED A btfsc gpio,4 ;SwB goto $+2 bsf gpio,1 ;turn on LED B btfsc gpio,3 ;SwC goto $+2 ; bsf gpio,2 ;turn on LED C ;LEDs have been illuminated movf gpio,w movwf indf ;w moved to fsr's file (30h+) incf fsr,f movf sw_duration,w ;off time!! movwf indf ;w moved to fsr's file (30h+) incf fsr,f clrf sw_duration _r2 call _5mS incfsz sw_duration,1 goto $+2 goto record ;time out! keys pressed too long. Start again btfss gpio,5 goto _r2 ;sw pressed btfss gpio,4 goto _r2 ;sw pressed btfss gpio,3 goto _r2 ;sw pressed ;file empty. Put duration into file movf sw_duration,w ;on time movwf indf ;w moved to fsr's file (30h+) incf fsr,f movlw 5Dh xorwf fsr,w btfss 03,2 goto $+2 goto Store ;stop at 15 steps. store files 30h to 5Fh in EEPROM clrf gpio goto _r1 ;sequences: ;seq1 Self-Programmed sequence ;1St file:LEDs 2nd file:OFF time 3rd file:On time seq1 bsf status,rp0 clrf EEADR bcf status,rp0 bsf status,rp0 bsf EECON1,0 ;starts EEPROM read operation. Result in EEDATA movf EEDATA,w ;move read data into w bcf status,rp0 movwf gpio bsf status,rp0 incf EEADR,1 bsf EECON1,0 ; movf EEDATA,w ;move read data into w bcf status,rp0 movwf temp4 ;this is OFF time. Store it bsf status,rp0 incf EEADR,1 bsf EECON1,0 ; movf EEDATA,w ;move read data into w bcf status,rp0 movwf sw_duration ;this is ON time call _5mS decfsz sw_duration,1 goto $-2 clrf gpio call _5mS decfsz temp4,f ;create OFF duration goto $-2 bsf status,rp0 incf EEADR,1 bsf EECON1,0 ; movf EEDATA,w ;move read data into w bcf status,rp0 xorlw 0FFh ;look for 0FFh - end of routine btfss 03,2 goto $-31 retlw 00 ;seq2 chase right - very fast seq2 bsf gpio,0 call _100mS bcf gpio,0 bsf gpio,1 call _100mS bcf gpio,1 bsf gpio,2 call _100mS bcf gpio,2 call _100mS clrf gpio retlw 00 ;seq3 chase right seq3 bsf gpio,0 call _150mS bcf gpio,0 bsf gpio,1 call _150mS bcf gpio,1 bsf gpio,2 call _150mS bcf gpio,2 call _150mS clrf gpio retlw 00 ;seq4 chase right with off-delay at end seq4 bsf gpio,0 call _150mS bcf gpio,0 bsf gpio,1 call _150mS bcf gpio,1 bsf gpio,2 call _150mS bcf gpio,2 call _150mS retlw 00 ;seq5 left right left right seq5 bsf gpio,0 call _150mS bcf gpio,0 bsf gpio,2 call _150mS bcf gpio,2 retlw 00 ;seq6 middle on middle off seq6 bsf gpio,1 call _150mS bcf gpio,1 call _150mS clrf gpio retlw 00 ;seq7 All on all off seq7 clrf gpio call _150mS decf gpio,f call _150mS clrf gpio retlw 00 seq8 ;seq8 middle on then sides on bsf gpio,1 call _150mS bcf gpio,1 bsf gpio,0 bsf gpio,2 call _150mS clrf gpio retlw 00 ;seq9 police flasher 3 times left 3 times right seq9 bsf gpio,0 call _50mS bcf gpio,0 call _50mS bsf gpio,0 call _50mS bcf gpio,0 call _50mS bsf gpio,0 call _50mS bcf gpio,0 call _50mS bsf gpio,2 call _50mS bcf gpio,2 call _50mS bsf gpio,2 call _50mS bcf gpio,2 call _50mS bsf gpio,2 call _50mS bcf gpio,2 clrf gpio call _50mS retlw 00 ;seq10 random flicker seq10 movlw .32 ;start at bottom of table movwf jump bsf gpio,1 movf jump,w ;put table jump value into w call table1 call _xmS bcf gpio,1 decfsz jump,f goto $+2 retlw 00 ;top of table found movf jump,w ;put table jump value into w call table1 call _xmS goto $-11 ;seq11 slow fade up down seq11 clrf fadeUp ; clrf fadeDwn incf fadeUp,f ;to create 1 (delay routine does not like 00) bsf gpio,1 movf fadeUp,w call _xuS bcf gpio,1 movf fadeDwn,w call _xuS decfsz fadeDwn,f ; goto $-8 incf fadeDwn,f ;to produce 1 bsf gpio,1 movf fadeUp,w call _xuS bcf gpio,1 movf fadeDwn,w call _xuS decf fadeUp,f incfsz fadeDwn,f goto $-8 clrf gpio retlw 00 ;seq12 fast fade up down seq12 clrf fadeUp ; clrf fadeDwn incf fadeUp,f ;to create 1 (delay routine does not like 00) bsf gpio,1 movf fadeUp,w call _ZuS bcf gpio,1 movf fadeDwn,w call _ZuS decfsz fadeDwn,f ; goto $-8 incf fadeDwn,f ;to produce 1 bsf gpio,1 movf fadeUp,w call _ZuS bcf gpio,1 movf fadeDwn,w call _ZuS decf fadeUp,f incfsz fadeDwn,f goto $-8 clrf gpio retlw 00 ;Store Store the 15 steps in EEPROM Store bsf status,rp0 ;select bank1 clrf eeadr bcf status,rp0 ;select bank0 movlw .48 movwf temp1 movlw 2Fh movwf fsr incf fsr,f ;fsr starts at file 30h movf indf,w ;retreive data in file 30h bsf status,rp0 ;select bank1 movwf eedata ; bcf status,rp0 ;select bank0 call write bsf status,rp0 ;select bank1 incf eeadr,1 bcf status,rp0 ;select bank0 decfsz temp1,f goto $-10 goto Main write bsf status,rp0 ;select bank1 bsf eecon1,wren ;enable write movlw 55h ;unlock codes movwf eecon2 movlw 0aah movwf eecon2 bsf eecon1,wr ;write begins bcf status,rp0 ;select bank0 writeA btfss pir1,eeif ;wait for write to complete goto writeA bcf pir1,eeif bsf status,rp0 ;select bank1 bcf eecon1,wren ;disable other writes bcf status,rp0 ;select bank0 retlw 00 ;**************************************************************** ;* Main * ;**************************************************************** Main clrf sequences movf sequences,w call table2 btfss gpio,5 ;Is swA still pressed? goto $-3 ;SwA still pressed movf sequences,w ;SwA released call table2 btfss gpio,4 ;SwB puts current sequence at turn-on goto Attract btfsc gpio,5 goto $-5 ;SwA not pressed incf sequences,f movlw .12 xorwf sequences,w btfss 03,2 goto $-12 goto Main ;**************************************************************** ;*EEPROM * ;**************************************************************** org 2100h END
Question by sahebpanda2001 | last reply
Hey everyone, this is my first post and I am not quite sure how to word this, so please bear with me. :) Here is the ATTINY85 datesheet Basically, the long and short of it is, I made a simple USB HID Programmable Key-stroker Device. I used Macetech's capslocker for inspiration on the circuit design and then wrote my own program in C. Capslocker Design (Basically this design exactly except I have also added two zener diodes for voltage regulation on both USB data lines and a programming header) : http://macetech.com/blog/?q=node/46 However, instead of just sending Capslock on and off (like the Capslocker), this one allows you to send strings of text, combinations of keys, can switch to a mouse and I am currently adding a wireless receiver and RF remote trigger the device with the press of a button to mess with my boss. Currently, if I want to change the keystrokes or mouse movements I have to recompile and then burn the new software onto the ATtiny85 device. Instead, I am looking for an easier way to go about modifying the keystrokes that are saved on the device. Is there anyway to save data to a specific part of the ATTINY that would not require recompiling each time I wanted to update the recorded keystrokes? Or maybe a way to save a text file onto an ATTINY85 device that the C program could load? If not could this be done with an EEPROM? I have programming experience but I am reallllly green when it comes to AVR stuff, so I am not even sure what I should be looking for to accomplish this. Any nudge in the right direction would be appreciated. Thanks for reading and I love this community I have been lurking for quite some time and your posts have helped me quite a bit!
Question by DELETED_MakiY2 | last reply
I would like to share with you all an awesome project and some doubts and questions related to the same. This is a 24 x 24 LED Matrix project taken from here. All the data is taken from the same link. 24×24 LED dot matrix --> This is pretty old circuit but I found it interesting to describe here. 24×24 LED display is formed by using 9 8×8 Dot LED matrix displays, that are connected to AT90S2313 MCU. MCU scans an indicator lines in series. Special PC program is written which allows drawing images on screen and transfer them via COM port to device. You can send images in series what gives an animation effect. Circuit is was built using obsolete AT90S2313 MCU which can be replaced by Attiny2313 MCU with minor modifications of firmware. To make program work you event don’t need to connect device to computer COM port. You can store images in other master MCU EEPROM memory Each received byte from UART is immediately sent to 8 LEDs, second byte to next 8 LEDs and so on. Bytes has to be sent one by one without delay. USART is working at 115200 baud, 8bits, no parity. ---------------------------------------------------------------------------------------------------------------------------------- THE PROBLEMS >1>I really dont know if the circuit is good or not tell me if it is going to work. >2>I cant get 8x8 dot matrix displays so i am going to normal leds to a 24x24 one. >3>I have never worked with bus before (the bold red lines in the circuit) so i dont know how to connect it. >4>The schems are segmented i am finding it hard to figure out how to connect some of the segments. >5>Also i need to know how to hook it up to my pc. >6>I have never done programming so i need to know how to program the ic. THANK YOU I couldnt get the images uploaded nicely so i linked them. 1 2
Topic by science_freak | last reply