
CRUMB Circuit Simulator
Save
Bridge RectifierMay 6, 2025 - Community AnnouncementsHello everyone, Contrary to some of the recent reviews saying the project is dead, it is not... I just happen to be working on this in my absolute spare time between work, family and living! I have had a few comments, discussions and reviews highlighting differences found between CRUMB and real world applications. It would be great to hear from you all and get your feedback on your findings! Once I have fully sorted out custom component building and programming, most of these issues will go away as I'm sure the community will be able to create more accurate components in addition to the basic ones I have provided! I've been playing around and provide an example of a Bridge Rectifier that I have made and functions as expected :) and find my file here. Bridge Rectifier Save File Hotfix 1.3.5Jan 30, 2025 - Community AnnouncementsFixed memory leak from the C++ MatrixMath.dll when running large complex circuits. As users are starting to build larger, the solving logic runs through a few more steps to converge and one of the steps had an overlooked leak. CRUMB 2.0 update: Still hard at work, but I think I am at the point of needing to move from a solo project and make a team. I am putting in alot of hours!Hotfix 1.3.4Dec 18, 2024 - Community AnnouncementsSlight change to the convergence code of the Diode Element as there were some unique circuit configurations unable to solve, causing a memory leak as the Math Engine tries to compensateHotfix 1.3.3Nov 30, 2024 - Community AnnouncementsMore fixes! 74HC245 fixed issue with the DIR pin not functioning correctly and causing a crash due to matrix error Corrected pin labels for 74HC245 and 74HC273 Fix issue with a single remaining pin label after a component delete with pin hints enabled All the best MikeHotfix 1.3.2Nov 29, 2024 - Community AnnouncementsI have removed support for AVX2 for the time being as it would appear that some users do not have support from their CPUs. The performance loss is negligible, if any, and should stop crashing for affected users! As always, please get in touch with any issues that you may be having All the best MikeHotfix 1.3.1Nov 28, 2024 - Community AnnouncementsIn the last 24 hours since 1.3 was released, a couple of errors have been noted. I have worked hard with several users to isolate the problems. I honestly cannot thank them enough for their patience. I have updated a few key areas, which should significantly improve stability and hopefully stop some users getting crashes when placing unconnected components and creating wire loops with switches. Circuit Math is very complex and I am always improving the detection of singular matrices or convergence issues I had managed to miss out a critical multiplication when optimising the Transistor, which was causing convergence issues for the simulation! All the best Mikev1.3 is now availableNov 27, 2024 - Community AnnouncementsBetter late than never... Simulation speed was always the limiting factor for the future of CRUMB. No matter how much work I put into other areas, I was always hit with the same issue and I was not able to achieve the vision that I wanted for CRUMB. Initially I had said that I had found a 2000% increase in performance with last month's development update, but that milestone has since been blown away and CRUMB is now something in the region of 20,000%+ faster π I'm not going to go into every last detail of how this speed has been achieved, but for all of you that are technically minded, here is a short summary of how this feat was achieved: Replacing my linear matrix algebra with a high performance KLU-type algorithm Pre-processing all unknown variables to reduce runtime overhead of matrix operations Pre-processing allows the Symbolic Matrix to be calculated once Pre-processing allows the circuit matrix to be "refactored" on every timestep, not full factorization Extensive use of unsafe code in C# to allow low-level memory integration with external C++ used for the circuit Matrix Pre-processing all pointers for memory manipulation to allow lighting fast matrix operations 8-Bit Computing {STEAM_CLAN_IMAGE}/43155574/90c4735de272dd0765e8de4d2fd905e05fdc486d.png As previously mentioned, this increase in performance means that it is now possible to build and run large circuits, including my recreation of the Ben Eater 8-bit CPU. Ben's fantastic series on building an 8-bit CPU led me to create CRUMB with the dream of users being able to build the design themselves. And now it is possible. Before you download my example and watch the video below, I highly recommend you have a go at building your own CPU! I found it to be a hugely rewarding experience being able to build, test and debug my own attempts π€ it took me about 3 weeks from building the clock module, to running a simple program. Here is the link to my 8-bit CPU Design which is ready to be programmed 8-bit CPU Download For instructions on how to program the CPU and run instructions, watch the video below where I give a guide on how to use the Arduino to write the Microcode to the EEPROMS and also how to program the RAM manually to run a simple program π With these changes above it is now possible for you to run some circuits at 96,000Hz! And currently that is just a limit I have chosen for now until I can get an idea of how circuit complexity correlates with the simulation speed {STEAM_CLAN_IMAGE}/43155574/5ae9af5dac17c843233813d0ac97303669e1846b.png Changes to simulation settings menu - Simulation speeds of up to 96,000Hz. Timestep slider removed and replaced with a realtime speed adjustment Alongside the main work of this update, I have managed to include a few other bug fixes and changes that should help towards stability of the program. I'm not going to be able to list out every fix but some that are included: Recognition and handling of Matrix errors. Mathematically discrepancies are checked...Quick progress updateOct 29, 2024 - Community AnnouncementsHello everyone, just a quick update on progress! I am for the most part complete with the speed update, it is actually now possible to run some of the circuits at 96,000Hz which is great news... especially if you want to create circuits for audio/analog processing π However, I am going through a few checks and tidy ups with everything to do with audio input as I want to compile two updates in to one, as I feel like everyone has waited for long enough for an update! I am still aiming to be finished within the next week or two, please just bear with me πTime to be getting excited... for AudioOct 23, 2024 - Community AnnouncementsWork on the first major update is going well, although I am up until 2-3am most nights working away hard! Speed is the major update to begin with, it has got to the point now that it is actually immeasurable just how fast I have managed to get the simulation running. Some circuits I have had running at nearly 200,000Hz!! Even the Ben Eater 8 bit CPU I can run at 2,000Hz with ease on my 2019 MacBook Pro! With this new found speed, the door has now opened up for Audio and analog signal processing. My work is going to be cut out making the oscilloscope better! I'm getting very very excited, here are a couple of videos from my development version which is using the latest update features. First video shows a simple Guitar Overdrive circuit which is running in real-time on a Wav file... And then of course, my own build of the Ben Eater 8bit CPU (which was the reason I started making CRUMB in the first place :D) Will keep in touch, still aiming for early November for the update cycle to begin! Cheers, Mike Major Update Incoming...Oct 8, 2024 - Community AnnouncementsSome of you will have already seen in the discussions that I have been made a major breakthrough in the development of CRUMB. Since before I even released CRUMB nearly 2 years ago, I have been constantly searching for more performance and speed. As a developer, I have been completely blown away by this new performance. I will give a full breakdown of changes when I release the update, which should hopefully be at the start of November. I have been working through many of the niggles and bugs that have been mentioned, whilst also extracting every possible piece of performance from the new system I have implemented. To keep you on the edge of your seats, here is the Ben Eater 8-bit CPU (https://eater.net/8bit) that I have been able to build and run at over 600Hz on my 2019 MacBook Pro! Bring on November... {STEAM_CLAN_IMAGE}/43155574/e4ebedaf345e1b8b254342bdbf653d26385c091b.jpgCRUMB Advanced Progress ReportMay 23, 2023 - Community AnnouncementsJust a quick update to show that I am pouring long hours in to making CRUMB Advanced as detailed and complex as possible π. Further developments include: Dockable Panels and Windows Hierarchy Browser Transform Tools Material Editor + much more! Below is a quick screen recording of the latest iteration of the component editor UI Cheers! Mike Component CreationMay 1, 2023 - Community AnnouncementsThe core concept of CRUMB 2.0 is to be able to give the user the ability to create any component, mechanical or electrical. The starting point is the importing of a 3D representation of that component. Switching to the Unity UIToolkit, I have been able to create new runtime tools to allow the user to import a variety of 3D model formats and offer material customisation. Below is video from the conceptual build testing the new modelling/material tools Screenshot from the new Component EditorMar 21, 2023 - Community AnnouncementsJust want to share a quick screenshot from the development build of CRUMB 2.0 showing the new Component Editor! You can import a variety of 3D model formats, define pins, tie points, all programmed functions etc... It is really going to be possible to have an infinite number of components made by the community! {STEAM_CLAN_IMAGE}/43155574/1fe846439ba7616a0a5af0f0fc59ed7b4815aa70.pngHard at work on CRUMB 2.0Mar 13, 2023 - Community AnnouncementsHey everyone! Long time since the last update, but I have still been working away hard between my real job and young family! I have been gathering lots of info from all the users and my whiteboard is now covered in ideas and feature requests I am not quite ready to show new screenshots/video recordings as the latest User Interface is very much in a debug/alpha phase and does not represent what the final version will be like. However below is a summary of the new features that will be coming in the future User created components - Parts can be created from scratch and programmed to suit requirements, this means that the catalogue of components will expand over time with community input. You will have the ability to upload your own 3d models, specify wiring locations, variables and complex electrical interactions Electromechanical - The next version will give the ability to build and construct electromechanical systems, such as robots. Complete with Physics simulation Steam Workshop - Highly requested, Steam Workshop will allow the community to really come together with learning and the creation of new components and sharing of designs Revamped User Interface - The usage and feel of CRUMB will be closer to that of a dedicated 3D CAD program to help bring CRUMB closer to be a professional too There are more features to list, but I will share them in due course... just want to get a quick update out so that everyone knows that CRUMB is not dead!! MikeEEPROM Programming with ArduinoDec 13, 2022 - Community AnnouncementsWhilst I am taking a small break from development after the big update, I thought it would be nice to sit down with CRUMB and have a play around! I started development just over a year ago after I discovered some of the videos made by Ben Eater (eater.net) and wanted to create a simulator that would allow people to craft some of the amazing circuits that he has made. CRUMB has grown beyond that initial concept, but I still love to recreate some of the work that Ben Eater has made EEPROM Programmer and Multiplexed Display On Ben Eater's website there are some fantastic guides on how to create various modules of his Breadboard based 8bit CPU and I thought I would have a go at creating the Output Register Display and also the Arduino based EEPROM Programmer (Output Register) {STEAM_CLAN_IMAGE}/43155574/93bb2b30f0963a905073bb1ba839b969a319e9e2.jpg In the circuit above we have two sections. The top is the EEPROM Programmer which uses two 74HC595 shift registers to allow us to get around the lack of pins available to us on the Arduino Nano. The lower section is the Multiplexed Display which uses the EEPROM as a Binary to Decimal decoder for the display Take a look at the video below to see how it is possible to move the 28C16 EEPROM over to the Programming section, run the Arduino Program and then back over to the Multiplexed Display for it to output the binary number on the address pins on the Seven Segment Displays If you want to have a little play around yourself... here is a link to the save file π EEPROM Programmer Save File Update is here and now available on MacOSDec 7, 2022 - Community AnnouncementsFinally the Update is here! Thank you to everyone who has been patient whilst I have been working long days and nights to re-write the vast majority of the Core UI code. CRUMB may not look too different, but underneath what you can see, it is now a very different and streamlined program. There should not be any issues with numerical entry or crashes. However should you find any other problems do let me know Now available for MacOS A side effect of having to re-write the UI code, is that it jumped me well forward in my development plan and allowed me to build the MacOS version as well. I have included both the Intel 64-bit and Apple Silicon binaries. I have not been able to test the Apple Silicon version myself as I have an older MacBook Pro. If you have any issues, it should run through Rosetta as the Intel binary Feature Upgrades Whilst updating the the Core UI I have also managed to change a few things in CRUMB based on all of your well appreciated feedback. Below are some, but not all of the changes that can be found in the new version of CRUMB Manual Scaling of UI Some users were finding it difficult to use CRUMB on 4K screens which are not using any OS scaling. I have included the option to manually adjust the UI scale within the Settings Window {STEAM_CLAN_IMAGE}/43155574/3a387ab469dc1687b7cf7fa00aa0771c8564a469.png Quick Start Guide On the Welcome/Open Design Window there is now and option to view a Quick Start Guide that gives a quick run down of some of the basic features of CRUMB. Hopefully this can help clear up any miscommunication {STEAM_CLAN_IMAGE}/43155574/783504b6f05e4886419fe68cda187b8438fde4fb.png Update to Code Editor Part of the switch to my new Core UI meant that the original solution to my code editor no longer was compatible, so I have created my own bespoke solution (still a work in progress with syntax highlighting) which allows you to view my own Source Code files for the Arduino Nano that I have in CRUMB {STEAM_CLAN_IMAGE}/43155574/0a1c1bf7fcf6e5fcca5f5644a7d3de6e726b855e.png Visualisation Upgrades As shown in the previous announcement I have added some cool visualisation features to help better understand what is happening in a circuit {STEAM_CLAN_IMAGE}/43155574/9598a56cab062ec46de5c7b0b87eb8993f05ebc1.png Other Changes There are now keyboard shortcuts for all the major functions in CRUMB I have corrected a few errors with components and also their information pages I have reduced CPU drastically compared to the previous version Future Updates I am going to have a small break from development over the Christmas period and will be back on it in the new year and will be bringing out new components based on user requests! All the best!! Mike Progress Report | Major UpdateNov 29, 2022 - Community AnnouncementsHey everyone! Another update for you all to show I'm still hard at work and I haven't abandoned anyone who has had problems with V1.0! The new update already has lots of features added already. Most of the work is being done to rectify this program breaking fault with differing CultureInfo across the world affecting interprocess communication and causing crashing In a nutshell, here is a little summary of what has been changed already and will be included in the update... which I'm still on target for in the next week or two Changes coming in the new Update Complete rework of the program structure. Everything is now contained in just one process and window. From the outside, you can see only subtle differences. On the inside it is very much a different program All numerical entry fields automatically format to the locale that you have on your operating system Numerical fields will highlight red when incorrect data is entered. Data will only be sent to the component when using an "Update" button Major command buttons all have keyboard shortcuts, which are annotated with tooltips Component rotation snapping has been disabled, so it is now possible to rotated pin based components. For example, transistors can be mounted in multiple directions Viewport settings are much more clear and visible, so you can switch between voltage, current, pin and logic views. All with keyboard shortcuts Various component tweaks, some todo with simulation, some todo with the descriptions and pin diagrams It is now possible to view the Arduino Source files Re-work of code editor workflow to make changes/errors easier to track and resolve Bonus The concept of CRUMB is based around a very visual portrayal of real world components and a little feature I have added in gives the ability to look at LEDS in all their glowing glory π take a look below PLEASE READ: Workaround for crashes and issuesNov 26, 2022 - Community AnnouncementsQuite a few users, especially those whose number systems use a different format to GB English, have been suffering breaking crashes and it has forced me to rebuild the user interface from scratch... however, a kind user on the CRUMB forum has tested a workaround for now that may be of use to some of you with problems. CRUMB Forum post Basically as a temporary measure, if you would like to use the current version of CRUMB before I get the big update, you need to change your system Locale to English(UK) and it will correct the internal issues with number exchanging between the simulation process and the UI A guide how to do this can be found here https://www.isunshare.com/windows-10/change-system-locale-in-windows-10.html Again, my deepest apologies for this issue and I am working as fast I can to get the updated version out as soon as I can! All the best MikeHard at work on the Major User Interface restructureNov 24, 2022 - Community AnnouncementsHello everyone! I want to keep you updated as much as I can so that you can see what I am working on π Firstly, I have completely restructured the UI and this will remove all of the issues that some users have been having with crashes and number formatting. This change in structure also means that Mac and Linux builds will be available when I release this major update I have also been listening to all of the feedback, some positive, some negative, some exceptionally harsh (have to take it on the chin) and have started to implement new features into CRUMB The feature I am highlighting today is Logic Level Indicators This enables you to quickly view the I/O of Integrated Circuits, which is perfect for the users which are interested in creating logic modules, such as those found in Ben Eater's brilliant youtube videos π Take a look at the video below to see how the indicators look Major UI Core change, Mac and Linux supportNov 21, 2022 - Community AnnouncementsThank you all so much for your patience! It seems that yesterdays fixes havenβt resolved the issues for everyone, so I am now completely restructuring my UI system It should take me around about 2 weeks to complete, but it will also mean that CRUMB will also be supported on Mac and Linux Bear with me! I shall keep everyone updated Mike
Show Comments