There is no need for soft serial or external chip to get another serial port. The STM32 medium density has five USARTs/UARTs on chip - the core’s TX and RX pins are connected to USART2 via PA2 and PA3. The only other usable one is USART1 with its alternate function remapped pins bring USART1_TX and USART1_RX to PB6 and PB7 … wired to pins D1 and D0 on the core. As long as you dont also need the I2C, theres another hardware serial available.
All that needs to happen is the spark_wiring_usart.cpp to be updated to give an option for using USART1 in addition to USART2, maybe make a Serial2 instance which is setup for using D1 and D0 for TX and RX. I took a quick look and in its current state the Serial object looks quite broken. I wouldn’t have high expectations to receive data without dropping bytes since its all written with polled IO.
But hey, to get a 2nd serial port “its just software”