[MECH] RedstoneChips 0.97 - Integrated circuits plugin [1.5.1-R0.2]

Discussion in 'Archived: Plugin Releases' started by eisental, Jan 19, 2011.

  1. Offline

    eisental

    RedstoneChips 0.97 / BasicCircuits 0.97 / SensorLibrary 0.34
    (Last update on April 30th, 2013, cb 1.5.1-R0.2)


    [​IMG]

    Features:
    • Build chips with any number of input and output pins, from compact 2 block chips up to whatever you can imagine.
    • Choose from over 50 different chip types and several 3rd party chip libraries.
    • Most chip types can work with a wide or infinte range of i/o configurations. Sign arguments allow you to customize chip behavior.
    • Chips can communicate through redstone, or directly by touching each other. Some chip types can also communicate over wireless channels.
    • Chips can be built in almost any imaginable structure allowing very compact circuits.
    • Debug and maintain large projects using various tools and commands.
    [​IMG]

    [cake] Help me spend more time working on RedstoneChips. Please donate

    Circuit libraries made by other people:
    Changelog (open)

    RedstoneChips 0.97 (Apr 30th, 2013)
    • Fixed the saving bug on cb 1.5.1.
    • Added an option to disable update checking.
    BasicCircuits 0.96 (Apr 30th, 2013)
    • pixel: Added a maximum distance value preference to prevent lags and server crashes. The max can be changed using/rcprefs pixel.maxDistance x and defaults to 7.
    • sram: Fixed a problem with anonymous memory.
    SensorLibrary 0.34 (Dec 1st, 2012)
    • daytime: Fixed daytime offset bug.



    Full changelogs and source code @ github.com:
    RedstoneChips [gunpowder] BasicCircuits [gunpowder] SensorLibrary
     
    DoomLord, Shamebot, Vecht and 6 others like this.
  2. Offline

    randeri221

    this plugin is awsome but im having a problem with some chip.
    if u could come to my server and help me it will be awsome :p
     
  3. Offline

    eisental

    What's the problem exactly?

    @Mordenkainen It behaves the same for me. I'm trying to find out what's going on there but it's pretty difficult :) I'm now changing the "input change" debug messages to show up in the right order of events. It was pretty out of order :eek: I think the problem is basically the result of the feedback loop. I'll try to delay the reset pulse and see if it makes any difference.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 6, 2016
  4. Offline

    Wizbaggd

    Redstone chips isn't sending errors and activating chips actually isn't an issue (surprisingly despite both using left-click), that part works without an issue (I can create a clock chip and left click it to activate it). The message that -does- come up is an iConomyChestShop message saying that the syntax is incorrect. As I said, probably barking up the wrong tree in this thread, just wanted to see if there was anything on this side that can be modified at an admin-level like a setting or something that could stop the incompatibility. It's all good, iConomyChestShop's author seems to be looking into it, as technically the problem seems to be on his checks.
     
  5. Offline

    Grissess

    Goodness, this is an active thread...

    Anyways, by using an idea similar to the display in that infamous Megaman in Minecraft video, I was able to get a UDP receiver to transmit out a signal that's 5x3 to several wool TVs around my server. Of course, since I don't have anything that's 5x3 to broadcast, nor any real motivation to create a 5x3 signal with a depth of 4 bits, I have it broadcasting static (randomness) once every second.

    UDP's unreliable delivery works well when the server goes down or crashes; I don't have to shut down the broadcaster!

    Unfortunately that setup (16 transmitters all connected to the same ipreceiver) took about two hours to make, and an absolutely ridiculous amount of space (I ended up expanding my diamond laboratory five times over). But, since I run a VNC server, a friend suggested to me that I make a little script that connects to my VNC, downloads my massive screen, and displays it on the server...food for thought if the construction time and space can be reduced a little.

    Any way to get an ipreceiver to receive from all IPs? Or at least make the capacity for IPs it can receive a little higher?
     
  6. Offline

    randeri221

    i cant activate the dclock chip so i cant make a clock :(
    its a test server cuz the real server is not on yet so first im trying it there :p
     
  7. What is a dclock chip?
     
  8. Offline

    Shamebot

    It's from ClockDisplay.
    @randeri221 Did you install ClockDisplay? Do other circuits work? Do you get an error?

     
  9. Offline

    randeri221

    i do not get error it just dont work
    i click it and it doesnt work and other chips does work and this just mess up my clock
    and what is clock display
     
  10. Offline

    eisental

    @Grissess I can add an option to write 'any' as an argument to accept connections from any address. This could be potentially not so secure but I guess it couldn't do much harm. For now I think you can use '/rcarg add <ip address>' to add more ip numbers than you can fit on the sign.

    As for the size of it, I'm currently testing a new display chip that saves you from building a pixel chip for each wool pixel. It can also work serially saving you a lot of pins. In any case you can also build 1 transmitter with 16 inputs instead of 16. Would save you some more signs. There's also a switching transmitter in the works that can change its channel start-bit according to select inputs.

    Could you explain? I actually have no idea what's a VNC server...

    You probably didn't install ClockDisplay. See Shamebot's reply.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 6, 2016
  11. Offline

    Mordenkainen

    @treve

    You were wondering how to use a terminal for multi-character input. Here is an example of how to input a pair of characters, for example "B5". Thick lines represent multiple connections, the number next to them says how many.

    terminal.JPG

    A quick description of how it works:
    Input to terminal is: "b5"

    Left Dregister outputs the Letter (B). This letter will be converted to uppercase, no matter if the user enters it as Upper or Lower case.

    Right Dregister outputs the decimal number (5).

    Message Done line is pulsed once values are ready to be read from the DRegisters.


    Some details on the circuit is actually doing:
    Left Side:
    Takes ASCII letter from Terminal.
    If the ASCII value is larger than 96, subtract 32 from it (this converts the letter to uppercase)
    Alternatively, you can have the adder subtract an additional 65 to convert the letter to a decimal (0 = A, 1 = B, etc).

    Right Side:
    Takes ASCII letter from Terminal.
    Subtracts 48 from the ASCII. This gives you the actual decimal number the ASCII represents.

    Demultiplexer, Pulse, and FlipFlop are just used to send the terminal output to first one Dregister then the other.

    It does not deal with invalid inputs like sending 3 characters, or if the first character is not a letter, but could be modified to do so.

    Morden.
     
  12. Offline

    treve

    i run vnc server also, but i dont get what you want to do with it! i use it just to take control of my pc from other location
    @mor. i get the multiplexer, now i have to try demultiplexer :D then i will build it and let you know the result.
     
  13. Offline

    Grissess

    @eisental and @treve,

    Yeah, VNC (Virtual Network Computing IIRC) is just a wrapper around the RFB (Remote FrameBuffer) protocol. In other words, it allows you to remotely view (wink!) the desktop of and control a computer with a network connection.

    'course I don't plan on controlling it from minecraft, but...who knows :p
     
  14. Offline

    eisental

    Oh I get it. Awesome :p (but you would probably get about 0.002 fps or something)
     
  15. Offline

    treve

    good for you you get it, but as always, i still don't see what you plan to do with it
     
  16. Offline

    Mordenkainen

    Write to a display in Minecraft whatever is on the display of another computer of course.

    The hard part there is that you would need to implement RFB in hardware, which is somewhat complex.

    A better idea would be to have a piece of middleware that knows both RFB, and a simpler protocol used to send data to the ipreceiver. The middleware connects to your VNC server, handles all the negotiation, compression, etc, and sends a raw bitstream to the ipreceiver.
     
  17. Offline

    treve

    lol, i would not try to build that yet, if you see the result now you will have some fps problem there, and i dont want to start about laag yet :D. also, you cannot get the big resolution in minecraft, or you would need some converter to make crappy image of it or some fake zoom, so you only see 1% of the real display.
    i was thinking he wanted to do that, but i guessed i had to be wrong and it should be something else, so i asked :p. better start small and start with some real images :p (my display is big, but it only has 56x100. so even that is very low resolution. the blocks are to big in minecraft :D maybe a mod so the display chip can divide the blocks in more pixels then just 1? but still there is a sending problem for that much pixels on the same time. if you do try it, keep informing me if you want, but i have more hope to see a scanner tool in future then to be able to do that :D
     
  18. You can't break a wool into smaller blocks.

    Also, keep in mind the fact that you are limited to 16 wool colors.
     
  19. Offline

    treve

    thats a spoiler :) 16 colors is not that big problem, size is more.

    about the schematic, actually it should also work with just the 2(letter and number) in ascii, like 10 in ascii, because i have to convert it to pixel in sram anyhow. but its very smart setup. i am not sure how to build the subrackt 32 greather then, bit confusing. i had to make little changes in the clock and send, because with the pulse 1 and 0, the clock is not send, replaced with burst.
    also i have trouble with 30 40 50 its giving me the 0
     
  20. Offline

    Mordenkainen

    The greater than output of the comparator connected to the 32's bit of the adder.

    So build a comparator with 3 outputs, and an adder with 16 inputs (2 8bit inputs) and the word "subtract" on the sign.

    Connect the third output of the comparator to the fifth pin of the adder.

    The third output of the comparator is the "greater than" output, so if the value is greater than 96, this output will be on.

    Setting only the fifth bit of the 8 bit input on the adder is 00010000 which is 32.

    If all you want is the raw ascii, just take all the chips between the demultiplexer and the dregisters out.

    Not sure what you mean by the 40, 50, etc.

    Also, if you need to do a variable number of characters (like your "hello" example), I have a much better way to handle that I am happy to share. Just let me know.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 6, 2016
  21. Offline

    MichaelBurge

    Is there a way to clear the contents of an SRAM from circuitry alone?
     
  22. Offline

    dew

    Hi,

    We seem to have huge cpu usage issues with redstonechips. We are using craftbukkit 740 and the latest (downloaded just now) plugins: redstonechips, basiccircuits, sensorlibrary (among other plugins). When redstone chips is running, cpu usage is 100% (and loading up the server like awesome). When I remove redstone chips, it is normal (1-20% depending on activity). I tried disabling the other two, and also ruled out any of our other plugins. cpu usage will stay at 100% even without a player logging in after start.

    We do have a variety of different circuits in use. I am not sure where to start troubleshooting.
     
  23. Offline

    treve

    just figured it out while building, but thats for my other project that is on hold.
    The circuit you builded works great, as long as you send B7 D5 C9 .....
    But i also need B50 C57 .... (input in terminal)
    the thing is that the terminal doesnt like numbers like 57 , cause its seeing it as 5 and 7 and the clock will tick 3 times and not 2 :( (for A57)

    i also have a way to write hello, but i want to see how you would do it also, cause there are alot ways to do the same thing :). What i could do i change the numbers in letters also, but then its not like the real game anymore :p and its a bit weird to type in AA for pixel A1 etc.

    but i like what you did with uppercase and lowercase, but i cannot build it (me = 2stupid to build it)but the problem remains the same that an ascii terminal doesnt see 57 as 1 number, but as 2.

    @dew: do you use alot clocks? or the new burst chip? is it like sending 1000 commands each second? that would result in the server that cannot follow so huge laag and cpu loads?
    or are you just using some old pc as server? i had to stop hosting my own server because the server could not follow the circuits anymore, a better pc is ablo to do it, but i dont know what is wrong with youre circuits offc, how many have you?

    @eisental: did you boxed me in when i was afk? or who did? :p

    i am affraid that the only fix is a change in the terminal so it can send ascii for letters, but when it detects a number, it should send it as 1 integer (full number) like a num terminal.
    or i could work with 2 terminals for each player, but thats not very handy to play. or i could replace the A1 with 1 and J10 with 100 and give all pixels a number, so then you need to play like shoot 50 , or shoot AC etc, so replace the numbers with letters or the letters with numbers, but i dont want to do that actually

    i had to be in sleeping mode lol, well i only need 10 numbers so i can use 0 9. i dont need 11 or more :) cause that will be B C D :D i can work with 0-9. but still, if for some reason some1 would need B57 he would have that problem i was thinking i had. can you please tell me in more detail how to build the uppercase/lowercase? and its weird to say A0 for A1, but its workable
     
  24. Offline

    eisental

    Since most of the chips won't do anything by themselves I would start by checking how many clock chips are there on the server. Run '/rclist this class: clock' to see a list of all clocks in current world. If you're running it from the console replace 'this' with the world name or with 'all' for all worlds. In the list you'll see the speed of the clock (1st argument in the brackets). The amount of cpu load each clock is making depends on the speed and the amount of other chips or plugins it triggers. I would start by stopping or breaking all fast clocks and checking if it makes any difference. Otherwise it could be some bug or other weird problem, in that case it would help to break them one by one and see if the cpu usage changes. Let me know if you find it or need more help...

    @treve the burst chip is only in the test build so he can't really use it and no I didn't box you, but I might know who did ;)

    @MichaelBurge Only way to clear the sram is to write 0 on each address. May I ask why do you need to do that?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 6, 2016
  25. Offline

    treve

    is it possible that a flipflop is send 101 when it should send 1? having alot problem with transmitter sending 101 when it just should stay on. also, a terminal goes like this?: if you type in A5 it sets its outputs first on A, then clock goes off, so i can say write it on first output, then its setting 5, clock triggers again, and its now on other output? so i should only have 2 clocks 0 1010, but i run into some problems, plz take a look at teh building plz

    weird, but its because i used 1 redstone wire to feed 2 inputs, making the not-directly-connected transmitter to go like 101 instead of staying on 1, very weird why it happens, but it does! so never go from 1 redstonewire to 2 wires/inputs, put repeater between them to fix this bug.

    lol @ morden, it took me 6hours to build it, i had to change some things here and there, but the core for converting (the adder part) was ok) the clock/pulse part went wrong, maybe cause i needed some transmitters between the parts. its quite big :D also, i dont know how to build a repeater that repeats a number instead of just setting all outputs on 1 when some input is on. so i used an extra demultiplexer as repeater, 2 extra dregisters to store the outputs, cause its changing very fast, also, some parts are not working with pulse, but they do with burst.
    To be clear, its finnally working and done/debugged. if you test it, make sure to type in A5 and not just A or 5, cause it will change place of letters and numbers etc, so the state of the levers are very crucial to be able to work

    @sram guy:setting 0 on easch output can be done very fast:p just add burst chip (if you have) to a counter, and connect that to the addres inputs, keep data inputs on 0. and let it run :D.
    if not burst, just use a clock, wont make that much difference. also
     
  26. Offline

    Kit Ramos

    Hello, I love this plug in and I'm dooing okay on figuring out most of the issues but I got one problem i can't figure out.

    what I want:
    4 seprate ouputs that are on for 4 pulses and then off for another 4.
    each out put using the same pattern but beeing in a differnt spot on the on off cycle.

    what I tried to do is hook up a shift register to two comparators one for when the output is 15 the other for when its 0 and then a flip flop tied to the 2nd input pin on the register. My hope was to shift in 1's untill all the outputs where full then to shift in 0's untill they are all 0's and start shifting in 1's again.

    well it starts out just fine as I start with the flip flop in a on state, then I put a clock pulse to the shift register and its, moving up untill they all full as I expected then the one compatror flips the flip flop and it turns off the input to the 2nd pin of he shift register as I hoped but insted of continuing to shift in 0's like i want somehow the flip flop gets fliped again and only one 0 bit gets trown in and insted of them turing all off the single 0 just shift through the pins.
    what seems to be happeing is it flips once when compatator 1 turns on (due to the input beeing 15) but then the input changes to a differnt number it some how flips it again while turing off.

    I can't figure what i'm doing wrong here. I tried to un hook the 0 comparator from the circut and it lets me go up and come back down all the way excatly as I wanted. but then I'm stuck with out an automatic way to make it start gooing back up again. I tried debug on the 0 comparator chip. and it's not saying it's turning on ahead of schedule so I'm not sure what's gooing on. let me know if you need any more detals or need me to post the files. Thank you.
     
  27. Offline

    Mordenkainen

    Easiest way is to make your shift register 8 bits and connect it's last output to the input. Clock in 4 1's using a lever or something.

    Now the shift register has 4 1's and 4 0's in it that will shift with wraparound every time the register is clocked. If you only look at four outputs I think it does what you are looking for.

    shift.JPG

    Morden.
     
    Kit Ramos likes this.
  28. Offline

    hofec

    Hi guys ! I've got a latest CB #766, LWC v2.31 and RedstoneChips 0.9 .. and got these exciption when server goes stop ..
    Code:
    2011-05-15 22:24:31 [SEVERE] Could not pass event REDSTONE_CHANGE to LWC
    java.lang.NullPointerException
        at com.griefcraft.lwc.LWC.findProtection(LWC.java:596)
        at com.griefcraft.lwc.LWC.findProtection(LWC.java:569)
        at com.griefcraft.listeners.LWCBlockListener.onBlockRedstoneChange(LWCBlockListener.java:63)
        at org.bukkit.plugin.java.JavaPluginLoader$32.execute(JavaPluginLoader.java:420)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:289)
        at net.minecraft.server.BlockSign.doPhysics(BlockSign.java:119)
        at net.minecraft.server.World.k(World.java:388)
        at net.minecraft.server.World.applyPhysics(World.java:366)
        at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:48)
        at net.minecraft.server.BlockRedstoneWire.doPhysics(BlockRedstoneWire.java:287)
        at net.minecraft.server.World.k(World.java:388)
        at net.minecraft.server.World.applyPhysics(World.java:363)
        at net.minecraft.server.World.update(World.java:336)
        at net.minecraft.server.World.setData(World.java:281)
        at org.bukkit.craftbukkit.block.CraftBlock.setData(CraftBlock.java:91)
        at org.tal.redstonechips.circuit.Circuit.changeLeverState(Circuit.java:249)
        at org.tal.redstonechips.circuit.Circuit.sendOutput(Circuit.java:241)
        at org.tal.redstonechips.circuit.Circuit.sendBitSet(Circuit.java:277)
        at org.tal.redstonechips.circuit.Circuit.sendBitSet(Circuit.java:288)
        at org.tal.basiccircuits.clock.stopClock(clock.java:118)
        at org.tal.basiccircuits.clock.circuitShutdown(clock.java:123)
        at org.tal.redstonechips.CircuitManager.shutdownCircuits(CircuitManager.java:435)
        at org.tal.redstonechips.RedstoneChips.onDisable(RedstoneChips.java:146)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:129)
        at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:690)
        at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:261)
        at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:255)
        at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:120)
        at net.minecraft.server.MinecraftServer.stop(MinecraftServer.java:241)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:317)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    2011-05-15 22:24:31 [SEVERE] Could not pass event REDSTONE_CHANGE to LWC
    java.lang.NullPointerException
        at com.griefcraft.lwc.LWC.findProtection(LWC.java:596)
        at com.griefcraft.lwc.LWC.findProtection(LWC.java:569)
        at com.griefcraft.listeners.LWCBlockListener.onBlockRedstoneChange(LWCBlockListener.java:63)
        at org.bukkit.plugin.java.JavaPluginLoader$32.execute(JavaPluginLoader.java:420)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:289)
        at net.minecraft.server.BlockSign.doPhysics(BlockSign.java:119)
        at net.minecraft.server.World.k(World.java:388)
        at net.minecraft.server.World.applyPhysics(World.java:363)
        at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:48)
        at net.minecraft.server.BlockRedstoneWire.doPhysics(BlockRedstoneWire.java:287)
        at net.minecraft.server.World.k(World.java:388)
        at net.minecraft.server.World.applyPhysics(World.java:363)
        at net.minecraft.server.World.update(World.java:336)
        at net.minecraft.server.World.setData(World.java:281)
        at org.bukkit.craftbukkit.block.CraftBlock.setData(CraftBlock.java:91)
        at org.tal.redstonechips.circuit.Circuit.changeLeverState(Circuit.java:249)
        at org.tal.redstonechips.circuit.Circuit.sendOutput(Circuit.java:241)
        at org.tal.redstonechips.circuit.Circuit.sendBitSet(Circuit.java:277)
        at org.tal.redstonechips.circuit.Circuit.sendBitSet(Circuit.java:288)
        at org.tal.basiccircuits.clock.stopClock(clock.java:118)
        at org.tal.basiccircuits.clock.circuitShutdown(clock.java:123)
        at org.tal.redstonechips.CircuitManager.shutdownCircuits(CircuitManager.java:435)
        at org.tal.redstonechips.RedstoneChips.onDisable(RedstoneChips.java:146)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:129)
        at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:690)
        at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:261)
        at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:255)
        at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:120)
        at net.minecraft.server.MinecraftServer.stop(MinecraftServer.java:241)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:317)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    How can I fix this please ?

    Ty 4help!
     
  29. Offline

    Mordenkainen

    This is an LWC exception. Don't think RC is causing it.

    Do you still get the exception without RC? How about without LWC?

    I suppose there could be some interaction between them, but the exception identifies LWC as the plugin getting the error.

    Morden.
     
  30. Offline

    hofec

    This exception shows up when both of these plugins are loaded .. when i tried to start with only one, start was clean.
     
  31. The error details include RedstoneChips. It looks as if the two plugins are colliding.
     

Share This Page