The NeoPixel is a very cool little device. It combines three LEDs (red, green, and blue) with a specialized microprocessor, all in a package about the same size as a traditional LED. These smart LEDs open up a wide range of new project possibilities because they reduce the amount of circuitry and processor pins that […]
The world of embedded software development can feel like a very isolated place. Earlier in my career, when I was doing mostly embedded work, I remember often feeling jealous of my colleagues who were working on mobile and web applications. I would constantly hear them talking about exciting new libraries, frameworks, and tools with catchy […]
I’ve been getting asked the question, “So how would I get started with embedded development?” more and more often lately. This is actually a really tricky question. It’s not like, “How would I get started with Haskell?” or “How would I get started with Rust?” Embedded development is such a weird and diverse thing that […]
After successfully automating the reporting and watering of my garden last summer via my GardenPi, I wanted to rev on the idea this summer. Since this is as much a learning project as it is an automation project, I decided to improve on both fronts. Introducing: Garden KnowEms™.
In professional software development, version control systems (VCS) are a critical part of our daily routine, because they allow developers to: keep an accurate record of the entire history of a project see exactly what changes your team mates are making and how those changes impact the overall project
At Atomic, we build a lot of systems that incorporate device firmware talking to software. We also commonly interface with other firmware or software teams. I believe every project that involves firmware talking to software should include a high-level suite of tests that are written against the firmware’s interface to the software (e.g. Bluetooth, Ethernet, […]
We have updated Ceedling and release a new Rubygem to bundle the latest TDD counterparts, CMock and Unity, to utilize Travis CI to monitor the health of our tools at the ThrowTheSwitch GitHub organization! Atomic Object has blazed the trail of bringing effective test-driven development (TDD) and continuous integration (CI) to C development for nearly a decade. When we embarked on […]
Part 2 finished with the radio receiver circuit’s data made available via a UART-to-USB bridge and a libftdi-based client on the host computer. The data may be available on the network now, but how do people access it?
At the end of part 1, the radio link between the receiver and the bathroom doors’ transmitters was working, but how does the receiver get its data where someone else could see it? I could have put a couple red/green LEDs on the receiver board itself, or wired it to some sort of display, but […]
The bathroom on the main floor of our office is down a short hallway, so we can’t see whether the bathroom is available without looking around the corner. To solve this problem, we made an Arduino-based monitor for a reed switch (a magnetic switch) on the door, setting an LED red or green to indicate […]