Not M5Stack product but 'family' ESP32-S3-Box MSFS2020 GPSout GPRMC and GPGGA data to 'esp-box'



  • The Espressif ESP32-S3-Box is a product that looks like some M5Stack products. I own quite a bunch of M5Stack products. When the Espressif ESP32-S3-Box (V 2.5) came out, I bought it. It was my intention to port my ongoing MSFS2020 GPSout project to the 'esp-box' (the (nick)name that Espressif uses for this device). It was until last weekend when through @Neradoc and @hathach, the maintainer of Adafruit tinyuf2 bootloader repo, on my request, had added the 'esp-box' to the list of boards compatible for the tinyuf2 bootloader. From that moment I was able to build a tinyuf2 bootloader firmware for the 'esp-box'. When that was done, I was able to copy the latest version of CircuitPython (V8.0.0-beta.2) to the device. Finally I was able to port my project to the 'esp-box'.

    That is why I created this post here so you can read about the existance of my project. See my repo on Github.
    GPS data on esp-box

    Below some REPL output:

    soft reboot
    
    Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
    code.py output:
    ]0;🐍Wi-Fi: off | code.py | 8.0.0-beta.2\
    loop(): my_machine= "ESP32-S3-Box-2.5 with ESP32S3"
    
    MSFS2020 GPS GPRMC data reception decoder script by @PaulskPt. 
    
    Number of loops in this run: 99
    ........................
    
    Start of loop 1
    ck_uart(): nr of bytes=  120
    ck_uart(): rcvd data: bytearray(b'$GPRMC,215807.00,A,5837.7935,N,13810.7771,W,164.0,319.8,161022,18.2,E*72\r\n$GPGGA,215807.00,5837.7935,N,13810.7771,W,1,05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
    ck_uart(): nr of bytes=  33
    ck_uart(): rcvd data: bytearray(b',0.0,4266.7,M,0.0,M,0.0,0000*51\r\n810.7771,W,164.0,319.8,161022,18.2,E*72\r\n$GPGGA,215807.00,5837.7935,N,13810.7771,W,1,05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
    ck_uart(): nr of bytes=  153
    ck_uart(): rcvd data: bytearray(b'$GPRMC,215811.00,A,5837.9408,N,13811.0171,W,164.0,319.6,161022,18.2,E*76\r\n$GPGGA,215811.00,5837.9408,N,13811.0171,W,1,05,0.0,4266.7,M,0.0,M,0.0,0000*5B\r\n\x00\x00\x00\x00\x00\x00\x00')
    ck_uart(): * at -11, $GPRMC at 0, $GPGGA at 74, n4 =114
    loop(): characters rcvd:  153
    loop(): split_types() result = True
    is_ac_stopped():  value of gs = 164.0, len(gs) = 5
    is_ac_stopped():  value of v_gs = 164
    loop(): handling msg nr: 01
    lcd_pr_msgs(): Duration rx -> lcd: 241 mSecs
    loop(): gc.mem_free()= 8148128
    Waiting for serial com line to become available...
    End of loop  1
    ........................
    

    Note: because the 'terminalio.font' doesn't have a glyph for the 'degrees' character I used the caret '^' instead,
    until I have added a font that can display the degrees character.

    For some other microcontroller i have ports of the same project on Github.