Bluetooth Minidisc Remote
The Bluetooth Minidisc Remote will be a remote for portable Sony MD players that also transmits their audio over Bluetooth.
Contents
Status
- 2023-09-03: Finished design/schematic for all UI inputs other than the hold switch, including the weird/complicated logic for the play/pause button. Hold switch is next.
- 2023-09-02: Finished schematic capture/BOM for the UI parts. Re-architected everything for separate MCU and BT TX, as the integrated one didn't end up having enough I/O to be practical. Now using a PIC18 for control and a TI chipset for Bluetooth. This also comes with better power specs overall and eliminates the 3V rail, everything now runs on the 1.8V rail except the OLED drive voltage of 16.5V.
- 2023-08-30: Finished schematic capture/BOM for the charging circuitry. Made good progress starting to lay out the schematic for the logic.
- 2023-08-27: Figured out the shutdown requirements and put together the design/schematic for the 3 rails' converters plus most of the charging circuitry.
- 2023-08-22: Started putting ideas together after getting back from a trip where I used a Bluetooth transmitter dongle connected to an RM-MC11EL a whole bunch.
Design Goals
- Same basic functionality you'd have on a regular Sony remote, though with an OLED screen
- Ability to remap buttons, if you want to use it with different portables or you want different controls in different places
- Ability to lock ("hold") all the controls except volume, since I've always wished remotes allowed this
- Bluetooth audio transmission to BT Classic endpoints (A2DP SBC)
- Ability to play/pause the MD device via the play/pause button on the Bluetooth receiver
- Transmitter will stop sending audio when nothing is playing (rather than sending silence like 3.5mm BT transmitters do)
- At least 8 hours of battery life on a charge hopefully (since with Bluetooth and an OLED, the remote will need its own internal battery)
- Custom 3D-printed enclosure that will hopefully not be that much bigger in L/W than the flat rectangular remotes for Kenwood portables, though will be a bit thicker because of the amount of stuff I'm trying to fit in
Design Overview
- Microchip PIC18LF47K42T MCU
- Panasonic PAN1326C Bluetooth transceiver module (based on TI CC2564C)
- Fujitsu ELW2106AA OLED display
- DA7218 codec chip?
- Internal battery, charged via USB-C
Power Planning
Requirements:
- Input power
- Li-poly pack, 3.0 - 4.2V
- OLED
- OLED Drive - 15.5 - 17.5V (16.5V nom)
- Logic - 1.65 - 3.5V (3V nom)
- MCU
- Logic - 1.8 - 3.6V
- BT
- VDD_IN - 2.2 - 4.8V (connect direct to battery, shutdown draw is 1uA)
- VDD_IO - 1.62 - 1.92V (1.8V nom)
- Codec
- Core - 1.7 - 2.65V
- IO - 1.5 - 3.6V
Required rails:
- Logic - 1.8V (shut down when not connected to a MD device, fed via TLV62568 buck converter)
- OLED - 16.5V (switchable, fed via AP3012 boost converter)
Shutdown Planning
When not connected to a player, ideally should be drawing <10uA so the battery will last a long time. Slight chicken and egg problem though, as the buttons are connected through the MCU, but the MCU won't be running when the player isn't providing power so it can't relay button presses to the player to get it to power up. I think the current plan is to have the play/pause button connected directly through a resistor to the remote pin on the jack, but through an analog switch controlled by the MCU. When everything is powered down the button will send a resistance directly to the jack, but once the remote is powered up the switch will open and let the MCU control everything.
- Disconnected from player (or connected but player off)
- Logic rail shut down as remote is not receiving voltage from the player
- BT transmitter shut down as nSHDN pin pulled down by resistor and not pulled up by logic rail
- Current draw
- Analog switch running directly off battery - 4uA
- Shut down logic rail buck converter - 2uA
- Shut down BT transmitter - 1uA
- Shut down OLED rail boost converter - 1uA
- Total current draw when idle - 8uA
- Will mean only drawing ~6mAh from the battery in a month of being idle, which is reasonable
- Connected to player with player power on
- Analog switch opens to allow play/pause button to route through MCU instead of directly controlling
- Logic rail powered up as remote is receiving voltage from the player
- BT TX powered up as remote is receiving voltage from player
MCU I/O Planning
- Power management - ADC (battery voltage) + 1 GPIO (OLED rail enable)
- OLED - SPI + 1 GPIO (reset)
- Buttons - 12-ish GPIOs
- Codec - I2C + 1 GPIO (IRQ)
- BT TX - 2-wire UART
- Remote interface analog switches - I2C (digipot) + 2 GPIO (isolate digipot, play/pause routing)
- Totals:
- I2C (2 devices, shared bus)
- SPI (1 device)
- 1x ADC
- 17x GPIO