Tips: IKEA SPARSNÄS Energidisplay

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
havresylt
Inlägg: 60
Blev medlem: 5 maj 2014, 14:15:52
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av havresylt »

Jag har grävt lite mer i det hela nu. Jag skrev en minimal kod baserat på RFM69-biblioteket (nedan). Även här ser man att frekvensen alltid läses som 1023999938, oberoende av vad jag sätter. Men förklaringen får man om man kollar på registrena, vilka alla är identiskt 0xFF, och 0xFFFFFF*FSTEP = 16777215*61.03515625 = 1023999938.96!

Så av nån anledning måste initialiseringen misslyckas på nåt sätt. Eller kan en sån här grej komma av nån felkoppling där nån signal alltid är hög (=1)?

Kod: Markera allt

#include <RFM69.h>
#include <RFM69registers.h>
#include <SPI.h>

#define SERIAL_BAUD   115200

#define NODEID        1    //unique for each node on same network
#define NETWORKID     99  //the same on all nodes that talk to each other
#define FREQUENCY    RF69_868MHZ

#define LED    D4   // 2
#define SPI_CS SS   // 15
#define IRQ_PIN D1  // 5

RFM69 radio = RFM69(SPI_CS, IRQ_PIN, true);

// Make it possible to read Vcc from code
ADC_MODE(ADC_VCC);

void setup()
{
  Serial.begin(SERIAL_BAUD);
  Serial.println("Initializing...");
  if(!radio.initialize(FREQUENCY, NODEID, NETWORKID))
  {
    Serial.println("initialize failed!");
  }
  radio.setHighPower();

  Serial.print (F("Vcc="));
  Serial.println(ESP.getVcc());
  pinMode(LED, OUTPUT);
  
  Serial.println("** Initially **");
  Serial.print("Frequency: "); Serial.println(radio.getFrequency());
  radio.readAllRegs();

  radio.setFrequency(868000000);

  Serial.println();
  Serial.println("** After setting frequency **");
  Serial.print("Frequency: "); Serial.println(radio.getFrequency());
  radio.readAllRegs();
}

void loop() {
}
bearing
Inlägg: 11232
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av bearing »

Vad får övriga register för värden?
Också FF?

Det var väl någon som skrev att dom avsiktligt felkopplar SPI, så det kanske är förklaringen?
Dvs ni läser från en ingång (miso/mosi) med intern pullup?
havresylt
Inlägg: 60
Blev medlem: 5 maj 2014, 14:15:52
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av havresylt »

bearing skrev:Vad får övriga register för värden?
Också FF?

Det var väl någon som skrev att dom avsiktligt felkopplar SPI, så det kanske är förklaringen?
Dvs ni läser från en ingång (miso/mosi) med intern pullup?
Jo allt var FF.

Hm, jag måste ha missat att sätta tillbaka MISO/MOSI-kopplingen, för det visade sig att den var korskopplad. När jag kopplar tillbaka MISO-MISO/MOSI-MOSI, då får faktiskt registrena andra värden än bara FF. Tveksamt om det blir bättre dock -- istället får jag problemet att initialize() misslyckas, och frekvensregistrena är alltid 0, oavsett om jag försöker tilldela nåt annat.

Får försöka förstå varför initialize failar istället.
havresylt
Inlägg: 60
Blev medlem: 5 maj 2014, 14:15:52
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av havresylt »

Hm, redan den första interaktionen vi gör med sensorn går dåligt. Här försöker man skriva registret REG_SYNCVALUE1, utan framgång:

Kod: Markera allt

do writeReg(REG_SYNCVALUE1, 0xAA); while (readReg(REG_SYNCVALUE1) != 0xaa && millis()-start < timeout);
if (readReg(REG_SYNCVALUE1) != 0xaa) {
  Serial.println("ERROR: Failed setting syncvalue1");
  return false;
}
Det verkar alltså som att vi nu kan läsa från register, men inte skriva...

Jag blir mer och mer skeptisk till den här Adafruit breakouten. Är det någon som har fått det att funka med den?

Jag ska försöka få tag på enbart RFMen och se om det går bättre där, verkar ju ha funkat för Sommarlov iaf.

Kan det ändå vara något man ska göra med EN och RST-pinnarna? Inte enligt Adafruit men man blir ju fundersam vid det här laget...
Användarvisningsbild
ffredrik
Inlägg: 340
Blev medlem: 20 oktober 2009, 17:52:18
Ort: Göinge

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av ffredrik »

Du skall nog inte ha semikolon efter writeReg parantesen.
Användarvisningsbild
sommarlov
Inlägg: 514
Blev medlem: 28 november 2015, 19:03:40
Ort: 08

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av sommarlov »

Kod: Markera allt

unsigned long start = millis();
const uint8_t timeout = 50;
do {
	writeReg(REG_SYNCVALUE1, 0xAA);
	yield();
} while (readReg(REG_SYNCVALUE1) != 0xaa && millis() - start < timeout);
Så var min orginalkod.
havresylt
Inlägg: 60
Blev medlem: 5 maj 2014, 14:15:52
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av havresylt »

Det där är alltså koden från RFM69-biblioteket. do-while utan braces är inget konstigt. Att yield() saknas hade ju kunnat vara grejen, men det beter sig exakt likadant när jag lägger till det...
Användarvisningsbild
sommarlov
Inlägg: 514
Blev medlem: 28 november 2015, 19:03:40
Ort: 08

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av sommarlov »

Detta är väl en dum fråga, men ni har 868mhz varianten och inte 915/434 av RFM:an?
havresylt
Inlägg: 60
Blev medlem: 5 maj 2014, 14:15:52
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av havresylt »

