Announcement

Collapse
No announcement yet.

Karter16's Silbergrau E46 M3 Journal

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • karter16
    replied
    I've had a few weeks of being very busy with work and family, and now myself, sick.

    I've still found some time to work on projects - progressing my tune under heavy closed-loop load, figuring out my persistent lean condition with aircon on (and finding a bug in the Terra full binary in the process), getting more done on the XDF, etc.

    This evening I found myself without much energy to do anything, so took the opportunity to do something I've been wanting to for ages. A direct comparison of KF_RF_N_AQ_REL and kf_rf_soll.

    Quick reminder:
    KF_RF_N_AQ_REL: The AlphaN map for the standard M3.
    kf_rf_soll: The larger AlphaN map for the CSL.

    The comparison is not entirely straightforward as the two tables differ in size in both dimensions. This means interpolating both axes. Once that is done then you have to account for the fact that the y-axis for KF_RF_N_AQ_REL is AQ_REL, whereas for kf_rf_soll it's aq_rel_rf which is a variably modified version of AQ_REL under 2400rpm.

    A bunch of excel later (which I'm sure would have been quicker if my brain was sharper) and I was able to spit the result out.

    Here's a comparison of the two maps (y axis in aq_rel_rf). number less than 1 means KF_RF_N_AQ_REL has more fuel in that cell and likewise greater than 1 means kf_rf_soll has more fuel.

    Click image for larger version

Name:	Screenshot 2025-09-20 at 7.57.38 PM.png
Views:	207
Size:	563.4 KB
ID:	319870

    It's important to note that the two still aren't entirely directly comparable as the injection tables differ somewhat between the CSL and standard M3. I will do these adjustments next, but I'm more just interested to see the patterns and if there's anything that can be extrapolated into the VE table for cells that are hard to hit in VE tuning. Interesting as well to run this comparison against my current VE table and see the areas of convergence, etc.



    Leave a comment:


  • karter16
    replied
    Well I'm finding the ability to configure the CAN messages very useful as I dive into understanding the RF calculations in more detail. I'm currently looking to understand the effect that things like TETV (tank ventilation), BA (fuel enrichment), etc. have on the repeatability of the lambda logging, and being able to easily swap around what I'm logging is a massive time saver. It's simply a case of:

    1: look up the variable I want to log
    2: update the address into the tune file parameter
    3: update the Gauge.S config with the parameter name and conversion factor.


    I also came across the first thing (DKBA - After-Spray) I want to log that is only available on the Slave CPU (it was only a matter of time), so the CAN logging feature now needs to be expanded to handle that. I confirmed a couple of weeks ago that the DPR (dual-ported RAM) is only about half full, so there's room for sure to use. I plan to prove the concept in a very similar way to what I did for the CAN send. I'll replace an existing function call in the Slave 10ms Task with a new function call which then calls both the original function and my additional function. That function will then copy the relevant memory address to the DPR.

    Once I've proven it out I'll probably then look to build out the ability to configure a set number of bytes to be pushed to the DPR so they can in turn be inserted into the CAN messages. The approach would be the same, parameters in the tune file that configure which Slave-only variables to push to the DPR. The parameters would be checked for valid address same as I am doing for the CAN parameters. I imagine 8 bytes (e.g. 1 whole CAN message) would be enough for all practical purposes.

    Leave a comment:


  • karter16
    replied
    Now that I'm setup for CAN logging I finally got a chance to try out my custom program and tune ROMs that allow for configuration of the additional CAN messages (7D0 and 7D1) in the partial binary (see here for the background: https://nam3forum.com/forums/forum/s...454#post310454).

    The good news is that it all worked first time! (to be fair I put a lot of effort into checking and rechecking the code to make sure it was right)

    First up I flashed the custom program to the DME and ran it with the standard tune. I've designed this such that if someone uses the custom program with a tune file not designed for it the additional functionality is simply disabled. Likewise if someone uses the custom tune with the standard program it is also gracefully handled.

    I then verified that DME functionality was as expected. E.g. normal function and no additional CAN message activity. All was well.

    I then added the new parameters to my tune file:

    Click image for larger version  Name:	Screenshot 2025-08-24 at 2.35.35 PM.png Views:	0 Size:	162.0 KB ID:	316508

    and flashed the tune. Sure enough everything still worked, and the 7D0 CAN message was present on the CANbus.

    Here are the values being logged.

    Click image for larger version  Name:	Screenshot 2025-08-24 at 2.53.16 PM.png Views:	0 Size:	146.5 KB ID:	316509

    I've got some more scenario testing to do. e.g. test the 7D1 message as well, intentionally put bad data into the config parameters and make sure it's handled gracefully etc. but super stoked all is working so far as this is the most complex change I've made to the program so far!

    Onwards and upwards - this functionality will be very useful to me as I dive into more refinement of my tune now I have high-frequency CAN logging available!
    Last edited by karter16; 08-23-2025, 08:14 PM.

    Leave a comment:


  • karter16
    replied
    So it was in fact the display that was at fault!

    Click image for larger version

Name:	IDG_20250824_095555_704.jpg
Views:	269
Size:	41.5 KB
ID:	316484

    Stoked to have this sorted and have captured a test log.

    The harness extension I'd made up worked perfectly. Simply intercepts at the steering angle sensor. I will be logging everything I need over CAN, so no need to do anything with the K-line. The 12V power to the steering angle sensor is from Terminal 15 so perfect for this use.

    Click image for larger version

Name:	IMG_3027 (1).jpg
Views:	264
Size:	166.8 KB
ID:	316485

    Leave a comment:


  • karter16
    replied
    Originally posted by heinzboehmer View Post

    He's pretty cool about replacing HW. He sent me a couple boards when we were debugging the FW for the latest HW. They cost nothing to manufacture, so retaining the client is likely worth a lot more than one board.

    Also, he's pretty active on the Gauge.S discord, in case you need to reach him quicker.
    You were spot on with this advice. He did some quick troubleshooting with me over email to confirm the board is at fault and he's shipping me out a new unit this week :-)

    Leave a comment:


  • heinzboehmer
    replied
    Originally posted by karter16 View Post

    yeah - not an ideal situation to be dealing with but it is what it is. Will see how I get on when I hear back from Sorek (think he was on vacation until today). I appreciate it's a tough one with this sort of product. As far as he's concerned I equally could have done something wrong to fry the board so will see how it goes.
    He's pretty cool about replacing HW. He sent me a couple boards when we were debugging the FW for the latest HW. They cost nothing to manufacture, so retaining the client is likely worth a lot more than one board.

    Also, he's pretty active on the Gauge.S discord, in case you need to reach him quicker.

    Leave a comment:


  • karter16
    replied
    Originally posted by heinzboehmer View Post
    Ah that's annoying. Hopefully it doesn't take too long to resolve!
    yeah - not an ideal situation to be dealing with but it is what it is. Will see how I get on when I hear back from Sorek (think he was on vacation until today). I appreciate it's a tough one with this sort of product. As far as he's concerned I equally could have done something wrong to fry the board so will see how it goes.

    Leave a comment:


  • heinzboehmer
    replied
    Ah that's annoying. Hopefully it doesn't take too long to resolve!

    Leave a comment:


  • karter16
    replied
    Originally posted by heinzboehmer View Post

    I've had the ribbons for the screens fail on me. The case bends them at too sharp of an angle and causes breaks. Try forcing wifi on (there's some setting you can set to true on the SD card, look at the github wiki) and scanning for networks with your phone. If you see "Logger.S" (I think), then the board is most likely fine.

    The screens are this: https://www.amazon.com/HiLetgo-SSD13...dp/B0CFF2QW5V/

    Should be easier to find a source for those than to have another board shipped out to you from the UK. Hopefully the screen is your problem!

    Edit: The other thing you can do is to try to talk to the uprocessor directly. It's just an ESP32, so any cheap programmer will let you do that. I'm pretty sure that even the prod FW builds print something out over serial when the device boots. More info: https://github.com/handmade0octopus/Gauge.S-sd-updater

    I also wrote a hacky validation FW that you can flash onto the board just to see if it is working: https://github.com/heinzboehmer/Gaug...54HP-Validator

    Use the sd card updater afterwards to flash back the FW from the main Gauge.S repo.
    Thanks for this - I forced WiFi on and powered up but no dice.

    Will wait for a reply from Sorek before going down the programmer route I think but that's some good options thanks!


    Sent from my iPhone using Tapatalk

    Leave a comment:


  • heinzboehmer
    replied
    Originally posted by karter16 View Post
    Well the Gauge.S appears to be dead on arrival. No action when connected to 12VDC bench supply. I've reached out to Sorek to find out whether there's any diagnostics I can do to confirm whether the board or display is at fault, but given the screen came in a lovely 3d printed case and the board itself was just chucked loose in the bubblewrap envelope I'm guessing it's probably the board.

    Will update when I have more info.
    I've had the ribbons for the screens fail on me. The case bends them at too sharp of an angle and causes breaks. Try forcing wifi on (there's some setting you can set to true on the SD card, look at the github wiki) and scanning for networks with your phone. If you see "Logger.S" (I think), then the board is most likely fine.

    The screens are this: https://www.amazon.com/HiLetgo-SSD13...dp/B0CFF2QW5V/

    Should be easier to find a source for those than to have another board shipped out to you from the UK. Hopefully the screen is your problem!

    Edit: The other thing you can do is to try to talk to the uprocessor directly. It's just an ESP32, so any cheap programmer will let you do that. I'm pretty sure that even the prod FW builds print something out over serial when the device boots. More info: https://github.com/handmade0octopus/Gauge.S-sd-updater

    I also wrote a hacky validation FW that you can flash onto the board just to see if it is working: https://github.com/heinzboehmer/Gaug...54HP-Validator

    Use the sd card updater afterwards to flash back the FW from the main Gauge.S repo.
    Last edited by heinzboehmer; 08-09-2025, 09:02 AM.

    Leave a comment:


  • karter16
    replied
    Well the Gauge.S appears to be dead on arrival. No action when connected to 12VDC bench supply. I've reached out to Sorek to find out whether there's any diagnostics I can do to confirm whether the board or display is at fault, but given the screen came in a lovely 3d printed case and the board itself was just chucked loose in the bubblewrap envelope I'm guessing it's probably the board.

    Will update when I have more info.

    Leave a comment:


  • collins7782
    replied
    thanks for the info.

    Leave a comment:


  • karter16
    replied
    Well pretty pleased with this for a first prototype.

    Click image for larger version

