Jump to content

Recommended Posts

Posted
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 *huh* :pir_tong2:

LEGO-9750-Schematic.PNG?rlkey=jn5922l5ey

Hey I recognize that image. :)

Posted (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 :grin:

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 :thumbup:

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... :innocent2:

Edited by Gunners TekZone
Posted (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 by Bliss
Posted (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 :grin:

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 :thumbup:

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... :innocent2:

I know the image because it was created by a friend at my request: https://brickhacks.com/9750.php.

Edited by evank
Posted (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 by Bliss
Posted
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.

Posted
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 :pir-love:

Personally, as a bit of a "jack of many trades... when awake :innocent2: "... I embrace ALL of the above in my lifestyle!  “Leg Godt!” :pir-triumph:

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

 

Posted (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.

chrome_yVZBBUixAS.png

 

This example code is available here:  https://github.com/BlissCA/lego-blockly/blob/main/Examples/legoA_Drum1.json

Edited by Bliss
Posted

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 :purrr:

Posted
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

 

 

Posted
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

 

 

Posted (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 :purrr:

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. 

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 by Bliss
Posted

@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 

Posted (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 by Bliss
Posted
23 minutes ago, Bliss said:

BUT I cannot test unfortunately...

Next Sunday I will be all over it :steve:

Got a few working CMs.

Best
Thorsten

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

Posted (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
Arm-LEGOlines.PNG?rlkey=5kw4znkx4a4qyyv8 2026-04-07-18.55.25.jpg?rlkey=qnwc1hc60d
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 by Gunners TekZone
Posted (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 by Gunners TekZone
Posted (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...

explorer_86VhpgKSzW.png

This example is available here: https://github.com/BlissCA/lego-blockly/blob/main/Examples/legoA_Lines1.json

Edited by Bliss
Posted
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

55194467231_ce781e56ce.jpg

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 :look: 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 :oh:.

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.

Posted (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 by Gunners TekZone

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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.

  • Recently Browsing   0 members

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