sommarlov skrev:Detta är väl en dum fråga, men ni har 868mhz varianten och inte 915/434 av RFM:an?
Yes, ska vara 868MHz. Köpte den här. Det är en grön/blå prick målad på den, och det ska indikera 868MHz-varianten.

Dessutom uppstår felet innan vi överhuvudtaget har gjort nåt som beror av frekvensen. De här SYNCVALUE1-operationerna görs ju innan den skriver frekvens eller andra specifika detaljer.
ToPNoTCH
Inlägg: 4847
Blev medlem: 21 december 2009, 17:59:48

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av ToPNoTCH »

Nu tar jag det här rätt ur minnet så jag är inte säker, men finns inte modulen i tre varianter 433,868,915.

Den du länkat till med blå prick skriver dom att den skall vara "900 MHz".
Det borde väl indikera 915MHz varianten.
havresylt
Inlägg: 60
Blev medlem: 5 maj 2014, 14:15:52
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av havresylt »

ToPNoTCH skrev:Nu tar jag det här rätt ur minnet så jag är inte säker, men finns inte modulen i tre varianter 433,868,915.

Den du länkat till med blå prick skriver dom att den skall vara "900 MHz".
Det borde väl indikera 915MHz varianten.
Såhär skriver de: "This is the 900 MHz radio version, which can be used for either 868MHz or 915MHz transmission/reception".

Jag är ingen expert på detta, men tycker det låter rimligt.

Dessutom har vi som sagt problem långt innan det blir tal om nån frekvens.
ToPNoTCH
Inlägg: 4847
Blev medlem: 21 december 2009, 17:59:48

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av ToPNoTCH »

Mmm...
Jag är inte övertygad.
Det är ju tre olika artikelnummer på modulerna:
RFM69HW-433S2
RFM69HW-868S2
RFM69HW-915S2

Men som du säger har du ju problem innan dess.
Skall jag vara ärlig har jag inte full koll på vart du fastnat.

I mitt fall så tog jag sommarlovs kod och modifierade nog bara anslutningen till min MQTT och WIFI (någonstans i bakhuvudet har jag en känsla av att jag ändrade något mer) sedan stoppade jag in det i en ESP8266.
Denna lösning har fungerat otroligt bra. Jag har inte rört detta sedan jag driftsatte för ett år sedan, och får fina data från Sparsnäs sändaren.

Det jag vill säga med detta är att jag har:
- Fungerande kod (någonstans i gömmorna)
- En extra modul (köpte två från Tyskland) som bevisligen funkar

Det känns som om jag borde kunna hjälpa dig på något vis.
Borre
Inlägg: 4564
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av Borre »

Kretsen är densamma så det bör fortfarande gå att prata med den även fast det vore fel variant, det är bara kringkomponenterna som avgör frekvensen.

Eftersom koden fungerar för andra ser jag ingen anledning till att det är den det är fel på, så är du helt säker på att du kopplat rätt?
havresylt
Inlägg: 60
Blev medlem: 5 maj 2014, 14:15:52
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av havresylt »

Borre skrev:Kretsen är densamma så det bör fortfarande gå att prata med den även fast det vore fel variant, det är bara kringkomponenterna som avgör frekvensen.

Eftersom koden fungerar för andra ser jag ingen anledning till att det är den det är fel på, så är du helt säker på att du kopplat rätt?
Nej, jag tror inte heller att det är fel på koden. Men det var intressant att felsöka och se var det skiter sig. Och nej, jag är inte helt säker på att jag kopplat rätt. Tar gärna emot tips på hur jag kan felsöka kopplingen, och förenkla för att se vad som kan vara fel. Samtidigt har ju två andra personer tidigare i tråden försökt koppla ihop enligt PHermanssons schema med denna Adafruit BoB och stött på exakt samma fel. Är ju lite konstigt om alla har kopplat fel på exakt samma sätt...
havresylt
Inlägg: 60
Blev medlem: 5 maj 2014, 14:15:52
Ort: Uppsala

Re: Tips: IKEA SPARSNÄS Energidisplay

Inlägg av havresylt »

ToPNoTCH skrev:Mmm...
Jag är inte övertygad.
Det är ju tre olika artikelnummer på modulerna:
RFM69HW-433S2
RFM69HW-868S2
RFM69HW-915S2

Men som du säger har du ju problem innan dess.
Skall jag vara ärlig har jag inte full koll på vart du fastnat.

I mitt fall så tog jag sommarlovs kod och modifierade nog bara anslutningen till min MQTT och WIFI (någonstans i bakhuvudet har jag en känsla av att jag ändrade något mer) sedan stoppade jag in det i en ESP8266.
Denna lösning har fungerat otroligt bra. Jag har inte rört detta sedan jag driftsatte för ett år sedan, och får fina data från Sparsnäs sändaren.

Det jag vill säga med detta är att jag har:
- Fungerande kod (någonstans i gömmorna)
- En extra modul (köpte två från Tyskland) som bevisligen funkar

Det känns som om jag borde kunna hjälpa dig på något vis.
Nej jag är inte heller övertygad. Jag hittar inte vilken modul det är Adafruit har använt sig av exakt, men det är helt klart en av de där. Det suger ju att beteckningen är på undersidan som man inte ser som den sitter...

Bild

Jag tror det är något med Adafruit-BoBen som skiljer sig från hur grundmodulen beter sig för er. Ingen verkar ju ännu fått det att funka med Adafruiten.
Skriv svar