Skip to content
joric edited this page Sep 14, 2024 · 410 revisions

Welcome to the ts80player wiki!

See releases section for the precompiled firmware: https://github.com/joric/ts80player/releases

To upload to TS80, hold button A (closest to the soldering tip), plug in USB, let the button go, copy .hex file to the USB drive, wait it renames to RDY, replug the cable.

There are multiple platforms in the repository, see corresponding articles in this wiki:

  • Arduino_STM32 - Default unofficial SDK, works on TS80 with a modified Nucleo configuration (TS80 has no XTAL)
  • STM32duino - Official Arduino SDK, works both on TS80 and on Bluepill (rarely used, still in progress)
  • STM32Cube - Official STM32 SDK, works on Bluepill and TS80, but doesn't sound too well (in progress)

See MIDI Player for converted MIDI files. There's also an experimental player for PT3 (AY-8912 music), see PT3 player.

TL;DR: there's no DAC on STM32F103T8U6, it's PWM only (maybe with software Sigma-Delta) so the audio is low quality and it's also monaural, because TS80 tip (unlike Weller RT) uses only two wires with type-K thermocouple connected in series (the middle leaf isn't connected to anything). Also there's no external crystal (XTAL) so you need to account for that in firmware.

I am playing on the heater pin (PWM_OUT, PA6), it's probably worth to investigate low power output on the sensor pin (TIP_TEMP, PA3) as well, but according to the schematic it's input only (same terminal, but there's a 750K resistor and a reversed amplifier on the way), as it's supposed to measure temperature between power surges when the heater is off.

Display works as I2C SSD1306 128x32 OLED (with 96x16 visible area) and doesn't need a reset pin.

TS80 still sounds pretty distorted, either performance or schematic issues (there's ~5Khz RC filter with C=10 nF and R=2.7K). External current limiting resistor doesn't help. Beeper music sounds fine though.

Tips

17CBbJx

Also see iFixit made its own USB-C soldering iron, and it’s already a joy (says it's TS80 incompatible, so it must be Weller tips).

photo_2024-09-13_10-34-09

Video

Other videos: https://www.youtube.com/results?search_query=ts80player

TS80 hardware

  • STM32F103T8U6 (ARM Cortex M3, clock frequency 72 MHz, 20K RAM, 64K FLASH)
  • MMA8652FC (3-Axis, 12-bit Digital Accelerometer)
  • SSD1306 (White 96x16 OLED Display)

Pinout

Pin Name TS100 TS80
KEY_A A9 B1
KEY_B A6 B0
PWM_OUT B4 A6
TIP_TEMP B0 A3
TMP36 A7 A4
OLED_RST A8 A15
SCL B6 B6
SDA B7 B7

Debugging

You could use a cheap Bluepill board for debugging. Upload TS80-Bootloader.hex to the Bluepill the usual way, e.g. via UART. Connect B1 to GND as button A for resetting into the bootloader, use pins B6/B7 for I2C display. You can upload your own firmware in hex format (use 0x08004000 offset and 0x4000 start vector) and file extension will change to .RDY. Stock TS80 firmware works as well.

Schematic

TS80 Schematic (from http://www.minidso.com/forum.php?mod=viewthread&tid=3208):

TS80 Schematic

TS80 vs Bluepill

TS80 and Bluepill are a little bit different, default Arduino IDE setup works on Bluepill but hangs on TS80 (no external crystal).

Name MCU Flash SRAM SPI I2C USART GPIO Package
TS80 STM32F103T8U6 64K 20K 1 1 2 26 VFQFPN36
Bluepill STM32F103C8T6 64K 20K 2 2 3 37 LQFP48

TS80 vs Bluepill

STM32F103 specs: https://www.st.com/resource/en/datasheet/stm32f103c8.pdf

Name encoding:

Name encoding

T8 vs C8:

T8 vs C8

Note there's no DAC on those MCUs:

RC filter

According to TS80 schematic there's a 10 uF + 4.7K RC filter on the PWM_OUT pin (PA6).

RC

Frequency response:

RF

See http://sim.okawa-denshi.jp/en/CRtool.php

There's also apparently a high pass filter after the power mosfet.

Pictures

Press

Clone this wiki locally