Author Archives: Machina

PCB design: laying out the board with Eagle

[Eagle vs KiCad part 10] This is going to be a fairly short post because most of what I have to say can be summed up with: Eagle’s board layout program works very well and I had very few problems. It also offered very few features I wanted that KiCad didn’t. To create a board that will sync with your schematic… Read more »

PCB design: laying out the board in KiCad

[Eagle vs KiCad part 9] Once you’ve finished your schematic, creating a board in KiCad involves a number of steps. First, while still in Eeschema, you need to ensure all your components are ‘annotated’. When you drop a component in the schematic, it will be shown with an identifier plus question mark – for example, an IC might have the label… Read more »

PCB design: Eagle vs KiCad – a different direction

[Eagle vs KiCad part 8] So, as I mentioned in the previous post, I’ve decided to change direction slightly. Rather than continuing with the HexMonitor project to a completed and fabbed board, I’m going with a slightly simpler project. The reasons are two-fold: first, the HexMonitor board is sufficiently complex that I figured it had no chance of working, this being… Read more »

Mechanical keyboards revisited

      20 Comments on Mechanical keyboards revisited

When your job involves many hours a day hammering at a keyboard then the nature of that humble instrument, so little regarded by occasional or amateur computer users, assumes great importance. And if, like me, you are of considerable age and have worn-out hands, then the choice of keyboard becomes critical – otherwise it turns into an instrument of torture…. Read more »

PCB design: first steps with KiCad

[Eagle vs KiCad part 5] Having got as far as a complete schematic for my HexMonitor project with Eagle, it’s time to try the same thing with KiCad. And just as I did with Eagle, my plan is to design my HexMonitor project that takes signals from one eight-bit and one 16-bit bus and display their values on a four-digit, seven-segment… Read more »

AVR basics: using the I2C bus #5 – final thoughts

Part 1 – bit rate Part 2 – transmitting Part 3 – sending data Part 4 – receiving data Part 5 – final thoughts The I2C bus isn’t that hard to use and for most applications it’s pretty simple. However, there is a lot more depth to it than we’ve covered here. The purpose of this final post in the… Read more »

AVR basics: using the I2C bus #4 – receiving data

Part 1 – bit rate Part 2 – transmitting Part 3 – sending data Part 4 – receiving data Part 5 – final thoughts This builds on the previous two posts that dealt with the fundamentals of sending data over the I2C bus on AVR microcontrollers and then how you actually do it. Receiving is a similar process, except for… Read more »

AVR basics: using the I2C bus #3 – sending data

Part 1 – bit rate Part 2 – transmitting Part 3 – sending data Part 4 – receiving data Part 5 – final thoughts In part 2 we looked at the fundamentals of how data is transmitted over the I2C bus. Now let’s actually do it. And, as usual with AVR microcontroller stuff, it’s all about registers. As before, our… Read more »

The stuff I use

      No Comments on The stuff I use

It’s always fascinating to know what kit others use. Reviews are all very well, but I’m more interested in what people work with on a day-to-day basis. So I’ve set up an account over on kit.com. I’ll be sharing lists of the equipment I actually use and like. If you see something in these lists you’ll know that: I bought… Read more »

AVR basics: using the I2C bus #2 – transmitting

Part 1 – bit rate Part 2 – transmitting Part 3 – sending data Part 4 – receiving data Part 5 – final thoughts So in the first post in this series, we looked at how to configure the bus speed for I2C. Now we’ve got that out of the way, let’s start sending stuff over the bus. The I2C… Read more »

AVR basics: using the I2C bus #1 – bit rate

Part 1 – bit rate Part 2 – transmitting Part 3 – sending data Part 4 – receiving data Part 5 – final thoughts When I first started playing around with Arduinos I quickly grew to like the I2C bus, and for a couple of good reasons. First, it was easy to use. And second, there are lots of fascinating… Read more »

AVR basics: control more devices using decoders

One of the issues with the Serial Peripheral Interface (SPI) bus, as many people have noted, is that it requires one Slave Select (SS) line – which means one GPIO pin on your microcontroller – for each device on the bus. That’s in addition to the three main bus lines – MOSI, MISO and SCK. This might be difficult on… Read more »

AVR basics: SPI on the ATMEGA – Part 2

In Part 1 we got the SPI bus set up on an AVR ATMEGA328P microcontroller. Now let’s start using it. Settings pins Before we get going, we need to set up the pins for the SPI bus on the AVR (which we’re using in master mode). I’m using the ATMEGA328P here, so I’m going to define some macros to make… Read more »