Name:	IDG_20250801_192429_382.jpg
Views:	216
Size:	32.9 KB
ID:	313994

    Click image for larger version

Name:	IDG_20250801_192435_625.jpg
Views:	206
Size:	40.3 KB
ID:	313995

    The insert fits perfectly and the two pieces fit together perfectly. I'm stoked that I got the internal geometries right for the insert as they were the hardest bit.

    I will do some measurements of the prints to make sure they are perfectly dimensionally accurate, and provided they are I need to adjust the seat between the top of the body and the cap by about 0.5mm in diameter and height. The printed cap fits on the OE body, but the OE cap is ever so slightly too large to fit the printed body. I want to make sure I'm as close to the original as possible with this so will make that adjustment.

    Key thing though is I can now go ahead and design the pockets for the grip pads and include the first iteration of that in the next prototype as well.

    Leave a comment:


  • 0-60motorsports
    replied
    Oh that sounds like an awesome idea! Id be interested in one pending the finished result.

    Leave a comment:


  • karter16
    replied
    I got the chance today (making the most of winter before the weather improves and I get started on house projects again) to get started on a project I've been wanting to do for a long time.



    The goal here is a 1:1 replica of the SMG shifter knob. Why? It occurred to me some time ago that modern manufacturing techniques present an opportunity to create a twist on the stock SMG shifter to make something a little bit unique.

    The plan is to have the knob 3D printed in titanium and then finish it to a polished surface which will hopefully be a cool twist on the chrome of the original item. The 4 leather pads I'm planning to do as leather-covered TPU with an ABS or similar backing (drawing heavy inspiration here from how heinzboehmer recovered the pads on his SMG).

    Why titanium? It is of course a PITA to finish, and it might not end up working out, but I've decided to give it a try for two reasons. Mostly because it's a cool thing to try, secondly - thermal conductivity. One of the nice things about the OE shifter being plastic is that the shifter doesn't feel ridiculously cold to touch on a winter morning. This is because plastic has poor thermal conductivity. Titanium of course has much higher thermal conductivity than plastic, but also it's an awful lot less than stainless steel or aluminium, so will help to reduce this effect.


    The model above as you see doesn't have the pockets cut for the leather pads, reason being I want to do a test print to make sure that I've got the internal geometries right first in case I need to change anything that affects the pockets for the pads. I'm intending to reuse the OE clear acrylic centre insert which mates the shifter with the shaft, so I need to make sure it's a spot-on fit.

    Anyway - first draft is being printed and will do some test fitting when I get the parts.

    In the meantime here are a few screen caps of the two parts:

    Click image for larger version

Name:	Screenshot 2025-07-27 at 4.52.32 PM.png
Views:	240
Size:	307.0 KB
ID:	313399

    Click image for larger version

Name:	Screenshot 2025-07-27 at 4.52.43 PM.png
Views:	230
Size:	280.5 KB
ID:	313400

    Click image for larger version

Name:	Screenshot 2025-07-27 at 4.53.05 PM.png
Views:	231
Size:	342.6 KB
ID:	313401

    Click image for larger version

Name:	Screenshot 2025-07-27 at 4.53.24 PM.png
Views:	225
Size:	347.4 KB
ID:	313402

    Leave a comment:

Working...
X