EEPROM map and types

The EEPROM stores the individual configuration for the RFzero programs. You can use the EEPROM just as you like and you may overwrite the RFzero default EEPROM addresses, but, the RFzero programs may have to be reconfigured before they become usable again or stall completely. You can also replace the default EEPROM with a new one for your own programs. Again it is all up to you.

Default EEPROM sizes

RFzero versions 1.x come with a 1 kB EEPROM in a DIP8 socket, Microchip 24LC08B.

RFzero versions 2.x come with a 16 kB EEPROM SOIC-8 mounted on the PCB, STMicroelectronics M24128. Holes are provided for an optional EEPROM in a DIP8 socket, that uses the same I2C address as the SOIC-8. Thus the factory mounted EEPROM has to be removed to use the optional EEPROM.

EEPROM map for the programs

The RFzero programs have one common EEPROM map, even if not all of the values are used in every program. The RFzero libraries expect to have exclusive rights to EEPROM addresses 0 to 63. Below is the RFzero default EEPROM map. But please note that it is subject to changes.

SectionAddrBytesDescriptionMnemonic
Hardware01EEPROM ID-
0-1511H/W version-
16-31164Reference start frequencyHW_RefStartFreq
201Has the ref. start frequency ever been written to the EEPROMHW_RefStartFreqWritten
211T1 configurationHW_T1
221Display modeHW_DisplayMode
231Attenuator modeHW_AttenuatorMode
241Warm up before RFHW_WarmUp
251SX1509 I2C addressHW_SX1509addr
261MCP23017 I2C addressHW_MCP23017addr
271Rotary encoder typeHW_RotEncType
281PCF8574, all variants, I2C addressHW_PCF8574addr
291Si5351A current levelsHW_CurLevels
GPS321Leap secondsGPS_LeapSeconds
32-47331Wait for GPS to be validGPS_Wait
341Echo the GPS data to USBGPS_Echo
351Local time hours relative to UTCGPS_LocalHoursOffset
361Local time minutes relative to UTCGPS_LocalMinutesOffset
371Daylight saving timeGPS_LocalDST
381Local AM/PM timeGPS_LocalAMPM
Filters481Filter, 125 kHzFilter0
48-63491Filter, 250 kHz
501Filter, 500 kHz
511Filter, 1 MHz
521Filter, 2 MHz
531Filter, 3 MHz
541Filter, 5 MHz
551Filter, 8 MHz
561Filter, 13 MHz
571Filter, 21 MHz
581Filter, 35 MHz
591Filter, 58 MHz
601Filter, 90 MHz
611Filter, 160 MHz
621Filter, 268 MHz
631Filter, above 268 MHz
Common6421NameCOMMON_Name
64-1278516Call signCOMMON_Call
1019LocatorCOMMON_Locator
Beacon1288Nominal beacon frequencyBEACON_Frequency
128-2551361MultiplierBEACON_Multiplier
1371Calibration intervalBEACON_CalibInterval
1381Keying styleBEACON_KeyingStyle
1391CW speed, dot durationBEACON_CWSpeed
14016Call signBEACON_Call
15616MGM messageBEACON_MGMMsg
1721MGM extra messageBEACON_MGMMsgExtra
1731MGM message typeBEACON_MGMMsgType
1921IBP start minuteBEACON_IBPMinute
1931IBP start secondBEACON_IBPSecond
1941Power levelBEACON_PowerLevel
1951SBP mixed modeBEACON_SBPMode
1961SBP transmission bit maskBEACON_SBPMask
1978SBP frequencyBEACON_SBPFrequency
20516SBP call signBEACON_SBPCall
22116SBP MGM messageBEACON_SBPMGMMsg
2371FST4W modeBEACON_FST4Wmode
2381FST4 modeBEACON_FST4mode
2391JT9 modeBEACON_JT9mode
2401Chirp modeBEACON_ChirpMode
2411JT65 modeBEACON_JT65mode
2421JT4 modeBEACON_JT4mode
2431Q65 modeBEACON_Q65mode
WSPRTX2561Transmission modeWSPRTX_TXMode
FST4WTX2571Filter modeWSPRTX_FilterBits
256-3832581Automatically update the locatorWSPRTX_AutoLocator
2591Send type 3 messageWSPRTX_Type3Message
2601Number of timeslots usedWSPRTX_Timeslots
2611Time slot 0 (MSN sequence 1, LSN sequence 0)WSPRTX_Sequence0
2621Time slot 1 (MSN sequence 1, LSN sequence 0)
2631Time slot 2 (MSN sequence 1, LSN sequence 0)
2641Time slot 3 (MSN sequence 1, LSN sequence 0)
2651Time slot 4 (MSN sequence 1, LSN sequence 0)
2661Time slot 5 (MSN sequence 1, LSN sequence 0)
2671Time slot 6 (MSN sequence 1, LSN sequence 0)
2681Time slot 7 (MSN sequence 1, LSN sequence 0)
2691Time slot 8 (MSN sequence 1, LSN sequence 0)
2701Time slot 9 (MSN sequence 1, LSN sequence 0)
2711Time slot 10 (MSN sequence 1, LSN sequence 0)
2721Time slot 11 (MSN sequence 1, LSN sequence 0)
2731Time slot 12 (MSN sequence 1, LSN sequence 0)
2741Time slot 13 (MSN sequence 1, LSN sequence 0)
2751Time slot 14 (MSN sequence 1, LSN sequence 0)
2764Frequency for index 0WSPRTX_Freq0
2804Frequency for index 1
2844Frequency for index 2
2884Frequency for index 3
2924Frequency for index 4
2964Frequency for index 5
3004Frequency for index 6
3044Frequency for index 7
3084Frequency for index 8
3124Frequency for index 9
3164Frequency for index 10
3204Frequency for index 11
3244Frequency for index 12
3284Frequency for index 13
3324Frequency for index 14
3361Control bits for index 0WSPRTX_Control0
3371Control bits for index 1
3381Control bits for index 2
3391Control bits for index 3
3401Control bits for index 4
3411Control bits for index 5
3421Control bits for index 6
3431Control bits for index 7
3441Control bits for index 8
3451Control bits for index 9
3461Control bits for index 10
3471Control bits for index 11
3481Control bits for index 12
3491Control bits for index 13
3501Control bits for index 14
3511Power for index 0WSPRTX_Power0
3521Power for index 1
3531Power for index 2
3541Power for index 3
3551Power for index 4
3561Power for index 5
3571Power for index 6
3581Power for index 7
3591Power for index 8
3601Power for index 9
3611Power for index 10
3621Power for index 11
3631Power for index 12
3641Power for index 13
3651Power for index 14
QO1003848The fixed f0 frequencyQO100_F0
384-4323921The f0 multiplication factorQO100_F0Multi
3938The f1 receiver frequencyQO100_F1RX
4011The f1 receiver multiplication factorQO100_F1RXMulti
4028The f1 transmitter frequencyQO100_F1TX
4101The f1 transmitter multiplication factorQO100_F1TXMulti
GPSDO4328The frequencyGPSDO_Freq
Counter4641The number of averagesCOUNTER_Averages
464-4794651The gate timeCOUNTER_GateTime
Multi LO4808The freq0 frequencyMULTILO_Freq0
488-5434888The freq1 frequency
4968The freq2 frequency
5048The freq3 frequency
5128The freq4 frequency
5201The freq0 multiplierMULTILO_Multi0
5211The freq1 multiplier
5221The freq2 multiplier
5231The freq3 multiplier
5241The freq4 multiplier
Signal generator5441Power, 100 kHzSIGGEN_Power0
544-6975451Power, 300 kHz
5461Power, 1 MHz
5471Power, 3 MHz
5481Power, 10 MHz
5491Power, 30 MHz
5501Power, 100 MHz
5511Power, 200 MHz
5521Power, 280 MHz
5531Power, 290 MHz
5541Reserved
5551Reserved
55612Memory 0SIGGEN_Memory0
56812Memory 1
58012Memory 2
59212Memory 3
60412Memory 4
61612Memory 5
62812Memory 6
64012Memory 7
65212Memory 8
66412Memory 9
VFO6981Filter modeVFO_FilterMode
698-8996991Output modeVFO_OutputMode
7001Band in useVFO_Band
7011Frequency steps maskVFO_Steps
7021CW pitchVFO_CWpitch
7031Reserved
70412Band data for index 0VFO_BandData0
71612Band data for index 1
72812Band data for index 2
74012Band data for index 3
75212Band data for index 4
76412Band 0 settingsVFO_Band0
77612Band 1 settings
78812Band 2 settings
78812Band 3 settings
81212Band 4 settings
82412Memory 0VFO_Memory0
83612Memory 1
84812Memory 2
86012Memory 3
87212Memory 4

