spork-8
gpiozero
spork-8 | gpiozero | |
---|---|---|
8 | 7 | |
13 | 1,830 | |
- | 1.1% | |
0.0 | 7.8 | |
over 2 years ago | about 2 months ago | |
C++ | Python | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
spork-8
-
Revolutionary New Method of Loading Programs
Ohh, very nice! I'm also using customasm, but haven't bothered to even run it locally, because the online version is convenient enough for now. What I did do though, was write a script to generate my customasm rules, directly from the cpp file that defines them (and is the real source of truth for what gets written to the microcode EEPROMs).
-
The Spork-8 can now execute instructions! But also, some more and less serious issues to report
The current setup (see near top right) IS inverted clock AND'd with the control line, which makes it read only when the clock is low. If I made it the reverse, so the 273 loads when clock goes high, then that would trigger changes to the EEPROM address lines, causing control lines to switch randomly while the clock is high, which would affect the instruction register and everything else too.
-
EEPROM writer / reader seems to work, using Arduino Uno + my computer's PCB modules!
It's actually just writing to an HM62256 here, but it will hopefully work with a 28C64 as well. I've set it up so the Arduino basically acts as the control module for my computer; setting the value of the counter (used as a 16-bit address register), by controlling the bus and clock, and setting which module is outputting / inputting. It's deliberately slowed down 3x to be able to see it happen a little better, but it's still quite fast, writing a whole 32KB! This is using 10 Arduino pins for control (could be fewer), and 8 for the bus (the other 2 are for serial with the computer). Directly driving the chip's 15 address lines + 8 data lines + a couple control lines, would be too much for an Uno. And this way is probably more resilient and easier to setup than breadboards anyway. Code is here.
-
Counting is harder than I thought 😬
I'm fairly sure this is the problem, but I can't find any examples of how you're supposed to do this. I think it would work to send the first counter's TC signal to the third counter as the clock pulse. But I don't want to do that, because I also want to be able to parallel load on any clock cycle. So, I probably just have to use some gates to AND things together. Has anyone else dealt with this? Is there an obvious solution I'm missing? Project details are here.
-
More 8bit PCBs! (Instruction Reg, MicroCode Counter, Reset + 1x8bit Register)
You're definitely right that one of the main challenges with modular PCBs is getting a whole bunch of control signals between different boards. My solution was a bit different though: I've got a control module, with the microcode EEPROMs, micro-instruction counter, and flags register on it (plus a USB-B plug for power, and the reset button). Then plugged into that, are 2 bus boards on top, and 2 on bottom. 8 control lines are encoded for in / out (so 16 mutually exclusive in / out lines), and the other 8 are general purpose / not encoded. All other modules are plugged into the bus boards, which demux the in/out signals. The boards plug into each other with headers horizontally; the ALU plugs into two registers on either side of it, and the RAM / ROM modules plug into counters next to them (for their address). In case you're interested: project details, mockup of how it'll look.
-
Latch control lines to deal with random EEPROM outputs?
I'm making a modular PCB version of the SAP (details here, visual mockup here), and I'm at the stage where I've ordered PCBs and parts, but after reading lordmonoxide's post, I'm anticipating having issues with the control lines being random mid-clock cycle, as well as potential issues with the RAM/ROM module because it doesn't use the clock pulse OR do edge detection.
gpiozero
-
Raspberry Pi, InfluxDB, Grafana, Docker
It was a bit tricky to get CPU temperature of a host machine (Raspberry Pi) from within the running docker container. This Issue on GitHub has helped me :
- Arduino/ESP32 project --> Raspberry Pi 4 programming/conversion/capability?
-
What can we do with python, exactly?
No. The pi 4 is not a microcontroller. However, I would recommend gpiozero for a regular pi4
-
mqtt-gpio: A service which connects MQTT topics to Raspberry Pi GPIO pins
I run it in K3s on Raspberry Pi OS. The service is built on gpiozero so should work on other devices. It is a very helpful building block in my DIY home automation system. It's a general purpose connector so it can be configured for many different uses. At present I use it to:
- Ask HN: Good Python projects to read for modern Python?
-
GPIO Programming on the Raspberry Pi: Python Libraries
Gpiozero is already installed in the current Raspberry Pi OS - if not, just run python3 -m pip gpiozero. The source code files can be accessed on Github. The official documentation on readthedocs.io provides rich information and plenty example code.
-
Build your SO their own "attention button" this Valentine's Day
The code we will write will be in Python. Let's start with just getting the button to register. We will be using the gpiozero library to do this:
What are some alternatives?
Qucs-RFlayout - Export Qucs RF schematics to KiCad layouts & OpenEMS scripts
pigpio - pigpio is a C library for the Raspberry which allows control of the General Purpose Input Outputs (GPIO).
BLE_Swift_ESP32_SampleProject - Connecting ESP32 and iOS
WiringPi - Gordon's Arduino wiring-like WiringPi Library for the Raspberry Pi (Unofficial Mirror for WiringPi bindings)
Kuantify  - Mirror of Gitlab Repository
tkgpio - A Python library to simulate electronic devices connected to the GPIO on a Raspberry Pi, using TkInter.
Physikal - Mirror of Gitlab Repository
pi-mqtt-gpio - Expose GPIO modules (Raspberry Pi, Beaglebone, PCF8754, PiFace2 etc.) and digital sensors (LM75 etc.) to an MQTT server for remote control and monitoring.
iome - A Physical Platform for Web Appplication Development
WiringPi-Python - Unofficial Python-wrapped version of Gordon Henderson's WiringPi version 2.
w1thermsensor - A Python package and CLI tool to work with w1 temperature sensors like DS1822, DS18S20 & DS18B20 on the Raspberry Pi, Beagle Bone and other devices.
systemd-gpio - A systemd unit template that does things when gpio events happen.