Twizy-Cfg: SEVCON-Shell für Arduino

  • LangeIT
  • LangeITs Avatar
  • Fresh Boarder
  • Fresh Boarder
  • Beiträge: 12
  • Dank erhalten: 3
10 Mai 2021 20:50 #211948 von LangeIT
Twizy-Cfg: SEVCON-Shell für Arduino
Ich habe nun die Library MCP_CAN_lib-master und MCP_CAN_lib_Deprecated-master parallel installiert und siehe da.
Es läuft. Stark danke euch für die Hilfe!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Delvecchio
  • Delvecchios Avatar
  • Pro Boarder
  • Pro Boarder
  • Fabio java
  • Beiträge: 578
  • Dank erhalten: 906
24 Feb 2023 20:12 #240917 von Delvecchio
Twizy-Cfg: SEVCON-Shell für Arduino
Hi Dexter,
first, thank you very much for your wonderful Twizy-cfg.
I'm trying to make it working with ESP32 and a MCP2515 module (it looks identical to "NiRen" module, same layout, same component, with 8mhz oscillator).
At the moment I receive this error:

If I google-trasnlated the previous pages in the right way, I understood that "NiRen" module won't work without replacing the oscillator with a 16mhz one.
Is it so?
Does this explain the error I receive, or have I to investigate elsewhere?
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • dexter
  • dexters Avatar
  • Autor
  • Moderator
  • Moderator
  • Beiträge: 6037
  • Dank erhalten: 4222
25 Feb 2023 10:31 #240935 von dexter
Twizy-Cfg: SEVCON-Shell für Arduino
You're introducing multiple error sources at once, you should sort them out one by one.

The error output doesn't look typical, as it loses the index/subindex of the command. It probably isn't a CAN issue, but rather related to the ESP32 platform.

The software was written for and has only been tested so far on the standard Arduino platforms available at that time, which were 8/16 bit processors. ESP32 is 32 bit, so some data types used need to take that into account. For example, compilers will not pack data structures on ESP32 on byte level by default, but translate any variable to at least 32 bits in memory, as that's the "native" value size on ESP32. CAN data comes in bytes, so to be mapped onto a data structure, that struct needs to be byte packed (tagged with "__attribute__ ((__packed__))"). That probably applies to the sdo_buffer (twizy_sdo) structure.

You'll also need to change the typedefs in "utils.h" to make sure they have the correct size. That applies at least to the UINT and WORD types, which need to be 16 bit, but are 32 bit on ESP32 with the current typedefs (as "int" is 32 bit on ESP32).

In code:

1. Change the UINT & WORD type definitions in "utils.h" from int to short:
typedef unsigned short UINT;
typedef unsigned short WORD;

2. Add the packed tag to the sdo_buffer definition in "CANopen.h":
union __attribute__ ((__packed__)) sdo_buffer {

  // raw / segment data:
  UINT8   byte[8];

  // request / expedited:
  struct __attribute__ ((__packed__)) {
    UINT8   control;
    UINT    index;
    UINT8   subindex;
    UINT32  data;
  };

};

Then try again & report.

Michael

Twike 3 (2001) … Emco Novum (2011) … Twizy 80 (2012) … Mii electric+ (2020)

dexters-web.de
Folgende Benutzer bedankten sich: Delvecchio

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • dexter
  • dexters Avatar
  • Autor
  • Moderator
  • Moderator
  • Beiträge: 6037
  • Dank erhalten: 4222
25 Feb 2023 10:35 #240937 von dexter
Twizy-Cfg: SEVCON-Shell für Arduino
You probably also need to add the packed tag to the unions & structs in "Tuning.h":
union __attribute__ ((__packed__)) cfg_status {
  
  UINT8 drivemode;
  
