Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version CC11xx #133

Open
elektron-bbs opened this issue Jun 13, 2020 · 20 comments
Open

Version CC11xx #133

elektron-bbs opened this issue Jun 13, 2020 · 20 comments

Comments

@elektron-bbs
Copy link
Contributor

@sidey79
Im Commit f949589 setzt du den Chip auf CC1101, wenn 0x17 gelesen wurde. Laut Datenblatt https://www.ti.com/product/CC110L Seite 76 handelt es sich dabei aber eindeutig um einen CC110L.
Das die Beschriftung bei dem User im Issue #127 (comment) nicht mit der Version übereinstimmt, würde ich erst mal in Frage stellen. Vielleicht ist der Chip ja umgelabelt.

Ich würde das besser ändern in:

					case 0x17:
					case 0x07:
						 MSG_PRINT("L");
						break;

In "case 0x07" ist übrigens auch noch ein "break" zuviel.

Anstelle von "chip CC110 unknown" wäre es vielleicht auch noch ganz günstig, die Versionsnummer mit auszugeben. So in der Art: "chip CC110 unknown 0x018"

sidey79 added a commit that referenced this issue Jun 16, 2020
Fixes syntax, corrected chipid
#133
@sidey79
Copy link
Contributor

sidey79 commented Jun 16, 2020

Hab das mit der chipid zusammen mit einem Syntax Fehler korrigiert.

Vielleicht sollten wir einfach immer nur die chipid ausgeben und keine Bezeichnung von dem Chip selbst?

@elektron-bbs
Copy link
Contributor Author

Die Idee hatte ich auch, zumal ja beim Nano und ganz besonders beim Radino der Flash knapp wird. Die Umwandlung der ChipId in eine Bezeichnung könnte dann in FHEM erfolgen.

@sidey79
Copy link
Contributor

sidey79 commented Jun 16, 2020

Stimmt, die Umwandlung ist über ein Perl Modul besser und universeller zu realisieren.

Wenn Du magst, kannst Du ja einen pr machen oder warten bis ich das anpasse

@elektron-bbs
Copy link
Contributor Author

Als Ausgabe vom SIGNALduino würde ich dann vorschlagen:
statt bisher:
V 3.4.0-dev SIGNALduino cc1101 (chip CC1101) - compiled at Feb 15 2020 23:23:10
wird daraus:
V 3.4.0-dev SIGNALduino cc1101 (version 20) - compiled at Feb 15 2020 23:23:10
oder in hex:
V 3.4.0-dev SIGNALduino cc1101 (version 0x14) - compiled at Feb 15 2020 23:23:10

@sidey79
Copy link
Contributor

sidey79 commented Jun 16, 2020

Anstelle Version 0x20 vielleicht nur 0x20.

@sidey79
Copy link
Contributor

sidey79 commented Jun 16, 2020

Wenn ich überlege, hat die chipid eigentlich nichts im versionsstring der Firmware zu suchen.
Wir können doch einfach das Register anfragen und die Information in ein Reading packen

@elektron-bbs
Copy link
Contributor Author

Das ist natürlich auch eine Option, aber so wie es jetzt ist, haben wir alle Infos von einem Gerät z.B. nach dem Flashen der Firmware in einem Rutsch. Ich habe dafür jetzt etwas vorbereitet. Das sähe dann so aus:

Radino
V 3.4.0-dev_2020-06-17 SIGNALduino cc1101 (433 Mhz, 0x14) - compiled at Jun 17 2020 18:04:25
Nano
V 3.4.0-dev_2020-06-17 SIGNALduino cc1101 (0x03) - compiled at Jun 17 2020 20:33:30
V 3.4.0-dev_2020-06-17 SIGNALduino cc1101 (0x14) - compiled at Jun 17 2020 20:33:30
ESP8266
V 3.4.0-dev_2020-06-13 SIGNALESP cc1101 (0x14) - compiled at Jun 17 2020 20:50:06

@sidey79
Copy link
Contributor

sidey79 commented Jun 17, 2020

