macsonny Posted June 5 Share Posted June 5 Hi All, A few of you may have seen I've put a 3.5" and 5.25" drive using @Dropcheck's boards into an external case. It's really running nice. I'm a bit annoyed every time I have to change the drive ID so I was thinking I'd just make something I could put on the front of the case that would have an UP and DOWN button and a display to show the DRIVE ID number selected. I was thinking an Ardunio board would be a good driver as relatively easy to program and maybe a display like this that can be customised to show the drive ID for each drive and also has built in control buttons: https://www.jaycar.com.au/duinotech-arduino-compatible-2-x-16-lcd-screen-display-with-controller/p/XC4454 I'm just wondering if anyone has done something like this in the past. I know @Dropcheck designed a remote control/display for her controller boards, but I was thinking I could design/build something more generic that woud effectively solder to the points on the exiting 1050/XF551 drive selector points and be independent of the controller board. Anything done something like this in the past? 2 Quote Link to comment Share on other sites More sharing options...
Dropcheck Posted June 6 Share Posted June 6 It will get a little complicated, not something a simple on-on switch could handle. You're most likely looking at a completely separate logic board to handle always on signals coming from each XF551 board to a single drive select toggle and ID display. I suppose it could be done with an Arduino board, but I've not heard of a project like that. I do know of a single drive id display project here . It's in Polish, but Google translator should work. But you'd have to add circuitry to handle a dual drive input. Alternately fully populate the optional circuitry on the XF551 boards, assemble the optional control and display boards for each drive and then find a space on your case to mount them. 1 Quote Link to comment Share on other sites More sharing options...
Chri O. Posted June 6 Share Posted June 6 Sounds like a fun project I am assuming you trying to fit the display in one of the empty 5.25" Drive bay. Quote Link to comment Share on other sites More sharing options...
Chri O. Posted June 6 Share Posted June 6 This OLED 2.42" display looks way better not sure about fitment in one drive bay ? LINK: amazon.com Drive bays are 1+5⁄8 inches (41.3 mm) high by 5+3⁄4 inches (146.1 mm) wide. For buttons there is several options available just Google search for (Button Switch Module). Quote Link to comment Share on other sites More sharing options...
Forrest Posted June 6 Share Posted June 6 You may try to adapt a SCSI ID switch. These were common on external SCSI boxes 30 years ago. These are much smaller than an LCD display and are not powered. Quote Link to comment Share on other sites More sharing options...
Chri O. Posted June 6 Share Posted June 6 Here is a project from 2013 for my Linux MythTV server 😃 2014-01-03_20-37-38_686.mp4 Quote Link to comment Share on other sites More sharing options...
macsonny Posted June 9 Author Share Posted June 9 On 6/6/2024 at 11:26 PM, Dropcheck said: It will get a little complicated, not something a simple on-on switch could handle. You're most likely looking at a completely separate logic board to handle always on signals coming from each XF551 board to a single drive select toggle and ID display. I suppose it could be done with an Arduino board, but I've not heard of a project like that. I do know of a single drive id display project here . It's in Polish, but Google translator should work. But you'd have to add circuitry to handle a dual drive input. Alternately fully populate the optional circuitry on the XF551 boards, assemble the optional control and display boards for each drive and then find a space on your case to mount them. Thanks for the links @Dropcheck. They are exactly what I need to build up. FOr all my skills of building electronics I’m hopeless with taking a schematic through to a PCB. Is anyone here skilled enough to turn the schematic into a PCB that I can get build up at PCBWay? I’m willing to send a few $$$ to cover people’s time? Quote Link to comment Share on other sites More sharing options...
Chri O. Posted June 11 Share Posted June 11 Instead of trying to build PCB which can get expensive real quick how about easy start no buttons no display for now. You will need Arduino nano + prototyping board. This is only for reading the two drives switches and showing it on Serial Monitor set to 115200 baud. Arduino code: NOTE: not tested - concept based on: Atari 1050 - Track Display Spoiler // *********************************************************************************************************** // ::.:::.:. ..:.. ............. ..:.. ......... ... // ::.:::.:. .:::::. .:::::::::::. .::::: .:::::::::. .:::. // ::.:::.:. ::::::. .:::. ::::::. :::. ..::: ::: // ::.:::.:. .:::.:::. .:::. .:::.:::. :::. .::: ::: // .::.:::.::. :::. .::: .:::. :::. .::: :::. ..:::. ::: // ::: ::: ::: .::: :::. .:::. .::: .:::. :::..::::.. ::: // .:::. ::: .:::. :::::::::::. .:::. .::::::::::: :::..:::. ::: // ..::::. ::: .::::. .:::.....:::: .:::. .:::.....:::. :::. .:::. ::: // .:::::. ::: .:::::. .:::. .:::. .:::. .:::. .:::. :::. :::. ::: // ::... ::: ...:: .::: .::: .:::. :::: .::: :::. .::. .:::. // *********************************************************************************************************** // *********************************************************************************************************** /************************************************************************************************************* MIT License Copyright (c) [2024] [Chris O.] Atari 1050/XF551 remote drive ID Display. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *************************************************************************************************************/ const byte VER = 01; // TODO: OLED display, use serial monitor set to 115200 baud. // TODO: 4 BUTTONS // MCU GND to 1050 TP15 GND (test point 15). // TP13 (test point 13) or TP14 (test point 14). for +5v or +12v. (double check ok!!!) // use 12v and diode Cathode(-) to vin on ARDUINO NANO !!! // I love flashing LEDs ): #define Debug_LED1 LED_BUILTIN // 1st debug LED on UNO-NANO pin D13 // Note: Use 20k to 47k resistors between Drive Select switch and Arduino // 1 byte D1_ID = '?'; // Current Drive1 ID# byte D1_IDsw1_Pin7 = 7; // BLACK SW pin 7 byte D1_IDsw2_Pin8 = 8; // WHITE SW pin 8 // 2 byte D2_ID = '?'; // Current Drive2 ID# byte D2_IDsw1_Pin9 = 9; // BLACK SW pin 9 byte D2_IDsw2_Pin10 = 10; // WHITE SW pin 10 unsigned long previousMillis = 0; const long interval = 2000; // 2 sec. // ---setup()-------------------------------------------------------------------------------------------------- void setup() { // put your setup code here, to run once: Serial.begin(115200); while (!Serial && millis() < 350 ); pinMode(Debug_LED1, OUTPUT); // 1st debug Led on UNO pin 13 (LED_BUILTIN) // ---------------------------------------- // Detecting the Drive1 ID by wiring into the drive select switch. pin D7 & D8 // Note: Use 20k to 47k resistors between Drive Select switch and Arduino!!! // 1 pinMode(D1_IDsw1_Pin7, INPUT); // BLACK SW pin 7 pinMode(D1_IDsw2_Pin8, INPUT); // WHITE SW pin 8 // 2 pinMode(D2_IDsw1_Pin9, INPUT); // BLACK SW pin 9 pinMode(D2_IDsw2_Pin10, INPUT); // WHITE SW pin 10 ReadDriveSW(); } // ----loop()------------------------------------------------------------------------------------------------- void loop() { // put your main code here, to run repeatedly: unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; ReadDriveSW(); } } void ReadDriveSW() { // D 1 uint8_t SW = 0; if (digitalRead(D1_IDsw1_Pin7) == HIGH) { //BLACK OPEN pin 7 (RIOT 6532 ic pull-up +5v) Serial.print(F("D1 BLACK OPEN HIGH SW ")), Serial.println(SW, BIN); } else { bitSet(SW, 0); // 1st bit Serial.print(F("D1 BLACK CLOSED LOW SW ")), Serial.println(SW, BIN); } if (digitalRead(D1_IDsw2_Pin8) == HIGH) { //WHITE OPEN pin 8 (RIOT 6532 ic pull-up +5v) Serial.print(F("D1 WHITE OPEN HIGH SW ")), Serial.println(SW, BIN); } else { bitSet(SW, 1); // 2nd bit Serial.print(F("D1 WHITE CLOSED LOW SW ")), Serial.println(SW, BIN); } switch (SW) { case 0: // 1st bit D1_ID = 1; // 0 bit 0000 < BLACK OPEN HIGH & < WHITE OPEN HIGH break; case 1: D1_ID = 2; // 1 bit 0001 > BLACK CLOSED LOW & < WHITE OPEN HIGH break; case 2: // 2nd bit D1_ID = 4; // 2 bit 0010 < BLACK OPEN HIGH & > WHITE CLOSED LOW break; case 3: D1_ID = 3; // 3 bit 0011 > BLACK CLOSED LOW & > WHITE CLOSED LOW break; default: D1_ID = '?'; // break; } // D 2 uint8_t SW2 = 0; if (digitalRead(D2_IDsw1_Pin9) == HIGH) { //BLACK OPEN pin 9 (pull-up +5v) Serial.print(F("D2 BLACK OPEN HIGH SW ")), Serial.println(SW2, BIN); } else { bitSet(SW2, 0); // 1st bit Serial.print(F("D2 BLACK CLOSED LOW SW ")), Serial.println(SW2, BIN); } if (digitalRead(D2_IDsw2_Pin10) == HIGH) { //WHITE OPEN pin 10 (pull-up +5v) Serial.print(F("D2 WHITE OPEN HIGH SW ")), Serial.println(SW2, BIN); } else { bitSet(SW2, 1); // 2nd bit Serial.print(F("D2 WHITE CLOSED LOW SW ")), Serial.println(SW2, BIN); } switch (SW2) { case 0: // 1st bit D2_ID = 1; // 0 bit 0000 < BLACK OPEN HIGH & < WHITE OPEN HIGH break; case 1: D2_ID = 2; // 1 bit 0001 > BLACK CLOSED LOW & < WHITE OPEN HIGH break; case 2: // 2nd bit D2_ID = 4; // 2 bit 0010 < BLACK OPEN HIGH & > WHITE CLOSED LOW break; case 3: D2_ID = 3; // 3 bit 0011 > BLACK CLOSED LOW & > WHITE CLOSED LOW break; default: D2_ID = '?'; // break; } Serial.print(F("Drive 1 ID:")), Serial.print(D1_ID), Serial.print(F(" Drive 2 ID:")), Serial.println(D2_ID); } Quote Link to comment Share on other sites More sharing options...
Dropcheck Posted June 11 Share Posted June 11 Maybe something like this: It's not tested and it's SMT heavy. But it combines my drive ID switch and Igor's drive id display on a single board (50x30mm) with a cable running from the existing control board connector on the main board to this one. So far that's the smallest size board I've been able to cram the parts onto. Might be able to go a little smaller. I could duplicate the circuit and put both on a single board of longer length. But each drive id switch and display is independent of the other. 2 Quote Link to comment Share on other sites More sharing options...
Chri O. Posted June 11 Share Posted June 11 I got a dump question if we change the drives ID while powered up will the drive actually accept the new settings or do we need reset (power cycle the drives) ? Quote Link to comment Share on other sites More sharing options...
Dropcheck Posted June 11 Share Posted June 11 Just now, Chri O. said: I got a dump question if we change the drives ID while powered up will the drive actually accept the new settings or do we need reset (power cycle the drives) ? I believe you'd have to power reset both the drive and computer in order for both to be in sync after changing the driveID. This board is a fancy way of not having to use the dip switch on the back of the drive and having an led display of the drive ID. Quote Link to comment Share on other sites More sharing options...
Chri O. Posted June 11 Share Posted June 11 Well my plan: Use one of 7407 IC Hex Buffers Drivers With Open-Collector. For the drives ID switches under software control. We need four drivers for the switches and the two for CPU reset. No buttons but joystick: ANALOG 2-AXIS THUMB JOYSTICK Perhaps we can modify this for installation: StarTech.com 3.5" to 5.25" Quote Link to comment Share on other sites More sharing options...
macsonny Posted June 12 Author Share Posted June 12 14 hours ago, Dropcheck said: Maybe something like this: It's not tested and it's SMT heavy. But it combines my drive ID switch and Igor's drive id display on a single board (50x30mm) with a cable running from the existing control board connector on the main board to this one. So far that's the smallest size board I've been able to cram the parts onto. Might be able to go a little smaller. I could duplicate the circuit and put both on a single board of longer length. But each drive id switch and display is independent of the other. I really like it. Looks like you have two ID displays and selectors on the single board. I'm happy to trial it if you are happy to send me the PCB files? Quote Link to comment Share on other sites More sharing options...
Dropcheck Posted June 12 Share Posted June 12 4 hours ago, macsonny said: I really like it. Looks like you have two ID displays and selectors on the single board. I'm happy to trial it if you are happy to send me the PCB files? What is the width and length of the space available to install such a board? Would you want to install the other items? Track Display, Reset and Bios Switches? Quote Link to comment Share on other sites More sharing options...
macsonny Posted June 13 Author Share Posted June 13 16 hours ago, Dropcheck said: What is the width and length of the space available to install such a board? Would you want to install the other items? Track Display, Reset and Bios Switches? I actually have a heap of space in the case as there is a spacer between the two drives if you can see in the photos. However, for other future users I suspect they'd like a small board for potential installation. For me I'm not fussed size. With respect to additional features, having access to track display would be great. I don't need reset to bios switch but it might be a good option for other future users. What is key is that the displays need to be remote from the actual controller boards so the ability to connect via a ribbon cable so I can mount the LED displays on the case without the boards getting in the way. Maybe as long as you can keep the board height below the hight of a standard 5.25" floppy drive mechanism then that would work great for me. Thanks for assisting - you are awesome! Quote Link to comment Share on other sites More sharing options...
Chri O. Posted June 13 Share Posted June 13 (edited) 52 minutes ago, macsonny said: I actually have a heap of space in the case as there is a spacer between the two drives if you can see in the photos. However, for other future users I suspect they'd like a small board for potential installation. For me I'm not fussed size. Okay so I am assuming we can shove a full drive 5 and 1/4 size device in the middle. Am I correct here ? 😃 Note: no picture or link in this thread.. I've been looking for it? Edited June 13 by Chri O. Quote Link to comment Share on other sites More sharing options...
macsonny Posted June 13 Author Share Posted June 13 (edited) 2 hours ago, Chri O. said: Okay so I am assuming we can shove a full drive 5 and 1/4 size device in the middle. Am I correct here ? 😃 Note: no picture or link in this thread.. I've been looking for it? Sorry - previous thread. Photos at top of this link: I know this is an odd question - but can the track number be taken from any of the primary IC's on the XF551 MB similar to this thread? for the 1050. I got the track display for a 1050 working via a Uno board and this code (slightly modified). Wondering if something similar could be done for the XF551? Edited June 13 by macsonny Quote Link to comment Share on other sites More sharing options...
Dropcheck Posted June 13 Share Posted June 13 5 hours ago, macsonny said: I know this is an odd question - but can the track number be taken from any of the primary IC's on the XF551 MB similar to this thread? for the 1050. I got the track display for a 1050 working via a Uno board and this code (slightly modified). Wondering if something similar could be done for the XF551? The XF551 reimaged boards both have track display circuitry on them. You just need to fully populate the boards and then have the track display aux boards from my site made and populated. Add the FFC cables and connect. In your case I think I can pull together both the drive ID display and control and the track displays for both drives on a single board. But you will have to fully populate the XF551 boards with the track display circuitry in order to use it. Cabling might be a problem, looks like four cables for the two drives. Let me dive into Diptrace and see if I can come up with a design in the next day or so, that is as simplified as possible. Quote Link to comment Share on other sites More sharing options...
Dropcheck Posted June 14 Share Posted June 14 On 6/12/2024 at 11:00 PM, macsonny said: I actually have a heap of space in the case as there is a spacer between the two drives if you can see in the photos. However, for other future users I suspect they'd like a small board for potential installation. For me I'm not fussed size. With respect to additional features, having access to track display would be great. I don't need reset to bios switch but it might be a good option for other future users. What is key is that the displays need to be remote from the actual controller boards so the ability to connect via a ribbon cable so I can mount the LED displays on the case without the boards getting in the way. Maybe as long as you can keep the board height below the hight of a standard 5.25" floppy drive mechanism then that would work great for me. Thanks for assisting - you are awesome! Okay: I have a version 1 non-tested board that combines controls to switch OS and drive ID and reset the drive without power off. The untested part is primarily the Drive ID LED display, the other features have been tested in other forms. You will need to have a fully populated XF551_A v4 or XF551_B v7 pcb(That includes the aux circuitry). Remember to set your Drive ID on both boards to 4 and remove the OS jumper. This new board will now control those options. This new board is 40.5 x 147 mm, slightly less than the normal standard 5.25" drive bay opening. Take note of the FFC cable length as you might be able to shorten it depending on how you arraign the boards in the case. I gave the part # for the 200 mm as a guide on what type of cable is needed. They do come in various lengths. I did not consider how to mount this board as it is still considered a prototype. You should still be able to carefully hot glue the board in place regardless. The attached file contains the schematic, BOM and gerbers. Here's a mockup of what the finished board should resemble. DualLEDControlDisplay.zip 2 Quote Link to comment Share on other sites More sharing options...
macsonny Posted June 16 Author Share Posted June 16 On 6/15/2024 at 4:14 AM, Dropcheck said: Okay: I have a version 1 non-tested board that combines controls to switch OS and drive ID and reset the drive without power off. The untested part is primarily the Drive ID LED display, the other features have been tested in other forms. You will need to have a fully populated XF551_A v4 or XF551_B v7 pcb(That includes the aux circuitry). Remember to set your Drive ID on both boards to 4 and remove the OS jumper. This new board will now control those options. This new board is 40.5 x 147 mm, slightly less than the normal standard 5.25" drive bay opening. Take note of the FFC cable length as you might be able to shorten it depending on how you arraign the boards in the case. I gave the part # for the 200 mm as a guide on what type of cable is needed. They do come in various lengths. I did not consider how to mount this board as it is still considered a prototype. You should still be able to carefully hot glue the board in place regardless. The attached file contains the schematic, BOM and gerbers. Here's a mockup of what the finished board should resemble. DualLEDControlDisplay.zip 226.08 kB · 4 downloads Design has been sent to PCBWay for an initial production run. Will let you know how it goes. Quote Link to comment Share on other sites More sharing options...
Dropcheck Posted July 17 Share Posted July 17 On 6/15/2024 at 7:06 PM, macsonny said: Design has been sent to PCBWay for an initial production run. Will let you know how it goes. Just following up. Curious. 1 Quote Link to comment Share on other sites More sharing options...
macsonny Posted July 17 Author Share Posted July 17 9 hours ago, Dropcheck said: Just following up. Curious. Haven't got around to purchasing the boards yet. I was looking at the option to get the board pre-populated and save me a bit of work but the cost was staggering. I'm a bit distracted right now but plan to take a look at this in the next few weeks 🙂 Quote Link to comment Share on other sites More sharing options...
macsonny Posted September 3 Author Share Posted September 3 On 7/18/2024 at 7:30 AM, macsonny said: Haven't got around to purchasing the boards yet. I was looking at the option to get the board pre-populated and save me a bit of work but the cost was staggering. I'm a bit distracted right now but plan to take a look at this in the next few weeks 🙂 Well, finally purchased the boards and arrived today. They look great. Will start populating over the weekend and will advise how it goes. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.