- Setup
-
Don't use
sudo apt install platformiobut if you did, trysudo apt remove platformiobefore proceeding further. -
Install
python-venv:sudo apt-get install python3-venv -
Install PlatformIO :
| #!/usr/bin/env bash | |
| # Create a page in the current dir | |
| echo "Init server..." | |
| # Start server | |
| python -m SimpleHTTPServer 8000 &> /dev/null & | |
| pid=$! |
| { | |
| "workbench.startupEditor": "none", | |
| "workbench.activityBar.visible": false, | |
| // "workbench.editor.showIcons": false, | |
| "editor.fontSize": 13.7, | |
| // 3 columns section of Line-Number | |
| // "editor.lineHeight": 26, | |
| // "editor.folding": false, |
When I first bought this old buddy, I thought it was dead, corrupted or something wrong there. But then, I figured it out after some late nights that it still work flawlessly with even latest MPLAB X IDE/IPE 6.20 on Ubuntu 24.04.1, even when USB Tools keep showing errors about some libusb_AccessLink_xyz not found. So lemme save you a day of googling ;)
It does work flawlessly with Pickit-3 Programmer Standalone 3.10 Application but doesn't on MPLAB X IDE/IPE 6.20+.
Solution :
| #include <Wire.h> | |
| #include <LiquidCrystal_I2C.h> | |
| #include <ESP8266WiFi.h> | |
| #include <WiFiClient.h> | |
| #include <ArduinoJson.h> | |
| // Change ID/PWD | |
| const char* ssid = "YOUR_SSID"; | |
| const char* password = "YOUR_PASSWORD"; | |
| LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C Address of LCD 16x02 |
| module hdmi_forward ( | |
| input logic clk, // System clock | |
| input logic reset, // Asynchronous reset | |
| // HDMI inputs | |
| input logic [2:0] tmds_i_red, | |
| input logic [2:0] tmds_i_green, | |
| input logic [2:0] tmds_i_blue, | |
| input logic hsync_i, | |
| input logic vsync_i, |
| // cc -w -include time.h -o qlock qlock.c // MIT Copyright (c) Tsoding | |
| char*s="// cc -w -include time.h -o qlock qlock.c // MIT Copyright (c) Tsoding\n" | |
| "char*s=\"?\";x,y,d[8],i,dx;f[]={31599,19812,14479,31207,23524,29411,29679,\n" | |
| "30866,31727,31719,1040};char*so,*si;p(ch){i=x/2/(3+2);dx=x/2%(3+2);if(i<8&&(y-5)\n" | |
| "/2<5&&dx<3&&(f[d[i]]>>((5-(y-5)/2-1)*3+dx))&1)printf(\"\\033[1;41;30m%c\\033[0m\",ch\n" | |
| ");else printf(\"%c\",ch);if(ch=='\\n'){y+=1;x=0;}else x+=1;}gd(){time_t t=time(NULL);struct\n" | |
| " tm*tm=localtime(&t);d[0]=tm->tm_hour/10;d[1]=tm->tm_hour%10;d[2]=10;d[3]=tm->tm_min\n" | |
| "/10;d[4]=tm->tm_min%10;d[5]=10;d[6]=tm->tm_sec/10;d[7]=tm->tm_sec%10;}main(){for\n" | |
| "(gd();;printf(\"\\n\\033[%dA\\033[%dD\",y+1,x),sleep(1),gd())for(so=s,x=0,y=0;*so;so++\n" | |
| ")if(*so==63)for(si=s;*si;si++)switch(*si){case'\\n':p('\\\\');p('n');p('\"');p('\\n')\n" |
| <script> | |
| (r=()=>setInterval(t=>{for(j=o="\n",y=5;y--;document.body["inn" | |
| +"erHTML"]="<pre><"+(S="script>\n")+o+"\n\n</"+S)for(x=-01; | |
| 63-!y>x++;o+=`(r=${r})()`[j++].fontcolor(c?"#FF0":"#444"))c=x/2 | |
| %4<3&&parseInt("odRFacb67o2vi5gmOZmwFNteohbOh3sw".slice(i="9"<( | |
| D=Date()[16+(x/8|0)])?30:D*3,i+3),36)&1<<(x/2|0)%4+3*y},100))() | |
| </script> |
| # Use Ctrl-C to exit insert mode and return to normal mode | |
| [keys.insert] | |
| "C-c" = "normal_mode" | |
| # Also use Ctrl-C to exit select mode | |
| [keys.select] | |
| "C-c" = ["normal_mode", "keep_primary_selection", "collapse_selection"] | |
| #[keys.normal] | |
| # ... other existing keybindings ... |
| # See https://wiki.hyprland.org/Configuring/Monitors/ | |
| # List current monitors and resolutions possible: hyprctl monitors | |
| # Format: monitor = [port], resolution, position, scale | |
| # Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K. | |
| env = GDK_SCALE,1.75 | |
| monitor=,preferred,auto,auto | |
| # monitor=eDP-1,disable | |
| # monitor=HDMI-A-1,2560x1440@120,auto,1#,mirror,eDP-1 |