Aber die chipid hat nichts mit der firmware ansich zu tun und gehört auch nicht in die Versionsanzeige.

Es ist ja sowieso nur eine Information auf die man nicht viel geben kann oder?

@elektron-bbs
Copy link
Contributor Author

Nur wegen einem bekannten Fall zu schlussfolgern, das diese Information nicht zuverlässig ist, halte ich für überspitzt.
Ich kann zumindest schon mal für 9 Stück CC11xx belegen, das die Version passt.

@HomeAutoUser
Copy link
Contributor

HomeAutoUser commented Jun 18, 2020

Wenn ich überlege, hat die chipid eigentlich nichts im versionsstring der Firmware zu suchen.
Wir können doch einfach das Register anfragen und die Information in ein Reading packen

Die Info auszugeben wird schon praktisch sein.

JA, mit der Version an sich hat dies nichts zu tun aber dann müsste man auch das cc1101 weglassen.

Die Variante von @elektron-bbs #133 (comment) finde ich aussagekräftig genug. So ist alles in einem und wir vermehren keine Internals oder Readings.

@sidey79
Copy link
Contributor

sidey79 commented Jun 18, 2020

cc1101 kommt in die Versionsgabe, weil es beim compilieren mit compiliert wird oder eben nicht.

Die chipid wird ja nicht zur Compiler Zeit eingebaut.
Irgendwer hatte das mal vor langer Zeit eingebaut.

Mir fällt aber kein Grund ein, wieso wir nicht alle Register gleich behandeln und diese einzeln abfragen wenn benötigt.

@elektron-bbs
Copy link
Contributor Author

cc1101 kommt in die Versionsgabe, weil es beim compilieren mit compiliert wird oder eben nicht.

Das ist eigentlich noch ein Grund, warum die Ausgabe des aktuell ausgelesenen Registers mit in die Versionszeile sollte. So sehe ich sofort, ob die Kommunikation mit dem CC11xx prinzipiell noch funktioniert. Wenn dort 0x00 erscheint, ist etwas faul.
Du kannst natürlich auch z.B. nach der Versionsabfrage zusätzlich noch eine Abfrage des Registers einleiten. Das müsste dann auch bei jedem Reset oder Init u.s.w. erfolgen.

Gleich behandelt werden auch jetzt nicht alle Register. Ein "get sduino ccreg 31" bringt die Meldung "unknown Register 31, please choose a valid cc1101 register". Die Status-Register lassen sich momentan nicht abfragen. Wenn ich die entsprechende "if (exists($cc1101_register..." Abfrage auskommentiere, bekomme ich die Ausgabe:

ccreg: 
Configuration Register Detail address (name) = value:
0x31 ( ) = 0x14

Das müsste man dann halt etwas umschreiben: Statt "Configuration Register" halt "Status register".

@sidey79
Copy link
Contributor

sidey79 commented Jun 18, 2020

Wieso gehört die Kommunikation zum cc1101 in die Versionsabfrage will sich mir nicht erschließen.
Mit der Version des SIGNALduino hat es doch nichts zu tun ob die Kommunikation läuft oder nicht.

Gegen das Abfragen der Statusregister spricht doch wenig.
Mit der Frequenz machen wir das doch auch.

@elektron-bbs
Copy link
Contributor Author

Wieso gehört die Kommunikation zum cc1101 in die Versionsabfrage will sich mir nicht erschließen.
Mit der Version des SIGNALduino hat es doch nichts zu tun ob die Kommunikation läuft oder nicht.

Mit der Firmware-Version des SIGNALduino hat es tatsächlich nichts zu tun.

Gegen das Abfragen der Statusregister spricht doch wenig.
Mit der Frequenz machen wir das doch auch.

Das wird dann halt wieder ein größerer Umbau. Ich dachte an eine schnelle, einfache Lösung...

@sidey79
Copy link
Contributor

sidey79 commented Jun 24, 2020

Ich denke, es würde ausreichen das Register 31 genau so abzufragen wie die Frequenz.
Sollte keine riesen Aktion werden und die Firmware kann es schon

