-
Posts
39 -
Joined
-
Last visited
About diegobaca

- Birthday 08/12/1982
Spam Prevention
-
What is favorite LEGO theme? (we need this info to prevent spam)
Space
Profile Information
-
Gender
Male
-
Location
Seattle, WA
Extra
-
Country
USA
Recent Profile Visitors
1,874 profile views
-
@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
-
@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. 🙂
-
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!
-
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
-
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
-
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! 🎉
-
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.
-
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.
- 35 replies
-
- power functions
- techinc
-
(and 2 more)
Tagged with:
-
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!
- 35 replies
-
- power functions
- techinc
-
(and 2 more)
Tagged with:
-
@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!
-
🎉 So cool! Love seeing Lego Lines in English! No offense to other languages of course, I just can't read French or German 😭.
-
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.
-
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!