{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://nebulouslogic.com/index.php?feed=json -- and add it your reader.", "next_url": "https://nebulouslogic.com/index.php?feed=json&paged=2", "home_page_url": "https://nebulouslogic.com/index.php?feed=json", "feed_url": "https://nebulouslogic.com/index.php?feed=json", "language": "en-US", "title": "Nebulous Logic", "description": "Hardware hacking, digital logic and FPGA tomfoolery, and other tinkering.", "items": [ { "id": "https://nebulouslogic.com/?p=171", "url": "https://nebulouslogic.com/2022/03/18/linked-driving-tfel-with-rp2040-offloading-the-cpu-step-by-step/", "title": "Linked: Driving TFEL with RP2040: Offloading the CPU step by step", "content_html": "
\n\n This blog shows how to leverage the PIO found on RP2040 to drive a not-so-common type of display. Combined with the large SRAM found on the RP2040, this is quite usable.\n
(From: https://www.zephray.me/post/rpi_pico_driving_el/)
\nI thought this was a really good introduction to using the PIO blocks in the RP2040 to drive a peripheral, rather than bit-banging using the CPU.
\n", "content_text": "This blog shows how to leverage the PIO found on RP2040 to drive a not-so-common type of display. Combined with the large SRAM found on the RP2040, this is quite usable.\n\n(From: https://www.zephray.me/post/rpi_pico_driving_el/)\nI thought this was a really good introduction to using the PIO blocks in the RP2040 to drive a peripheral, rather than bit-banging using the CPU.", "date_published": "2022-03-18T07:57:11-07:00", "date_modified": "2022-03-18T07:57:11-07:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] }, { "id": "https://nebulouslogic.com/?p=168", "url": "https://nebulouslogic.com/2022/03/05/linked-chz-soft-preserving-a-floppy-disk-with-a-logic-analyzer-and-a-serial-cable/", "title": "Linked: CHZ-Soft \u2013 Preserving a floppy disk with a logic analyzer and a serial cable", "content_html": "\n\n Being involved with retro computers, I have a few floppy disks (of the 3.5-inch variety) that I would like to preserve as faithfully as possible. Of course, I know there are dedicated devices for doing that, such as the Kryoflux or the SuperCard Pro. But it occurred to me that I already own the required hardware to capture the low-level data from a floppy disk: my Saleae Logic 8 logic analyzer.\n
(From: https://www.chzsoft.de/site/hardware/preserving-a-floppy-disk-with-a-logic-analyzer/)
\nAnother semi-automated way to capture raw (magnetic flux) disk images from floppy disks, this one using a drive and a logic analyzer with some post-processing. In addition to the other tools mentioned in the post, AppleSauce is a great option.
\n", "content_text": "Being involved with retro computers, I have a few floppy disks (of the 3.5-inch variety) that I would like to preserve as faithfully as possible. Of course, I know there are dedicated devices for doing that, such as the Kryoflux or the SuperCard Pro. But it occurred to me that I already own the required hardware to capture the low-level data from a floppy disk: my Saleae Logic 8 logic analyzer.\n\n(From: https://www.chzsoft.de/site/hardware/preserving-a-floppy-disk-with-a-logic-analyzer/)\nAnother semi-automated way to capture raw (magnetic flux) disk images from floppy disks, this one using a drive and a logic analyzer with some post-processing. In addition to the other tools mentioned in the post, AppleSauce is a great option.", "date_published": "2022-03-05T08:55:37-08:00", "date_modified": "2022-03-05T08:58:38-08:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] }, { "id": "https://nebulouslogic.com/?p=166", "url": "https://nebulouslogic.com/2022/03/05/linked-gdbwave-a-post-simulation-waveform-based-risc-v-gdb-debugging-server-electronics-etc/", "title": "Linked: GDBWave \u2013 A Post-Simulation Waveform-Based RISC-V GDB Debugging Server | Electronics etc\u2026", "content_html": "\n\n I want to talk about first simulating an RTL design that contains of soft CPU, and debugging the firmware that ran on that soft CPU after the simulation has completed.\n
(From: https://tomverbeure.github.io/2022/02/20/GDBWave-Post-Simulation-RISCV-SW-Debugging.html)
\nNovel idea of using GDB to debug software running on a soft-core processor in an FPGA simulation, AFTER the simulation is completed!
\n", "content_text": "I want to talk about first simulating an RTL design that contains of soft CPU, and debugging the firmware that ran on that soft CPU after the simulation has completed.\n\n(From: https://tomverbeure.github.io/2022/02/20/GDBWave-Post-Simulation-RISCV-SW-Debugging.html)\nNovel idea of using GDB to debug software running on a soft-core processor in an FPGA simulation, AFTER the simulation is completed!", "date_published": "2022-03-05T08:45:20-08:00", "date_modified": "2022-03-05T08:45:20-08:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] }, { "id": "https://nebulouslogic.com/?p=160", "url": "https://nebulouslogic.com/2022/01/16/linked-a-ux-server-penelope/", "title": "Linked: A/UX Server Penelope", "content_html": "\n\n Between the years 1987 and 1995, Apple Computers, Inc produced a distribution of Unix for the 680×0-based Macintosh. Based on System V release 2.2, Apple Unix (A/UX) provided a familiar Macintosh Finder environment with the ability to run both Unix and Mac applications. While the two products share no code, A/UX was the “conceptual ancestor” of OS X.\n
(From: https://www.aux-penelope.com/index.htm)
\nOnce I get a BlueSCSI or a larger HD in my Centris 650, I\u2019m definitely going to install A/UX on a partition just for fun.
\n", "content_text": "Between the years 1987 and 1995, Apple Computers, Inc produced a distribution of Unix for the 680×0-based Macintosh. Based on System V release 2.2, Apple Unix (A/UX) provided a familiar Macintosh Finder environment with the ability to run both Unix and Mac applications. While the two products share no code, A/UX was the “conceptual ancestor” of OS X.\n\n(From: https://www.aux-penelope.com/index.htm)\nOnce I get a BlueSCSI or a larger HD in my Centris 650, I\u2019m definitely going to install A/UX on a partition just for fun.", "date_published": "2022-01-16T10:23:13-08:00", "date_modified": "2022-01-16T10:23:13-08:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] }, { "id": "https://nebulouslogic.com/?p=158", "url": "https://nebulouslogic.com/2022/01/12/linked-pinion-nice-looking-interactive-diagrams-for-kicad-pcbs/", "title": "Linked: Pinion \u2014 Nice-looking interactive diagrams for KiCAD PCBs", "content_html": "\n\n Pinion is a simple tool that allows you to make a nice-looking pinout diagrams for your PCBs\n
(From: https://yaqwsx.github.io/Pinion/)
\nThis looks useful and well done. I can see using this for any hardware I eventually develop.
\n", "content_text": "Pinion is a simple tool that allows you to make a nice-looking pinout diagrams for your PCBs\n\n(From: https://yaqwsx.github.io/Pinion/)\nThis looks useful and well done. I can see using this for any hardware I eventually develop.", "date_published": "2022-01-12T18:58:49-08:00", "date_modified": "2022-01-12T18:58:49-08:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] }, { "id": "https://nebulouslogic.com/?p=153", "url": "https://nebulouslogic.com/2021/11/30/linked-fpga4fun-com-hdmi/", "title": "Linked: fpga4fun.com \u2013 HDMI", "content_html": "\n\n HDMI is a digital video interface, so is easy to drive from modern FPGAs.
\n Let’s see how it works.\n
(From: https://www.fpga4fun.com/HDMI.html)
\nGreat HDMI intro, bookmarked for later reference.
\n", "content_text": "HDMI is a digital video interface, so is easy to drive from modern FPGAs.\n Let’s see how it works.\n\n(From: https://www.fpga4fun.com/HDMI.html)\nGreat HDMI intro, bookmarked for later reference.", "date_published": "2021-11-30T19:26:06-08:00", "date_modified": "2021-11-30T19:26:06-08:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] }, { "id": "https://nebulouslogic.com/?p=150", "url": "https://nebulouslogic.com/2021/11/24/linked-how-to-implement-and-use-noinit-ram/", "title": "Linked: How to implement and use .noinit RAM", "content_html": "\n\n Imagine there\u2019s an embedded system that needs to persist some state when the processor restarts (either intentionally or due to a catastrophic error).
\nThis could be some external hardware information (what\u2019s the position of a motor or actuator?) or a method to communicate the reset to the user (display some information on the device\u2019s display).
\nA simple way to store information through a reboot is to use what\u2019s called \u201cnon-initialized\u201d memory.\n
(From: https://interrupt.memfault.com/blog/noinit-memory)
\nNeat! Good quick tutorial.
\n", "content_text": "Imagine there\u2019s an embedded system that needs to persist some state when the processor restarts (either intentionally or due to a catastrophic error).\n This could be some external hardware information (what\u2019s the position of a motor or actuator?) or a method to communicate the reset to the user (display some information on the device\u2019s display).\n A simple way to store information through a reboot is to use what\u2019s called \u201cnon-initialized\u201d memory.\n\n(From: https://interrupt.memfault.com/blog/noinit-memory)\nNeat! Good quick tutorial.", "date_published": "2021-11-24T09:35:57-08:00", "date_modified": "2021-11-24T09:36:30-08:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] }, { "id": "https://nebulouslogic.com/?p=147", "url": "https://nebulouslogic.com/2021/11/04/linked-cortex-m-mcu-emulation-with-renode-interrupt/", "title": "Linked: Cortex-M MCU Emulation with Renode | Interrupt", "content_html": "\n\n Renode is an open-source Emulator for embedded platforms. Today, it supports x86 (Intel Quark), Cortex-A (NVIDIA Tegra), Cortex-M, SPARC (Leon), and RISC-V based platforms.
\nRenode can take the same firmware you are running in production, and run it against emulated cores, peripherals, and even sensors and actuators. Better yet, its extensive networking support and multi-system emulation make it a shoe in for testing systems made up of multiple devices talking together.
\nWith Renode, you can start development before your hardware is ready, test your firmware without deploying racks of hardware, and shorten your iteration cycles by cutting out flash loading delays\n
(From: https://interrupt.memfault.com/blog/intro-to-renode)
\nThis post has a good walkthrough on setting up Renode, including customizing emulated hardware and integrating with the automated testing framework.
\n", "content_text": "Renode is an open-source Emulator for embedded platforms. Today, it supports x86 (Intel Quark), Cortex-A (NVIDIA Tegra), Cortex-M, SPARC (Leon), and RISC-V based platforms.\n Renode can take the same firmware you are running in production, and run it against emulated cores, peripherals, and even sensors and actuators. Better yet, its extensive networking support and multi-system emulation make it a shoe in for testing systems made up of multiple devices talking together.\n With Renode, you can start development before your hardware is ready, test your firmware without deploying racks of hardware, and shorten your iteration cycles by cutting out flash loading delays\n\n(From: https://interrupt.memfault.com/blog/intro-to-renode)\nThis post has a good walkthrough on setting up Renode, including customizing emulated hardware and integrating with the automated testing framework.", "date_published": "2021-11-04T19:46:44-07:00", "date_modified": "2021-11-04T19:47:09-07:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] }, { "id": "https://nebulouslogic.com/?p=145", "url": "https://nebulouslogic.com/2021/11/04/linked-its-time-for-operating-systems-to-rediscover-hardware-usenix/", "title": "Linked: It\u2019s Time for Operating Systems to Rediscover Hardware | USENIX", "content_html": "\n\n A glance at this year’s OSDI program shows that Operating Systems are a small niche topic for this conference, not even meriting their own full session. This is unfortunate because good OS design has always been driven by the underlying hardware, and right now that hardware is almost unrecognizable from ten years ago, let alone from the 1960s when Unix was written. This change is receiving considerable attention in the architecture and security communities, for example, but in contrast, so-called OS researchers are mostly in denial. Even the little publishable OS work that is not based on Linux still assumes the same simplistic hardware model (essentially a multiprocessor VAX) that bears little resemblance to modern reality. In this talk, I’ll speculate on how we came to this unfortunate state of affairs, and what might be done to fix it. In particular, I’ll argue for re-engaging with what computer hardware really is today and give two suggestions (among many) about how the OS research community can usefully do this, and exploit what is actually a tremendous opportunity.\n
(From: https://www.usenix.org/conference/osdi21/presentation/fri-keynote)
\nAs someone who is interested in embedded systems, computer architecture, and operating systems, I found this talk highly enjoyable.
\n", "content_text": "A glance at this year’s OSDI program shows that Operating Systems are a small niche topic for this conference, not even meriting their own full session. This is unfortunate because good OS design has always been driven by the underlying hardware, and right now that hardware is almost unrecognizable from ten years ago, let alone from the 1960s when Unix was written. This change is receiving considerable attention in the architecture and security communities, for example, but in contrast, so-called OS researchers are mostly in denial. Even the little publishable OS work that is not based on Linux still assumes the same simplistic hardware model (essentially a multiprocessor VAX) that bears little resemblance to modern reality. In this talk, I’ll speculate on how we came to this unfortunate state of affairs, and what might be done to fix it. In particular, I’ll argue for re-engaging with what computer hardware really is today and give two suggestions (among many) about how the OS research community can usefully do this, and exploit what is actually a tremendous opportunity.\n\n(From: https://www.usenix.org/conference/osdi21/presentation/fri-keynote)\nAs someone who is interested in embedded systems, computer architecture, and operating systems, I found this talk highly enjoyable.", "date_published": "2021-11-04T10:14:04-07:00", "date_modified": "2021-11-04T10:14:04-07:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] }, { "id": "https://nebulouslogic.com/?p=143", "url": "https://nebulouslogic.com/2021/11/03/linked-learning-electronics-tips-and-tricks-for-using-esp8266-in-my-circuit-designs-rayshobby-net/", "title": "Linked: Learning Electronics: Tips and Tricks for using ESP8266 in my circuit designs \u00ab RAYSHOBBY.NET", "content_html": "\n\n This post documents some of the tips and tricks I learned while integrating ESP8266 into my own circuit designs. Some of them help reduce the components needed thus minimizing the cost, while others have to do with selecting and using GPIO pins. For breadboard prototyping, you can certainly use one of the popular ESP8266 development boards, like NodeMCU, WeMos etc. But what I want to cover in this post is to integrate a ESP8266 module (such as ESP-12F) into the circuit design, without using the development boards.\n
(From: https://rayshobby.net/wordpress/tips-and-tricks-for-using-esp8266/)
\nI need to remember to consider the ESP8266 and ESP32 for my hobby projects. There are some good tips here.
\n", "content_text": "This post documents some of the tips and tricks I learned while integrating ESP8266 into my own circuit designs. Some of them help reduce the components needed thus minimizing the cost, while others have to do with selecting and using GPIO pins. For breadboard prototyping, you can certainly use one of the popular ESP8266 development boards, like NodeMCU, WeMos etc. But what I want to cover in this post is to integrate a ESP8266 module (such as ESP-12F) into the circuit design, without using the development boards.\n\n(From: https://rayshobby.net/wordpress/tips-and-tricks-for-using-esp8266/)\nI need to remember to consider the ESP8266 and ESP32 for my hobby projects. There are some good tips here.", "date_published": "2021-11-03T20:16:44-07:00", "date_modified": "2021-11-03T20:16:44-07:00", "authors": [ { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" } ], "author": { "name": "Mike Everhart", "url": "https://nebulouslogic.com/author/wpmikey/", "avatar": "https://secure.gravatar.com/avatar/548854c47bfaeeb1c807885c845228bb?s=512&d=mm&r=g" }, "tags": [ "Linked", "Linked List" ] } ] }