@elektron-bbs
Copy link
Contributor Author

Ich hatte schon mal eine Tabelle mit in Frage kommenden Transceivern zusammengestellt:

  PARTNUM | VERSION | Radio     | Frequency bands (MHz)     | Description
 ---------|---------|-----------|---------------------------------------------------------------------------------------------------------
    0     |  3      | CC1100    | 300-348, 400-464, 800-928 | low-cost sub-1 GHz transceiver
    0     |  4      | CC1101    | 300-348, 387-464, 779-928 | Low-power Sub-1 GHz wireless transceiver
    0     |  4      | CC1101-Q1 | 310-348, 420-450, 779-928 | Low-Cost Low-Power Sub-1-GHz RF Transceiver
    0     | 14      | CC1101    | 300-348, 387-464, 779-928 | Low-power Sub-1 GHz wireless transceiver
    0     |  5      | CC1100E   | 470-510, 950-960          | Low-power Sub-1 GHz wireless transceiver for China and Japan frequency bands
    0     |  7      | CC110L    | 300-348, 387-464, 779-928 | Value line Sub-1 GHz wireless transceiver
    0     | 17      | CC110L    | 300-348, 387-464, 779-928 | Value line Sub-1 GHz wireless transceiver
    0     |  8      | CC113L    | 300-348, 387-464, 779-928 | Value line Sub-1 GHz wireless receiver
    0     | 18      | CC113L    | 300-348, 387-464, 779-928 | Value line Sub-1 GHz wireless receiver
    0     | 15      | CC115L    | 300-348, 387-464, 779-928 | Value line Sub-1 GHz wireless transmitter

Bitte ergänzen, falls noch weitere Typen bekannt.

@HomeAutoUser HomeAutoUser added this to To Do in ToDo Firmware Sep 5, 2020
@HomeAutoUser
Copy link
Contributor

@sidey79
wie ist hier der letzte Standpunkt / Meinung von dir?

@sidey79
Copy link
Contributor

sidey79 commented Dec 15, 2020

@HomeAutoUser
Mein Standpunkt ist, dass wir es ins Modul einbauen sollten.
Passt prinzipiell sogar in eine Bibliothek, da es nichts mit dem Signalduino ansich sondern mit dem CC1101 zu tun hat.

@HomeAutoUser
Copy link
Contributor

Wie

  1. meinst du dies, das es prinzipiell in eine Bibliothek passen würde?
  2. gedenkst du die Umsetzung?

Mit diesen genaueren Angaben habe ich vielleicht mehr Vorstellungskraft, um das umsetzen.

@sidey79
Copy link
Contributor

sidey79 commented Dec 15, 2020

Ich meinte damit ein Perl Modul und kein Fhem Modul, was einem die hexcodes in Text übersetzt.

sidey79 added a commit that referenced this issue Jul 7, 2022
* Make a 3.4 Branch

* SIGNALDuino.ino | SIGNALESP.ino

Fixes default parameter definition