All the address mnemonics must have the EEPROM_ prefix added, e.g. EEPROM_HW_RefStartFreq.

RFzero uses little endianness.

Qualified EEPROMs

All RFzero versions have been tested with the below EEPROMs.

DeviceRFzero type nameIDSize [kB]I2C addressPage size [Bytes]Pages
24AA08, 24LC08B or
24AA128, 24FC128, M24128
EEPROM_TYPE_AUTO1
6
1
16
0x5016
64
64
265
24AA08EEPROM_TYPE_24AA08110x501664
24AA128EEPROM_TYPE_24AA1286160x5064256
24FC128EEPROM_TYPE_24FC1286160x5064256
24LC08B (default v.1.#)EEPROM_TYPE_24LC08B110x501664
24LC64EEPROM_TYPE_24LC64480x5032256
24LC1025EEPROM_TYPE_24LC102551280x501281024
AT24C16EEPROM_TYPE_AT24C16320x5016128
AT24C256EEPROM_TYPE_AT24C2562320x5064512
M24128 (default v.2.#)EEPROM_TYPE_M241286160x5064256
M24C32EEPROM_TYPE_M24C32740x5032128

The EEPROM_TYPE_AUTO is a special RFzero type name used instead of all EEPROMs with an ID equal to 1, e.g. EEPROM_TYPE_24LC08B, or all EEPROMs with an ID equal to 6, e.g. EEPROM_TYPE_M24128. When calling the eeprom.setType(EEPROM_TYPE_AUTO) function, the library tries to detect if the EEPROM is ID type 1 or 6. This makes the default RFzero programs more portable across the two different EEPROMs especially in the RFzero Manager where it is not possible to edit the source code. However, it is always best to use a specific RFzero type name in the source code if possible.

If everything fails you should upload either the standard RFzero program EEPROM_HW_Ver1, if the EEPROM in your RFzero is a 24LC08B, or the EEPROM_HW_Ver2, if the EEPROM in your RFzero is an M24128.

Changing to a new EEPROM

If you want to change to a new EEPROM it is highly recommended to

  1. Load the Chip Manager program
  2. Power down the RFzero
  3. Change the EEPROM
  4. Power up the RFzero
  5. In the Chip Manager do a reset of all the parameters

This way the EEPROM has been formatted so the values are in line with the RFzero programs. After performing the above steps you may proceed with the other programs and tailor the parameters in more details.