Please remind me of open bugs, hopefully with fixes (but not feature requests)

PaulStoffregen

Well-known member
I'm fixing issues and merging fixes in prep for 1.60-beta1.

Will merge new features for 1.60-beta2... but before merging new stuff I want to start 1.60 with a first beta focusing on fixes only (or mostly).
 
LittleFS
https://github.com/PaulStoffregen/LittleFS/pull/56 - fixes a bug in getMediaName and a couple of other fixes
T4 quad encoder lib: may want to synch with https://github.com/mjs513/Teensy-4.x-Quad-Encoder-Library
Not sure if there were any updates to the display libs:

No feature updates?
 
There eas the issue with SerialEventX did not work if your SerialX.begin included the format parameter...
I have fix in my variants_override branch part of PR: https://github.com/PaulStoffregen/cores/pull/750

The commit:

One can always cherry pick...

EDIT: Also don't know when you last pulled in:
FlexIO_T4
ILI9488_t3
 
Last edited:
As you know there are problems with t5he Time library, in particular the calculation of unix time seems to be in error.
 
Any chance I can ask someone who's a C++ expert to look into a compile error with USBHost_t36? Looking specifically at the Mouse example, but others have the same issue.

It compiles fine with default settings. But when Tools > Optimize is set to Debug, the linker complains about undefined reference to `vtable for USBHIDInput'

Maybe we're missing a constructor or destructor or something else in one of the abstract classes?
 
ILI9488_t3

Which repository should I clone? Currently I have git@github.com:mjs513/ILI9488_t3.git. When I try to pull in the latest, I get this:

Code:
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint:   git config pull.rebase false  # merge
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.

Not sure how this happened? I don't seem to have any local commits or edits.
 
Merged. But please see my comments on that issue about other concerns. Any chance you could look at those and send another pull request?
Responded in detail on Github. But will look at in the morning - day is pretty much over for me - getting ready for diner and settling down for the night.
 
Does this fully fix that problem?

It did on my branch. It was pretty simple, there were two versions of the begin, converted it to just one version, where the format parameter was optional...

The version you put in then was what a mentioned as possible fix earlier on in theread, but later was suggested to combine the two begins...

Also need to then replicate that for Serial2, Serial3, Serial4, ...
 
Any chance I can ask someone who's a C++ expert to look into a compile error with USBHost_t36? Looking specifically at the Mouse example, but others have the same issue.

It compiles fine with default settings. But when Tools > Optimize is set to Debug, the linker complains about undefined reference to `vtable for USBHIDInput'

Maybe we're missing a constructor or destructor or something else in one of the abstract classes?
Had a quick look, it seems like there are several virtual functions in USBHIDInput that are declared but not defined, intended to be implemented by derived classes. They should be declared as pure virtual (e.g. "virtual void hid_input_begin(uint32_t topusage, uint32_t type, int lgmin, int lgmax) =0;").

Probably this doesn't cause an error with non-debug builds because the USBHIDInput class is never instantiated directly (only derived from) so the unused vtable is dropped before linking.
 
Had a quick look, it seems like there are several virtual functions in USBHIDInput that are declared but not defined, intended to be implemented by derived classes. They should be declared as pure virtual (e.g. "virtual void hid_input_begin(uint32_t topusage, uint32_t type, int lgmin, int lgmax) =0;").

Probably this doesn't cause an error with non-debug builds because the USBHIDInput class is never instantiated directly (only derived from) so the unused vtable is dropped before linking.
That appears to be the issue, if I change the virtual functions in this class to:
Code:
    virtual hidclaim_t claim_collection(USBHIDParser *driver, Device_t *dev, uint32_t topusage) = 0;
    virtual bool hid_process_in_data(const Transfer_t *transfer) {return false;}
    virtual bool hid_process_out_data(const Transfer_t *transfer) {return false;}
    virtual bool hid_process_control(const Transfer_t *transfer) {return false;}
    virtual void hid_input_begin(uint32_t topusage, uint32_t type, int lgmin, int lgmax) {}
    virtual void hid_input_data(uint32_t usage, int32_t value) {}
    virtual void hid_input_end() {}
    virtual void disconnect_collection(Device_t *dev) {}
    virtual void hid_timer_event(USBDriverTimer *whichTimer) { }
One I made pure ... as for sure each of the classes need to implement the claim or they can not do anything...
Sever of the others maybe could be, but I just gave them empty implementations, as many of them
maybe different implementations may not need to do anything.

And debug built
 
Can you refresh my memory with a link? Ideally to a page with a test case I can run?
The UnixTime reported by ut = now() gives a UnixTime which is different to the UnixTime calculated by various Web Sites. I am not necessarily saying you are wrong, but someone is.
The sites I have looked at on the web are here and here.
The code I use to demonstrate the problem is as follows:
Code:
#include <timeLib.h>

void setup() {
    //https://www.unixtimestamp.com/
    //https://www.nexcess.net/web-tools/unix-timestamp-converter/
    tmElements_t t;
    time_t ut;
    uint8_t h, m, s, d, mo;
    int  y;
    h = 11;
    m = 57;
    s = 5;
    d = 9;
    mo = 9;
    y = 2024;

    Serial.begin(9600);
    while (!Serial and millis() < 5000);

    setTime(h,m,s,d,mo,y);
    ut = now();
    Serial.print("UnixTime from Internet Sites: "); Serial.println(1725879425);
    Serial.print("UnixTime from Teensy = now(): "); Serial.println(ut);
    Serial.print("Difference:                   ");  Serial.println(1725879425 - ut);

    breakTime(ut,t);// 1725448362 + 3600, t);  // break time_t into elements

    Serial.print(t.Hour); Serial.print(":");
    Serial.print(t.Minute); Serial.print(":");
    Serial.print(t.Second); Serial.print("   ");
    Serial.print(t.Wday); Serial.print(" ");
    Serial.print(t.Day); Serial.print("/");
    Serial.print(t.Month); Serial.print("/");
    Serial.println(t.Year - 30);
};

void loop() {
    delay(10);
};
 
I'm running the script which checks all library examples for compile errors. It's finding several in MTP_Teensy. :(

LFS_Program_MTP_Simple_Datalogger
LFS_SPI_MTP_Simple_Datalogger
SD_Program_MTP-logger
SD_SPI_QSPI_MTP-logger
simple
simple_t4_audio_sd
 
Last edited:
Back
Top