Difference between revisions of "Bluetooth Minidisc Remote"
Line 2: | Line 2: | ||
== Status == | == Status == | ||
− | * 2023-09-04: Fixed several design issues with play/pause logic, added the BT module, codec, and a fuel gauge, and all the misc. glue to stick it all together. Schematic and design are mostly done at this point, next time I'll add the test points and clean up the schematic layout, then it'll be done and ready for checklisting. | + | * 2023-09-05: Added attenuation into the audio path, and added all required test points. Still need to run the checklist on the schematic, then will be time to start drawing footprints for a few parts that don't have them yet. |
+ | * 2023-09-04: Fixed several design issues with play/pause logic, added the BT module, codec, and a fuel gauge, and all the misc. glue to stick it all together. Schematic and design are mostly done at this point, next time I'll add the test points and clean up the schematic layout, then it'll be done and ready for checklisting. Note for next time: I have line-level audio going right into the codec, probably need to attenuate that! | ||
* 2023-09-03: Finished design/schematic for all UI inputs, including the weird/complicated logic for the play/pause button and the hold switch, which had to get changed to DP3T to handle play/pause properly. Need to re-review the play/pause button's logic with all the level shifting and everything tomorrow to make sure it all looks reasonable. | * 2023-09-03: Finished design/schematic for all UI inputs, including the weird/complicated logic for the play/pause button and the hold switch, which had to get changed to DP3T to handle play/pause properly. Need to re-review the play/pause button's logic with all the level shifting and everything tomorrow to make sure it all looks reasonable. | ||
* 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-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. |
Revision as of 11:57, 5 September 2023
The Bluetooth Minidisc Remote will be a remote for portable Sony MD players that also transmits their audio over Bluetooth.
Contents
Status
- 2023-09-05: Added attenuation into the audio path, and added all required test points. Still need to run the checklist on the schematic, then will be time to start drawing footprints for a few parts that don't have them yet.
- 2023-09-04: Fixed several design issues with play/pause logic, added the BT module, codec, and a fuel gauge, and all the misc. glue to stick it all together. Schematic and design are mostly done at this point, next time I'll add the test points and clean up the schematic layout, then it'll be done and ready for checklisting. Note for next time: I have line-level audio going right into the codec, probably need to attenuate that!
- 2023-09-03: Finished design/schematic for all UI inputs, including the weird/complicated logic for the play/pause button and the hold switch, which had to get changed to DP3T to handle play/pause properly. Need to re-review the play/pause button's logic with all the level shifting and everything tomorrow to make sure it all looks reasonable.
- 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)
- Vremote - 2-3V (supplied from remote connector)
- Vbatt - 3-4.2V (direct from battery)
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
- Level shifter for analog switch running directly off battery - 1uA
- Shut down logic rail buck converter - 2uA
- Shut down BT transmitter - 1uA
- Shut down OLED rail boost converter - 1uA
- Shut down fuel gauge - 0.5uA
- Total current draw when idle - 9.5uA
- Will mean only drawing ~7mAh 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 - 1 GPIO (OLED rail enable)
- OLED - SPI + 1 GPIO (reset)
- Buttons - 12-ish GPIOs
- Codec - I2C + 1 GPIO (IRQ)
- BT TX - 2-wire UART
- Fuel gauge - I2C + 1 GPIO (Alert)
- Remote interface analog switches - I2C (digipot) + 2 GPIO (isolate digipot, play/pause routing)
- Totals:
- I2C (3 devices, shared bus)
- SPI (1 device)
- 18x GPIO(ish)