Home - joric/ts80player GitHub Wiki
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
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).
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 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 |
STM32F103 specs: https://www.st.com/resource/en/datasheet/stm32f103c8.pdf
Name encoding:
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).
Frequency response:
See http://sim.okawa-denshi.jp/en/CRtool.php
There's also apparently a high pass filter after the power mosfet.
Pictures
- TS80player picture gallery: https://imgur.com/a/xO4b91r
Press
- Your TS80 โ Music Player (Hackaday)
- A music player for the TS80 soldering iron (Hacker News)
- Is Your TS80 Soldering Iron Too Quiet? Turn It Into a Music Player! (Hackster.io)