by the JK Flip Flops
What is (De)Buggy Board?
Plan > Connect > Debug
An interactive, educational breadboard to ease circuit-building and debugging.
(De)Buggy Board is an interactive, educational breadboard comprising of hardware and software components. Students design the circuit they want to build on a software user interface. Then, as they build it on the breadboard, their circuit design will sync with the software to provide real-time information about their circuit.
This is (De)Buggy Board.
With traditional breadboards, designs can quickly become a dense forest of wires. This requires tedious testing strategies that offer little educational value and tend to be time consuming.
With the (De)Buggy Board, the student will be able to see what voltages are at each node to quickly notice when something simple goes awry. This allows the student to quickly prototype the circuit and get started with the lab at hand.
Meet the JK Flip Flops.
Functional
Measure all DC nodal voltages on breadboard and relay voltage data to software.
Automatically connect pin rows on the breadboard without wires.
Indicate the status of each pin row on the breadboard via an LED.
Functional
Provide a user interface for symbolically diagramming circuits. Automatically perform basic error checks on the circuit diagram via KCL and KVL.
Create an interface for placing and wiring circuit components from the circuit diagram on on virtual breadboard.
Provide real-time debugging feedback derived from nodal voltages. Is my resistor disconnected? Did I place the capacitor in the correct pins?
Allow for the user to see how their circuit is changed when using auto-routing due to internal resistance of routing fabric (See Components).
The circuit should detect dangerously invalid circuits (such as short circuits and high currents) and avoid unsafe operating conditions by shutting down. As first priority, the circuit should not pose physical harm to users through unsafe operation. Second, the circuit’s safety system should prevent internal damage.
We will have reliable and accurate DC nodal voltage readings for students to successfully understand the physical circuit they are prototyping.
A.K.A our parts list.
Required to make auto-routing possible. The main design choice here was buffered or unbuffered. Buffered has low internal resistance but has amplifiers on the outputs, which means we are "imitating" the user's signals and not routing them. This can cause problems in circuits that use feedback. The unbuffered switch just contains a matrix of analog switches. This means a higher internal resistance (approx 200 ohms), but now we actually route signals instead of recreating them. They are also cheaper!
To sense the DC voltages, we need an external ADC. We cannot use the MCU's on-chip ADC since the voltage reference of the MCU's ADC is limited by the max supply voltage of the MCU. Limiting nodal voltage sampling to 0 to 5v is not user-friendly. Therefore, our ADC will have high supply rails (+/- 12v) to give the user more possibilities.
We need only a simple MCU. We decided to pick one with USB support in order to make our communication protocol with the software application simple. Atmel MCU hack support is fantastic online since the processor is widely used in arduino chips. This MCU is responsible for receiving commands from the application to control the LEDs, the crosspoint switches, and track nodal voltages.
Used to multiplex in all the breadboard nodes to the external ADC for DC voltage sampling. These muxes also need to have the high supply rails of our ADC (+/- 12v) in order to allow for the signals to pass through correctly.
Used to minimize IO from the MCU used to control the LEDS along the breadboard. Nothing crazy here. Just some simple 8 bit shift registers. We need 6 ICs per a given color to control a 48 node breadboard with an LED for each node. Therefore, we need 18 total ICs.
The all-important breadboard. Due to our budget, we can only afford a 48 node board. We achieve this by daisy chaining crosspoint switches. Using a 16x16 switch, we need a grid of 9 switches total to have 48 unique nodes. These 9 switches will exhaust the majority of our budget.
An eight-person team from Egypt designed an auto routing breadboard that uses a software backend to route nodes. Their design and goals are similar to ours, but lack the real-time voltage tracking that is essential for our debugging application.
Learn MoreThis the only product similar to our concept that we could find. It has features similar to ours, such as an attached software to plan your breadboard wiring, and LEDs to guide placement. As it turns out, this product is actually made by the Egyptian Team. This product is currently not for sale as it is still in development.
Learn MoreThere have been two similar projects within Carnegie Mellon’s annual Build18 hardware hackathon. The ProtoSmart team created a breadboard that sensed voltages at each row of a small breadboard. The Field Programmable Protoboard team set out to make a breadboard that wires rows together for you (auto-routing).
Learn MoreThis team is still a work in progress, but has a nifty video. They aim to create a breadboard that communicates wirelessly with a computer or your smartphone, which is an interesting feature we are not including. The goal for their product is also very similar to ours: reduce circuit-building frustration!
See VideoOur software system architecture, presented in a diagram of class structures and how they interrelate.
This is what an ideal use case will look like:
Error use cases that could come up are:
Our user interactions, as a visual representation of the hardware and software systems interacting with the user.
"If there is no struggle, there is no progress." - Frederick Douglass