* Implement a Wifi reconnect event to restart the telnet server (#120)

* SIGNALESP.ino

Implement a Wifi reconnect event to restart the telnet server
Set ArduinoJson Version to the desired one

* commands.h

fixed output of version after ping response

* fix names

- fix cc1101 name

* FIX: value of success must be saved before calling reset()

success must be saved before calling reset() because reset() will set it back to FALSE

* [SIGNALESP] FIX: Min. timer time for cronTimer is 1ms

if duration is greater than maxPulse it could happen that the timer time for the cronjob timer becomes negative (or a big value if it is unsigned)

* NEW: Settings if LED_BUILTIN on WEMOS boards as PIN_LED

* baseline for plattformio

* Changes to be compatible with plattformio

* signalesp.h

prevent crash if first char is a linebreak or #

* commands.h

fix unsupported command output which caused a crash

* Arduino IDE compatibility

Added sym links to project files to support arduino compatible layout

* Linked ArduinoJson per file

* platformio.ini

corrected exclude for arduino-ide compatible directory

* corrected CMakeLists.txt for testproject

added testproject to plattformio.ini (does not work)

* build.sh

updated build config and travis config for arduino-ide dir structure

* change travis build config

* clear links

* modified symlinks to be relative

* remove some symlinks to add again

* added symlinks again

* rename dir

* removed file to link later

* added symlinks

* build.sh deploy.sh

executable flag added

* added missing timerone header

* added missing cpp file

* fix compile

* travis

changed arduino core version to 2.6.3

* travis

update arduino cmd

* fixed arduino cmd

* added missing symlinks

* cc1101.cppAdded wait_miso call after select to repair factory reset

* signalesp.h

fixed crash with ; as command

* signalesp.h

modified connection handling

commands.h

added dumpEEPROM when doing factory reset

* SimpleFIFO.h

enqueue: ICACHE_RAM_ATTR added to support usage via interrupt

* Version 3.4.0-dev+20200216

* platformio.ini

added nanocc1101 and nanocc1101@debug

* send.h
fix unexpected serial print until null termination char is found

* platformio.ini

Compile definition for serval boards added

* send.h
cleanup some code

* signalDecoder/src/signalDecoder.cpp

prevents crashes

* Update some compile errors

* Update platformio.ini

* added different bootloaders
* revised HW names
* revised minicul 8/16MHz
* added monitor_port / upload_port variable to define on start

* Update cc1101.cpp

* fix
- no compile in Arduino IDE from nano, promini, esp8266 without cc1101 but with DEBUG flag
- no compile in PlatformIO from nano, promini, esp8266 without cc1101 but with DEBUG flag

* Update signalduino.h

* revised PROGVERS

* Update signalduino.h

* wrong date from PR

* Update platformio.ini

* revised ESP32 config to upload and view monitor

* Update platformio.ini

* revised ESP32 device useful note
* duplicate ESP32 device for DEBUG

* commands.h

add 0x17 chipid for cc1101

* Update commands.h

Fixes syntax, corrected chipid
#133

* ESP32 support (#134)

 * revised for ESP32 (#130)
platformio.ini
  * revised
  * remove comments & sort devices
  * remove @lastest comment from esp8266
compile_config.h
  * added PIN´s for ESP32
  * revised comments
signalesp.h
  * revised code for ESP32 (timings, WiFi.events)
  * fix code line event
signalduino.h
  * revised date
README.md
  * added doc

* Update .travis.yml - ESP32 compile (#137)

* Update .travis.yml
* option to compile ESP32 11d8ece

* Update .travis.yml
* option to compile ESP32 without cc1101 11d8ece

* Maple Mini (stm32f103cbt6) support (#136)

* Hardware stm32f103cbt6 integrated
* code and config adapted to compile with and without cc1101

* Update dev r3.4 with PlattformIO Updates incl STM Support (#138)

* signalesp.h

prevent crash if first char is a linebreak or #
fixed crash with ; as command
modified connection handling


* commands.h

added dumpEEPROM when doing factory reset
fix unsupported command output which caused a crash
add 0x17 chipid for cc1101

* Arduino IDE compatibility

Added sym links to project files to support arduino compatible layout

* Linked ArduinoJson per file

* platformio.ini

corrected exclude for arduino-ide compatible directory

* corrected CMakeLists.txt for testproject

added testproject to plattformio.ini (does not work)


* build.sh

updated build config and travis config for arduino-ide dir structure

* travis

changed arduino core version to 2.6.3

* cc1101.cpp
Added wait_miso call after select to repair factory reset


* SimpleFIFO.h

enqueue: ICACHE_RAM_ATTR added to support usage via interrupt


* send.h
fix unexpected serial print until null termination char is found
cleanup some code

* signalDecoder/src/signalDecoder.cpp
prevents crashes

* Update some compile errors

* ESP32 support (#134)

* Maple Mini (stm32f103cbt6) support (#136)

* Update platformio.ini (#141)

* added radinoCC1101 to compile
* revised comments
* testet again all PIN´s and compatibility
  (ICT radino is based on Arduino Leonardo & Micro)

* fix - strobe commands register (#140)

* Update cc1101.cpp

* fix strobe commands register

* Update / fix deploy travis config (#142)

* travis.yml

updated yml for successful deployment of release
fixed some yaml warnings on travis

* extension of xFSK mode (#145)

* xFSK extension

extra_script.py
  * creation file for easy file generation (firmware)
platformio.ini
  * extension of hardware and special debug versions

any files: bitstore.h, cc1101.cpp, cc1101.h, commands.h,
compile_config.h, functions.h, output.cpp, output.h,
send.h, signalDecoder.cpp, signalDecoder.h, signalSTM.h,
signalduino.h, signalesp.h
  * extension of xFSK mode (send & receive)
  * change notation of calls due to excessive memory consumption
    (smaller alternative is used)
  * memory comparison completed -> optimizations for the program sequence
    - processing on weak hardware runs faster, example: radino, nano
    - more memory space of the processors
  * revised debug texts

* create symblink

* Update signalDecoder.cpp

  * revised comment for a clear statement

* Update signalDecoder.h

  * added comments
  * added SIGNALduino project query added for linkage

* Update output.cpp

  * added SIGNALduino project query added for linkage

* rename variable and revised comments

* revised comments to better understanding

* optimized code / string class / xFSK send call

cc1101.cpp
  * revised string class in void sendFIFO
  * optimized void sendFIFO
cc1101.h
  * revised call void
send.h
  *  optimized call xFSK to send

* Update output.cpp

* revised size comments

* Update signalDecoder.h

* added comments
* macro SDC_PRINT, SDC_WRITE, SDC_PRINTLN inserted to test

* Update compile_config.h

* Update compile_config.h

* revised code

signalDecoder.cpp
  * MSG_PRINT | DBG_PRINT write back to SDC_PRINT
  * optimized some lines
output.cpp
  * revised comments

* back to big memory size functions

signalDecoder.cpp
  * back to big memory size sprintf to save ready compile
platformio.ini
  * revised some comments to view result

* Update signalDecoder.cpp

* back to big memory size sprintf to save ready compile

* Update signalDecoder.cpp

* back to big memory size sprintf to save ready compile

* Update platformio.ini

* revised comments size & version

* Update signalDecoder.cpp

* fix not compile with define DEBUGDECODE
  (wrong parameter, macro "SDC_WRITE" passed 2 arguments, but takes just 1)

* Update signalDecoder.cpp

* fix not compile with define DEBUGDECODE
(in POI | error:   initializing argument 1 of .... )

* Update platformio.ini

* sort hardware for better overview
* revised sketch size comments

* Update compile_config.h

* Update output.cpp

* for test

* delete output.cpp

* delete output.cpp
(UNITTEST have no link to compile_config.h)
* added functions in some files

* update code after REVIEW

send.h
  * #145 (comment)
 * remove omment
compile_config.h
  * #145 (comment)
  * revised PROGVERS variable
cc1101.cpp
  * corrected indentation
signalDecoder.h
  * #145 (comment)
  * comment changed

* create output.cpp for functions in project

cc1101.cpp
  * transfer function MSG_PRINTtoHEX
functions.h
  * transfer function DBG_PRINTtoHEX

* create symblink

* fix output ESP32 & ESP 8266 (#148)

* fix output ESP32 & ESP 8266
- fix, no calling of commands possible

* dev-r3.5_xFSK_tab_comments - revision indentation (#149)

* Update signalDecoder.cpp
  * revised indentations
  * revised comments

* Update signalDecoder.h
  * revised comments

* Update compile_config.h
  * revised version

* sketch optimized for hardware with little flash (#150)

* sketch optimized for hardware with little flash

* platformio.ini
  - revised sketch size comments
* signalesp.h
  -  increase writeBufferSize
* compile_config.h
  - revised PROGVERS
  - revised comments
* signalDecoder.h
  - added new function
* signalDecoder.cpp
  - added new functions myitoa (selfmade alternative to non standard itoa function c++)
  - remove some sprintf and revised to alternate better sketch size function SDC_PRINT
  - remove old comments
  - added function SDC_PRINT_intToHex / nibble_to_HEX
  - limit array

* fix writeBufferSize for ESP

* fix writeBufferSize for ESP (#151)

* CI Jobs auf Gihub actions übertragen (#152)

* .github\workflows\unittest.yml

Added unittest workflow
Made scrips executable and renamed travis ci yaml file
Use more recent (latest supported rapidassist) version
added all boards and combinations to workflow
excluded some combinations
Added github actions unittest workflow, which tests and uploads to a created relese

* Compile micro8 mhz (#155)

* .github\workflows\unittest.yml

- added radino board with incicuit board files
- Added dependency between unittest and deploy jobs to run in sequence
- renamed firmware to be compatible with flash command from module

* Update README.md
Updated badge in readme

* Codequality check via Github Actions (#154)

* Create codeql-analysis.yml

* Delete build.sh

* Delete deploy.s

* created .github\actions\arduino-cli\action.yml

move common steps to prepatr arduino-cli into a composite step and refenrence on it in the workflows:
- workflows/codeql-analysis.yml
- workflows/unittest.yml

* Upload compiled firmwares always as artifacs (#159)

 Artifacts are always placed at github actions to get the compiled firmware files

* fix-esp8266-firmware-debug (#158)

* ./github/unittest.yml

- Removed debug options for compiler (esp8266) #157
- Upload compiled firmwares always as artifacs (#159)
- generate a comment output with the flash and ram usage
- changed submodule checkout to checkout action

* unittest.yml

run comments only if this is a pullrequest

* Update action.yml

spell fix

* Update compile_config.h (#156)

* Update signalduino.h

Add all pins as input pullup

* Fix wait_Miso defines in cc1101.h (#213)

Static variables are only initialized once so the implementation only
worked for a total of 255 iterations.
After that, functions like cmdStrobe(), readReg() or
writeReg() return immediately if the MISO pin is high.

The variable miso_count is now out of while's scope and therefore no
longer needs to be static.

* Fix - GFSK & nano crash (#211)

* dev-r3.5_xFSK Bugfix GFSK
 - Allows other modulations than ASK / OOK and 2-FSK to be received.

* fix nano328 send crash
 - revised PROGVERS
 - pins excluded to avoid crash
 - revised comment & changed pins
 - revised code PullUp loop #211 (comment)

* Fixes a endless loop in mcdecoder  (#228)

* CMakeList.txt
- Added policy for new cmake versions

* win32arduino
- updated to newest version

* test.cpp
- Added test to find endlesslopp

* signalDecoder.cpp
- try to avoid var overflow
- modify if conditions checking

* signalDecoder.cpp
- Fix not stopping early enough

* signalDecoder.cpp
- fix to last exit for shorts

* signalDecoder.cpp
- revert mpi and mpiplusone checking

* install_rapidassists.sh
- Update to version 0.10.0 to be compatible with win32arduino

* Update codeql-analysis.yml , platformio.ini (#244)

* Update codeql-analysis.yml

* Update platformio.ini
 - remove old event
 - update information
 - comment out hardware bootloader_v2 due to errors in the core

* Update unittest.yml

* Update signalDecoder.cpp (#245)

* Update signalDecoder.cpp
  - fix, code cannot compile with debug option DEBUGDECODE

* Update codeql-analysis.yml
  - use actions checkout also for submodules

* LED confirms receipt of FSK (#251)

Pin reception works at FSK inverted to OOK.

* Update platformio.ini

- useful hints added

Co-authored-by: HomeAutoUser <abfall-container@gmx.de>
Co-authored-by: uwekaditz <55511593+uwekaditz@users.noreply.github.com>
Co-authored-by: devzero84 <devzero84@users.noreply.github.com>
Co-authored-by: Udo <info@elektron-bbs.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
ToDo Firmware
  
To Do
Development

No branches or pull requests

3 participants