Yup, it’s another “let’s wire up a SYN6988 board” thing, this time for MMBasic running on the Armmite STM32F407 Module (aka ‘Armmite F4’). This board is also known as the BLACK_F407VE, which also makes a nice little MicroPython platform.
Uh, let’s not dwell too much on how the SYN6988 seems to parse 19:51 as “91 minutes to 20” …
|RX||PA09 (COM1 TX)|
|TX||PA10 (COM1 RX)|
Yes, I know it says it’s an XFS5152, but I got a SYN6988 and it seems to be about as reliable a source as one can find. The board is marked YS-V6E-V1.03, and even mentions SYN6988 on the rear silkscreen:
REM SYN6988 speech demo - MMBasic / Armmite F4 REM scruss, 2023-07 OPEN "COM1:9600" AS #5 REM READY line on PA8 SETPIN PA8, DIN, PULLUP REM you can ignore font/text commands CLS FONT 1 TEXT 0,15,"[v1]Hello - this is a speech demo." say("[v1]Hello - this is a speech demo.") TEXT 0,30,"[x1]soundy[d]" say("[x1]soundy[d]"): REM chimes TEXT 0,45,"The time is "+LEFT$(TIME$,5)+"." say("The time is "+LEFT$(TIME$,5)+".") END SUB say(a$) LOCAL dl%,maxlof% REM data length is text length + 2 (for the 1 and 0 bytes) dl%=2+LEN(a$) maxlof%=LOF(#5) REM SYN6988 simple data packet REM byte 1 : &HFD REM byte 2 : data length (high byte) REM byte 3 : data length (low byte) REM byte 4 : &H01 REM byte 5 : &H00 REM bytes 6-: ASCII string data PRINT #5, CHR$(&hFD)+CHR$(dl%\256)+CHR$(dl% MOD 256)+CHR$(1)+CHR$(0)+a$; DO WHILE LOF(#5)<maxlof% REM pause while sending text PAUSE 5 LOOP DO WHILE PIN(PA8)<>1 REM wait until RDY is high PAUSE 5 LOOP DO WHILE PIN(PA8)<>0 REM wait until SYN6988 signals READY PAUSE 5 LOOP END SUB
For more commands, please see Embedded text commands
Heres the auto-translated manual for the SYN6988: