mirror of
https://github.com/lupyuen/lupyuen.github.io.git
synced 2025-01-13 10:18:33 +08:00
Commit from GitHub Actions
This commit is contained in:
parent
9f1efc6307
commit
d7d0527ed2
16 changed files with 24 additions and 24 deletions
|
@ -113,11 +113,11 @@
|
|||
<p><a href="https://en.wikipedia.org/wiki/CBOR"><strong>Concise Binary Object Representation (CBOR)</strong></a>, which works like a binary, compressed form of JSON.</p>
|
||||
<p>And we need only <strong>11 bytes of CBOR</strong>!</p>
|
||||
<p><img src="https://lupyuen.github.io/images/cbor-title.jpg" alt="Encoding Sensor Data with CBOR on BL602" /></p>
|
||||
<p>Today we’ll learn to encode Sensor Data with the <strong>TinyCBOR Library</strong> that we have ported to the <a href="https://lupyuen.github.io/articles/pinecone"><strong>BL602</strong></a> and <a href="https://lupyuen.github.io/articles/pinedio"><strong>BL604</strong></a> RISC-V SoCs…</p>
|
||||
<p>Today we’ll learn to encode Sensor Data with the <strong>TinyCBOR Library</strong> that we have ported to the <a href="https://lupyuen.github.io/articles/pinecone"><strong>BL602</strong></a> and <a href="https://lupyuen.github.io/articles/pinedio2"><strong>BL604</strong></a> RISC-V SoCs…</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/lupyuen/tinycbor-bl602"><strong>lupyuen/tinycbor-bl602</strong></a></li>
|
||||
</ul>
|
||||
<p>The library has been tested on <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a>, but it should work on <strong>any BL602 or BL604 Board</strong>: PineCone BL602, Pinenut, DT-BL10, MagicHome BL602, …</p>
|
||||
<p>The library has been tested on <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a>, but it should work on <strong>any BL602 or BL604 Board</strong>: PineCone BL602, Pinenut, DT-BL10, MagicHome BL602, …</p>
|
||||
<p><em>Must we scrimp and save every single byte?</em></p>
|
||||
<p>Yes, <strong>every single byte matters</strong> for low-power wireless networks!</p>
|
||||
<ol>
|
||||
|
|
|
@ -109,7 +109,7 @@
|
|||
<ul>
|
||||
<li><a href="https://github.com/lupyuen2/tinycbor-nuttx"><strong>lupyuen2/tinycbor-nuttx</strong></a></li>
|
||||
</ul>
|
||||
<p>The library has been tested on <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a>, but it should work on <strong>any NuttX Platform</strong> (like ESP32)</p>
|
||||
<p>The library has been tested on <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a>, but it should work on <strong>any NuttX Platform</strong> (like ESP32)</p>
|
||||
<p><a href="https://lupyuen.github.io/articles/cbor2#appendix-porting-tinycbor-to-nuttx">(<strong>tinycbor-nuttx</strong> is a fork of TinyCBOR with minimal changes)</a></p>
|
||||
<p><em>Must we scrimp and save every single byte?</em></p>
|
||||
<p>Yes, <strong>every single byte matters</strong> for low-power wireless networks!</p>
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/ikea-title.jpg" alt="IKEA VINDRIKTNING Air Quality Sensor seated on Pine64 PineDio LoRa Gateway" /></p>
|
||||
<p><em><a href="https://www.ikea.com/us/en/p/vindriktning-air-quality-sensor-60515911">IKEA VINDRIKTNING Air Quality Sensor</a> seated on <a href="https://lupyuen.github.io/articles/gateway">Pine64 PineDio LoRa Gateway</a></em></p>
|
||||
<p><a href="https://www.ikea.com/us/en/p/vindriktning-air-quality-sensor-60515911"><strong>IKEA VINDRIKTNING</strong></a> is a $12 hackable Air Quality Sensor that measures <a href="https://www.epa.gov/pm-pollution/particulate-matter-pm-basics"><strong>PM 2.5 (Particulate Matter</strong>)</a> with reasonable accuracy.</p>
|
||||
<p>Let’s connect the IKEA Sensor to a RISC-V Microcontroller Board: <a href="https://lupyuen.github.io/articles/pinedio"><strong>Pine64 PineDio Stack BL604</strong></a> (pic below) running on <a href="https://lupyuen.github.io/articles/nuttx"><strong>Apache NuttX</strong></a> operating system.</p>
|
||||
<p>Let’s connect the IKEA Sensor to a RISC-V Microcontroller Board: <a href="https://lupyuen.github.io/articles/pinedio2"><strong>Pine64 PineDio Stack BL604</strong></a> (pic below) running on <a href="https://lupyuen.github.io/articles/nuttx"><strong>Apache NuttX</strong></a> operating system.</p>
|
||||
<p>(Our code will run on ESP32 too)</p>
|
||||
<p><em>Why are we doing this?</em></p>
|
||||
<ul>
|
||||
|
@ -126,7 +126,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
<p><img src="https://lupyuen.github.io/images/loader-title.jpg" alt="Pine64 PineDio Stack BL604 RISC-V Board" /></p>
|
||||
<p><a href="https://lupyuen.github.io/articles/pinedio"><em>Pine64 PineDio Stack BL604 RISC-V Board</em></a></p>
|
||||
<p><a href="https://lupyuen.github.io/articles/pinedio2"><em>Pine64 PineDio Stack BL604 RISC-V Board</em></a></p>
|
||||
<h1 id="about-ikea-air-quality-sensor"><a href="#about-ikea-air-quality-sensor">1 About IKEA Air Quality Sensor</a></h1>
|
||||
<p>I found the VINDRIKTNING sensor at my local IKEA Store (IKEA Tampines Singapore) in the Lighting Section…</p>
|
||||
<p>(Near the Air Purifiers. Wow IKEA has Air Purifiers now)</p>
|
||||
|
@ -192,7 +192,7 @@
|
|||
</ol>
|
||||
<p><img src="https://lupyuen.github.io/images/ikea-solder3.jpg" alt="UART Port soldered to IKEA VINDRIKTNING Air Quality Sensor" /></p>
|
||||
<h1 id="connect-to-pinedio-stack-bl604"><a href="#connect-to-pinedio-stack-bl604">3 Connect to PineDio Stack BL604</a></h1>
|
||||
<p>Now that we have exposed the UART Port on IKEA Air Quality Sensor, let’s connect it to our Microcontroller Board: <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a></p>
|
||||
<p>Now that we have exposed the UART Port on IKEA Air Quality Sensor, let’s connect it to our Microcontroller Board: <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a></p>
|
||||
<div><table><thead><tr><th style="text-align: left">From</th><th style="text-align: left">To</th><th style="text-align: left">Wire Colour</th></tr></thead><tbody>
|
||||
<tr><td style="text-align: left"><strong>IKEA REST</strong></td><td style="text-align: left">Resistor R1</td><td style="text-align: left">Blue</td></tr>
|
||||
<tr><td style="text-align: left"><strong>IKEA GND</strong></td><td style="text-align: left">PineDio GND <br> Pin 20</td><td style="text-align: left">Black</td></tr>
|
||||
|
|
|
@ -84,7 +84,7 @@
|
|||
<li><a href="#whats-next">10 What’s Next</a><ul></ul></li>
|
||||
<li><a href="#notes">11 Notes</a><ul></ul></li></ul></nav><p>📝 <em>2 Feb 2022</em></p>
|
||||
<p><img src="https://lupyuen.github.io/images/loader-title.jpg" alt="Pine64 PineDio Stack BL604 RISC-V Board" /></p>
|
||||
<p><a href="https://lupyuen.github.io/articles/pinedio"><em>Pine64 PineDio Stack BL604 RISC-V Board</em></a></p>
|
||||
<p><a href="https://lupyuen.github.io/articles/pinedio2"><em>Pine64 PineDio Stack BL604 RISC-V Board</em></a></p>
|
||||
<p>Something special happens when we <strong>flash firmware</strong> to <a href="https://lupyuen.github.io/articles/pinecone"><strong>BL602 and BL604</strong></a> RISC-V boards…</p>
|
||||
<p>It starts a tiny program <strong>inside the board</strong> to make flashing possible: The <strong>EFlash Loader</strong>.</p>
|
||||
<p>Step by step we shall <strong>uncover what’s inside</strong> EFlash Loader, thanks to <a href="https://ghidra-sre.org/"><strong>Ghidra</strong></a> the popular tool for Software Reverse Engineering.</p>
|
||||
|
|
|
@ -108,7 +108,7 @@
|
|||
<p>LoRa will work perfectly fine for unsecured <strong>Point-to-Point Wireless Communication</strong> between simple devices.</p>
|
||||
<p>But if we’re building an <strong>IoT Sensor Device</strong> that will <strong>transmit data packets</strong> securely to a Local Area Network or to the internet, we need <strong>LoRaWAN</strong>.</p>
|
||||
<p><a href="https://makezine.com/2021/05/24/go-long-with-lora-radio/">(More about LoRaWAN)</a></p>
|
||||
<p>We shall test LoRaWAN on NuttX with <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604 RISC-V Board</strong></a> (pic above) and its onboard Semtech SX1262 Transceiver.</p>
|
||||
<p>We shall test LoRaWAN on NuttX with <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604 RISC-V Board</strong></a> (pic above) and its onboard Semtech SX1262 Transceiver.</p>
|
||||
<p>(LoRaWAN on NuttX will probably run on <strong>ESP32</strong>, since we’re calling standard NuttX Interfaces)</p>
|
||||
<p><img src="https://lupyuen.github.io/images/sx1262-library5.jpg" alt="Porting LoRaWAN to NuttX OS" /></p>
|
||||
<h1 id="small-steps"><a href="#small-steps">1 Small Steps</a></h1>
|
||||
|
@ -1037,7 +1037,7 @@ PrepareTxFrame: status=0, maxSize=11, currentSize=11</code></pre></div>
|
|||
<p><img src="https://lupyuen.github.io/images/lorawan3-tx4a.png" alt="Checking message size" /></p>
|
||||
<p><a href="https://gist.github.com/lupyuen/5fc07695a6c4bb48b5e4d10eb05ca9bf">(Source)</a></p>
|
||||
<h1 id="spi-with-dma"><a href="#spi-with-dma">14 SPI With DMA</a></h1>
|
||||
<p>Today we have successfully tested the LoRaWAN Library on <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604 RISC-V Board</strong></a> (pic below) and its onboard Semtech SX1262 Transceiver.</p>
|
||||
<p>Today we have successfully tested the LoRaWAN Library on <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604 RISC-V Board</strong></a> (pic below) and its onboard Semtech SX1262 Transceiver.</p>
|
||||
<p>The NuttX implementation of <strong>SPI on BL602 and BL604</strong> might need some enhancements…</p>
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -1049,7 +1049,7 @@ PrepareTxFrame: status=0, maxSize=11, currentSize=11</code></pre></div>
|
|||
<p>(SPI with DMA is probably better for LoRaWAN)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>We’re testing NuttX and LoRaWAN on <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a>, which comes with an onboard <strong>ST7789 SPI Display</strong>.</p>
|
||||
<p>We’re testing NuttX and LoRaWAN on <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a>, which comes with an onboard <strong>ST7789 SPI Display</strong>.</p>
|
||||
<p><strong>ST7789 works better with DMA</strong> when blasting pixels to the display.</p>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -122,7 +122,7 @@
|
|||
<p>If you’re wondering: NuttX is named after its creator <a href="https://en.m.wikipedia.org/wiki/NuttX"><strong>Gregory Nutt</strong></a>. And X because it’s POSIX Compliant.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Today we shall <strong>build, flash and run</strong> NuttX on the <a href="https://lupyuen.github.io/articles/pinecone"><strong>PineCone BL602</strong></a> and <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a> RISC-V Boards. (Pic above)</p>
|
||||
<p>Today we shall <strong>build, flash and run</strong> NuttX on the <a href="https://lupyuen.github.io/articles/pinecone"><strong>PineCone BL602</strong></a> and <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a> RISC-V Boards. (Pic above)</p>
|
||||
<p>(The steps in this NuttX tutorial / primer should work on <strong>any BL602 or BL604 Board</strong>: Pinenut, DT-BL10, MagicHome BL602, …)</p>
|
||||
<p>We’ll briefly explore the <strong>internals of NuttX</strong> to understand how it works…</p>
|
||||
<ul>
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
<li><a href="#run-payload-formatter">4 Run Payload Formatter</a><ul></ul></li>
|
||||
<li><a href="#whats-next">5 What’s Next</a><ul></ul></li>
|
||||
<li><a href="#notes">6 Notes</a><ul></ul></li></ul></nav><p>📝 <em>18 Oct 2021</em></p>
|
||||
<p>Suppose we have an <strong>IoT Sensor Device</strong> (like <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a>) connected to <strong>The Things Network</strong> (via LoRaWAN)…</p>
|
||||
<p>Suppose we have an <strong>IoT Sensor Device</strong> (like <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a>) connected to <strong>The Things Network</strong> (via LoRaWAN)…</p>
|
||||
<ul>
|
||||
<li><a href="https://lupyuen.github.io/articles/ttn"><strong>“The Things Network on PineDio Stack BL604 RISC-V Board”</strong></a></li>
|
||||
</ul>
|
||||
|
@ -239,7 +239,7 @@ into the <strong>Formatter Parameter</strong> box</p>
|
|||
<p><img src="https://lupyuen.github.io/images/ttn-title.jpg" alt="PineDio Stack BL604 RISC-V Board (foreground) talking to The Things Network via RAKWireless RAK7248 LoRaWAN Gateway (background)" /></p>
|
||||
<h1 id="run-payload-formatter"><a href="#run-payload-formatter">4 Run Payload Formatter</a></h1>
|
||||
<p>To <strong>test our CBOR Payload Formatter</strong>, we need a LoRaWAN Device that will transmit CBOR Payloads to The Things Network.</p>
|
||||
<p>Today we shall use <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a> (pic above)</p>
|
||||
<p>Today we shall use <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a> (pic above)</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p>Follow the instructions below to <strong>build, flash and run</strong> the LoRaWAN Firmware for PineDio Stack…</p>
|
||||
|
|
|
@ -228,7 +228,7 @@
|
|||
<p><a href="https://wiki.pine64.org/wiki/Nutcracker#Pinenut-01S_Module_information_and_schematics"><strong>Pine64 Pinenut BL602</strong></a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://lupyuen.github.io/articles/pinedio"><strong>Pine64 PineDio Stack BL604</strong></a></p>
|
||||
<p><a href="https://lupyuen.github.io/articles/pinedio2"><strong>Pine64 PineDio Stack BL604</strong></a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://www.cnx-software.com/2020/10/25/bl602-iot-sdk-and-5-dt-bl10-wifi-ble-risc-v-development-board/"><strong>DOIT DT-BL10</strong></a></p>
|
||||
|
|
|
@ -683,7 +683,7 @@ main.go:794
|
|||
<p><a href="https://prometheus.io/docs/introduction/overview/">(Prometheus Architecture)</a></p>
|
||||
<h1 id="whats-next"><a href="#whats-next">8 What’s Next</a></h1>
|
||||
<p>I had fun integrating The Things Network with Prometheus and Grafana… It’s something I always wanted to do. I hope you enjoyed it too!</p>
|
||||
<p>In the next article I’ll head back to <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a> and run more IoT Experiments with LoRaWAN and The Things Network.</p>
|
||||
<p>In the next article I’ll head back to <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a> and run more IoT Experiments with LoRaWAN and The Things Network.</p>
|
||||
<p>(Thankfully we now have a proper platform for Sensor Data visualisation and analysis: Prometheus + Grafana!)</p>
|
||||
<p>Many Thanks to my <a href="https://github.com/sponsors/lupyuen"><strong>GitHub Sponsors</strong></a> for supporting my work! This article wouldn’t have been possible without your support.</p>
|
||||
<ul>
|
||||
|
|
|
@ -889,7 +889,7 @@
|
|||
<h1 id="whats-next"><a href="#whats-next">7 What’s Next</a></h1>
|
||||
<p>Today we have explored the Bestest Outcome for <strong>learners to code and test Rhai Scripts</strong> on BL602 and BL604…</p>
|
||||
<p><img src="https://lupyuen.github.io/images/rhai-outcome3.jpg" alt="Convert Rhai Scripts to uLisp" /></p>
|
||||
<p>Soon we shall test all this on <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604 with LoRa SX1262</strong></a>… As we explore whether it’s feasible to teach <strong>Rhai (and Rust) as a Safer Way</strong> to create firmware for BL602 and BL604.</p>
|
||||
<p>Soon we shall test all this on <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604 with LoRa SX1262</strong></a>… As we explore whether it’s feasible to teach <strong>Rhai (and Rust) as a Safer Way</strong> to create firmware for BL602 and BL604.</p>
|
||||
<p>Many Thanks to my <a href="https://github.com/sponsors/lupyuen"><strong>GitHub Sponsors</strong></a> for supporting my work! This article wouldn’t have been possible without your support.</p>
|
||||
<ul>
|
||||
<li>
|
||||
|
|
|
@ -119,7 +119,7 @@
|
|||
<p>Sounds very “Free Guy” and “Matrix”-ish, but the above is actually a well-known concept in IoT: <strong>Digital Twin</strong>.</p>
|
||||
<p><em>What’s a Digital Twin?</em></p>
|
||||
<p>A <a href="https://en.m.wikipedia.org/wiki/Digital_twin"><strong>Digital Twin</strong></a> is a Virtual Object that <strong>mirrors a Real-World Object</strong> through <strong>Sensors and Actuators</strong>. (Like the pic above)</p>
|
||||
<p>For today’s experiment we shall take this IoT Gadget: <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604 RISC-V Board</strong></a>…</p>
|
||||
<p>For today’s experiment we shall take this IoT Gadget: <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604 RISC-V Board</strong></a>…</p>
|
||||
<p><img src="https://lupyuen.github.io/images/ttn-title.jpg" alt="PineDio Stack BL604 RISC-V Board (foreground) talking to The Things Network via RAKWireless RAK7248 LoRaWAN Gateway (background)" /></p>
|
||||
<p>And turn it into a <strong>Virtual Gadget in Roblox</strong> such that…</p>
|
||||
<ul>
|
||||
|
@ -792,7 +792,7 @@ end</code></pre></div>
|
|||
<p>Our demo setup…</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p><strong>At Left</strong>: Serial Terminal connected to our <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack board</strong></a></p>
|
||||
<p><strong>At Left</strong>: Serial Terminal connected to our <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack board</strong></a></p>
|
||||
<p>(We control PineDio Stack by entering commands into the Serial Terminal)</p>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -123,7 +123,7 @@
|
|||
<p>And transmit a <a href="https://makezine.com/2021/05/24/go-long-with-lora-radio/"><strong>LoRa Message</strong></a> over the airwaves with Rust on NuttX!</p>
|
||||
</li>
|
||||
</ol>
|
||||
<p>We tested Rust on NuttX with <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a> RISC-V Board (pic above) and its onboard Semtech SX1262 Transceiver.</p>
|
||||
<p>We tested Rust on NuttX with <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a> RISC-V Board (pic above) and its onboard Semtech SX1262 Transceiver.</p>
|
||||
<p>But it should work on ESP32, Arm and other NuttX platforms. (With some tweaking)</p>
|
||||
<p><strong>Caution:</strong> Work in Progress! Some spots are rough and rocky, I’m hoping the NuttX and Rust Communities could help to fill in the potholes before release 🙏</p>
|
||||
<p><img src="https://lupyuen.github.io/images/rust2-run.png" alt="Rust running on NuttX" /></p>
|
||||
|
|
|
@ -673,7 +673,7 @@ config ESP32_SPI2_MISOPIN
|
|||
<p>On many BL602 / ESP32 boards, the SPI Bus (MISO, MOSI and SCK) is <strong>shared by multiple SPI Devices</strong>.</p>
|
||||
<p>But each SPI Device has its own <strong>Chip Select Pin</strong>.</p>
|
||||
<p>For such boards we’ll have to control each Chip Select Pin with GPIO.</p>
|
||||
<p><a href="https://lupyuen.github.io/articles/pinedio">(PineDio Stack BL604 shares its SPI Bus with SX1262 Transceiver, ST7789 Display and SPI Flash)</a></p>
|
||||
<p><a href="https://lupyuen.github.io/articles/pinedio2">(PineDio Stack BL604 shares its SPI Bus with SX1262 Transceiver, ST7789 Display and SPI Flash)</a></p>
|
||||
<h2 id="gpio-output-as-chip-select"><a href="#gpio-output-as-chip-select">7.1 GPIO Output as Chip Select</a></h2>
|
||||
<p>Let’s look at the code in <strong>SPI Test App #2</strong> that controls Chip Select with GPIO: <a href="https://github.com/lupyuen/incubator-nuttx-apps/blob/spi_test/examples/spi_test2/spi_test2_main.c#L42-L74">spi_test2_main.c</a></p>
|
||||
<div class="example-wrap"><pre class="language-c"><code>/* Open GPIO Output for SPI Chip Select */
|
||||
|
@ -877,7 +877,7 @@ SX1262 Register 8 is 0x80</code></pre></div>
|
|||
<p><img src="https://lupyuen.github.io/images/spi2-pinedio2a.jpg" alt="PineDio Stack BL604" /></p>
|
||||
<h1 id="test-with-pinedio-stack"><a href="#test-with-pinedio-stack">9 Test with PineDio Stack</a></h1>
|
||||
<p><em>(For BL604 only)</em></p>
|
||||
<p>Pine64 has just sent me a prototype of <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a> (version 2, pic above) with onboard SX1262 LoRa Transceiver, ST7789 Display, SPI Flash, GPS, Compass, Touch Panel, Heart Rate Sensor, Vibrator, …</p>
|
||||
<p>Pine64 has just sent me a prototype of <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a> (version 2, pic above) with onboard SX1262 LoRa Transceiver, ST7789 Display, SPI Flash, GPS, Compass, Touch Panel, Heart Rate Sensor, Vibrator, …</p>
|
||||
<p>(Yep multiple devices on the same SPI Bus)</p>
|
||||
<p>Let’s test NuttX with PineDio Stack BL604 and its <strong>onboard SX1262</strong>! Here are the innards…</p>
|
||||
<p><img src="https://lupyuen.github.io/images/spi2-pinedio1.jpg" alt="Inside PineDio Stack BL604" /></p>
|
||||
|
|
|
@ -243,7 +243,7 @@ git submodule add --branch nuttx https://github.com/lupyuen/lora-sx1262 libsx126
|
|||
<p>For now we’ll call this SPI Test Driver in our LoRa SX1262 Library.</p>
|
||||
<p><img src="https://lupyuen.github.io/images/spi2-pinedio1.jpg" alt="Inside PineDio Stack BL604" /></p>
|
||||
<h1 id="connect-sx1262-transceiver"><a href="#connect-sx1262-transceiver">2 Connect SX1262 Transceiver</a></h1>
|
||||
<p>Our code has been configured for <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a> and its onboard SX1262 Transceiver. (Pic above)</p>
|
||||
<p>Our code has been configured for <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a> and its onboard SX1262 Transceiver. (Pic above)</p>
|
||||
<p>Based on this schematic for PineDio Stack BL604 (version 2)…</p>
|
||||
<blockquote>
|
||||
<p><img src="https://lupyuen.github.io/images/spi2-pinedio3.png" alt="SX1262 Interface on PineDio Stack" /></p>
|
||||
|
|
|
@ -102,7 +102,7 @@
|
|||
</li>
|
||||
</ol>
|
||||
<p><img src="https://lupyuen.github.io/images/tsen-title.jpg" alt="Internal Temperature Sensor visualised with Grafana" /></p>
|
||||
<p>The firmware has been tested on <a href="https://lupyuen.github.io/articles/pinedio"><strong>PineDio Stack BL604</strong></a> (pic below). But it should work on <strong>any BL602 or BL604 Board</strong>: PineCone BL602, Pinenut, DT-BL10, MagicHome BL602, …</p>
|
||||
<p>The firmware has been tested on <a href="https://lupyuen.github.io/articles/pinedio2"><strong>PineDio Stack BL604</strong></a> (pic below). But it should work on <strong>any BL602 or BL604 Board</strong>: PineCone BL602, Pinenut, DT-BL10, MagicHome BL602, …</p>
|
||||
<p><img src="https://lupyuen.github.io/images/ttn-title.jpg" alt="PineDio Stack BL604 RISC-V Board (foreground) talking to The Things Network via RAKWireless RAK7248 LoRaWAN Gateway (background)" /></p>
|
||||
<h1 id="wheres-the-internal-temperature-sensor"><a href="#wheres-the-internal-temperature-sensor">1 Where’s the Internal Temperature Sensor?</a></h1>
|
||||
<p>The Internal Temperature Sensor is inside the <strong>Analog-to-Digital Converter (ADC)</strong> on BL602 and BL604…</p>
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
<p><em>What is PineDio Stack?</em></p>
|
||||
<p><strong>PineDio Stack</strong> is a 32-bit RISC-V Microcontroller board…</p>
|
||||
<ul>
|
||||
<li><a href="https://lupyuen.github.io/articles/pinedio"><strong>“PineDio Stack BL604 RISC-V Board: Testing The Prototype”</strong></a></li>
|
||||
<li><a href="https://lupyuen.github.io/articles/pinedio2"><strong>“PineDio Stack BL604 runs Apache NuttX RTOS”</strong></a></li>
|
||||
</ul>
|
||||
<p>Which has an onboard LoRa SX1262 Transceiver…</p>
|
||||
<ul>
|
||||
|
|
Loading…
Reference in a new issue