Specs? Who need those. I wont go deep into the specs because that would be a waist of our time. You can look them up somewhere else.
-
-
-
Pi Pico First Impressions
-
Specs? Who need those. I wont go deep into the specs because that would be a waist of our time. You can look them up somewhere else.
+
What is this dual core ARM M0+ microprocessor good for?
+
-
What is this dual core ARM M0+ microprocessor good for?
-
+
What shouldn't you use it for?
+
This isn't a linux computer like the other Raspberry Pis so don't bother trying to host a server on it or use it to emulate your favorite retro device. Though you certaintly can if you try.
+
It doesn't have wireless connectivity built into it like the esp devices so you have to bring your own at which point you might consider an integrated solution.
+
-
What shouldn't you use it for?
-
This isn't a linux computer like the other Raspberry Pis so don't bother trying to host a server on it or use it to emulate your favorite retro device. Though you certaintly can if you try.
-
It doesn't have wireless connectivity built into it like the esp devices so you have to bring your own at which point you might consider an integrated solution.
-
+
+
Language Support
+
The Raspberry Pi foundation supports two languages on the Pi Pico. C and their port of MicroPython to the board.
+
+
+ Table summary
+
+
Language
+
Backer
+
Recommended IDE
+
Documentation
+
+
+
C
+
Raspberry Pi Foundation
+
Visual Studio Code
+
+
+
PDF
+
Website
+
+
+
+
+
MicroPython
+
Raspberry Pi Foundation
+
Thonny
+
+
+
PDF
+
MicroPython Website
+
+
+
+
+
CircuitPython
+
Adafruit
+
MuPython
+
+
+
Website
+
+
+
+
+
Arduino C
+
Arduino
+
Arduino IDE
+
+
+
Website
+
+
+
+
+
-
-
Language Support
-
The Raspberry Pi foundation supports two languages on the Pi Pico. C and their port of MicroPython to the board.
-
-
- Table summary
-
-
Language
-
Backer
-
Recommended IDE
-
Documentation
-
-
-
C
-
Raspberry Pi Foundation
-
Visual Studio Code
-
-
-
PDF
-
Website
-
-
-
-
-
MicroPython
-
Raspberry Pi Foundation
-
Thonny
-
-
-
PDF
-
MicroPython Website
-
-
-
-
-
CircuitPython
-
Adafruit
-
MuPython
-
-
-
Website
-
-
-
-
-
Arduino C
-
Arduino
-
Arduino IDE
-
-
-
Website
-
-
-
-
-
+
+
Real Applications
-
-
Real Applications
+
C++ and MicroPython Support
+
To test the language support I created the same program in both MicroPython and C++ using the C SDK. In each program I wrote a driver for the MPU-6050 a sensor with 6 degrees of freedom, and used it to control 2 servos in order to level them.
+
+
-
C++ and MicroPython Support
-
To test the language support I created the same program in both MicroPython and C++ using the C SDK. In each program I wrote a driver for the MPU-6050 a sensor with 6 degrees of freedom, and used it to control 2 servos in order to level them.
-
-
+
Programmable IO (PIO)
+
To test the PIO feature of the board I wrote two programs using the C SDK. Each of them poll a key matrix similar to what you would find on a USB keyboard. The first program does it by setting GPIO pins using one of the main cores of the microcontroller while the other polls the keys using the programmable IO state machines.
-
Programmable IO (PIO)
-
To test the PIO feature of the board I wrote two programs using the C SDK. Each of them poll a key matrix similar to what you would find on a USB keyboard. The first program does it by setting GPIO pins using one of the main cores of the microcontroller while the other polls the keys using the programmable IO state machines.
Before we can look at the PIO code we first need to review how exactly the Pico's PIO works.
-
-
-
-.program keyboard
-
-.define PUBLIC ROW_COUNT 3
-.define PUBLIC COL_COUNT 3
-
-.define COL_0_LOW 0b11110
-.define COL_1_LOW 0b11101
-.define COL_2_LOW 0b11011
-
-; Assume all switches are open.
-; Initialize scratch register X(previous state) to be filled with ones.
-; Ones indicate open switches.
-start:
- set X, 0
- mov X, ~X
- jmp poll
-
-key_changed:
- ; copy current state(scratch register Y) into previous state(scratch register X)
- mov X, Y
- ; Write the contents of the input shift register(ISR) to the RX FIFO,
- ; also clears the ISR.
- push
-
-.wrap_target
-poll:
- ; clear the input shift register.
- ; It will be filled with garbage if we didn't push.
- mov ISR, NULL
-
- ; set column 0 to low all others to high
- ; what 31 cycles to allow the signal to stabilize
- set PINS, COL_0_LOW [31]
- ; wait another 31 cycles to continue to allow the signal to stabilize
- nop [31]
- ; read column 0 to the input shift register(ISR)
- in PINS, ROW_COUNT
-
- set PINS, COL_1_LOW [31]
- nop [31]
- in PINS, ROW_COUNT
-
- set PINS, COL_2_LOW [31]
- nop [31]
- in PINS, ROW_COUNT
-
- ; copy ISR into scratch register Y
- ; flip the bits while copying because the signal is active low
- mov Y, ~ISR
-
- ; compare current state Y to previous state X
- ; if state changed goto key_changed
- jmp X != Y, key_changed
-
- ; keys didn't change so poll again
- .wrap
-
-
-
-
-
{% endblock page_content %}
diff --git a/templates/feed.rss b/templates/feed.rss
index 0e68eb1..69d6816 100644
--- a/templates/feed.rss
+++ b/templates/feed.rss
@@ -1,9 +1,16 @@
-
+ chmod777's blog
http://tilde.club/~chmod777/blog/blog.html
chmod777's blog where they post about their tech and non tech projects.
+
+ en-us
+ blog
+
+ chmod777@tilde.club
+ chmod777@tilde.club
+
{% for post in posts %}
{{ post.title | safe }}
diff --git a/templates/header.html b/templates/header.html
index fa97d87..b8007da 100644
--- a/templates/header.html
+++ b/templates/header.html
@@ -1,7 +1,10 @@