Jump to content
IGNORED

Atari 1050/XF551 remote drive selector and LED display


Recommended Posts

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?

  • Like 2
Link to comment
Share on other sites

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. 

  • Like 1
Link to comment
Share on other sites

This OLED 2.42" display looks way better not sure about fitment in one drive bay ?

LINK: amazon.com

image.thumb.png.a64174255917dcd65700aac85efa79ac.png

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).

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

image.thumb.png.e42c4756a72a9ff887f76571ddf54736.png

This is only for reading the two drives switches and showing it on Serial Monitor set to 115200 baud.

image.thumb.png.2886d892ab771f56f410570bb008d689.png

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);
}

 

 

 

Link to comment
Share on other sites

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. 

 

 

SingleDriveIDDisplayControl.thumb.png.c577e1a9983c65480dd1ca0810a58eb3.png

 

snapshot00.thumb.png.18a2d52a160d030d54a1705e03557e60.png

 

 

snapshot01.thumb.png.7d5abed23c5eca15a687a3addbcb110d.png

  • Like 2
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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. 

 

 

SingleDriveIDDisplayControl.thumb.png.c577e1a9983c65480dd1ca0810a58eb3.png

 

snapshot00.thumb.png.18a2d52a160d030d54a1705e03557e60.png

 

 

snapshot01.thumb.png.7d5abed23c5eca15a687a3addbcb110d.png

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?

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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!

 

 

Link to comment
Share on other sites

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 by Chri O.
Link to comment
Share on other sites

Posted (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 by macsonny
Link to comment
Share on other sites

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. 

Link to comment
Share on other sites

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.

 

snapshot00.thumb.png.7ec7029bc5b6d44e0287fbe169396b4c.png

 

snapshot01.thumb.png.604538523f464ffe80e32df44c6e5f61.png

DualLEDControlDisplay.zip

  • Like 2
Link to comment
Share on other sites

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.

 

snapshot00.thumb.png.7ec7029bc5b6d44e0287fbe169396b4c.png

 

snapshot01.thumb.png.604538523f464ffe80e32df44c6e5f61.png

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.

 

Link to comment
Share on other sites

  • 1 month later...
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 🙂

Link to comment
Share on other sites

  • 1 month later...
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.

 

 

IMG_6192.jpeg

IMG_6191.jpeg

  • Like 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...