OneVariable Newsletter - 2021-12-01
2021-12-01A quick detour into hardware design
This article was originally featured on the OneVariable Applied Research newsletter. If you'd like to get early access to these reports, you can sign up for the newsletter here. Newsletter emails are sent every Wednesday.
Articles are posted on my blog one week after appearing on the newsletter.
Abstract and Results
Over the last week, I realized how close we are to the end of the year! In order to make sure I had enough hardware to keep making progress on my Powerbus project: I switched gears to hardware design.
It took most of the week, but on Monday I sent out the current design to JLCPCB to have a small run of ten boards built, including having most of the surface mount components populated. They should be here in about two weeks.
This will let me quickly get these boards fully ready-to-use, requiring MUCH less manual assembly as compared to the original "version zero" boards.
Powerbus Mini v0.1.0: Front Side
Powerbus Mini v0.1.0: Back Side
Barring any hardware design errors (fingers crossed!), This version of Powerbus Mini would be pretty close to being ready for "friendly user testing", and would be the hardware sent out to the first handful of beta testers.
This version adds a number of features, including:
- A USB-C port, to connect to a PC for configuration, and API access
- A smaller size (48mm/1.9 inch square vs 64mm/2.5 inch square)
- An external 16MiB QSPI flash, for storing firmware updates, logs, and config
- Two RGB status LEDs
- Current sensing circuitry, to monitor power usage and prevent dangerous over-current conditions
- A DC power jack for powering the bus
Background Information
The previous version of Powerbus was split into two boards: one that handled the power and RS-485 communication chips, and a second that contained the main MCU: A Nordic nRF52840.
This split was originally done to limit the "blast radius" if one of the boards had an error, but required quite a bit of manual assembly. I also did not include a USB connection, to keep the board simple.
Additionally, there was an error in the footprint of the 4-port RJ-45 jack, which meant that the wiring order was incorrect (but compatible with all the "wrong" boards), and I had to modify each jack before mounting it to the PCB.
Since I haven't yet needed more than 32 boards on a single bus (the limit of the RS-485 chips I chose), I also simplified the design to only use two ports, rather than four, which would be needed to "bridge" networks. This will return in later versions, or as a separate "network switch" device.
Powerbus "Version Zero"
I originally chose the Nordic nRF52840 for Powerbus because I am familiar with it, and the Rust support is very good. However, it is relatively expensive (8.50 EUR per module), and I don't use the nice 2.4GHz radio or Bluetooth features (yet).
Once the software stack is more mature and feature complete, I plan to move to the Raspberry Pi RP2040 as a main processor, as it is cheaper (1 EUR each), and has higher performance for the tasks it will typically be used for (dual-core 133MHz, vs single-core 64MHz)
Suggestions For Future Research
There are quite a few things to do next for Powerbus! My current plan is to design a laser-cut case for the Powerbus Mini boards (that's what those tabs are for around the edges of the board!). This will allow for installation and mounting of the boards, and a slightly more professional look!
I've used laser cut cases for a couple projects, and the case for this one will look similar to the one in the pictures shown here from a recent project.
The case and PCB for my "Dog Training" button
On the software side, I have quite a laundry list to clean up to improve the usability, especially for people who are not-me! These include:
- Finishing the RS-485 bootloader
- Writing a USB interface for bridging communications to a PC
- Add support for defmt-over-RS-485, so a debugger is no longer needed
- Integrating Anachro Forth into the main Powerbus firmware image
Anyway, lots to do! See you next week for more progress!
Thanks again for all your support :)
The new Anachro Powerbus Logo, featured on the Powerbus Mini PCB
Interested in using Powerbus?
Are you looking to build a no-cloud smart device network? Perhaps looking to automate sensors or lighting in your own house or office?
I plan to build a limited (<= 50 devices) test batch of Beta-release Powerbus devices, and I am looking for people interested in buying, testing, or extending on top of the Powerbus platform. I currently hope to produce these before the end of the year, and shipping shortly afterwards. Just send me an email if you are interested!
Want to stay in touch between newsletters?
Click here to join the OneVariable Applied Research Matrix chat. I'll be posting day-to-day information, and sharing my thoughts as I go.
The Matrix chat is the best place to ask questions about my projects, give feedback, or inquire about using any of my research projects for your commercial (and non-commercial) applications!