There is a little joke that goes around in my friend group. That I’m cursed to have technology brake early on me, and for weird unexpected reasons. A little while ago I bought a couple of used 3D printers and they have indeed met the same date as a lot of the technology in my day to day life.
So I’m selling off the equipment that I don’t use and has a tendency to brake dramatically on me. I spent today trying to fix a slipping issue on the main printer and failing. It needs to be disassembled oiled and reassembled. Fingers crossed I can find a buyer, at the very least listing the machines for sale was a soothing experience after today’s frustrations.
We finished helping my brother and his wife move into their new mansion. It’s certainly a nice home, but goodness gracious I’m as sore as they come.
Making some cookies to relax while listening to the end of Winter from the Lunar chronicles. Next on my list is to perform some updates to the lab website and do some writing. Maybe work on some of my side projects or my real work. The wonderful life quarantining from COVID-19.
So you’ve decided that you want to start working with FPGAs in your projects. I highly support this decision. FPGAs are amazing devices that are highly underutilized despite their power to transform designs. Your first step is to determine what size of an FPGA you want, and what additional features you’re going to need to get. I recommend starting with a development board and then going through several prototype stages before moving to custom board designs.
Here are some of my recommendations as far as potential board choices. I will admit a heavy bias towards Xilinx FPGAs both due to my personal experiences with them, and due to my negative experiences with Altera equivalents.
Large Boards (Big projects, full Linux)
The Zedboard was the first genuinely high-end FPGA board that I used. Using a Xilinx Zynq processor, it’s got all the peripherals you could want to explore plus a high pin-count FMC connector to add larger boards with additional functionality. If budget isn’t an issue, this pricey darling of a board has HDMI out, VGA, out, ethernet, sound, eight switches, five buttons, a small built-in screen, a healthy 5 PMOD out connectors for various peripherals. You should be able to test out any peripherals you want and then move onto a smaller board without the extras later.
The Zynq FPGA onboard has Dual-ARM cores alongside the programmable logic and can be set up to run Petalinux to interact with the peripheral hardware.
The board is more than a few years old, and so some of the guides no longer work with the latest software, but if you’re resourceful, this is still one of the best boards for developing FPGA based solutions for real-world applications.
The Basys 3 board was the first board I did more serious development on, and the board I learned to work with FPGAs on. It’s got far fewer peripherals in comparison to the Zedboard, and the Artix 7 FPGA onboard is far less powerful; however, for the price point, the number of peripherals makes it ideal for medium scale development. For the budget price of $150, it comes with VGA out, USB, 16 switches, 16 LEDs, a four-digit seven segment display, five buttons, and four pmods to add additional functionality. If you’re not processing a genuinely massive amount of data, this is an ideal solution for getting your feet wet with FPGA development and building your prototypes.
While the Artix 7 FPGA on the board doesn’t include an onboard ARM core, the programmable logic is more than large enough to accommodate a soft MicroBlaze core to handle sequential timing as needed.
The board is also several years old, but because it doesn’t include any advanced peripherals, it is far less reliant on tutorials to get up and running. I’d highly recommend the board to someone serious about developing for FPGAs but who doesn’t need the power of having full arm cores at their disposal.
For those of you who are fans of Python, the Pynq boards are set up to handle a Jupytr server on their ARM cores from which you can load and control different overlays on the programmable logic using basic Python commands. The documentation is once again somewhat lacking, but when you have it figured out you can load and reconfigure different programmable logic overlays and perform different hardware accelerated functions on the fly.
Small Boards (For embedding in products/ projects)
I haven’t had the privilege of working with this board directly myself; however, these breadboard-able FPGA modules come in multiple forms. They are the ideal solution for anyone who things custom Digital logic would be great, but who doesn’t have the budget to pay for them. Running another Artix 7 FPGA as mentioned above, it has the space to perform most potential applications without issue.
I picked up several of these boards for my projects from a Crowdsupply. One of the few FPGAs that I like which aren’t produced by Xilinx, they’re an extremely small FPGA with an underdeveloped development platform; however, they’re still some of my favorites. Why… cause they are cheap enough to be left embedded into prototypes without sweating over the costs. Produced by Trion a relatively unknown FPGA producer, I’m genuinely excited to find somewhere I can make use of their devices in my future works.
Another board that I’m itching for the opportunity to purchase and test out. A Zynq based module in a 40-pin dip package seems too good to be true. The amount of power in such a small space, so easily integrated into other devices is a dream come true.
Spending a little time making a 3D printed plant cover for my supervisor. A fun little project to distract me from the writing assignments I created this based on some memories of pictures and a rough dimensional drawing.
It will almost definitely need a few
revisions in order to make it a functional version.
Well, with Covid-19 leaving everyone in an out and out panic there is a finite silver lining in the lack of people in public spaces. Why hide away in a corner when you can study in the middle of chinook mall and not be overwhelmed by the noise of the area. Now my getting distracted by the smell of Cinnzeo is another story and well horrible for my health my stomach now sits contentedly full of cinnamon deliciousness.
Today my primary goal is writing practice with a lot of low risks and no risk writing I need to do. I’m avoiding the hell that awaits me tomorrow with the real sum of my work.
How to form a narrative out of something that doesn’t have a natural narrative structure is something that still befuddles me. Maybe simply writing more stories until it comes naturally is the answer?
I was just approached by a homeless man, although you wouldn’t know it from looking at him. Standing around 5′ 8″ tall with softer features and a slight tan to his skin. He was friendly, asked me for a coffee. On his head was a black beanie, with a black felt jacket and a light dress shirt, one would easily mistake him for a businessman if not for the tone of his posture. Neither afraid nor proud dissapointment was clear on his face when he realized I wasn’t going to be buying him the coffee he wanted, he moved on without objection or complaint, but slightly put out. I almost regret not buying him a coffee.
Well If you didn’t know I’m in Grad School… It’s a multi-year endeavor and occasionally it can feel like I’m making no progress as the goals are so far in the future.
So I made this loading bar using an adafruit e-ink raspberry pi hat and a raspberry pi zero.
It’s a fairly simple little project which will update my percentage complete every five minutes making a nice little distraction as the hours while away. It will also act as a convenient fuzzy clock with the time displayed at each of the display updates. I may revisit this project a few times to add additional features and different display modes depending on the date or how far into my degree I am.
… I spent today moving my brother and his wife into their new place otherwise I’d consider adding more details…
Today for work I needed to gather current consumption information for the Raspberry Pi Camera V2. Not in relation to the increased current consumption when processing the video for the system as a whole (Which has been quoted elsewhere on the net as ~200mA – 250mA I cannot confirm this), but for the board itself. Specifically interested in the sensor the Sony IMX219, but making the reasonable assumption that the sensor represents the majority of the consumption in these cases. I’d prefer to rely on a datasheet but given sony saw it in their wisdom to not put power numbers in the datasheet for the part they left me no choice…
I found that the current peaks at around 40mA during the capture and the idle current consumption is around 1-2mA. These numbers are dependant on light exposure as a whole for the sensor with a noticeable difference in power consumption dependant on whether or not the sensor is covered. These measurements were taken using a 121GW multimeter to measure the current while streaming the data to my phone, the Camera module was hooked up to an older Raspberry Pi A. I melted the covering and placed the ammeter in-line with the power rail for the camera module. I measured the rail at the expected 3.3V