User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start [2019/05/29 07:57]
sausage
start [2024/03/20 01:51] (current)
sausage [ESP32 OTA and Rollbacks - What happens under the hood?]
Line 1: Line 1:
 +====== ESP32 OTA and Rollbacks - What happens under the hood? ======
 +
 +[[esp32_ota|{{:​esp32:​2blinks.jpg?​direct&​300 |}}]]
 +
 +Over The Air (OTA) provides a way to send firmware to your ESP32 board in the field without the need for a cable and physical access to the device.
 +
 +The purpose of this article is to manually step through the various stages of the OTA process and illustrate the state of the ESP32 at each stage. ​
 +
 +[[esp32_ota|Read Article]]
 +
 +====== "Right To Repair"​ - the problem in a name  ======
 +[[right_to_repair|{{:​repairs:​open-for-mod.jpg?​direct&​300 |}}]]I am a huge fan of repairing electronic equipment. It's a fun activity and very satisfying preserving good gear and bringing things back to life. 
 +
 +As such, I am a supporter of movements like the Right To Repair in most respects to encourage people to reduce their electronic waste and learn valuable skills.
 +
 +But... sometimes there can be a problem in a name.
 +
 +[[right_to_repair|Read Article]]
 +
 +====== Ember Auto-tracking Object Arrays - Deep Dive ======
 +
 +[[ember-autotracking-object-arrays|{{:​ember:​ember-title-card.jpg?​nolink&​300 |}}]]There will be many times when an Ember application needs to work with simple temporary data (POJOs), but setting up models and working with Ember Data's store might be overkill.
 +
 +The user might still want to bind this data to controls and have it perform dynamically when the data changes.
 +
 +Let's explore some easy options.
 +
 +[[ember-autotracking-object-arrays|Read Article]]
 +
 +====== Great Shiny GS-2000 (modification) ======
 +
 +[[gs_2000_home_theatre_modification|{{:​repairs:​gs2000:​back-feature.jpg?​direct&​300 |}}]] 
 +
 +I've owned this interesting GS-2000 "PC Home Theatre System"​ for many years. ​ It's a rarer configuration. but I've never been happy the way that it clunks when turning on due to the inrush current. ​
 +
 +My plan is to add a thermistor on one of the AC lines to soften the inrush AC current before it hits the transformer.
 +
 +[[gs_2000_home_theatre_modification|Read Article]]
 +
 +====== Deploying an open, insecure .NET Core WebAPI to a Plesk host ======
 +
 +[[dotnetcore_webapi_to_windows_plesk|{{:​webapi:​webapi-to-plesk.png?​nolink&​200 |}}]]
 + You might be keen to try your hand at creating a .NET Core WebAPI, but where to host it? Azure or AWS seems to be the first choice for just about everyone, but there have been Windows-based web hosts of all flavours way before the big boys came along. And they can host .NET Core projects just fine.
 +
 +At the very least, the process to test your host should be fairly straight forward. And I'll provide some troubleshooting along the way in case you encounter any problems.
 +
 +[[dotnetcore_webapi_to_windows_plesk|Read Article]]
 +
 +----
 +
 +====== The great Aussie Burger in the Canberra/​Queanbeyan Region ======
 +
 +[[burger-with-the-lot|{{:​burgers:​exploded-burger.jpg?​200 |}}]]
 +
 +What type of burger is a real Australian hamburger? ​
 +
 +In short: it's the Hamburger with the lot. Also known as the "Works Burger"​ or "​Burger with the works"​.
 +
 +To qualify as a proper Australian hamburger with the lot, there are some strict rules. ​
 +
 +And I know some of the best places around the Canberra region where you can still get it.
 +
 +[[burger-with-the-lot|Read Article]]
 +
 +----
 +
 +====== Custom Ember Data the easy way  ======
 +
 +[[custom-ember-data-the-easy-way|{{:​ember:​ember-title-card.jpg?​nolink&​300 |}}]]If you live in an ideal world, and your backend data format of choice is JSON:API, then you're on the happy path, and the world is your oyster.
 +
 +But not many of us work on greenfields environments where JSON:API is the planned choice. The truth is that most applications have a history and therefore their own custom JSON format to suit.
 +
 +It makes sense that EmberJS can support any type of data format using the ''​RESTSerializer''​.
 +
 +[[custom-ember-data-the-easy-way|Read Article]]
 +
 +----
 +
 +====== Ember.js Routes and Troubleshooting ======
 +
 +[[ember-routes-and-troubleshooting|{{:​ember:​ember-title-card.jpg?​nolink&​300 |}}]]One of the nicest features of Ember.js is the ability to easily create a route and a page template and be able to browse to it in seconds.
 +
 +A good understanding of how routing works can help hunt down bugs and unintended data calls.
 +
 +[[ember-routes-and-troubleshooting|Read Article]]
 +
 +----
 +
 +====== My Father, the pilot'​s story of survival ======
 +
 +[[my-fathers-survival|{{:​survival:​cessna-and-passengers.jpg?​direct&​300 |}}]] My father, Adrian Johnson, was a remarkable man with a reputation as an excellent pilot with a string of adventures during his years.
 +
 +In 1959, long before I was born, he was piloting a charter flight from Wagga Wagga destined for Alice Springs when his plane went missing. He was 22 years old at the time.
 +
 +[[my-fathers-survival|Read Article]]
 +
 +----
 +
 +====== My time with COVID ======
 +
 +[[my-time-with-covid|{{:​covid:​rat-test-cart.jpg?​direct&​300 |}}]] I've been waiting my turn for quite some time now. And with children at school, it had to happen sooner or later. ​
 +
 +So how was my time with COVID and how did I fair?
 +
 +Disclosure: I am one of those terrible terrible people that have chosen not to be vaccinated. Why? That's a conversation for another time. 
 +
 +But the observations after the fact are interesting.
 +
 +[[my-time-with-covid|Read Article]]
 +
 +----
 +
 +====== Electronic Component Testing Cheatsheet ======
 +
 +[[electronic_component_testing_cheatsheet|{{:​component-cheatsheet:​resistor-testing.png?​direct&​300 |}}]]When doing a repair job, it's nice to have a handy testing cheatsheet for a range of electronic components. So far I haven'​t found one, so I created my own here which covers everything from resistors to MOSFETs all using a multimeter and other tools. I've tried to cater for absolute beginners to intermediate hobbyists.
 +
 +This article is likely to expand over time. If this is handy for you, please pass it along to friends. I love to hear from other repairers, if you spot anything wrong, please let me know. 
 +
 +[[electronic_component_testing_cheatsheet|Read Article]]
 +
 +----
 +
 +====== Using GPIO RA3 on a PIC16F1455 ======
 +
 +The PIC16F1455 is only a small microcontroller with 14 pins. 
 +
 +[[ra3_on_pic16f1455|{{:​pic16f1455:​pic16f1455-layout.png?​direct&​300 |}}]]
 +
 +But there are limitations. As you start to allocate out and plan what functions the pins will perform in your design, the choices start to thin out quickly. Some GPIO pins share with other functionality.
 +
 +Eventually you need to double up on a pin to try and get the value from both features.
 +
 +For this article, I'll be picking on RA3.
 +
 +[[ra3_on_pic16f1455|Read Article]]
 +
 +----
 +
 +====== Repairing an Adafruit Grand Central M4 ======
 +
 +[[repairing_adafruit_grand_central|{{:​grand-central:​grandcentral.jpg?​direct&​300 |}}]]A while back, my friend, Professor McSwivells purchased an Adafruit Grand Central M4. Unfortunately it was dead on arrival, and after being in touch with the staff at Adafruit, they reluctantly refunded the purchase. The dead board went into a drawer and was forgotten.
 +
 +The professor recently found it again and thought he'd send it down to me on the off chance that it could be repaired or at least parts salvaged and recycled.
 +
 +[[repairing_adafruit_grand_central|Read Article]]
 +
 +----
 +
 +====== Repairing the Vulcan Dishlex Milano Dishwasher ======
 +
 +[[vulcan_dishlex_milano_dishwasher_repair|{{:​repairs:​dishwasher:​running-test.jpg?​direct&​300 |}}]]Two weeks before the International Repair Day 2021, our 26 year old dishwasher from 1995 packed it in. It came with the house, and was pretty old back then. We never used it all that much over the years. But recently it has been used more, and I guess the old girl couldn'​t cope.
 +
 +I know nothing about dishwashers (or even how to operate one), so I had really no idea where to begin. ​
 +
 +I'll walk through what I did to repair it
 +
 +[[vulcan_dishlex_milano_dishwasher_repair|Read Article]]
 +
 +----
 +
 +====== ReactJS and Friends Refresher ======
 +
 +[[reactjs_and_friends|{{:​react:​react-and-friends.png?​direct&​300 |}}]] Whenever I take a spell from ReactJS it sometimes takes a little bit of time to warm up again. You might be the same. 
 +
 +Hopefully this article will serve as a good reminder for when you need to stretch your legs again.
 +
 +My favourite friends of React are: React-Redux,​ React-Router,​ Redux-Thunk and Hooks.
 +
 +For this refresher, I'm going to present a simple, but reasonably complete application.
 +
 +[[reactjs_and_friends|Read Article]]
 +
 +----
 +
 +====== Creating a .NET Core application with Entity Framework and SQLite in VSCode ======
 +
 +[[sqlite_dotnet_ef_vscode|{{:​sqlite:​sqlite-ef-vscode.png?​direct&​300 |}}]]
 +
 +One of the nice things about SQLite databases is that they are so quick to spin up and work with. That's opposed to the overhead of something like SQL Server and it's installation. ​
 +
 +Also, EF is getting better and easier all the time. 
 +
 +And being able to do all this with .NET Core in a light and flexible IDE like VSCode makes the experience much more pleasant.
 +
 +Let's get to it.
 +
 +[[sqlite_dotnet_ef_vscode|Read Article]]
 +
 +----
 +
 +====== AirFlash for the Pi Zero ======
 +
 +[[airflash|{{:​airflash:​airflash.jpg?​direct&​300 |}}]]
 +
 +The AirFlash is an open-source standalone USB powered device that accepts up to four USB Flash drives and will serve their content out over WIFI to one or more users. ​
 +
 +You can take it anywhere and plug it in to a USB power source. Within 90 seconds the device will be available. ​
 +
 +You can build your own.
 +
 +[[airflash|Read Article]]
 +
 +----
 +
 +====== TEAC FD-235F 4161-U Amiga Floppy Drive Repair ======
 +
 +[[teac_fd-235f_amiga_floppy_repair|{{:​repairs:​teac-drive:​working-floppy.jpg?​direct&​300 |}}]]
 +
 +My original TEAC FD-235F 4161-U floppy drive died maybe a year before I stopped using the Amiga 1200. I had to replace it with another drive that was too tall, meaning the case could never be properly closed. ​
 +
 +I was never able to fix the original drive. 25 years on, I still have this non-working drive and decided to take a crack at a repair.
 +
 +[[teac_fd-235f_amiga_floppy_repair|Read Article]]
 +
 +----
 +
 +====== Amiga 1081 Monitor from 1986 ======
 +
 +[[amiga_1081_monitor_repair|{{:​repairs:​1081:​1081-fixed.jpg?​direct&​300 |}}]]I'​ve been looking forward to getting this on the bench for a while now. A friend gave this to me a while back when he sold off his Amiga 1000. I didn't know what state it was in. Like most Commodore monitors, these are worth fixing, with composite in, TTL RGB and SCART inputs.
 +
 +[[amiga_1081_monitor_repair|Read Article]]
 +
 +----
 +
 +====== Panasonic SA-PT170 Repair ======
 +
 +On the bench this time is a Panasonic Home Theatre System, the SA-PT170, or sometimes labelled as an SC-PT170.
 +
 +[[panasonic_sa_pt170_repair|{{:​repairs:​sapt170:​panasonic-dvd-unit-open.jpg?​direct&​300 |}}]]
 +
 +This unit was working for a good solid ten years but would no longer turn on.
 +
 +[[panasonic_sa_pt170_repair|Read Article]]
 +
 +----
 +
 +====== Generating VGA with an FPGA (Verilog) ======
 +
 +[[generating_vga_with_an_fpga|{{:​vga:​monitor-bottom-centre.jpg?​direct&​300 |}}]]Generating a VGA signal can be a rewarding achievement as an FPGA project. There are loads of explanations and illustrations online on how to generate VGA signals. But sometimes the concept is not clear.
 +
 +I'll attempt to try and make it much clearer and get you on your way quicker.
 +
 +[[generating_vga_with_an_fpga|Read Article]]
 +
 +----
 +
 +====== Simple guide to Verilog Wire and Reg types ======
 +
 +[[verilog_wire_and_reg|{{ :​verilog:​wire-reg-cover.png?​direct&​300|}}]]The aim of this article is to help clear any confusion for beginners when using verilog wire and reg data types between modules. We'll go through all the rules for both a reg and a wire.
 +
 +[[verilog_wire_and_reg|Read Article]]
 +
 +----
 +
 +====== Open Source FPGA toolchain on The Go Board ======
 +
 +[[open_source_on_goboard|{{ ::​goboard.jpg?​direct&​300|}}]]The Go Board is an excellent FPGA dev board that contains four switches, four LEDs, two 7-segments, a PMOD, and a VGA connector.
 +
 +I love it for sketching out quick ideas and experiments.
 +
 +This article aims to take you through a more recent version of ''​yosys'',​ ''​nextpnr'',​ and the Icestorm tools on Windows specifically.
 +
 +There will also be tips along the way and some troubleshooting at the end for when you don't always get the happy path.
 +
 +[[open_source_on_goboard|Read Article]]
 +
 +----
 +
 +====== Samsung 32" S32D850T Monitor Repair ====== ​
 +
 +[[s32d850t_monitor_repair|{{ :​s32d850t:​screen-working.jpg?​direct&​300|}}]]I had a 32" Samsung monitor on the bench from a friend at work who only used it for four years before the power went out and wouldn'​t turn on again. ​
 +
 +Once I got it into the workshop, I attempted a power on and got a pop as well.
 +
 +This one was a fun journey.
 +
 +[[s32d850t_monitor_repair|Read Article]]
 +
 +----
 +
 +====== Raspberry Pi Pico Setup and Review ======
 +
 +[[raspberry_pi_pico_review|{{ :​pi-pico:​raspberry-pi-pico.jpg?​direct&​400|}}]]
 +
 +Saw the ad for the Raspberry Pi Pico from Core Electronics the other week. At $5.75 each, I couldn'​t pass it up.
 +
 +I ordered a couple and they arrived pretty quick in their cool little production cases. I soldered one up and then checked the set up page to see what was required to get it running.
 +
 +[[raspberry_pi_pico_review|Read Article]]
 +
 +
 +----
 +
 +====== Passing Vectors of Object Pointers in C++ =======
 +
 +Learning to use vectors in c++ is fairly straight forward. But passing the collection to a function and returning an instance is not demonstrated as often. ​
 +
 +The following code snippet should show a nice complete flow in one shot. Take a look:
 +
 +[[vectors_of_objects|Read Article]]
 +
 +----
 +
 +====== NV-VP32 VHS/DVD Combo Unit Repair ​ ======
 +
 +[[nvvp32_repair|{{ ::​repairs:​nv-vp32-01.jpg?​direct&​400|}}]] Had an NV-VP32 on the bench during the week. This is a VHS/DVD combo unit that can act as a converter for burning tapes to disk.
 +
 +I plugged the unit in and switched it on. Pressing the power button only showed ''​F09''​ on the display.
 +
 +Thought I'd open it up and take a look around.
 +
 +[[nvvp32_repair|Read Article]]
 +
 +----
 +
 +====== Setting up URL Rewrite on shared windows Plesk hosting ======
 +
 +[[dokuwiki_url_rewrite_windows_plesk|{{ wiki:​dokuwiki-128.png}}]] Setting up URL rewriting for Dokuwiki is a little bit of a challenge under shared Windows Hosting. Much easier under linux hosting as the use of ''​.htaccess''​ is pretty straight forward.
 +
 +This article will help you get the most commonly desired URL format working.
 +
 +[[dokuwiki_url_rewrite_windows_plesk|Read Article]]
 +
 +
 +----
 +
 +====== When ESP8266 is a right pain in the Serial ======
 +
 +ESP32 is pretty straight forward when it comes to serial debugging with the console via the USB connection.
 +
 +[[esp8266_serial_monitor|{{ :​esp8266:​esp8266-serial-monitor-garbage.png|}}]]
 +
 +However when trying the Amica NodeMCU ESP8266, serial was not a straight forward process via the Arduino IDE. 
 +
 +[[esp8266_serial_monitor|Read Article]]
 +
 +----
 +
 +
 +====== ESP32 with SSD1306 oLED display libraries ======
 +
 +[[esp32_with_ssd1306_libraries|{{ :​esp32-oled-libraries:​oled-adafruit-snow.jpg?​nolink&​200|}}]]
 +
 +There'​s a lot of articles out there already on using these little 128x64 oLED monochrome displays with an ESP32 or with an Arduino board. ​
 +
 +The go-to library for working with oLED displays appears to be Adafruit'​s SSD1306 library judging by the amount of articles written on it. This one is packed with features while being easy to use (but there are others!).
 +
 +[[esp32_with_ssd1306_libraries|Read Article]]
 +
 +----
 +
 +====== Charlieplexing LEDs on the ESP32 ======
 +
 +[[charlieplexing_on_the_esp32|{{ :​charlieplexing:​3-pin-led1-other-paths.png?​nolink&​150|}}]]The ESP32 has a stack of GPIO pins allowing you to attach a whole bunch of LEDs. But it's a neat practice to try using fewer pins with several LEDs using Charlieplexing. There'​s quite a few things you can learn along the way.
 +
 +[[charlieplexing_on_the_esp32|Read Article]]
 +
 +----
 +
 +====== ESP32 From Scratch ======
 +
 +This guide will show you how to quickly set up an ESP32, placement onto a breadboard, wiring, the software, and finally sending code to it.
 +
 +[[esp32_from_scratch|Read Article]]
 +
 +----
 +
 +====== Space Capsule Hotel Adventure ======
 +
 +[[reactconf_and_spacecapsule_adventure|{{ :​wiki:​capsulehotel:​pods-feet.jpg?​nolink&​200|}}]] In February, myself and a couple of mates from work stayed at the Space Capsule Hotel in Sydney. Some thought what we were doing was dreadful/​unconventional but we were keen to check it out nonetheless.
 +
 +Once inside, there really is an illusion of being inside the sleeping cabin of some ship on route to mars.
 +
 +[[reactconf_and_spacecapsule_adventure|Read Article]]
 +
 +----
 +
 +====== Setting up a minimal Hugo website ======
 +
 +I discovered a most excellent thing recently for developing websites: Hugo. More truthfully, a friend got me onto it. At first I couldn'​t see the point of something that generates static pages from source.
 +
 +{{http://​gohugo.io/​images/​gohugoio-card.png?​400}}
 +
 +[[hugo|Read Article]]
 +
 +----
 +
 +====== Oscillators on the PIC16F1455 ======
 +
 +[[pic16f1455_oscillators|{{ :​crystals-small.jpg?​nolink&​200|}}]] Oscillators on a PIC can be a bit of a minefield to understand. Especially learning to read through a datasheet. So it can be a little daunting just to get a baseline start.
 +
 +Hopefully I can help here.
 +
 +[[pic16f1455_oscillators|Read Article]]
 +
 +----
 +
 +====== Minimum setup for a PIC16F1455 on a Breadboard + PICkit3 ======
 +
 +If you need a quick setup for the PIC16F1455, fast wiring and code to check output from a pin, this article is for you.
 +
 +[[pic16f1455|Read Article]]
 +
 +----
 +
 +
 +====== FPGA Verilog simulation using GTKWave on the iCE40-feather ======
 +
 +One of the nice things about working with FPGAs and Verilog is the array of open source tools and development boards that are available.
 +
 +Our aim is to take a verilog file, a testbench and simulate it using Icarus Verilog / GTKWave.
 +
 +[[gtkwave_simulation_for_ice|Read Article]]
 +
 +
 +----
 +
 +
 +====== How to remove harvesting from a new Windows 10 instance ======
 +
 +Microsoft has a sea of settings that have their best interests at heart. The biggest one being Cortana, and placing ads on the lock screen.
 +
 +When receiving a new laptop or PC that has Windows 10 installed, there are a number of things that you can do to shut Microsoft out.
 +
 +[[remove_harvesting_from_windows_10|Read Article]]
 +
 +
 +----
 +
 +
 +====== Single Optional Argument for a LaTeX Macro ======
 +
 +I recently needed to create a new LaTeX macro for a User manual. The macro was to output a defined character, but in a colour specified by the author. Therefore, I needed a macro that accepted a single optional argument.
 +
 +[[latex_macro_single_optional_argument|Read Article]]
 +
 +
 +----
 +
 +====== Simple start with WebAssembly/​Emscripten and C/C++ ======
 +
 +I am really excited by this technology. In many aspects, it's a return to where I started, assembly coding on 8-bit and 16-bit machines. And it's a shot in the arm for the browser, opening up many new possibilities for frontend web development.
 +
 +[[simple_webassembly_emscripten_c|Read Article]]
 +
 +
 +----
 +
 +
 ====== Minimum setup for a PIC32MX270F256B on a Breadboard + PICkit3 ====== ====== Minimum setup for a PIC32MX270F256B on a Breadboard + PICkit3 ======
  
Line 6: Line 455:
  
 [[pic32mx270f256b|Read Article]] [[pic32mx270f256b|Read Article]]
 +
 +
 +----
 +
  
 ====== SSD1306 and SSD1315 oLED Modules for the Pi1541 ====== ====== SSD1306 and SSD1315 oLED Modules for the Pi1541 ======
Line 21: Line 474:
 ====== Building the Pi1541 ====== ====== Building the Pi1541 ======
  
-{{ :​wiki:​pi-5165.jpg?​nolink&​200|}}I first heard about the [[https://​cbm-pi1541.firebaseapp.com|Pi1541]] created by Steve White on [[http://​www.chickenlipsradio.org|Chicken Lips Radio]]. There had been other solutions in the past for hooking up an SD card to a C64/128 but nothing for the average hacker that would fully emulate a 1541 or daily chain to another real 1541. +[[pi1541|{{ :​wiki:​pi-5165.jpg?​nolink&​200|}}]]I first heard about the [[https://​cbm-pi1541.firebaseapp.com|Pi1541]] created by Steve White on [[http://​www.chickenlipsradio.org|Chicken Lips Radio]]. There had been other solutions in the past for hooking up an SD card to a C64/128 but nothing for the average hacker that would fully emulate a 1541 or daily chain to another real 1541. 
  
 Discovering that this project ran bare metal on the Raspberry Pi without any underlying OS was impressive to say the least, exactly what I was hoping someone would eventually produce. Discovering that this project ran bare metal on the Raspberry Pi without any underlying OS was impressive to say the least, exactly what I was hoping someone would eventually produce.
start.1559116661.txt.gz ยท Last modified: 2021/02/02 01:24 (external edit)