Close

Input mechanism for the V3

A project log for Music32-V2 - Portable music player

Recreating the ipod with Bluetooth and an SD card slot, without losing the headphone jack

nicNic 11/01/2023 at 11:465 Comments

Ive been thinking about potential input devices for the V3 design. 

Previously the plan was to use an external capacitive sensing chip, because the ESP32 doesnt have enough gpio to handle everything and touch sensing is the most sensible to allocate to another chip. This would then run an improved clickwheel design in a similar manner to the current system. 

However, I recently decided I wasn't really a fan of the capacitive clickwheel. Don't get me wrong it works quite well. It just takes a lot of processing code and now id need to handle fetching data from an external sensor as well. It also takes power to run the chip and its haptic feedback and still doesn't feel as nice as the real thing. 

So I started looking for other input methods and to cut to the chase Ive looked at magnetic, horizontal mechanical, vertical mechanical and optical. None of these really ended up being a good fit for the job, with all of them having at least one big flaw with how they had to be used in this situation. This situation doesnt just mean a clickwheel or similar either, just a rotary input method that was convenient and comfortable to use.

There is one exception though, which was a wonderful and very small smd hollow shaft mechanical encoder. It is also only about 2cm wide and 2mm tall, which is extremely manageable and easy to work around. So I was thinking, why not just recreate the original ipod wheel, but better and easier to use? The encoders hollow shaft can easily accomodate a button and theres no other spacing issues, even the vertical height of the player wont be impacted at all. 

So now my plan is to make the original ipod clickwheel, with my own spin of course (get it?). I wanted the buttons to still be under the wheel which should be no problem and I want to 3d print the parts for the clickwheel, keeping it as simple as possible. 

Let me know if you've got any ideas

Discussions

GD wrote 11/15/2023 at 10:20 point

Hello. Ideas for clickwheel :)

1. Did you think about i2c-navkey-7-functions-joypad - https://www.tindie.com/products/saimon/i2c-navkey-7-functions-joypad-on-the-i2c-bus/

2. Did you try Panasonic Rotary Encoder Mechanical - https://www.ebay.com/itm/115540965174 - so you can use this with minimum buttons.

3. You could recreate ipod clickwheel (16 sensors) with CY8CMBR3116 (16 Sensing Inputs)

  Are you sure? yes | no

Nic wrote 11/15/2023 at 13:34 point

1. That looks almost exactly like what Im looking for. It looks like a really professional solution, just a little bit tall. The whole mechanism im designing at the moment is only 2mm tall to keep the current size of the case. Im definitely going to read up about how they've designed theirs though, its always good to have references and see other peoples solutions.

2. That is a cool looking encoder. Im guessing from the pictures that you can press on the side of it to press that button. If I can find them for purchase and they aren't incredibly expensive I might put one on the side of the device for setting volume or just testing. Doesn't hurt to put a footprint on, thanks for the recommendation.

3. Yes I have been looking at that series of touch sensor ic's amongst others. They look very well suited for the job (Although I haven't found a pre-existing library for them). If I was going to go for a capacitive wheel this would be in my final few of chips to use but I dont think theres much of a chance ill be using a capacitive wheel again. It worked quite well but its the lack of feedback that got to me, you dont know when the wheel is about to click over an increment. You can add haptic feedback to try and make it better but at that point you might as well go for the real thing. It makes it less complex, cheaper and a better experience. What do you think? I was going to go for a little smd hollow encoder with a 3d printed wheel that just bends to press the buttons underneath, or maybe it is better to have fixed buttons around the side for some reason. Who knows, testing will find the answer.

I was also thinking of adding some lights to the device to make it look nice at night like the creative zen micro. Using the pcb as a diffuser to make nice sharp shapes. maybe some little 2020 WS2812B's? Who knows its just a fun idea

Do keep in touch I also love seeing your comments pop up

  Are you sure? yes | no

GD wrote 11/17/2023 at 10:28 point

Hello :)

1. Yeah, agree. It's little bit tall. I have one for testing. The main advantage of this is that it is controlled via I2C.

2. Yes, you can press it like button. https://www.aliexpress.com/item/1005006020874297.html

I believe you can control the whole device with just this button!

3. https://www.aliexpress.com/item/1005004655646589.html - you can use this one, I think.

  Are you sure? yes | no

Nic wrote 11/17/2023 at 11:32 point

2. Im not entirely sure how I could replace the clickwheel completely with that switch. Its only got scroll up/down and push. If I was going to use it I would have to make it cycle though the controls on the screen. But as I said I can put it on the pcb anyway for testing, I can always use it then if it is good. 

3.That is a very good listing, very awesome prices thanks for sharing. For using the ipod clickwheel with arduino ive been looking at this guy https://www.reddit.com/r/esp32/comments/zaj2oo/quick_demo_of_ipod_clone_esp32s3_based_music/ and some other open source breakout boards and such. Who knows maybe ill make two board designs or just make it so you can do either on one board.

  Are you sure? yes | no

GD wrote 11/20/2023 at 06:23 point

Hello.

2. It's just a question of how you organize your UI. I think it's possible, but not efficient. It is best to have mechanical buttons for play/pause, forward/backward and volume.

3. I was inspired by this project - https://hackaday.io/project/177034-spot-spotify-in-a-4th-gen-ipod-2004

And I would like to do something similar, but in my own way. I have a lot of ideas, but I'm not a programmer :(

  Are you sure? yes | no