Note 8 - Stockholders' Equity (Details Textual) - USD ($) | Jul. 02, 2021 | Sep. 01, 2020 | Mar. 23, 2021 | Jun. 30, 2020 | Dec. 31, 2020 | Jun. 30, 2020 | Dec. 31, 2021 | Dec. 31, 2020 | Feb. 21, 2020 |
Stock Issued During Period, Shares, Exercise of Warrants for Cash (in shares) | | | 228,939 | | | | 228,939 | | |
Proceeds from Warrant Exercises | | | $ 1,000,000 | | $ 68,000 | | $ 1,041,000 | $ 120,000 | |
Class of Warrant or Right, Exercised During Period (in shares) | | | | | | | 536,140 | | |
Stock Issued During Period, Shares, Cashless Exercise of Warrants (in shares) | | | | | | | 190,588 | | |
Stock Issued During Period, Shares, Warrants Exercised (in shares) | | | | | 15,000 | | | | |
Stock Issued During Period, Value, Exercise of Warrants for Cash | | | | | | | $ 1,041,000 | 120,000 | |
Proceeds from Issuance of Private Placement | | | | | | | | 1,746,000 | |
Underwritten Public Offering Warrant [Member] | | | | | | | | | |
Warrants and Rights Outstanding, Term (Year) | | 5 years | | | | | | | |
Class of Warrant or Right, Exercise Price of Warrants or Rights (in dollars per share) | | $ 4.54 | | | | | | | |
Underwritten Public Offering [Member] | | | | | | | | | |
Class of Warrant or Right, Outstanding (in shares) | | | | | | | 2,306,516 | | |
Underwritten Warrants [Member] | | | | | | | | | |
Warrants and Rights Outstanding, Term (Year) | | 5 years | | | | | | | |
Class of Warrant or Right, Exercise Price of Warrants or Rights (in dollars per share) | | $ 4.537 | | | | | | | |
Class of Warrant or Right, Number of Securities Called by Warrants or Rights (in shares) | | 127,273 | | | | | | | |
Warrants and Rights Outstanding | | $ 353,000 | | | | | | | |
Class of Warrant or Right, Exercised During Period, Exercise Price (in dollars per share) | | $ 1.875 | | | $ 4.54 | | | | |
Class of Warrant or Right, Number of Securities Called by Each Warrant or Right (in shares) | | 15,000 | | | | | | | |
Exercise of Warrants To Purchase Common Stock [Member] | | | | | | | | | |
Class of Warrant or Right, Exercise Price of Warrants or Rights (in dollars per share) | | | | | | | $ 4.54 | | |
Class of Warrant or Right, Exercised During Period (in shares) | | | | | | | 223,939 | | |
Warrants With Exercise Price of $5.00 [Member] | | | | | | | | | |
Class of Warrants or Rights, Cancelled During the Period (in shares) | | | | | | | 573,339 | | |
Class of Warrant or Right, Cancelled During Period, Exercise Price (in dollars per share) | | | | | | | $ 5 | | |
Warrants With Exercise Price of $15.00 [Member] | | | | | | | | | |
Class of Warrants or Rights, Cancelled During the Period (in shares) | | | | | | | 108,550 | | |
Class of Warrant or Right, Cancelled During Period, Exercise Price (in dollars per share) | | | | | | | $ 15 | | |
Warrants in Connection with the Private Placement [Member] | | | | | | | | | |
Warrants and Rights Outstanding, Term (Year) | | | | 5 years | | 5 years | | | |
Class of Warrant or Right, Exercise Price of Warrants or Rights (in dollars per share) | | | | $ 6 | | $ 6 | | | |
Warrants Issued for Future Services [Member] | | | | | | | | | |
Warrants and Rights Outstanding, Term (Year) | | | | | | | | | 5 years |
Class of Warrant or Right, Exercise Price of Warrants or Rights (in dollars per share) | | | | | | | | | $ 6.49 |
Class of Warrant or Right, Number of Securities Called by Warrants or Rights (in shares) | | | | | | | | | 75,000 |
Warrants and Rights Outstanding | | | | | | | | | $ 228,000 |
Underwritten Public Offering [Member] | | | | | | | | | |
Stock Issued During Period, Shares, New Issues (in shares) | 3,333,334 | 2,545,454 | | | | | | | |
Shares Issued, Price Per Share (in dollars per share) | $ 3 | | | | | | | | |
Proceeds from Issuance of Common Stock | $ 10,000,000 | | | | | | | | |
Proceeds from Issuance of Common Stock, Net | $ 9,100,000 | | | | | | $ 9,054,000 | | |
Proceeds from Issuance or Sale of Equity, Total | | $ 10,500,000 | | | | | | | |
Proceeds from Issuance of Common Stock, Net | | $ 9,300,000 | | | | | | $ 9,335,000 | |
Stock Issued During Period, Shares, Exercise of Warrants for Cash (in shares) | | 27,500 | | | | | | | |
Stock Issued During Period, Shares, Warrants Exercised (in shares) | | 35,665 | | | | | | | |
Stock Issued During Period, Value, Exercise of Warrants for Cash | | $ 52,000 | | | | | | | |
Stock Issued During Period, Shares, Exercise of Warrants on Cashless Basis (in shares) | | 8,165 | | | | | | | |
Warrants Issued, Cost Capitalized, Against Proceeds Received in Offering | | $ 114,000 | | | | | | | |
Underwritten Public Offering [Member] | Directors and Officers [Member] | | | | | | | | | |
Proceeds from Issuance or Sale of Equity, Total | | $ 81,000 | | | | | | | |
Private Placement [Member] | | | | | | | | | |
Stock Issued During Period, Shares, New Issues (in shares) | | | | 437,000 | | | | | |
Proceeds from Issuance of Private Placement | | | | $ 1,700,000 | | $ 1,700,000 | | | |
Private Placement [Member] | Directors and Officers [Member] | | | | | | | | | |
Proceeds from Issuance of Private Placement | | | | $ 50,000 | | | | | |