- Notes on RISC-V Assembly Language Programming – Part 1610 February 2025 The little Python script I wrote last night was able to open the ‘occident’ file of Hershey font descriptions and then import them into a list of lines. I then iterated over the list, line by line, extracting the character number, the number of vertices as well as the left- and right-hand extents of each of the characters, then write them to the console. I added some more analysis… Read more: Notes on RISC-V Assembly Language Programming – Part 16
- Notes on RISC-V Assembly Language Programming – Part 158 February 2025 It’s time to rename this series of posts, as I haven’t been using any sort of RISC-V assembly language at all in this project lately. So now on to bigger and bolder fonts. 9 February 2025 So not a lot of work got done on the project yesterday, but I did have some time to think about it. And it occurred to me that bit-mapped fonts are great when… Read more: Notes on RISC-V Assembly Language Programming – Part 15
- Notes on RISC-V Assembly Language Programming – Part 147 February 2025 Now for some odd reason the display is not working at all today. Ummm, well, no, I’m wrong. It was working just fine. It was just displaying a screen full of zeros, as was right and proper for it to be doing. I was messing around with the screen initialization values, poking various bit patterns in to see where they showed up. Yesterday, the dots would show up in… Read more: Notes on RISC-V Assembly Language Programming – Part 14
- Notes on RISC-V Assembly Language Programming – Part 136 February 2025 Today’s first objective is to capture and measure the SCL signal and see how close it gets to the requested 400 KHz that I specified in the I2C initialization function. After attaching an extension cable in order to tap into the SCL line going to the OLED module, I measure a SCL signal trying so hard to wiggle at 423 KHz, which is almost 5% over what I specified.… Read more: Notes on RISC-V Assembly Language Programming – Part 13
- Notes on RISC-V Assembly Language Programming – Part 125 February 2025 I’m not giving up on the CH32X line just yet. I remembered last night that I do, in fact, have a CH32X035C8T6 development board in stock in the lab. This is the LQFP48 package, so no remapping need be done for the I2C lines. The board is the “official” WCH CH32X035C-R0-1v2. It is largely similar to the other board with a smaller package, except is does have an extra… Read more: Notes on RISC-V Assembly Language Programming – Part 12
- Notes on RISC-V Assembly Language Programming – Part 114 February 2025 Setting up the OLED portion of the project should be easy, as I’ve already done this on the 003, 203 and 307 variants within this family of chips. There will be opportunities for improvement of some things, and perhaps a chance to add a proper frame buffer so as not to be so reliant on the page boundaries of the OLED controller chip. First I have to connect the… Read more: Notes on RISC-V Assembly Language Programming – Part 11
- Notes on RISC-V Assembly Language Programming – Part 103 February 2025 I have sent a brief summary of the RM errata to WCH via their technical support submission page. As they are currently celebrating the Lunar New Year, I don’t expect an immediate response. So now on to a more informative HardFault handler, in the hopes that I will never need it. The interesting part of this is the formatted hexadecimal printing routine, usart_puthex. Previously, I had a hierarchy of… Read more: Notes on RISC-V Assembly Language Programming – Part 10
- Notes on RISC-V Assembly Language Programming – Part 92 February 2025 So I’ve had some time to think about it, and I think I will spend a little more time trying to better understand what exactly is going on with whatever it was that I did yesterday to make the chip reset itself on every other keystroke. It’s a bit ironic, as the whole point of this particular tangent was specifically to reset the device. I’m going to build in… Read more: Notes on RISC-V Assembly Language Programming – Part 9
- Notes on RISC-V Assembly Language Programming – Part 81 February 2025 And the i8 battery is still running today. I’ve forgotten how many days it is since I started the experiment! So I guess the battery life is ‘long enough’ at this point. Removing the USB dongle from the development board allows me to use the PC17 input and the attached push button just like a standard GPIO pin. I wrote a short program to check the status of the… Read more: Notes on RISC-V Assembly Language Programming – Part 8
- Notes on RISC-V Assembly Language Programming – Part 731 January 2025 So today I want to revisit the la vs li vs lui confusion that I am experiencing about how I’m initializing the stack pointer. Having thought that the matter was settled, I deleted the other ‘control’ instructions that I was using for comparison. Luckily for me, I jotted it all down in my previous notes, so it was there when I needed it. Here is the reconstructed version: And… Read more: Notes on RISC-V Assembly Language Programming – Part 7
- Notes on RISC-V Assembly Language Programming – Part 629 January 2025 The i8 battery is still chugging along. I’m considering publishing these notes on my web site. I’m also just now noticing that the resulting disassembly code does not match my expectations. I posted the notes as separate days and need to go back and number them and add some clarifications as they are all titled, “Notes on RISC-V Assembly Language Programming”. Which is true, but there’s a lot of… Read more: Notes on RISC-V Assembly Language Programming – Part 6
- Notes on RISC-V Assembly Language Programming – Part 528 January 2025 Today I was able to reach wch-ic.com. wch.cn and mounriver.com. No telling if it had anything to do with the approaching Lunar New Year as celebrated in China and many other parts of the world or not. I have taken the opportunity to upgrade to the latest CH32V003 RM V1.7, dated 2024-03-11. So now I’m back to wondering why the GNU RISC-V assembler treats pseudo-instructions differently based on the… Read more: Notes on RISC-V Assembly Language Programming – Part 5
- Notes on RISC-V Assembly Language Programming – Part 427 January 2025 Because this has happened before, I will archive the two project files from the confused project and compare them to a newly generated one. So it seems that after you delete all the generated project files (except the linker script for now), any new source files that are added to the project must be located within a sub folder of the project, as placing them in the project folder… Read more: Notes on RISC-V Assembly Language Programming – Part 4
- Notes on RISC-V Assembly Language Programming – Part 326 January 2025 Where is the SVD file for the CH32X035 chips? I have found it within the MRS2 application itself: The original file is dated 23 December 2024. I have copied it to my CH32X035 project folder: Let’s run my existing svd2inc.py script on it and see what breaks first. Perhaps it would have been better to copy it to my Python project directory, instead. I’m not fluent enough in the… Read more: Notes on RISC-V Assembly Language Programming – Part 3
- Notes on RISC-V Assembly Language Programming – Part 225 January 2025 Reviewing yesterday’s notes, I should add that the use of the supplied value ‘_eusrstack’ from the MRS2 linker script is only necessary until such time as I replace it with my own linker script. This will happen in due time. Examining the processor’s registers, not the peripheral registers, can be enabled while debugging by enabling ‘Disassembly view’. Right-click in the editor area and select ‘Open Disassembly View’. On the… Read more: Notes on RISC-V Assembly Language Programming – Part 2
- Notes on RISC-V Assembly Language Programming – Part 1I’ve been working on a small embedded project for a customer and have been keeping copious notes on my progress. It’s using (for the moment) a WCH CH32X035 RISC-V microcontroller. I have some experience with other members of the CH32V family, including the -003, -203, -208 and -307. The CH32X035 is new to me and I wanted to get to know it a little better. I started these notes back on 25… Read more: Notes on RISC-V Assembly Language Programming – Part 1
- Hello, WorldYes, the year 2022 is upon us and it has been “a while” since I updated this blog. A very kindly-written email that I received a few days ago reminded me that it had been so long, in fact, that there was some doubt of my continued existence. Please allow this short note to serve as notice that I am still here, still working on Important Scientific Research and still operating my… Read more: Hello, World
- New Product Announcement – 12LEDstick kitWhat is it? The 12LEDstick is a multiplexed (specifically Charlie-plexed) linear array of twelve bright blue LEDs. It uses four (4) pins to control all twelve LEDs, making it easy to add a lot of LEDs without dedicating a lot of valuable I/O lines. An Arduino library with example sketches is provided to make it easy to add to your next blinky project. Why do it? Adding multiple LEDs to a project… Read more: New Product Announcement – 12LEDstick kit
- New Product Announcement: Barrel Jack BreakoutToday I have the pleasure to tell all you Good People that there is a new product available in the store. Without further ado, allow me to present the Barrel Jack Breakout board kit! What is it? Another “Hobbyist Tools†category product, the Barrel Connector Breakout PCB is small DIY kit that allows electronics hobbyists to use modular barrel connector in their project without having to solder to a female jack/receptacle. The… Read more: New Product Announcement: Barrel Jack Breakout
- Back Orders on Certain Products Now AvailableWhat is Changing? In the Before Times, if one of the products in the store was “Out of Stock”, it was not possible to place an order for it. Now some of the lower lead-time products can be backordered from the web store, even if today’s present inventory appears to be depleted. The products that can now be back ordered: tinyCylon Wee Blinky Lux Spectralis 12V Dimmer Kit V2 Mini7plus Infrared Spotlight… Read more: Back Orders on Certain Products Now Available
- Hands On with RISC-V, Part 2 – Serial CommunicationIn Part 1 of this series, I introduced you to the RISC-V computer instruction set architecture and described some first steps using an example device. In this article, I continue working with PlatformIO to program the GD32VF103CBT6 chip on the Sipeed Longan Nano development board. Specifically, we’ll use one of the onboard serial ports of the chip for both device programming and communication with the host PC. Setup for Serial Communication The… Read more: Hands On with RISC-V, Part 2 – Serial Communication
- Laptop Battery Test using QB64Tags: BASIC, programming, QB64, scientific method What Is It? My laptop battery seemed to fail after about 30 minutes, with what I thought was a full charge. These things happen, as batteries are very much a consumable thing. Another full charge back at the lab and the behavior occurred again. Yet another charge later and it was back to what appeared to be its nominal runtime, which was traditionally 3-4 hours. How… Read more: Laptop Battery Test using QB64
- New Product Announcement: Mini7Plus Infrared Spotlight kitThis is Not New! Yes, Astute Reader, you have caught me in, shall we say, an “inconsistencyâ€. This product is not “new”, but it is “new to the store”. I have been designing and selling infrared (IR) spotlight kits for decades now. In the past, I was mostly producing these for wholesale customers like BG Micro. Since I have several different models in stock now, I thought I would start making them… Read more: New Product Announcement: Mini7Plus Infrared Spotlight kit
- Scrolling LED Sign Kits Are Now AvailableWhat is it? The Scrolling LED Sign kit is an Arduino-powered scrolling LED sign using NeoPixel LED strips. Big, bright messages can be extended long as you want it. This kit lets you connect your Arduino Nano to the popular NeoPixel/WS2812B LED strips. You will also need an external, regulated +5VDC power supply if you use more than around 300 LEDs in your sign. Why Do It? You know you want a… Read more: Scrolling LED Sign Kits Are Now Available
- Arduino (Articles) on My MindWriting More about Writing More Arduino Articles Since my main theme for 2020 is Writing, I’m assigning myself a much larger number of writing jobs. In fact, just telling you this is helping me achieve one of my writing goals! Approaching writing as a project can get a bit meta. I’m still happy to be writing about writing, and looking forward to writing about Arduino. Some Arduino Project Updates! This week I… Read more: Arduino (Articles) on My Mind
- Hands On with RISC-V, Part 1 – An IntroductionWhat is RISC-V? Everyone (including me) is excited about RISC-V these days, but what exactly is it? How can I get started learning more about it? My favorite way to find out these things is to dive into the deep end of the pool and just start playing with it. In this series of articles, I will show you what I’ve done and show you how you can get started, too. Once… Read more: Hands On with RISC-V, Part 1 – An Introduction
- Brady’s Scrolling LED SignHow It Began About a year ago, my friend Brady Pamplin W5LH was teaching a class at the Dallas Makerspace. Brady teaches a variety of Arduino and microcontroller-related classes. See his web site for a list of what’s available. This class was about how to use NeoPixel LED strips with Arduino. NeoPixels are addressable RGB (red, green and blue) LED chips. Most importantly, it is not hard to chain them together. He… Read more: Brady’s Scrolling LED Sign
- Dale’s Theme for 2020 is “Writing”Pick a Theme Instead of a “New Year’s Resolution”, CGP Grey suggests picking a broader “theme” for the year: This year’s theme for me is “Writing”. If you asked me what I do for a living, I’d tell you with a straight face that I was a writer. Your reaction is almost always either a smile, a twinkle in your eye or, at minimum, a raised eyebrow. I know you’re deciding between… Read more: Dale’s Theme for 2020 is “Writing”
- KI5SME, I’m a HAMAt the prompting of friend and inspiration Brady Pamplin W5LH, I sat for and passed both the Technician and General Class exams for amateur radio operator at HamCon last month. I now have limited privileges on limited frequencies. This has been something I have wanted to do since I was a Scout (they were called Boy Scouts in my time). While I was originally issued a ‘systematic’ call sign of KI5FDS (kilo… Read more: KI5SME, I’m a HAM
- Why the Yellow Banner? This is Why:The more observant amongst you may have noted a striking, yellow banner emblazoned across the top of each and every one of the pages of this, your favorite web destination. What could be behind such a serious and dire notification? Rest assured, nothing was amiss. I simply wanted to let you know that I would not be able to ship your orders until Monday, because I had slipped the leash, jumped on… Read more: Why the Yellow Banner? This is Why: