diegobaca Posted 18 hours ago Posted 18 hours ago Looks like the cat is out of the bag! 😄 A few people managed to discover the website before I had a chance to officially announce the project. I actually got a kick out of seeing people find it early, so I figured it was time to officially introduce TC Logo Connect. It’s a small USB-C bridge that lets the original late-80s/early-90s LEGO TC LOGO DOS software drive a real LEGO Interface A (9750) from a modern PC or Mac, including Apple Silicon Macs. What it does TC LOGO originally required a DOS PC with the LEGO Dacta 9771 ISA interface card. The card, the PCs, and the ISA slot itself are long gone. TC Logo Connect replaces all of that: you run the authentic TC LOGO environment on today’s hardware and control up to six outputs (motors and lights) and read two sensor inputs (push buttons or light/optosensors) on a real Interface A, exactly as it worked in the classroom back then, with no vintage PC or control card required. Getting started Setup takes just a few minutes: install the free companion app (Windows or Mac), plug the bridge into your computer with USB-C, connect it to the Interface A with a 20-pin ribbon cable, and you’re ready to go. How it works The companion app is a custom build of DOSBox-X. Instead of simply emulating a generic DOS PC, it also emulates the LEGO Dacta 9771 ISA interface card itself: a single 8-bit I/O port at 0x39D, with no strobe and no interrupts. Every write that TC LOGO makes to that port is forwarded over USB serial to the bridge’s microcontroller, which drives the Interface A’s six output lines directly. Sensor changes stream back the same way and appear to TC LOGO as reads from the emulated card. This means you’re running the original, unmodified TC LOGO software while talking to a real Interface A. Acknowledgements I’d like to give a special thank you to Brian Liddell from BatteryPoweredBricks and Evan Koblentz for their encouragement and support. Brian purchased the very first TC Logo Connect and is planning to share a review, while Evan has been testing a unit and will be posting his own impressions. More importantly, I’d like to thank both of them for everything they do for the LEGO education and vintage computing communities. Their passion for preserving and sharing these classic technologies helps keep the original hardware, software, and history alive for everyone to enjoy. Where to find it Website: https://www.tc-logo.com Tindie: https://www.tindie.com/products/43106/ The bridge comes fully assembled, flashed, and tested. I'd love to hear from anyone who still has an Interface A, and I'm happy to answer any technical questions here. As with Interface C, this isn't a commercial venture or a way for me to make money. I priced TC Logo Connect simply to cover the cost of the hardware, packaging, and the time it takes to hand-assemble and test each unit. I did consider offering it as a kit, but from my experience with Interface C, most people preferred a fully assembled, plug-and-play solution, so I decided to go that route here as well. LEGO® is a trademark of the LEGO Group, which does not sponsor, authorize, or endorse this product. TC LOGO software is © Logo Computer Systems Inc. This product does not include or distribute the TC LOGO software. Quote
Toastie Posted 18 hours ago Author Posted 18 hours ago 3 minutes ago, diegobaca said: A few people managed to discover the website before I had a chance to officially announce the project. Yeah - and had something similar developed here even before the cat was out of the bag! And much more - the Arduino approach for those, who like cables and - well - Arduinos ... Unos, Nanos, Pro minis. And the ESP32 approach as well. So you forked DOSBox-X and made a custom version, correct? The approach here to leave DOSBox-X as is and patch legacy LEGO software. Turns out it is really straight forward, as even I can do that now, owing to @alexGS and @Bliss. I am thrilled to see all that activity regarding legacy LEGO software and hardware! It continues to be pure fun! Best wishes Thorsten Quote
diegobaca Posted 18 hours ago Posted 18 hours ago (edited) 7 minutes ago, Toastie said: Yeah - and had something similar developed here even before the cat was out of the bag! And much more - the Arduino approach for those, who like cables and - well - Arduinos ... Unos, Nanos, Pro minis. And the ESP32 approach as well. So you forked DOSBox-X and made a custom version, correct? The approach here to leave DOSBox-X as is and patch legacy LEGO software. Turns out it is really straight forward, as even I can do that now, owing to @alexGS and @Bliss. I am thrilled to see all that activity regarding legacy LEGO software and hardware! It continues to be pure fun! Best wishes Thorsten I know! I love seeing all the activity with new solutions, mine uses a Seeed XIAO RP2040. Yes, I forked DOSBox-X and made a custom version that interfaces with the RP2040 to communicate with the Interface A. I have tried running TC Logo, LogoWriter Robotics, and the IBM version of Lines and they all work. Love everyone's solutions! Best, Diego Edited 18 hours ago by diegobaca Quote
evank Posted 18 hours ago Posted 18 hours ago (edited) Here's a picture of my feline -- "Floppy Disk(a)tte" -- coming out of a box. There wasn't a bag handy. :) Thank you @diegobaca for making this awesome gadget and for thinking of me as an early reviewer! @Mr Hobbles also sent me (two!) of his similar invention last week. So I'm making a video featuring both options. It probably won't be ready for another week or two. That being said, I have both boxes here on my desk. They are shockingly easy to use right out of the (ahem) box. @BatteryPoweredBricks will have his video first. I saw a sneak preview and can't believe how clean his desk looks .... Mine is not!! @Toastie in case it wasn't obvious, this is the "big news" of which I hinted the other day. PS. This kind of announcement is an excellent example of a unique thread for the imminent subforum here. It is a good time to be an Interface A hobbyist!! Edited 18 hours ago by evank Quote
diegobaca Posted 18 hours ago Posted 18 hours ago 12 minutes ago, evank said: Here's a picture of my feline -- "Floppy Disk(a)tte" -- coming out of a box. There wasn't a bag handy. :) Thank you @diegobaca for making this awesome gadget and for thinking of me as an early reviewer! @Mr Hobbles also sent me (two!) of his similar invention last week. So I'm making a video featuring both options. It probably won't be ready for another week or two. That being said, I have both boxes here on my desk. They are shockingly easy to use right out of the (ahem) box. @BatteryPoweredBricks will have his video first. I saw a sneak preview and can't believe how clean his desk looks .... Mine is not!! @Toastie in case it wasn't obvious, this is the "big news" of which I hinted the other day. PS. This kind of announcement is an excellent example of a unique thread for the imminent subforum here. It is a good time to be an Interface A hobbyist!! Thank you @evank. My pleasure! Quote
BatteryPoweredBricks Posted 17 hours ago Posted 17 hours ago Wow, I just happen to have a video just for this occasion Quote
Toastie Posted 17 hours ago Author Posted 17 hours ago 5 minutes ago, BatteryPoweredBricks said: Wow, I just happen to have a video just for this occasion Would have been REALLY nice to hear about all that before - but - it is what it is. You guys have fun! Best Thorsten Quote
evank Posted 17 hours ago Posted 17 hours ago Trust me, we are! It's funny because Brian contacted me last week and asked for the washing machine code. Neither of us knew that the other also had this new tool in our hands. Quote
diegobaca Posted 17 hours ago Posted 17 hours ago 7 minutes ago, BatteryPoweredBricks said: Wow, I just happen to have a video just for this occasion Thank you for the video! @BatteryPoweredBricks. I had the first version working back in May, and I'm finally excited to share it and see so many similar projects show up simultaneouly! Quote
Toastie Posted 16 hours ago Author Posted 16 hours ago (edited) EDITED: We have a new solution for operating Interface A, developed with the help of the depths of the internet and very smart people. This is for sure a major step forward for all Interface A enthusiasts who don't want to tinker and mess with all the stuff required if you want to do something similar on your own. If you do want to mess around, here is a DIY solution, entirely developed in the public domain by @Bliss; I just happen to be the guy having a couple of Interface As and tested (as good as I could) with whatever he came up with. I simply love this approach: Telling what is going on, make it public, and thus invite interested people to try (intermediate or even final) solutions out. In addition, there is almost instantaneous developer response - well offset by global time delays, when living on different continents. I am a researcher and truly believe in shared knowledge. DELETED A little history: The development of Yves' ESP32 based solution is documented in his thread. It is much more about LEGO Blockly; a "simple" but powerful(!) graphical, non-blocking software running in a browser - or off-line. Initially it was connecting to serial devices, such as Interface B, but swiftly proceeded: Support for RCX, and many legacy LEGO devices were added. USB2Serial/TTL is simply "now". But then came Interface A, and that needed an interface to connect to USB, as it is 100% parallel. There are many ways to convert serial to parallel - and they were all investigated. With certain boundary conditions: Can emulators run legacy software to the extent that an interface can do the required serial to parallel conversion? On modern machines, parallel is dead. It then went from Arduino (Uno, Nano, Pro Mini) based interfaces, trying FT 245/233 adapters to finally use ESP32 VROOM boards. Arduinos don't have Bluetooth on board, but can easily connect to a BT board, i.e., COM based communication. Thus, the DOSBox-X emulator got attention. ESP32's have BT onboard, so cable connections were rendered less interesting. Corresponding microcontroller programs were developed, and finally, a line was drawn: Arduinos for USB cable based connections to Interface A, and ESP32s for BT wireless connections. In addition, the ESP32 interface was supposed to connect to both: Legacy LEGO software AND LEGO Blockly. Without doing anything other than pressing "connect" in Blockly or declaring the matching COM port in DOSBox-X. Which in turn requires legacy LEGO programs such as TCLogo or LINES to be patched: Exchange the 9771 board ISA address with one of the serial board addresses. As there are less than 5 such programs, patching them and providing them to the public seems to be a reasonable route. So here we go: The DYI solution Purchase an ESP32 VROOM Devkit 1 board and a female 2x10 pin header looking like this; total cost about $/€6: These are the I/O ports used: LEGO Blockly allows additional PF support if you see fit = GPIO 4. Here is the workflow ; the ESP board is flipped around - because then you can attach it directly to the Interface A connector. The gray lines in 2 and 3 mean, that you need to make a little recess (Dremel ...) because the Int.A port wants to make sure, you don't plug it in the other way around: The combination of the female connector and the board headers is really sturdy, when all 8/10 pins are soldered. Note, that you need to solder the red/white cables: This is required to enable the Int.As internal opto couplers. The pin 2/4 connection is mandatory just in case you want to be entirely “autonomous” (no cables other than the power supply cable to Int.A, my favorite approach!). However, this only works, when you open up Interface A and solder the internally stabilized +9V (and GND) lines to pins 2 and 4 of the connector, as shown here: But you don't have to: Just power the ESP board with a USB power supply on its USB C connector (Step 6 below, blue arrow). Once that is done, just plug in the ESP board to your Interface A (step 5): And that's it. As there are still a good number of GPIOs available on the left side of the board (view: component side, in 5/6 right side), who knows what will come up! Have fun and all the best Thorsten Edited 1 hour ago by Toastie Quote
Bliss Posted 16 hours ago Posted 16 hours ago (edited) 38 minutes ago, Toastie said: Note, that you don't need to solder the red/white cables: this is just in case you want to be entirely “autonomous” As I said earlier, I think the red/white wires ARE mandatory as they are used to send 3.3V and GND TO the Int.A. What is optional, the Pin 2 and 4 of the Int.A connector that You hacked to get 9V out of the Int.A to supply the ESP32 board which is an amazing hack by the way! Maybe I would rather order a "No Header" ESP32 Devkit 1 30 pins... Then you could fold the 8/10 pins required of one of the row of the IDC connector and insert these folded pins in the ESP GPIO holes directly and weld them there... With Bluetooth communication, no Flat cable, no USB to Parallel Box laying around and NO addional power from an external wall charger (if you do the 9v power from Int.A Hack), this makes the cleanest setup according to me. But it remains a DIY project which is quite fun but it is certainly not as Plug and Play as the new solution for legacy TCLOGO... (And this ESP32 solution is also working with Lego Blockly ;-) ) Edited 15 hours ago by Bliss Quote
Toastie Posted 15 hours ago Author Posted 15 hours ago (edited) 8 minutes ago, Bliss said: As I said earlier, I think the red/white cable ARE mandatory as they are used to send 3.3V and GND TO the Int.A. Oh man - I screwed up again, you are right of course! The red/white cables need to be there, but not the pin 2/4 connection to internal +9V/GND of Int.A. These are optional. I made this thing and cannot write it up correctly. Thank you very much for catching that (again)! Best Thorsten Edited 15 hours ago by Toastie Quote
Bliss Posted 14 hours ago Posted 14 hours ago @Toastie, Since the back of the ESP is facing UP once installed directly in the Int.A port, and it is pretty "dull" lol, you could maybe solder a led indicator module (Cathode common) right on the back of the ESP which would align perfectly with GND pin and all 8 required GPIOs... I know Int.A already has led indication, but that would make the Board easy to use without the Int.A for testing purpose... (Like I do) Quote
evank Posted 9 hours ago Posted 9 hours ago Well, THAT was an interesting day here on Eurobricks. In other news: I finished my Lego Simon game, controlled by real BASIC on a real Apple //e directly connected in the real original way to a pair of real Interface A devices. :) I just need to make an intro screen for the computer monitor, and then I'll post a Youtube video and share the link here. The game works pretty much the same as (real) Simon. The only major difference is I limited my version to eight rounds of play, rather than going to 31 rounds (per Gemini). My wife and I tested my version and found that eight rounds is long enough to be somewhat challenging, but short enough to let everyone play at a Lego convention. If you win, it goes DING-DING-DING-DING and flashes its lights. If you lose by pressing the wrong button or timing out, then it makes a fun "womp, wooooomp" sound. Quote
Toastie Posted 5 hours ago Author Posted 5 hours ago (edited) 9 hours ago, Bliss said: Since the back of the ESP is facing UP once installed directly in the Int.A port, and it is pretty "dull" lol @Bliss heehee - that was exactly what I was thinking the first time I figured out that it needs to be "upside down": dull. But then I thought why not putting something interesting "on" there ... My initial idea was the IR LED for PF along with a LINX TXM433, as all my PF operated trains have the corresponding receiver (RXM433) on board. The LED array is a brilliant idea, particularly when the LED board has no header soldered. Because then you can just push the board all the way down onto the ESP's header pins, solder those and then solder the 2x10 connector. And they show nicely! You are right: You can still prototype/code without an Interface A attached. I shall try that out, as I just received three ESP32 Devkit1 boards. There must be now about 10 around here ... one controls my LEGO Crocodile (PUp), another one my Pantasy suspended Steam Punk train (and the station), another one my BR89 along with a turntable, another one m MulPI interface and on and on. Hopefully I can find such a board in my favored stores, we'll see. EDIT: Not in one of my preferred stores, but these are so nice, I ordered them from China for $2 each. Thank you! Best regards Thorsten Edited 4 hours ago by Toastie Quote
amine Posted 4 hours ago Posted 4 hours ago (edited) 7 hours ago, evank said: Well, THAT was an interesting day here on Eurobricks. In other news: I finished my Lego Simon game, controlled by real BASIC on a real Apple //e directly connected in the real original way to a pair of real Interface A devices. :) I just need to make an intro screen for the computer monitor, and then I'll post a Youtube video and share the link here. The game works pretty much the same as (real) Simon. The only major difference is I limited my version to eight rounds of play, rather than going to 31 rounds (per Gemini). My wife and I tested my version and found that eight rounds is long enough to be somewhat challenging, but short enough to let everyone play at a Lego convention. If you win, it goes DING-DING-DING-DING and flashes its lights. If you lose by pressing the wrong button or timing out, then it makes a fun "womp, wooooomp" sound. Guys we have 99.99999 english IBM Lego lines. The primitives are already translated from the linesdf.dat files and the bitmap screen "screen.scr" of the german educaboek version is in english and work with the french version. Only remain in french the confimation Yes/No waiting for Oui/Non as inputs and the german french examples files you can try it here. https://archive.org/details/lego-lines-ms-dos-english Edited 1 hour ago by amine Quote
BatteryPoweredBricks Posted 3 hours ago Posted 3 hours ago 12 hours ago, Toastie said: So we have a commercial solution for operating Interface A, developed with the help of the depths of the internet and very smart people. And which by coincidence was already tested, reviewed, and video'd! This is for sure a major step forward for all Interface A enthusiasts! Who's making a commercial product? If you're talking about Diego's project, they are basically sold at-cost just like his Interface C. Maybe I'm missing something, I typically don't follow this thread closely due to 99% of it being Greek to me. Some of these comments feel passive aggressive / sarcastic and I'm not even sure I'm reading them correctly. Quote
amine Posted 3 hours ago Posted 3 hours ago (edited) There are actually two cards available , the other one support also the power function motors. For Diego's solution there will be three compatible sofware. Tc logo, legolines and logowriter robotics. I just managed to translate Lego lines in english just need someone to make some test to check that everything is working correctly. Lego Tc logo MSDOS IBM https://archive.org/details/ibm-legotclogo-and-setup-guide_202012 LogoWriter robotics MSDOS IBM https://archive.org/details/LRWORK Lego lines MSDOS IBM https://archive.org/details/lego-lines-ms-dos-english Edited 2 hours ago by amine Quote
Toastie Posted 1 hour ago Author Posted 1 hour ago 1 hour ago, BatteryPoweredBricks said: Some of these comments feel passive aggressive / sarcastic and I'm not even sure I'm reading them correctly. Relax Brian, all my fault. I take back the "commercial" product term - had to press the "Buy Now" button on the tc-logo.com website and find out that I was redirected to a Tindy store. And Tindy is a marketplace for independent maker tech products (and not commercial products). I am sorry for that and will delete that comment in the above post! Well - I simply love open source and open development. And thus I was yesterday indeed a bit frustrated when that website popped up. Everything discussed in this thread as well in the LEGO Blockly thread is entirely in the open world. Just to make sure that everyone can contribute, test, criticize, come up with alternative ideas, throw in comments and so on. But that is just my personal view, and that's all there is. We are referencing as many times and to the best of our knowledge, so that that knowledge base can grow and get better and better. Again, this is just my personal view. I like the box Diego is selling, and I am glad that people can buy something that works out of the box! I'll stick to the ESP32 open source solution, as this leaves much room for further developments. My apologies to all how feel offended! I should have slept over it! Regards Thorsten Quote
Bliss Posted 1 hour ago Posted 1 hour ago (edited) 17 hours ago, diegobaca said: Every write that TC LOGO makes to that port is forwarded over USB serial to the bridge’s microcontroller Out of curiosity, does it mean that the TC Logo Connect physical device itself is seen as a serial COM port in Windows Device Manager? So we could still use the device WITHOUT TC Logo Connect software in a bit bang mode using a simple Terminal program like Hercules or Termites that would connect at 9600, 8, N, 1 for example and that can send and receive Hex value bytes... For example, write "3F" with Hercules, would turn on all 6 outputs of int.A... Also, someone in dosbox-x could still adjust the dosbox-x conf file to redirect dos serial1 to the com port of the TCLogo Connect device in windows and make some Basic or QBasic program to read and write from/to IO Address 0x3F8 (Serial1)... I like to see that "seed studio" board have been used in the device because I I have some of their products and it is always good quality! Edited 1 hour ago by Bliss Quote
Bliss Posted 39 minutes ago Posted 39 minutes ago (edited) 4 hours ago, amine said: Guys we have 99.99999 english IBM Lego lines. I tested a bit and the outputs are working but when using keyword COUNT, and ajusting input 6 and or 7 it gives an error message when pressing F9 run. This is the error when using a patched version that works with my ESP32 board. (Patched means I just replaced 9D 03 by F8 03 in the LINES2.EXE file) When using your original NOT patched LINES2.EXE file it gives the same error. I also copied the .LIN sample file from the French version to the English version folder and the French Keyword are not automatically converted, so COUNT is actually showing COMPTE and it is not working even if I replace with COUNT after... Edited 33 minutes ago by Bliss Quote
amine Posted 22 minutes ago Posted 22 minutes ago (edited) 38 minutes ago, Bliss said: I also copied the .LIN sample file from the French version to the English version folder and the French Keyword are not automatically converted, so COUNT is actually showing COMPTE and it is not working even if I replace with COUNT after... That is normal, the primitives definitions are contained inside the linesdf.dat file and work in pair with the project files. If you use the french project file you will need the french linesdf.dat file and viceversa. When translating the primitives I did not translate the project files because there are a lot of them... OK THERE IS AN ERROR IN YOUR PROGRAM THERE ARE ACTUALLY THREE STATES INSTEAD OF TWO ..........0 1 AND IDLE. you can't use 0 and 1 at the same time one entry must be idle. Edited just now by amine Quote
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.