Looking at 3.3v microcontrollers like the SAMD in the newer Arduino boards, it is frequently necessary to do level conversions between 3.3v and 5v logic. Sometimes you can get away with not using a level converter, but certainly far from always! I looked at a couple of inexpensive commercial adapter boards. These are bidirectional which …
Before I potentially dive in with writing a Far Inside SAMD21 book I decided to spend some time just looking at the architecture as well as what Arduino does with it. I did find that there is a lot of code overhead. So the potential savings of coding to “bare metal” is very much reduced. …
So I just finished the Still Far Inside The Arduino book and am starting to consider a new project. The Arduino Nano 33 IoT caught my eye. While still a bit more expensive than clone Uno or Nano boards, it is the second lowest cost genuine Arduino board, second only to the Arduino Nano Every. …
My latest book has now become available on Amazon. Still Far Inside The Arduino continues the theme of Far Inside The Arduino and the Nano Every Supplement by using programming techniques and drivers more advanced than what Arduino promotes. Topics include: Distinctions among the various general purpose Arduino boards: ATmega328P based like the Arduino Uno …
Finally I finished the first draft of my next book Son of Far Inside The Arduino* along with writing and testing about 35 example programs, almost all of which had to be tested on Arduino boards using the four different AVR microcontrollers the book covers. I think I spent more time on the example programs …
OK, I was going to give examples where reenabling interrupts was necessary for smooth, error-free operation. But then I hit a snag. It turns out that interrupts cannot be reenabled simply with sei() in the ATmega4809 in the Arduino Nano Every! There is an important difference in operation compared to the other AVR microcontrollers used …
Using a timer/clock interrupt, one that occurs at a regular rate, can be useful in managing tasks, providing a pseudo-operating system with essentially no overhead. The code for each task is laid out one after another in the ISR. For tasks that we want to execute at regular intervals we arrange the task like this, …
Arduino provides a USART driver for treating the data as a stream, basically a never ending sequence of bytes. This follows along a tradition of sorts, basically popularized by UNIX in the 1970’s. However traditional (at the time) computers did I/O by records, blocks or packets, of data. And this is the basic operating method …
I received an email from a purchaser of the PDP-8 Class Project book, Doug Gilliland, who took my design and did an implementation using an Altera FPGA instead of the Xilinx FPGA used in my classes. He also made a custom front panel! Very nice! You can read all about his project here https://hackaday.io/project/179357-pdp-8-fpga. This …
I recently received a request from a reader of my Far Inside The Arduino: Nano Every Supplement. He needed to create a 38kHz carrier modulated at 1kHz for a project he was building with the Arduino Nano Every and was thwarted by available code for the Uno which would not compile on the Nano Every. …