Jump to content

diegobaca

Eurobricks Vassals
  • Posts

    39
  • Joined

  • Last visited

Everything posted by diegobaca

  1. @amine I looked into this properly because it's a great question. The short version is that hosting an Apple II or BBC emulator inside TC Logo Connect won't allow it to reach the Interface A as-is. Why an emulator inside TC Logo Connect can't see the interface TC Logo Connect presents the interface to DOS the same way the original 9771 ISA card did: as an I/O port at address 0x39D, which is the card's factory default and the address TC LOGO probes. When a DOS program executes an x86 IN or OUT instruction on that port, the app forwards it over USB to the bridge and then on to the real Interface A. That single port is the entire connection point. The Apple II, BBC Micro, and C64 communicated with the Interface A through their own connectors. As I understand it, the BBC used its User Port, while the Apple II used a card installed in one of its expansion slots. An emulator recreates the computer, but it has no idea that the LEGO hardware exists. Inside the emulated machine, those connection points lead nowhere. When the LEGO software PEEKs and POKEs those addresses, everything stays inside the emulator. It never comes out the other side as traffic on the PC's I/O port, so there is nothing for TC Logo Connect to forward. That's true for B-em, Appler, PC64, or any other stock emulator. Unfortunately, there isn't a change I can make on the TC Logo Connect side to solve this because the traffic never reaches it. What could work What would work is modifying an emulator that has its source code available so that its emulated User Port or slot card forwards the appropriate communication through IN and OUT at 0x39D. At that point, it would simply look like another DOS program to TC Logo Connect, and the existing bridge to the real Interface A should work. Sorry I couldn't be of more help with this right now. I may look into patching some of these other emulators in the future, as it would be really interesting to get the original LEGO software from these other platforms talking to a real Interface A through TC Logo Connect. Cheers, Diego
  2. @amine Ok, so just to make sure I understand, these are the apps/emulators you're testing right now: BBC Micro B-em BBC Micro emulator for DOS: https://emutopia.com/index.php/emulators/item/307-acorn-bbc-micro/102-b-em Updated CWSDPMI.EXE for DOSBox compatibility: https://www.delorie.com/djgpp/dl/ofc/simtel/v2misc/csdpmi5b.zip/ LEGO Lines BBC Micro disk/image: https://www.mybbcmaster.nl/educ_lego.html LEGO 9760 BBC Micro disk: https://www.flaxcottage.com/Educational/software/LEGO/Data/Data_Download.zip Apple II Appler Apple II emulator for DOS (to test Apple II software I assume): https://learn.adafruit.com/appler-apple-ii-emulator-for-dos/installation-and-setup Is that everything you're currently testing, or are there any others I missed? If you let me know which emulator + software you're trying, along with the links to download them, I can also help test on my side and see what we can get working with Interface A. 🙂
  3. Hi everyone, TC Logo Connect version 1.0.3 is out! Here's what's new. Add your own DOS programs to the menu The startup menu is no longer limited to the four built-in programs. Simply drop any DOS program folder into the app's DOS folder, describe it with a three-line text file, and it will appear in the menu right alongside TC Logo and the other built-in programs. The menu supports up to 18 entries across two pages. Use the Left and Right arrow keys to switch pages, press Enter or a number key to launch a program, and press 0 to exit to a DOS prompt. For example, to add QBasic, copy its folder into the DOS folder as QBASIC, then create QBASIC.TXT inside the MENU folder with the following contents: SET INAME=QBasic SET IDIR=QBASIC SET IEXE=QBASIC.EXE INAME is the name shown in the menu. IDIR is the program folder. IEXE is the executable that starts the program. The README now includes a new "Adding your own programs" section that walks through the entire process. It only takes about a minute to add each program. A better window The application window now opens at a more comfortable size, remembers that size as you switch between programs, and displays the image at its original aspect ratio on both Windows and macOS. You can resize the window however you like, and the image will always stay proportional. How to get it If you already have TC Logo Connect installed, you'll be offered the update the next time you launch the application. Downloads for Windows and macOS are available at: https://www.tc-logo.com No firmware update is required this time. Bridges running firmware 1.0.1 are already up to date. As always, questions, comments, and feedback are very welcome!
  4. I'm glad you got it! 😃 To close the programs and return to the DOS menu: TC Logo → Type dos in the Command Center. LogoWriter Robotics → Type dos in the Command Center. GW-BASIC → Type system. Lines → Press Ctrl + F8. Let me know if you run into any bugs or issues. I'd really appreciate the feedback! Hi Thorsten, That's awesome to hear! 😄 It sounds like you've built a really nice development workflow. I especially like the idea of using the Arduino/ESP32 boards with the LED indicators so you can develop and test without always needing to have an Interface A connected. And seeing the same programs run on your IBM XT through all three interface cards must be very satisfying! I'm also glad to hear your QuickBasic programs work with TC Logo Connect without any changes. That was one of the goals of the project, so it's great to see it being used that way. As for the window size, that's a good suggestion. I'll take a look and see if I can have TC Logo Connect start with a larger default window. I know the current size can be a bit small on modern high-resolution displays. I'll investigate whether there's a clean way to do it without affecting the rest of the configuration. Thanks again for all the testing and feedback. It's been really helpful, and please keep the suggestions coming! Cheers, Diego
  5. Glad they all work! The LINES thing is LINES itself not restoring the text mode when it quits. I will add that reset to the menu in a future update, thanks for catching it. I’m curious, are you on Windows or Mac? That way I can validate the fix. And you were closer than you think with QB11. The menu only knows the four programs, but anything you copy into the data folder shows up on C: all the same. That folder is: %APPDATA%\TC Logo Connect\dos on Windows and ~/Library/Application Support/TC Logo Connect/dos on Mac. Copy QB11 there, pick "Exit to DOS prompt" in the menu, then CD \QB11 and run it. Type MENU to get back to the picker. Leaving MENU.BAT alone was the right call for one more reason: the app copies a fresh MENU.BAT into that folder on every start, so any edits there quietly vanish. One bonus: the emulated interface card sits at port &H39D for every program, not just the four in the menu. INP and OUT from QuickBasic work the same as from GW-BASIC, so your own QB programs can talk to the interface too. Cheers, Diego
  6. Incredible work, @evank! I love how polished it looks, and I bet people are going to love it. A few questions: Do you plan to let people interact with it when you show it? How many Interface As, lamps, and touch sensors are you using? What was the hardest part to figure out, both from a build perspective and from a coding/technical perspective? Again, awesome job on this build. Congratulations! 🎉
  7. Hi everyone, TC Logo Connect version 1.0.2 is out. Here's what's new. BrickInterface support A big thank you to Nathan @Mr Hobbles for sending me his BrickInterface board. We had been talking about having TC Logo Connect's custom DOSBox-X implementation support his board. And now it does! Plug a BrickInterface in and it is detected automatically, no setup needed. Not only that: in GW-BASIC you can use a TC Logo Connect and a BrickInterface at the same time, each driving its own Interface A. So @evank you can use both boards in GW-BASIC to drive multiple Interface As. Sample Program: 10 P1% = &H39D : P2% = &H39E 20 CLS : PRINT "DUALTEST: alternating boards at ~1 Hz. Press any key to stop." 30 V% = &H3F 40 T! = TIMER 50 WHILE TIMER - T! < .5 60 OUT P1%, V% 70 OUT P2%, &H3F - V% 80 S1% = INP(P1%) : S2% = INP(P2%) 90 LOCATE 3, 1 100 PRINT "board 1 (925): reads"; S1%; " s6:"; SGN(S1% AND 64); " s7:"; SGN(S1% AND 128); " " 110 PRINT "board 2 (926): reads"; S2%; " s6:"; SGN(S2% AND 64); " s7:"; SGN(S2% AND 128); " " 120 IF INKEY$ <> "" THEN GOTO 160 130 WEND 140 V% = &H3F - V% 150 GOTO 40 160 OUT P1%, 0 : OUT P2%, 0 170 PRINT : PRINT "Both boards off. Done." 180 END More software: TC LOGO, GW-BASIC, LogoWriter Robotics, and Lego Lines 1.0.2 also brings better support for the software side. You can now run TC LOGO, GW-BASIC, LogoWriter Robotics, and Lego Lines. Install more than one and you get a handy menu at startup to launch whichever you like. With a single program installed it boots straight in, as before. I have tested all four programs with both the TC Logo Connect and Nathan's BrickInterface. Installing the programs is easy: the README that comes with the app has a section for each one. Download from the Internet Archive, unzip, and drop the files into the program's folder. That's it. Thank you @amine for the latest English translation of Lego Lines. The README links to that version. How to get it If you already have TC Logo Connect, the app offers the update on the next launch. Downloads for Windows and Mac: https://www.tc-logo.com No firmware update is needed this time. Bridges on firmware 1.0.1 are current. As always, questions and comments are very welcome here.
  8. Thank you for the suggestion! I really appreciate you taking the time to write all of that up. I was trying to avoid having two USB-C connections: one for the microcontroller and another for power. I wonder if there might be a way for the microcontroller's USB-C connection to also route the 9V power, although I'd need to do some research to see if that's practical. I really like the idea. I wish everything used USB-C! 🙂 I'll definitely look into it. I'd also love to read your document. Could you upload it to Google Drive, OneDrive, Dropbox, or something similar and send me a link? As for the Mini, it will use less expensive components and have fewer features. The dedicated button and rotary encoder don't feel quite as nice, in my opinion. My main goal was to bring the cost down significantly compared to the original. The H-bridge will also be less powerful, so it may not be able to drive as many motors from the same connection. I'd recommend waiting for the Mini if your main priority is getting the lower price. Otherwise, I'd recommend the original version since it offers the better overall experience, more features, and greater power capacity.
  9. Hi @ukewarrior - this is the right place. Sorry there haven't been any updates for the past few months. I got busy with work and a few other side projects (https://www.tc-logo.com), but I've made a ton of progress over the past month and I'm planning to release the Mini version in August (fingers crossed!). Thank you all for your patience. If you have any suggestions, feel free to leave them here or send me a DM. I'd love to hear your feedback and ideas. Cheers!
  10. @alexGS Thank you for the kind words! Speaking of multiplex... TC Logo Connect version 1.0.1 is out. Here's what's new. GW-BASIC support You can now drive the Interface A from your own GW-BASIC programs — control the motors and lights, and read the sensors, directly from BASIC. QBasic and other DOS languages that can read and write I/O ports work the same way. GW-BASIC is discontinued Microsoft software (abandonware, like TC LOGO), so it isn't included. The README bundled with the app explains where to get GW-BASIC 3.23, how to set it up, and has short example programs to type in, including a sensor-driven motor. Up to eight interfaces at once 1.0.1 supports up to eight Interface A's connected at the same time, each driven independently — 48 outputs and 16 sensors from one machine. Multi-interface setup and a two-interface example program are in the README. Output behavior Outputs set from your own programs work like the real interface: switch a motor on and it stays on until you switch it off. The safety behavior is unchanged — everything stops immediately if the app closes or a cable is pulled. You'll need firmware 1.0.1 on the bridge Make sure your bridge is on firmware 1.0.1. If it isn't, the app will detect that when you launch it with the bridge connected and offer the update — it takes about a minute in the browser. How to get it If you already have TC Logo Connect, the app offers the update on the next launch. Downloads for Windows and Mac: https://www.tc-logo.com Setup instructions, example programs, and the multi-interface guide are all in the README bundled with the app. Questions welcome here. And thank you to everyone who has ordered a TC Logo Connect — I'll be sending those out this week. Cheers!
  11. 🎉 So cool! Love seeing Lego Lines in English! No offense to other languages of course, I just can't read French or German 😭.
  12. Regarding your TC Logo Connect Questions: Yes! The device enumerates as a standard USB-CDC serial port. It shows up in Device Manager as a normal COM port, no driver needed. And since it's USB-CDC, the baud rate setting doesn't actually matter, so 9600 8N1 in Hercules works fine. You can absolutely drive it without the TC Logo Connect software, with one twist: the protocol is ASCII text lines rather than raw binary bytes. Instead of sending the byte 0x3F, you type D3F and press Enter. The format is D followed by a hex value whose low 6 bits are the 6 outputs (bit 0 = output 0 ... bit 5 = output 5). So D3F turns on all six outputs of Interface A, D00 turns them off, and D01 lights just output 0. Sensor state comes back as ASCII too: the board sends lines like I40 / I80 / IC0 whenever one of the two inputs changes, and V returns the firmware version. One thing to know: the firmware has a 500 ms watchdog. If the serial line goes silent, all outputs switch off, so motors stop if the host ever crashes or the cable gets pulled. From a terminal that means a single D3F pulses the outputs for half a second. To hold them on, re-send the command (or any character) at least every 400 ms or so. That's trivial with a terminal that can auto-repeat a send (RealTerm, YAT), fiddly by hand in Hercules. And if you want to go further than the built-in protocol: the board is a stock Seeed XIAO RP2040 running open-source firmware, so you can flash your own and make it do whatever you like. Nothing is locked. The firmware is a normal PlatformIO/Arduino project, and the board is effectively unbrickable since its BOOTSEL bootloader is in mask ROM (hold BOOT while plugging in and it always comes up as a UF2 drive). If you later want to return to stock, the web flasher at tc-logo.com/connect/flash restores the official firmware right from your browser. Two things to keep in mind if you roll your own: the wiring rules still apply (the sensor inputs go through a 4.7k/10k divider because Interface A runs 5V logic), and it's worth keeping some form of the watchdog so a motor can't run forever if your host program dies mid-command. Regarding DOSBox-X: Yes, that works too! In a stock DOSBox-X you can put this in the conf: [serial] serial1=directserial realport:com5 (replace com5 with whatever Device Manager shows for the board). DOSBox-X then maps its emulated COM1 UART at 0x3F8 to the real port, and because the device is USB-CDC the baud rate you pick is irrelevant, any speed works. Just remember the 500 ms watchdog: whatever program you write needs to re-send the output state (or any byte) at least twice a second to keep the outputs on. Only caveat: this is for your own programs, not for running TC LOGO this way. The original TC LOGO software never touches a serial port. It only knows how to talk to the LEGO Dacta 9771 card at I/O address 0x39D. All the serial communication in TC Logo Connect is done by my patched DOSBox-X, which emulates that card and forwards its reads and writes over USB serial to the board. So TC LOGO under a stock DOSBox-X with serial1 passthrough won't find its interface, but for your own BASIC/QBasic experiments against the same hardware, plain serial1 passthrough is all you need. Regarding the Seeed Board: I love those boards! That's why I picked it for TC Logo Connect. Seeed does really high quality stuff, and the XIAO was a perfect fit here: tiny, USB-C, and the RP2040's ROM bootloader means it's basically impossible to brick, which is what makes the browser-based firmware updater possible.
  13. 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!
  14. 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
  15. 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.
  16. I haven’t yet, but I do have plans to make my GitHub project open and public so people can tinker with it. The only things I’ve shared so far are the .stl files (3D files for the case) and the bill of materials. More announcements and exciting things are coming in the next few months! 🚀
  17. Interface C Updates: Firmware 1.0.2 and Utility 1.0.1 I’ve released Interface C Firmware 1.0.2 along with Interface C Utility 1.0.1. To update your device, I recommend downloading (links for PC and Mac at the bottom of the page) the latest Interface C Utility and using the Update button. You can also flash your Interface C to version 1.0.2 if you prefer. Either approach works. What’s new in Firmware 1.0.2 This release includes performance improvements, bug fixes, and two small new features: A) Motor Status Broadcast One request I received was the ability for Interface C to broadcast when the motor state changes. When Motor Status is enabled in the Utility, Interface C will now broadcast messages like: M1 set to n Where n represents the motor speed and direction (for example, +6 or -3). B) Serial Motor Control Command I’ve added a new serial command that allows direct control of motor speed and direction: Set M1 n Where n can be any value from -6 to +6. New LEGO-Compatible Dial I’ve also added a new dial design for Interface C. A few people asked for a version that supports LEGO studs, so this new dial accepts a Round 4×4 Plate with Hole, allowing you to build directly on top of the dial. The dial can be 3D printed and is available on MakerWorld. What I’m Working on Next Interface C Mini Many of you asked for a simpler and more affordable version of Interface C. I’ve been working on Interface C mini, which includes all the core functionality of the original device but in a much smaller form factor. My goal is to keep the total cost of parts (including the microcontroller) around $20, significantly lowering the barrier to entry. More details soon. Firmware 1.0.3 I’m also actively working on the next major firmware update. Firmware 1.0.3 will introduce several new features, including support for custom loops that Interface C can execute on its own. I’ll share more details in the coming months. Thank You Thank you to everyone who has supported the project and to everyone who has purchased an Interface C. I’m excited to keep improving the device and making it more affordable and accessible over time. I especially want to thank Brian from @BatteryPoweredBricks for the amazing YouTube videos you created about Interface C. They have been incredibly helpful in showing what the device can do and how people can use it with their builds.
  18. Yes! You just need to submit the request on Tindie — I think I just saw yours come through. I’ve been adding more locations, so you should be all set. Thank you! 🙏🏼
  19. I don’t think it’s better or worse—just different. It simply gives you the option to use the extension cord or not, since it supports both. Mine also works with any standard 9V power supply—it doesn’t require anything proprietary. Regarding stock, I live in the U.S., and there are only about 30 available right now. Half of those are priced above $50, so the “build your own kit” option ends up being comparable in cost. I’m not claiming my version is cheap or suggesting everyone should buy one—I’m just sharing a project I made and putting it out there for the community. There are also some other advantages: it has a screen that displays the speed value, it’s customizable, you can design and print your own case in any color, and it’s easy to modify or hack if you like to tinker.
  20. I will have to look into something like that :) Nice - did not know about the built in interpreter 👀 There probably aren’t any major advantages, but here are a few things it does differently: It doesn’t need an extension adapter — you can plug a Power Functions motor directly into the device. Wi-Fi / remote control capabilities. It serves as an alternative to the old 9V controller, which is becoming harder to find these days. I’m planning to add some basic programmability — for example, the ability to run simple loops.
  21. I’m using an Arduino Nano ESP32. You don’t have to pay me — you can simply visit my website and download the Interface C Utility (for Windows or Mac) to flash the Arduino with the software. That way, you can still build it if you have the parts on a breadboard or an equivalent setup. I also sell a PCB kit on Tindie if you just need some of the basic parts, including the PCB. Thank you! I’ve just updated my Tindie store to include shipping to Canada.
  22. Thank you! I have a few plans in mind that I’m currently working on: Interface C Lite – I’m exploring ways to reduce cost and simplify features. Some of the things I’m considering include: a) using a more affordable microcontroller (some are only $2–3 compared to the $20+ one I’m using now), b) removing Wi-Fi and web-interface control, and c) dropping the OLED screen. Interface C Pro – I’m going all out with this one! I want it to control up to eight motors independently and possibly include programmable functions. I’m still in the research phase for this version as well. As for color options — I’ve uploaded the 3D models to MakerWorld, so people can print their own cases in any color they like. Depending on interest, I also plan to offer different color options for sale later on. Yeah, it might be a bit much — but I wanted to add an OLED display to show information, and also allow the controller to be remotely operated through a web interface. So using a microcontroller for this version made sense to me. I’m planning a simpler version that will be more affordable. I’m also researching how to support the new PowerUp system, but that might come later. I really like your idea of adding studs or axle/pin holes on the dial! I’ll look into that. Thank you for the feedback! You’re correct about the reduced outputs and inputs on this version. I’m planning another one that will support eight outputs and add programmability. Since this was my first time creating any kind of hardware or electronics, I wanted to start small — but I hope to keep evolving and adding more functionality to make it even more worthy of the Interface name. I love all your ideas for expanding the controller — lots to think about! Thank you for the feedback and kind words.
  23. I’m excited to share that Interface C is now available. It’s a modern take on the classic LEGO® 9V Train Controller (4548), designed to give builders precise speed control and versatility — perfect for powering Technic creations, Great Ball Contraptions, and custom motorized builds. Interface C with Dark Bluish Gray, Light Bluish Gray, and Orange - LEGO® Power Functions colorway. 🔧 What It Does Provides six-speed precision control — forward or reverse — with a smooth rotary dial. Connects directly to LEGO® Power Functions motors, letting you breathe new life into old builds. Remote control via web interface, allowing you to manage motors wirelessly over Wi-Fi. Fully compatible with Windows and Mac through the Interface C Utility for firmware updates and configuration. USB-C port for firmware flashing and diagnostics. 🛠️ How to Get It Interface C is available in multiple options depending on how hands-on you want to get: Full Kit A — includes the microcontroller. Full Kit B — without microcontroller, for those who already own an Arduino Nano ESP32. Fully Assembled Unit — ready to use out of the box. Each kit includes high-quality parts, assembly instructions, and access to digital resources — even STL files to 3D print your own housing. Learn more and get your kit at 👉 https://interface-c.com LEGO® 9V Train Controller (4548) compared to the Interface C with Light Bluish Gray, Black, and Yellow colorway.
×
×
  • Create New...