Showing posts from October, 2020

Document breadboard builds by writing Python code

In my last post I mentioned that I was using breadboarder - a Python program that eases the pain of documenting breadboard-based projects. You write a descriptiopn of your project using a Python-based DSL - a domain-specific language. It lets you explain what wire or component to add to the breadboard, and where to connect it. You write code like this: And it generates markdown and png files which render like this: It saves hours of layout, you can build complex projects out of simple ones, and everything is under source control. I need to improve the documentation but breadboarder is  on GitHub .

Fault-finding breadboarded circuits - a tale from the trenches

blobstar Yesterday I destroyed an Atmel ATMega328 chip. (That's the chip at the heart of the Arduino.) The Atmel chips are very well designed, and it's really hard to damage them, but I've managed it twice in the last decade. Yesterday's episode was due to a mistake in wiring up an Arduino clone that I've been building on a breadboard. The clone is a descendant of Cefn Hoyle's excellent Shrimp design. I decided to build an alternative version which could be programmed using an FTDI cable and made permanent using an Adafruit perma-proto board. The correct layout (shown above) is easy to follow, but my ageing eyes led me to connect two of the power wires to the wrong pins. When I powered up the board using an FTDI cable the LED didn't blink and I knew something was wrong. But what? A simple approach to problem-solving When something stops working, you focus on what's changed. When

An Adafruit proto Bonnet for the Raspberry Pi, Jetson Nano and Grove I2C

babelboard bonnet Adafruit's protoBoards lets you make a bread-boarded design permanent, and Seeed Studio's Grove system lets you wire up a prototype really quickly. In this half-day project I combined the two to create a simple, cheap, flexible prototyping system for the Raspberry Pi and Jetson Nano The Grove system is based on standard 4-way connectors which can be used to connect digital, analogue and I2C-based components. I've focused on I2C since most of the robots I build use I2C to interact with their environment. I mentioned the Jetson Nano - a hot topic at the moment, as NVIDIA have just announced a low-cost 2 GB version of the Nano which will be available at the end of the month. One of the clever features of the Nano is that it has a Pi-compatible header, so the bonnet will work on the Nano without modification. Fritzing the design I started by laying out an Adafruit bonnet design using Fritzing. The design is really simple. All it does is connect the pins of the