  struct __attribute__ ((__packed__)) {

…

struct __attribute__ ((__packed__)) cfg_profile {
…
  struct __attribute__ ((__packed__)) tsmap {

Michael

Twike 3 (2001) … Emco Novum (2011) … Twizy 80 (2012) … Mii electric+ (2020)

dexters-web.de
Folgende Benutzer bedankten sich: Delvecchio

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Delvecchio
  • Delvecchios Avatar
  • Pro Boarder
  • Pro Boarder
  • Fabio java
  • Beiträge: 578
  • Dank erhalten: 906
25 Feb 2023 12:17 #240944 von Delvecchio
Twizy-Cfg: SEVCON-Shell für Arduino
Thanks a lot.
I haven't thought before about structure padding.
I'll follow your suggestions and report back asap.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Delvecchio
  • Delvecchios Avatar
  • Pro Boarder
  • Pro Boarder
  • Fabio java
  • Beiträge: 578
  • Dank erhalten: 906
04 Mär 2023 21:12 - 04 Mär 2023 21:24 #241303 von Delvecchio
Twizy-Cfg: SEVCON-Shell für Arduino

Delvecchio schrieb: I'll follow your suggestions and report back asap.

Hi Dexter,
I confirm that porting to ESP32 is successfuly completed!
You were absolutly right: the error was due to structure/union padding.
I changed the lines of code you suggested me, and then Twizy-cfg started working on ESP32, without changing the oscillator (I kept 8mhz one).
I had to change the following line in mcp_can_dfs.h
define INT32U uint32_t
otherwise IDE refused to compile source, returning an error.
Also added a patched EEprom library (a porting of ESP8286 EEprom library by Paolo Becchi) which is actualy under test, because I preferred to avoid to use the deprecated one which relay on NVS.

To be more user-friedly, I integrated a serial monitor via web-server. This incresed a lot the size of the sketch, but there is space enough in EPS32.

Thank you so much for Twizy-cfg and for the suggestions you gave me.
Letzte Änderung: 04 Mär 2023 21:24 von Delvecchio.
Folgende Benutzer bedankten sich: dexter

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • dexter
  • dexters Avatar
  • Autor
  • Moderator
  • Moderator
  • Beiträge: 6037
  • Dank erhalten: 4222
05 Mär 2023 09:08 #241317 von dexter
Twizy-Cfg: SEVCON-Shell für Arduino
Thanks for your feedback, glad I could help. I've updated the repository to include these changes. Looking forward to see your fork going public / receive your PR.

Btw, I had no issues building with the latest mcp_can and iso-tp, no need to #define INT32U. Mabye your mcp_can is outdated?

Michael

Twike 3 (2001) … Emco Novum (2011) … Twizy 80 (2012) … Mii electric+ (2020)

dexters-web.de
Folgende Benutzer bedankten sich: Delvecchio

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Delvecchio
  • Delvecchios Avatar
  • Pro Boarder
  • Pro Boarder
  • Fabio java
  • Beiträge: 578
  • Dank erhalten: 906
05 Mär 2023 16:35 - 05 Mär 2023 16:36 #241337 von Delvecchio
Twizy-Cfg: SEVCON-Shell für Arduino

dexter schrieb: Looking forward to see your fork going public / receive your PR.

I'm not used to github, but I'll try it asap.
Letzte Änderung: 05 Mär 2023 16:36 von Delvecchio.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • klaona47
  • klaona47s Avatar
  • Fresh Boarder
  • Fresh Boarder
  • Beiträge: 1
  • Dank erhalten: 0
06 Mär 2023 20:21 #241373 von klaona47
Twizy-Cfg: SEVCON-Shell für Arduino
Hallo Neuling braucht Hilfe,
Hardware mit Arduino + MCP252515 (16 MHz) erfolgreich zusammengebaut und alles ordentlich installiert. Lesen und schreiben auf den Sevcon funktioniert ohne Probleme.
Ich habe nun 2. Gerät mit einem Arduino Nano V3 + MCP252515 (16 MHz) zusammengebaut , ebenfalls alles wieder ordentlich installiert. Im Seriellen Monitor läuft nach dem Start
die "Hilfe" Version ab, eingaben am Rechner zB rs 1008 0 werden ordentlich mit "Sevcon Offline" Quittiert. Sieht also eigentlich alles gut aus.
Am Fahrzeug allerdings erhalte ich immer " ERROR 0043 SDO 0x1018.02: 0x05040000: SEVCON OFFLINE" Ich habe es mit verschieden Nano`s versucht , immer das selbe.
Strom an Fahrzeug ist eingeschaltet, das Display zeigt an, dass das Fahrzeug bereit ist.
Mit dem ersten Gerät funktioniert es fehlerlos.
Ich hoffe mein Problem einigermaßen gut dargestellt zu haben.
Vielen Dank

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Delvecchio
  • Delvecchios Avatar
  • Pro Boarder
  • Pro Boarder
  • Fabio java
  • Beiträge: 578
  • Dank erhalten: 906
07 Mär 2023 14:46 - 07 Mär 2023 14:46 #241381 von Delvecchio
Twizy-Cfg: SEVCON-Shell für Arduino

Delvecchio schrieb:

dexter schrieb: Looking forward to see your fork going public / receive your PR.

I'm not used to github, but I'll try it asap.

I published my fork . Please be patient with me because it's the first fork for me and I'm not practicing with github.
If there is something to rework, I'll do.
Letzte Änderung: 07 Mär 2023 14:46 von Delvecchio.
Folgende Benutzer bedankten sich: dexter

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Delvecchio
  • Delvecchios Avatar
  • Pro Boarder
  • Pro Boarder
  • Fabio java
  • Beiträge: 578
  • Dank erhalten: 906
14 Mär 2023 08:27 #241689 von Delvecchio
Twizy-Cfg: SEVCON-Shell für Arduino
A friend of mine entered all the commands at a time and got this error

Now STOP light is always on the dashboard.
Any idea about to reset it?
Anhänge:
Folgende Benutzer bedankten sich: NobbyNobbs

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Goldbacher
  • Goldbachers Avatar
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 3877
  • Dank erhalten: 1756
14 Mär 2023 08:50 #241691 von Goldbacher
Twizy-Cfg: SEVCON-Shell für Arduino
Wurde das eingegeben, als sich der Twizy im GO-Modus befand?
Folgende Benutzer bedankten sich: Delvecchio, NobbyNobbs

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Snorre
  • Snorres Avatar
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 5822
  • Dank erhalten: 3830
14 Mär 2023 10:15 - 14 Mär 2023 10:19 #241694 von Snorre
Twizy-Cfg: SEVCON-Shell für Arduino
Bei allen Profilen, die ich bisher angewendet habe, war der 2. Parameter beim SPEED Kommando größer als der erste.
SPEED 92 100 müsste es meiner Meinung nach korrekt heißen. :)

Der 2. Parameter gibt an bei welcher Geschwindigkeit die STOP-Leuchte angeht.
Ob das fehlerhafte SPEED Kommando dazu führt, dass die STOP Leuchte dauerhaft aktiv ist, müsste getestet werden.

Dieses Tuningprofil fahre ich:
U1hbt4d+ZRYdAAAAAAAAAAAzR1tvZUo6MCY4UW9lRTAkHxoAAAAAAAAAAAFqAbty

Entweder mal dieses Profil testen, das SPEED Kommando korrigieren, oder auf Werkseinstellung zurücksetzen.

Übrigens, der Base64-Code für die Werkseinstellungen lautet schlicht:
AQ

Viel Erfolg!

Twizy Cargo, EZ 07/2014, 110.000 km, Stand 09/2024
Letzte Änderung: 14 Mär 2023 10:19 von Snorre.
Folgende Benutzer bedankten sich: dexter, FRZ77, Delvecchio, NobbyNobbs

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • stromkreisparadies
  • stromkreisparadiess Avatar
  • Platinum Boarder
  • Platinum Boarder
  • Markus
  • Beiträge: 3752
  • Dank erhalten: 1024
14 Mär 2023 10:25 #241695 von stromkreisparadies
Twizy-Cfg: SEVCON-Shell für Arduino

Delvecchio schrieb: A friend of mine entered all the commands at a time and got this error


Now STOP light is always on the dashboard.
Any idea about to reset it?


könnte es etwas mit dem preop modus zusammenhängen?
er muss wieder auf den op modus zurückgestellt werden, dann geht stop aus.

Grüße von Markus

-> Twizy Technic, LED Tagfahrlicht, LED Innenbeleuchtung, Sitzheizung, Radio mit Freisprecheinrichtung
-> Brammo Empulse R
-> 2x Elektrofahrrad (Stadt-Trekking und Downhill für den Wald)
Folgende Benutzer bedankten sich: dexter, Delvecchio, NobbyNobbs

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Delvecchio
  • Delvecchios Avatar
  • Pro Boarder
  • Pro Boarder
  • Fabio java
  • Beiträge: 578
  • Dank erhalten: 906
14 Mär 2023 11:16 - 14 Mär 2023 11:20 #241700 von Delvecchio
Twizy-Cfg: SEVCON-Shell für Arduino
@Goldbacher:
Thanks. I'll collect the information from my friend and report back.

@Snorre:
Thanks.
Is this the right command to enter (via webserial monitor) the suggested profile:
set 1 U1hbt4d+ZRYdAAAAAAAAAAAzR1tvZUo6MCY4UW9lRTAkHxoAAAAAAAAAAAFqAbty

And to reset to factory profile, this one?
set 1 AQ

I'm not sure about the first argument (profile number) in both.

@circuit paradase
Thanks. I'll report back if stop goes off after sending "o" command.
Letzte Änderung: 14 Mär 2023 11:20 von Delvecchio.
Folgende Benutzer bedankten sich: NobbyNobbs

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

   Become a Patron