Gunners TekZone Posted Monday at 11:59 PM Posted Monday at 11:59 PM (edited) @Bliss Yay, your wonderful efforts have succeeded in helping me make a dirt simple Blink routine for my Nano based Int-A simulator. Life is good! Edited 21 hours ago by Gunners TekZone Quote
evank Posted yesterday at 01:38 AM Posted yesterday at 01:38 AM 3 hours ago, Gunners TekZone said: Yes, you are correct. It was the input lines that I was thinking about, being directly wired to the connector. But they all are powered by the 5v line on same connector. I think this is an accurate resource of that, that someone else made. Still working on 1st coffee, so I could be hallucinating enough to rival AI Hey I recognize that image. :) Quote
Gunners TekZone Posted yesterday at 03:33 AM Posted yesterday at 03:33 AM (edited) 2 hours ago, evank said: Hey I recognize that image. :) Ha... I would be surprised if there was something Interface-A related that you didn't already have on file Oddly enough... I know found it somewhere else??? One of my many saved shortcuts... But I had a bazillion tabs open and lost track of where it was from. But at least now I have copies of all the rest of the matching schematics from your page I should have started on your page, but I often find it too hard for me to keep track of all the various website links, of the many technical things and projects I eventually want to reference from. Now I mosty save everything I want into dedicated file folders. Who knows, I might even get around to organising those a bit better... One day... Edited yesterday at 03:42 AM by Gunners TekZone Quote
Bliss Posted yesterday at 04:10 AM Author Posted yesterday at 04:10 AM (edited) In the newest version, I added a While/Until condition in the Loop Forever block so it give more flexibility. Before the Loop Forever coud not exit... Also, you will notice at the right of the Connect RCX button, there is a CM check... Don't panic, I'm just preparing to tentatively add the CyberMaster support... Not finished yet... I'll let you know. I will add the support for the CM according to the information I got here and there but I do not own a CM... So I will count on testers to help on this... Edited yesterday at 04:28 AM by Bliss Quote
evank Posted yesterday at 01:11 PM Posted yesterday at 01:11 PM (edited) 9 hours ago, Gunners TekZone said: Ha... I would be surprised if there was something Interface-A related that you didn't already have on file Oddly enough... I know found it somewhere else??? One of my many saved shortcuts... But I had a bazillion tabs open and lost track of where it was from. But at least now I have copies of all the rest of the matching schematics from your page I should have started on your page, but I often find it too hard for me to keep track of all the various website links, of the many technical things and projects I eventually want to reference from. Now I mosty save everything I want into dedicated file folders. Who knows, I might even get around to organising those a bit better... One day... I know the image because it was created by a friend at my request: https://brickhacks.com/9750.php. Edited 23 hours ago by evank Quote
Gunners TekZone Posted 20 hours ago Posted 20 hours ago Your friend done good 12 hours ago, Bliss said: Don't panic, I'm just preparing to tentatively add the CyberMaster support Don't forget the kitchen sink Quote
Bliss Posted 20 hours ago Author Posted 20 hours ago (edited) 34 minutes ago, Gunners TekZone said: Don't forget the kitchen sink Ha ha, I was wondering what you meant by that and search google about this expression... When will you test the Int.A by the way? I'm looking forward to see a video from you of blockly running Int.A through an arduino Nano :-) Edited 20 hours ago by Bliss Quote
evank Posted 19 hours ago Posted 19 hours ago 19 minutes ago, Bliss said: I'm looking forward to see a video from you of blockly running Int.A through an arduino Nano :-) Me too. I would like to test it but I don't really have time. It seems like some people here would rather just build cool electronics and software, than actually build Lego models from that technology! :) @Bliss I will have to update my website to reflect the existence of Blockly as another control alternative for Interface A. I'm also glad you called it "-ly" because the game I'm building is "Blocky" Kong. Two-plus years into that model and it's still not done, but overall I am making progress. It uses six or seven Interface A connected to a single Apple //e. Programming? As everyone here knows, I use Applesoft BASIC. Quote
Gunners TekZone Posted 19 hours ago Posted 19 hours ago 36 minutes ago, Bliss said: I'm looking forward to see a video from you of blockly running Int.A through an arduino Nano :-) I will do something as soon as I can. Does Blockly have an array option or something to feed in many data steps through a routine? Else it may be a long, long, long group of repetitive ON/OFF blocks and timers. 20 minutes ago, evank said: It seems like some people here would rather just build cool electronics and software, than actually build Lego models from that technology! :) It is almost like some people are mechanically oriented , some enjoy the flow of electrons, others prefer pure logic and some just like to play with toys Personally, as a bit of a "jack of many trades... when awake "... I embrace ALL of the above in my lifestyle! “Leg Godt!” Quote
Bliss Posted 18 hours ago Author Posted 18 hours ago 1 hour ago, Gunners TekZone said: Does Blockly have an array option or something to feed in many data steps through a routine? Else it may be a long, long, long group of repetitive ON/OFF blocks and timers. Can you provide an example of what you want to achieve? Is it something you did using TC Logo? I f you can provide the program, I might be able to implement missing blocks... For example, do you want to turn ON/OFF one or more outputs at a certain time like a "Rooling DRUM" ? In blockly, they have List blocks which are arrays But I have not use it yet... I'm going to make some test... Quote
Bliss Posted 17 hours ago Author Posted 17 hours ago (edited) Here an example of usage of the Lists in Blockly to make Drum Control of the state of the 6 outputs of Int.A: On the left, I first define the content of the MasterList. (6 items) Each element of the master list has a small list built from text with delimiter ",". This text represent the wanted state of each output, 1 = ON, 0 = OFF. Leftmost is for Output 0... Then after MasterList definition, there is the forever loop that iterates through the MasterList Elements using a "Count with" block (1 to 6) Each element of MasterList is put in L1 variable one at a time and we call UpdateOutputs Function and then wait 0.5 sec for the next iteration. The UpdateOutputs function just go through each items in L1 sublist which are the 1's and 0's... and updates the Int.A Outputs accordingly. So the function sends quicly 6 commands to int.A arduino. I may eventually, if the Int.A is proven to work with Blockly, add commands with Mask inputs for example 0x3F (hex for 111111) to update outputs all at once inside the arduino. Should you need more patterns, just add more content in MasterList before the forever loop. The "count with "block adjust itself automatically to the length of the Master List. If you need different time between each iteration, you could add the delay into each text for example: 1,0,1,0,1,0,2.6 where 2.6 would be set into a Variable WT that would be used in the Wait block. This example code is available here: https://github.com/BlissCA/lego-blockly/blob/main/Examples/legoA_Drum1.json Edited 17 hours ago by Bliss Quote
Wapata Posted 17 hours ago Posted 17 hours ago It's been days that I'm trying to find the name of something I've done in school a long time ago... "Graphset". We used to program Schneider automats in Graphset language. It look a lot like blocky I'm the end Quote
Toastie Posted 16 hours ago Posted 16 hours ago 2 hours ago, evank said: It seems like some people here would rather just build cool electronics and software, than actually build Lego models from that technology! :) Hehe - true that - but without the "rather" and the "than". It is more "wire up an Arduino to connect to Interface A and LEGO Blockly and then go nuts on building". The thing (for me) is, with such a powerful control software (just think about PWM, but not using Logo, but Bliss' Blockly) it elevates building 4.5V LEGO models relying on the (touch/light change) sensor <-> program <-> motor/light loop to another level! Just think about the non-blocking timers ... yes, TC Logo can do that, but BASIC (any version/computer) cannot. I clearly see @evank's "cool electronics" remark. When LEGO Blockly matures further, I believe making it absolutely easy for non-electronics freaks is another goal here. Maybe creating shields for UNOs (or Nanos) and so on. What needs to be transported is: It is NOT about cool electronics, it is about building crazy things in 4.5V world! All the best, Thorsten Quote
Toastie Posted 16 hours ago Posted 16 hours ago 12 minutes ago, Wapata said: It look a lot like blocky I'm the end I believe even LEGO teaming up with NI and others tried/did it! The graphical Mindstorms software released with the RCX worked in principle that way. However, @Bliss gave us the power of current computers doing that. In addition to even more intuitive "blocks", "LEGO" never came up with. I believe that is the difference between "being presented with a tested/evaluated software" and directly communicating with an experienced programmer, who knows the difference between "making it work" and "making it work AND be intuitive AND look pretty". I mean, honestly: I fire up Chrome (only for this single purpose, I am a Firefox freak), visit @Bliss website, software is automatically updated, close Chrome, run the Blockly app in Windows - and it works. It simply works! The last time I experienced such a development was - never. All the best Thorsten Quote
Bliss Posted 16 hours ago Author Posted 16 hours ago (edited) 46 minutes ago, Wapata said: It's been days that I'm trying to find the name of something I've done in school a long time ago... "Graphset". We used to program Schneider automats in Graphset language. It look a lot like blocky I'm the end It's actually Grafcet. one of the available language in Industrial Controllers (PLC). Today, most PLC manufacturers implements the 4 languages part of the IEC 61131-3 standard. Ladder diagram (LD), graphical Function block diagram (FBD), graphical Structured text (ST), textual Sequential function chart (SFC), has elements to organize programs for sequential and parallel control processing, graphical. In american PLCs, like Allen-Bradley now Rockwell Automation, it was LADDER only like 25 years ago... Today, they adjusted to provide the 4 languages in their PLCs. But Ladder is still the most used as it is perfect for boolean logics. SFC (Grafcet) is perfect for sequencing. All 4 languages have their advantages and their flaws. Grafcet is graphical and may look a bit like blockly but is quite different too. Edited 16 hours ago by Bliss Quote
Toastie Posted 16 hours ago Posted 16 hours ago @Bliss What is the role of Google in all this? Did they do something remarkable (that was such a nice Wikipedia read!!!) or are they providing some sort of container? Which is of course also remarkable. I have the feeling that there is more to it, just asking. All the best Thorsten Quote
Bliss Posted 15 hours ago Author Posted 15 hours ago 12 minutes ago, Toastie said: What is the role of Google in all this? You mean why Google decided to make Blockly and offer it for free to developpers? I guess it's mainly to help in education of programming for kids and non programmers. https://developers.google.com/blockly/guides/get-started/why-blockly Quote
Bliss Posted 15 hours ago Author Posted 15 hours ago (edited) @Wapata, I just added some code for the cybermaster. Could you please try it? You have to check the CM checkbox before clicking the Connect RCX. Press F12 in chrome to open the console so will see the errors while it tries to connect. You could copy paste and post the errors here or private message... It's reusing the same code I made for the RCX except it using a different header in commands and replies. Also, the start handshake with keyphrase has been added. BUT I cannot test unfortunately... So lets see how it goes, and I hope we'll be able to debug the problems as they arise... Good Luck! Version: 2026-04-07-1730 Edited 15 hours ago by Bliss Quote
Toastie Posted 15 hours ago Posted 15 hours ago 23 minutes ago, Bliss said: BUT I cannot test unfortunately... Next Sunday I will be all over it Got a few working CMs. Best Thorsten Quote
Bliss Posted 12 hours ago Author Posted 12 hours ago 6 hours ago, evank said: It seems like some people here would rather just build cool electronics and software, than actually build Lego models from that technology! :) The lack of ideas (and imagination I guess) for original creations is a problem for me... And I do not have tons of lego technic parts for big project like GBC's. The moment I got my hands on the Interface B and it's big I/O capacity, it reminded me of PLC's with which I'm working every day and at that time, I was thinking I could build anything with this Int.B lol... I've never done ANY projects with Int.B other than trying to interface it with modern PC. This is how I enjoy "playing" with the product but it's probably not the way expected by Lego company haha. I do this even if I know this old stuff is becoming rare and not much people are looking to revive these. Quote
Gunners TekZone Posted 11 hours ago Posted 11 hours ago (edited) 16 hours ago, Bliss said: Can you provide an example of what you want to achieve? Is it something you did using TC Logo? So far (aside from Logo tests on the Apple) my Interface-A use was with a Commodore 64 version of LEGOlines. A 8-bit punch-tape like type system with simple input checks, loops and counters... Perhaps like a simple PLC? The commands to the left are in CAPS (notes in lower case), followed by the 8-bit data, and on right a COUNT tick or DELAY in seconds This is not necessarily what I want duplicated in Blockly... I was thinking something like a data array of command code, 8-bit data in DECIMAL and a count/time values. Assuming the first COUNT command in my example, with perhaps the command COUNT=1 (UNTIL=2, REPEAT = 3, etc), and Bit 7 being activated 15 times... "Data 1,128,15" But perhaps that is too much like code programming and not following the Block flow such as what you have already implemented? Edited 2 hours ago by Gunners TekZone Quote
Gunners TekZone Posted 11 hours ago Posted 11 hours ago (edited) That said, unlike the more complex Interface-B... The Interface-A is a ticker tape flow of 8-bit data and commands, so perhaps a more LEGOlines style "programmable block" might be appropriate? Edited 11 hours ago by Gunners TekZone Quote
Bliss Posted 8 hours ago Author Posted 8 hours ago (edited) 4 hours ago, Gunners TekZone said: Commodore 64 version of LEGOlines. A 8-bit punch-tape like type system with simple input checks, loops and counters WOW, I've read about Lego Lines recently in some posts and wondered what the heck are they talking about... It looks like a logo program somehow. I think you would achieve the same using simple blockly inline programming. In the following example, I implemented all of your lines program but i'm not sure how the Lego Lines behave specially for the COUNT. The UpdateOutputs does not update the 6 outputs all at the same time. It send 6 quick single output commands. But before I give time to implement a special block to send multiple outputs at once, I would like to know first if this Int.A thing is working. Once I implement this special block, there will be no need for the UpdateOutputs function etc... Also, for the counting, I want to eventually implement input counters inside the arduino (Faster according to me) and provide simple Input Count value block in Blockly along with a Reset Count Command. But for now I implemented a counter inside blockly. I have a question about the counter for Lego Lines, for me it should count "1" pulses and "0" pulses ( Raising edge and Falling edge). Like the disk with 8 black and 8 white stripes alternating, It counts 16 steps. (8 ones, 8 zeros) and that's what I did by using value changed block. If you want to count only the "one's" not the zeros, you can use the Raising edge Block rather than the value changed... Also, is the counter resets some how? does it count from 0 to 15 and rollover to 0 again. No count down, only count up I guess? The first loop until waiting for the Input 6, there are two output commands and a wait 1 sec. First command, for output 4 will not stay on for long since there is no wait for this one. Also, the wait 1s is blocking the code for 1 sec so if input 6 comes on during this 1 sec, the loop will not end until the wait finish. Means the input may have to stay on for 1 sec. (Using Non blocking timer could prevent this though). You end the lines with a command park but does it turn off all outputs when the lines program terminates? Anyway, all this gives me many ideas for new blocks... This example is available here: https://github.com/BlissCA/lego-blockly/blob/main/Examples/legoA_Lines1.json Edited 7 hours ago by Bliss Quote
Wapata Posted 6 hours ago Posted 6 hours ago 8 hours ago, Bliss said: Could you please try it? You have to check the CM checkbox before clicking the Connect RCX. Press F12 in chrome to open the console so will see the errors while it tries to connect. You could copy paste and post the errors here or private message... Here it is : So. It take me more than 20 minutes to check if my installation work. It doesn't (for no reason), it ask my com port to talk at the slow speed of 2400 and it worked again. So what can I say : It worked with Bricx Command Center, then i free up the com port, close Bricx Command Center, test on Blockly multiple time and take a screenshot, then came back to Bricx Command Center to double check if it still work... and it does. If i had to guess, it can be a delay problem, it fail too fast. I have to go to work now so next test in 10 hours. By the way : sorry everyone for all the typo, bad phone correction, bad english due to poor translation choices and all, it's harder for me to re-read myself on phone. But waw... bravo for understanding . ps: I really hope that one day, the translation of Blockly will only be something like a google sheet, with a row of the English function labels, one with little description, and many other ones with other languages. Joke aside, i'm pretty sure that my kid can make wonderful stuff with this tool. Quote
Gunners TekZone Posted 6 hours ago Posted 6 hours ago (edited) 6 hours ago, Bliss said: I have a question about the counter for Lego Lines, for me it should count "1" pulses and "0" pulses ( Raising edge and Falling edge). Hmm, I think @evank may be the expert here, if he understands electronics... Or at very least from experience with using the two primary 4.5v sensors that were meant for the Int-A. But I understand the inputs to detect simple continuity of an active (powered) circuit. I don't think there is enough sophistication to determine rising or falling edges? The touch switches just go HIGH when a switch is closed. The optical sensor seems to react to the reflectivity of the built in IR (or an external light source). With the wheel it "counts" at every change between the black and white fans. Thus 8 counts per revolution on the quad fan pattern. Of course that programmatic "count" can also depend on where in the geartrain the sensor sits. And accuracy may be questionable with higher speed. In my Robot arm program, I just manually triggered a motor to run for as long as I needed and counted the "triggered pulses" I saw on the inputs. That became my COUNT value. 6 hours ago, Bliss said: Also, for the counting, I want to eventually implement input counters inside the arduino (Faster according to me) and provide simple Input Count value block in Blockly along with a Reset Count Command. But for now I implemented a counter inside blockly. The Int-A input accuracy may be questionable with higher speed, but this bottleneck will still be inside the Interface, and an Arduino (or other MCU) will not improve that, unless you start using them AS a form of "upgraded" Interface-A... But I suspect that will concern LEGO purists. Edited 2 hours ago by Gunners TekZone 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.